_______________________________________________________________________________

 Systray/WPS plugin reference (revision 1)                             ᪠
_______________________________________________________________________________

 1. 㯫

 ⠪, ᫨  ⠥  㬥,   ᥭ 堭
 ࠡ   Systray/WPS,     ࠦ ᢮ ਧ⥫쭮 ;).
  砫 ᫥ ⬥  堭  Systray/WPS ⢥
 ⫨砥  堭  Systray/2 (  ஭,  ).
 ,  -⠪ ⮨   ᠭ  Systray/2 
 ⮣ ⮡  ᭮ ਭ樯  ࠡ.

 2. 祭 

  ⫨稥  । ᨩ, Systray/WPS 믮 ⮬᪮ 祭
 ,  - ⥫ ⢨  ஭ 짮⥫. 
  㦭 ࠧ DLL    ᯥ樠쭮 ४ਨ,  Systray/WPS
  ᫥饬 १᪥ WPS ᠬ  ॡ㥬 .  ࠧ
  ४ਨ \PLUGINS   室  ४ਨ  ⠭
 Systray/WPS (४ ᮤঠ 䠩 WPST.DLL - WPS   Systray). 
 ᪥ WPS 㤥 믮 樠  WPSystray,  ६ 祣 
  㤥 믮  DosLoadModule    ᮤঠ 
 ४ਨ \PLUGINS.  ࢮ 롮 窠 Systray/WPS  ࠡ祬 ⮫ 
 DLL  㤥 맢 ᯮ㥬 㭪 RegisterPlugin,  
 믮 ⢨ 室  ॣ樨   Systray.

 3.  

  㦥 뫮 祭, ॣ  믮 㭪樥 RegisterPlugin, 
   ᠭ ᫥騬 ࠧ:

 BOOL EXPENTRY RegisterPlugin(HMODULE hmPlugin, // 㪠⥫  㦥  
                              HAB habSystray,   // 类  믮饩 Systray
                              PWCLASS pwc,      // 㪠⥫   ᠭ
                                                // ᮢ ⮢
                              PUSHORT nClasses  // ⢮ ᯮ㥬 ᮢ
                              );


  맮 ⮩ 㭪樨 Systray ।   室 ,  ॡ
  ॣ樨   㫨஢ ᮢ, ᮤঠ  .  ⮬ 
 室  祢   WCLASS, 㪠⥫   । 
 쥬 ࠬ 㭪樨 RegisterPlugin,   ⢮ ᯮ㥬 ᮢ 
 ६ nClasses, 㪠⥫   㤥 ।  ⢥⮬ ࠬ.

 4. ॣ 

    ᨨ (Systray/WPS)  㭪樨 ॣ樨  
 㭪, 믮   - ॣ , ᢮
 뤥  ᮢ:

 BOOL EXPENTRY DeregisterPlugin(HMODULE hmPlugin, // 㪠⥫  㦥  
                                HAB habSystray    // 类  믮饩 Systray
                                );

 5.   PWCLASS

  PWCLASS  ᫥騥   室   ॣ樨
 :

typedef struct _WCLASS {
PSZ 	pszName;	// 㪠⥫     
PSZ     pszViewName;	// 㪠⥫    
PSZ     pszHelpFileName;// 㪠⥫   ( !) ࠢ筮 䠩
ULONG   ulHelpPanelID;	//  ⥬  ࠢ筮 䠩    

USHORT  usMaxUnits;	//  ⢠ ஢  (⮢).0= ;)
USHORT  usFlags;	// 䫠 (. )

USHORT  usAlignWord;	// १ࢨ஢
ULONG   ulReserved;	// [...]

ULONG   ulFix;		//   cbFix  UNIT (. )
ULONG   ulSafeAlloc;	//  ࠧ  UNIT (. )
} WCLASS, *PWCLASS;

    ।   ᫥騥 䫠:

#define STUF_FIXED	0x0001 //     䨪஢ ਭ
			       //  짮⥫   . 
			       // ਭ ᠬ ⮬ ᪠.

#define STUF_STATIC	0x0002 // Systray 㤥 樮쭮 ᮢ ࠬ 
			       //    ().

#define STUF_MANUAL	0x0004 //     ਭ  ॣ㫨
			       // 짮⥫. ᮢ⨬  STUF_FIXED  STUF_FULLWIDTH.

#define STUF_FRAMED	0x0008 // Systray 㤥 ᥣ ᮢ ࠬ 
			       //     ().

