home *** CD-ROM | disk | FTP | other *** search
- /*****************************************************************************\
- * *
- * cpl.h - Control panel extension DLL definitions *
- * *
- * Version 3.10 *
- * *
- ******************************************************************************
- * General rules for being installed in the Control Panel:
- *
- * 1) The DLL must export a function named CPlApplet which will handle
- * the messages discussed below.
- * 2) If the applet needs to save information in CONTROL.INI minimize
- * clutter by using the application name [MMCPL.appletname].
- * 2) If the applet is refrenced in CONTROL.INI under [MMCPL] use
- * the following form:
- * ...
- * [MMCPL]
- * uniqueName=c:\mydir\myapplet.dll
- * ...
- *
- *
- * The order applet DLL's are loaded by CONTROL.EXE is:
- *
- * 1) MAIN.CPL is loaded from the windows system directory.
- *
- * 2) Installable drivers that are loaded and export the
- * CplApplet() routine.
- *
- * 3) DLL's specified in the [MMCPL] section of CONTROL.INI.
- *
- * 4) DLL's named *.CPL from windows system directory.
- *
- */
-
- #ifndef __CPL_H /* prevent multiple includes */
- #define __CPL_H
-
- #ifndef __WINDOWS_H
- #include <windows.h> /* <windows.h> must be included */
- #endif /* __WINDOWS_H */
-
- #if !defined(WINVER) || (WINVER < 0x030a)
- #error Control panel extensions require Windows 3.1
- #endif
-
- #ifndef RC_INVOKED
- #pragma option -a- /* Assume byte packing throughout */
- #endif /* RC_INVOKED */
-
- #ifdef __cplusplus
- extern "C" { /* Assume C declarations for C++ */
- #endif /* __cplusplus */
-
- /*
- * CONTROL.EXE will answer this message and launch an applet
- *
- * WM_CPL_LAUNCH
- *
- * wParam - window handle of calling app
- * lParam - LPSTR of name of applet to launch
- *
- * WM_CPL_LAUNCHED
- *
- * wParam - TRUE/FALSE if applet was launched
- * lParam - NULL
- *
- * CONTROL.EXE will post this message to the caller when the applet returns
- * (ie., when wParam is a valid window handle)
- *
- */
- #define WM_CPL_LAUNCH (WM_USER+1000)
- #define WM_CPL_LAUNCHED (WM_USER+1001)
-
- /* A function prototype for CPlApplet() */
-
- typedef LRESULT (CALLBACK *APPLET_PROC)(HWND hwndCpl, UINT msg, LPARAM lParam1, LPARAM lParam2);
-
- /* The data structure CPlApplet() must fill in. */
-
- typedef struct tagCPLINFO
- {
- int idIcon; /* icon resource id, provided by CPlApplet() */
- int idName; /* name string res. id, provided by CPlApplet() */
- int idInfo; /* info string res. id, provided by CPlApplet() */
- LONG lData; /* user defined data */
- } CPLINFO, *PCPLINFO, FAR *LPCPLINFO;
-
- typedef struct tagNEWCPLINFO
- {
- DWORD dwSize; /* similar to the commdlg */
- DWORD dwFlags;
- DWORD dwHelpContext; /* help context to use */
- LONG lData; /* user defined data */
- HICON hIcon; /* icon to use, this is owned by CONTROL.EXE (may be deleted) */
- char szName[32]; /* short name */
- char szInfo[64]; /* long name (status line) */
- char szHelpFile[128];/* path to help file to use */
- } NEWCPLINFO, *PNEWCPLINFO, FAR *LPNEWCPLINFO;
-
-
- /* The messages CPlApplet() must handle: */
-
- #define CPL_INIT 1
- /* This message is sent to indicate CPlApplet() was found. */
- /* lParam1 and lParam2 are not defined. */
- /* Return TRUE or FALSE indicating whether the control panel should proceed. */
-
-
- #define CPL_GETCOUNT 2
- /* This message is sent to determine the number of applets to be displayed. */
- /* lParam1 and lParam2 are not defined. */
- /* Return the number of applets you wish to display in the control */
- /* panel window. */
-
-
- #define CPL_INQUIRE 3
- /* This message is sent for information about each applet. */
- /* lParam1 is the applet number to register, a value from 0 to */
- /* (CPL_GETCOUNT - 1). lParam2 is a far ptr to a CPLINFO structure. */
- /* Fill in CPL_INFO's idIcon, idName, idInfo and lData fields with */
- /* the resource id for an icon to display, name and description string ids, */
- /* and a long data item associated with applet #lParam1. */
-
-
- #define CPL_SELECT 4
- /* This message is sent when the applet's icon has been clicked upon. */
- /* lParam1 is the applet number which was selected. lParam2 is the */
- /* applet's lData value. */
-
-
- #define CPL_DBLCLK 5
- /* This message is sent when the applet's icon has been double-clicked */
- /* upon. lParam1 is the applet number which was selected. lParam2 is the */
- /* applet's lData value. */
- /* This message should initiate the applet's dialog box. */
-
-
- #define CPL_STOP 6
- /* This message is sent for each applet when the control panel is exiting. */
- /* lParam1 is the applet number. lParam2 is the applet's lData value. */
- /* Do applet specific cleaning up here. */
-
-
- #define CPL_EXIT 7
- /* This message is sent just before the control panel calls FreeLibrary. */
- /* lParam1 and lParam2 are not defined. */
- /* Do non-applet specific cleaning up here. */
-
-
- #define CPL_NEWINQUIRE 8
- /* this is the same as CPL_INQUIRE execpt lParam2 is a pointer to a */
- /* NEWCPLINFO structure. this will be sent before the CPL_INQUIRE */
- /* and if it is responed to (return != 0) CPL_INQUIRE will not be sent */
-
-
- #ifdef __cplusplus
- } /* End of extern "C" { */
- #endif /* __cplusplus */
-
- #ifndef RC_INVOKED
- #pragma option -a. /* Revert to default packing */
- #endif /* RC_INVOKED */
-
- #endif /* __CPL_H */
-