summaryrefslogtreecommitdiffstats
path: root/public/sdk/inc/cpl.h
diff options
context:
space:
mode:
Diffstat (limited to 'public/sdk/inc/cpl.h')
-rw-r--r--public/sdk/inc/cpl.h211
1 files changed, 211 insertions, 0 deletions
diff --git a/public/sdk/inc/cpl.h b/public/sdk/inc/cpl.h
new file mode 100644
index 000000000..1c9c2055c
--- /dev/null
+++ b/public/sdk/inc/cpl.h
@@ -0,0 +1,211 @@
+/*****************************************************************************\
+* *
+* cpl.h - Control panel extension DLL definitions *
+* *
+* Version 3.10 *
+* *
+* Copyright (c) 1992-1996, Microsoft Corp. All rights reserved *
+* *
+******************************************************************************/
+/*
+* 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 not guaranteed.
+* Control panels may be sorted for display, etc.
+*
+*/
+#ifndef _INC_CPL
+#define _INC_CPL
+
+
+#include <pshpack1.h> /* Assume byte packing throughout */
+
+#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 - LPTSTR 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 (APIENTRY *APPLET_PROC)(HWND hwndCpl, UINT msg, LPARAM lParam1, LPARAM lParam2);
+typedef LONG (APIENTRY *APPLET_PROC)(HWND hwndCpl, UINT msg, LONG lParam1, LONG 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, *LPCPLINFO;
+
+typedef struct tagNEWCPLINFOA
+{
+ 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 */
+} NEWCPLINFOA, *LPNEWCPLINFOA;
+typedef struct tagNEWCPLINFOW
+{
+ 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) */
+ WCHAR szName[32]; /* short name */
+ WCHAR szInfo[64]; /* long name (status line) */
+ WCHAR szHelpFile[128];/* path to help file to use */
+} NEWCPLINFOW, *LPNEWCPLINFOW;
+#ifdef UNICODE
+typedef NEWCPLINFOW NEWCPLINFO;
+typedef LPNEWCPLINFOW LPNEWCPLINFO;
+#else
+typedef NEWCPLINFOA NEWCPLINFO;
+typedef LPNEWCPLINFOA LPNEWCPLINFO;
+#endif // UNICODE
+
+#if(WINVER >= 0x0400)
+#define CPL_DYNAMIC_RES 0
+// This constant may be used in place of real resource IDs for the idIcon,
+// idName or idInfo members of the CPLINFO structure. Normally, the system
+// uses these values to extract copies of the resources and store them in a
+// cache. Once the resource information is in the cache, the system does not
+// need to load a CPL unless the user actually tries to use it.
+// CPL_DYNAMIC_RES tells the system not to cache the resource, but instead to
+// load the CPL every time it needs to display information about an item. This
+// allows a CPL to dynamically decide what information will be displayed, but
+// is SIGNIFICANTLY SLOWER than displaying information from a cache.
+// Typically, CPL_DYNAMIC_RES is used when a control panel must inspect the
+// runtime status of some device in order to provide text or icons to display.
+
+#endif /* WINVER >= 0x0400 */
+
+/* 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. */
+
+/* A CPL SHOULD HANDLE BOTH THE CPL_INQUIRE AND CPL_NEWINQUIRE MESSAGES. */
+/* The developer must not make any assumptions about the order or dependance */
+/* of CPL inquiries. */
+
+/* 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 CPLINFO'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. This information */
+/* may be cached by the caller at runtime and/or across sessions. */
+/* To prevent caching, see CPL_DYNAMIC_RES, above. */
+
+
+#define CPL_SELECT 4
+/* The CPL_SELECT message has been deleted. */
+
+
+#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
+/* Same as CPL_INQUIRE execpt lParam2 is a pointer to a NEWCPLINFO struct. */
+
+/* A CPL SHOULD HANDLE BOTH THE CPL_INQUIRE AND CPL_NEWINQUIRE MESSAGES. */
+/* The developer must not make any assumptions about the order or dependance */
+/* of CPL inquiries. */
+
+#if(WINVER >= 0x0400)
+#define CPL_STARTWPARMSA 9
+#define CPL_STARTWPARMSW 10
+#ifdef UNICODE
+#define CPL_STARTWPARMS CPL_STARTWPARMSW
+#else
+#define CPL_STARTWPARMS CPL_STARTWPARMSA
+#endif
+
+/* this message parallels CPL_DBLCLK in that the applet should initiate
+** its dialog box. where it differs is that this invocation is coming
+** out of RUNDLL, and there may be some extra directions for execution.
+** lParam1: the applet number.
+** lParam2: an LPSTR to any extra directions that might exist.
+** returns: TRUE if the message was handled; FALSE if not.
+*/
+#endif /* WINVER >= 0x0400 */
+
+
+/* This message is internal to the Control Panel and MAIN applets. */
+/* It is only sent when an applet is invoked from the Command line */
+/* during system installation. */
+#define CPL_SETUP 200
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#include <poppack.h>
+
+#endif /* _INC_CPL */