#define STUF_FULLWIDTH	0x0010 //    㤥  ਭ ࠢ
			       // ⠫쭮 ⠢襬 ਧ⠫쭮 ࠭
			       //   Systray.  ᮢ⨬  STUF_MANUAL 
			       // STUF_FIXED.

#define STUF_NOHINT	0x0020 // Systray  㤥 ⮬᪨ ᢥ稢 ᯫ뢠騥
			       // ᪠   ஢   ().

 稥   䫠 STUF_FIXED, STUF_MANUAL  STUF_FULLWITH 易⥫쭮.

 ਬ  PWCLASS

 pwc->pszName = "MYPLG_MyClass";
 pwc->pszViewName = "My own unit class";
 pwc->pszHelpFileName = "MYPLG.HLP";
 pwc->ulHelpPanelID = IDH_MYUNITCLASSHELP;
 pwc->usMaxUnits = 1;
 pwc->usFlags = STUF_STATIC | STUF_NOHINT | STUF_MANUAL;
 pwc->ulFix = sizeof(UNITMYCLASS);
 pwc->ulSafeAlloc = sizeof(UNITMYCLASS) + sizeof(MYCLASSPRIVATE);

 6.    PM

  ⮣ ⮡ Systray ᬮ  쭥襬 ᯮ짮 ,  
 ᥭ    PWCLASS, 室 ॣ஢ 
  ᮮ⢥饣   PM:

 WinRegisterClass(habSystray,		//  ࠬ RegisterPlugin
                  pwc->pszName,		//  
                  (PFNWP)TaskBarWndProc,//  楤
                  CS_SIZEREDRAW,	// 易⥫ ࠬ!
                  sizeof(PVOID));	// 室 १ࢨ஢ 4 
                                        //  㦤 Systray

 7.   饭

  㦥 ⬥砫,  ।⠢ ᮡ 讥 , । ண
    Systray. 筠    砥  Systray:

 HWND_DESKTOP
  |\
  | 稩 ⮫
    ... 㣨  WPS ...
  |
   \Systray
     |
     |\
     |  1 (SPLG_ToolBar)
     |\
     |  2 (SPGL_SysTray)
       ...

  ⮬   Systray   ⮢ ⨢   ᮡ
 ।⢮ ᮮ饭.

 7.0 WM_CREATE

  ᮮ饭 祭 , ᪮     砥
 㪠⥫   UNIT ( 䠪᪨ । ᮤন
    ),   ⮣,  Systray ⠭
 㪠⥫    㫥  ᫮   (ᯮ 
 ⢮ १ࢨ஢   ॣ樨  
 ). 筮 ᮤন   । ᠬ 
 ,         , 
   ७.

typedef struct _UNIT {
ULONG   cbFix;			//  ࠧ 
				// (  ࠢ  ulFix 
				// WCLASS)

HWND    hwnd;           	//   (  ᫥ WM_CREATE)

HWND    hwnd_Menu;      	//  ᯫ뢠饣 

CHAR    szClass[CBMAXSTRING];	//    

USHORT  usFlags;        	// ,   筮 
				//  WCLASS

INT     iWidth, iRow;		// ᯮ  Systray

BOOL    fGrpNext;		// ...
BOOL    fJustCreated;		// ...

ULONG   ulRefresh;		// ਮ , ᫨ 0 -  
				// . ᮮ饭 USTM_REFRESH
ULONG	ulCounter;		// 稪 

PVOID   pViewData;		// ⥫     Systray

PFNWP   pfnSubclUnitProc;	// ᮢ 楤 

PFNWP   pfnOldUnitProc;		// ਣ쭠  楤

ULONG   ulReserved[8];		// १ࢨ஢   楫
} UNIT, *PUNIT;


 7.1 饭 USTM_REFRESHTIMER

 뫠  祭 ६  㫨㥬 Systray ७ ⠩.

 7.2 USTM_QUERYNBINFO

 訢 ଠ  ᭮  䨣樨   .
  mp1 - 㪠⥫   UNTNBINFO:

typedef struct _UNITNBINFO
{
PUNIT		pUnit;		// 㪠⥫   UNIT  
				//  , 祬   
				//    ᠬ⥫쭮.

PVOID		pUserData;	// ᯮ 㠫쭮

PFNTCLRINFO	pfcInfo;	// 㪠⥫   ᮤঠ
				// ࠬ ।⠢  (Presentation)

				// ᠭ  ᬮ  
				// 䠩 systray.h  室 ⥪

PSZ		*ppszfcInfo;	//  ࠬ஢ ।⠢,
				// ⮡ࠦ  ࠭ Presentation
				//  ᭮  䨣樨 ⮢

SHORT		sNumfcInfo;	// ⢮ ࠬ஢ ।⠢

PUNITPGINFO	pupgInfo;	// ⥫   ࠭
				// ᭮  䨣樨 

				// ᠭ  ᬮ  
				// 䠩 systray.h  室 ⥪

ULONG		idTurnTo;	// ID ,    "ॢ"
				// ࠭ ᭮ 

HPOINTER	hptrWindowIcon; //   ᭮  䨣樨

} UNITNBINFO, *PUNITNBINFO;

 pupgInfo ᮤন 㪠⥫   ࠭ ᭮ :


typedef struct _UNITPGINFO
{
PSZ	pszTabText;		//  
PSZ	pszStatusText;		//  
HMODULE res;			// ਯ   
ULONG	id;			// ID , 
MPARAM  mp2InsertFlags;		//   BKM_INSERTPAGE
PFNWP	pfnDlgProc;		// 楤 ࠡ⪨ 
PVOID	pCreateParams;		// ࠬ  ᮧ  (WinLoadDlg)
HWND	hwnd;			// १ࢨ஢,   NULLHANDLE
ULONG   ulNBPageID,		// १ࢨ஢,   0L
	ulPageFlags;		//  ⮣  (࠭) 
				// ᭮ 

#define	NPF_UNDO		0x00000001 //  "Undo"
#define	NPF_DEFAULT		0x00000002 //  "Default"
#define	NPF_HELP		0x00000004 //  "Help" ( 뫠)
#define	NPF_BYPASSHELP		0x00000008 // 뫠 "Help" , 
					   //  ࠡ뢠 ᠬ⥫쭮

#define	NPF_ALL			0x0000000F // 

struct _UNITPGINFO * pupgInfoNext;
} UNITPGINFO, *PUNITPGINFO;

䨪  "Undo", "Default"  "Help" । ⠪ ࠧ:

#define IDD_DEFAULT	31001
#define IDD_UNDO	31002
#define IDD_HELP	31003

⮬ ᫥  ᮧ ࠢ ⮢   ⠪ ID.

 pfcInfo ᮤন 㪠⥫      FNTCLRINFO,
ᮤঠ ⤥ ଥ ।⠢ (   ᪮쪮,
ਬ ⮬ -  騪 POP3,  ࠧ ﭨ):

typedef struct _FNTCLRINFO
{
LONG	lTextColor;		// 梥 ⥪, RGB
LONG	lBackColor;		// 梥 䮭, RGB
CHAR	szFont[56];		// ,  ଠ ".୨"
} FNTCLRINFO, *PFNTCLRINFO;


 7.3 USTM_QUERYHINT

 訢 ⥪ ᯫ뢠饩 ᪠ (᫨  䫠   㪠
 STUF_NOHINT).  mp1 - 㪠⥫,  mp2 - ᨬ쭠  ⥪ 
 ᪠.

 7.4 USTM_QUERYWIDTH

 訢 ਭ   ᥫ,    ᢮ ᮡ⢥
 ਭ    ६.  뫠  ⥣ ⮢.

 7.6 USTM_GROUPED

  饥 १ࢨ஢   ᯮ

 7.7 USTM_MOVED

  饥 १ࢨ஢   ᯮ

 7.8 USTM_REMOVED

 뫠,  Systray 㤠  .   ,
 ⨢ TRUE.

 7.9 USTM_FORCEHINT

  ⫨稥  । ᮮ饭,  ᮮ饭 뫠  ᢮
 ᮡ⢥  (᪮ Systray ८। 楤  
  ⮢),  ⮣ ⮡ ⮡ࠧ ᯫ뢠 ᪠.

 7.10  USTM_RESIZE

     ।饥,  ᮮ饭   ᫠ ᠬ ᥡ,
 ᫨   ᮡ⢥ ࠧ  ਭ  ᥫ
 (mp1 -  ਭ).

 7.11 USTM_FILLGROUPTITLE

  ᮮ饭 ᯮ  ⮣ ⮡  ᬮ । ᮡ⢥
   ᯨ᪥ 㯯஢ ⮢.  ᮮ饭 뫠  ,
   mp1 㤥 㪠⥫, 㤠  㤥     ᯨ᪥,
  mp2 㤥 ᮤঠ ᨬ쭮   ⮣ .
