[2] | 1 | #define INCL_PM
|
---|
| 2 | #define INCL_OS2MM
|
---|
| 3 | #define INCL_SW
|
---|
| 4 | #define INCL_DOSMISC
|
---|
| 5 | #define INCL_DOSMODULEMGR
|
---|
| 6 | #include <os2.h>
|
---|
| 7 | #include <os2me.h>
|
---|
| 8 | #include <stdlib.h>
|
---|
| 9 | #include <string.h>
|
---|
| 10 |
|
---|
| 11 | #if 0
|
---|
| 12 | int main()
|
---|
| 13 | {
|
---|
| 14 | exit();
|
---|
| 15 | }
|
---|
| 16 | #endif
|
---|
| 17 |
|
---|
| 18 | /*char chrMMDir[CCHMAXPATH];
|
---|
| 19 | */
|
---|
| 20 | static void _getMMBase(char* chrMMDir, ULONG ulSize)
|
---|
| 21 | {
|
---|
| 22 | PSZ pszMMBase="";
|
---|
| 23 |
|
---|
| 24 | if(!DosScanEnv("MMBASE", &pszMMBase)) {
|
---|
| 25 | char * chrPtr;
|
---|
| 26 | strncpy(chrMMDir, pszMMBase, ulSize);
|
---|
| 27 | chrMMDir[ulSize-1]=0;
|
---|
| 28 | if((chrPtr=strchr(chrMMDir,';'))!=NULLHANDLE)
|
---|
| 29 | *chrPtr=0;
|
---|
| 30 | }
|
---|
| 31 | }
|
---|
| 32 |
|
---|
| 33 | static HMODULE _getDLLHMod(void)
|
---|
| 34 | {
|
---|
| 35 | HMODULE hmod=0;
|
---|
| 36 | char chrPath[CCHMAXPATH];
|
---|
| 37 | _getMMBase( chrPath, sizeof(chrPath));
|
---|
| 38 | if(chrPath[strlen(chrPath)-1]=='\\')
|
---|
| 39 | chrPath[strlen(chrPath)-1]=0;
|
---|
| 40 | strcat(chrPath, "\\DLL\\cddbpage.dll");
|
---|
| 41 | /*WinMessageBox(HWND_DESKTOP, HWND_DESKTOP, chrPath, "", 1234, MB_MOVEABLE);
|
---|
| 42 | //DosBeep(500, 400); */
|
---|
| 43 | if(!DosQueryModuleHandle(chrPath,&hmod)) {
|
---|
| 44 | return hmod;
|
---|
| 45 | }
|
---|
| 46 | else
|
---|
| 47 | return NULLHANDLE;
|
---|
| 48 | }
|
---|
| 49 |
|
---|
| 50 | typedef struct {
|
---|
| 51 | HWND hwndHelpInstance;
|
---|
| 52 | } MMPAGEINFO;
|
---|
| 53 | typedef MMPAGEINFO * PMMPAGEINFO;
|
---|
| 54 |
|
---|
| 55 |
|
---|
| 56 |
|
---|
| 57 | /*******************************************************************/
|
---|
| 58 | /* Modeless secondary window procedure */
|
---|
| 59 | /*******************************************************************/
|
---|
| 60 | MRESULT EXPENTRY cddbPageDlgProc (HWND hwnd, ULONG msg,
|
---|
| 61 | MPARAM mp1, MPARAM mp2)
|
---|
| 62 | {
|
---|
| 63 | PMMPAGEINFO pMMPageInfo = (PMMPAGEINFO)WinQueryWindowPtr (hwnd, QWL_USER);
|
---|
| 64 |
|
---|
| 65 | switch (msg) {
|
---|
| 66 | case WM_INITDLG:
|
---|
| 67 | /* Initialize The Page */
|
---|
| 68 | pMMPageInfo = (PMMPAGEINFO) malloc(sizeof(MMPAGEINFO));
|
---|
| 69 | WinSetWindowPtr (hwnd, QWL_USER, pMMPageInfo);
|
---|
| 70 |
|
---|
| 71 | /* Create a Help Instance */
|
---|
| 72 | /* pMMPageInfo->hwndHelpInstance = WinCreateHelpInstance(...);*/
|
---|
| 73 | break;
|
---|
| 74 |
|
---|
| 75 | case WM_DESTROY:
|
---|
| 76 | /* Clean up page window resources */
|
---|
| 77 | /* WinDestroyHelpInstance (pMMPageInfo->hwndHelpInstance); */
|
---|
| 78 | free (pMMPageInfo);
|
---|
| 79 | break;
|
---|
| 80 |
|
---|
| 81 | case WM_COMMAND:
|
---|
| 82 | /* Process All Commands */
|
---|
| 83 | return ((MRESULT) FALSE);
|
---|
| 84 | break;
|
---|
| 85 |
|
---|
| 86 | case WM_CLOSE:
|
---|
| 87 | return ((MRESULT) FALSE);
|
---|
| 88 | break;
|
---|
| 89 |
|
---|
| 90 | #if 0
|
---|
| 91 | case WM_HELP:
|
---|
| 92 | if (pMMPageInfo->hwndHelpInstance) {
|
---|
| 93 | WinSendMsg(
|
---|
| 94 | pMMPageInfo->hwndHelpInstance,
|
---|
| 95 | HM_DISPLAY_HELP,
|
---|
| 96 | (MPARAM) mp1,
|
---|
| 97 | HM_RESOURCEID );
|
---|
| 98 | }
|
---|
| 99 | return ((MRESULT)TRUE);
|
---|
| 100 | break;
|
---|
| 101 |
|
---|
| 102 | case WM_TRANSLATEACCEL:
|
---|
| 103 | return (WinDefWindowProc (hwnd, msg, mp1, mp2));
|
---|
| 104 | break;
|
---|
| 105 |
|
---|
| 106 | case HM_QUERY_KEYS_HELP:
|
---|
| 107 | return((MRESULT) IDH_HELPFORKEYS);
|
---|
| 108 | break;
|
---|
| 109 | #endif
|
---|
| 110 | }
|
---|
| 111 |
|
---|
| 112 | return (WinDefSecondaryWindowProc(hwnd, msg, mp1, mp2));
|
---|
| 113 | }
|
---|
| 114 |
|
---|
| 115 | HWND InsertCDDBConfigPage(PMCI_DEVICESETTINGS_PARMS pMCIDevSettings)
|
---|
| 116 | {
|
---|
| 117 |
|
---|
| 118 | HWND hwndPage=NULLHANDLE; /* Page window handle */
|
---|
| 119 | CHAR szTabText[CCHMAXPATH]; /* Buffer for tab string */
|
---|
| 120 | ULONG ulPageId; /* Page Identifier */
|
---|
| 121 |
|
---|
| 122 | if(pMCIDevSettings)
|
---|
| 123 | DosBeep(1000, 400);
|
---|
| 124 | if(pMCIDevSettings->hwndCallback)
|
---|
| 125 | DosBeep(500, 400);
|
---|
| 126 | /*******************************************************************/
|
---|
| 127 | /* Load a modeless secondary window */
|
---|
| 128 | /*******************************************************************/
|
---|
| 129 |
|
---|
| 130 | hwndPage = WinLoadSecondaryWindow(
|
---|
| 131 | HWND_DESKTOP,
|
---|
| 132 | HWND_DESKTOP,
|
---|
| 133 | /* pMCIDevSettings->hwndNotebook,
|
---|
| 134 | pMCIDevSettings->hwndNotebook,*/
|
---|
| 135 | &cddbPageDlgProc,
|
---|
| 136 | NULLHANDLE,
|
---|
| 137 | /* _getDLLHMod(),*/ /* hmod */
|
---|
| 138 | 1234,
|
---|
| 139 | (PVOID)NULLHANDLE);
|
---|
| 140 | /* (PVOID)pMCIDevSettings);*/
|
---|
| 141 |
|
---|
| 142 | DosBeep(5000, 400);
|
---|
| 143 | if (!hwndPage) return (NULLHANDLE);
|
---|
| 144 |
|
---|
| 145 | ulPageId = (ULONG)WinSendMsg( pMCIDevSettings->hwndNotebook,
|
---|
| 146 | BKM_INSERTPAGE,
|
---|
| 147 | (ULONG)NULL,
|
---|
| 148 | MPFROM2SHORT( BKA_AUTOPAGESIZE |
|
---|
| 149 | BKA_MINOR, BKA_LAST ) );
|
---|
| 150 | /*******************************************************************/
|
---|
| 151 | /* Associate a secondary window with a notebook page. */
|
---|
| 152 | /*******************************************************************/
|
---|
| 153 |
|
---|
| 154 | WinSendMsg(pMCIDevSettings->hwndNotebook, BKM_SETPAGEWINDOWHWND,
|
---|
| 155 | MPFROMP( ulPageId ), MPFROMLONG( hwndPage ) );
|
---|
| 156 |
|
---|
| 157 | /*******************************************************************/
|
---|
| 158 | /* Get Tab Text from DLL */
|
---|
| 159 | /*******************************************************************/
|
---|
| 160 |
|
---|
| 161 | #if 0
|
---|
| 162 | WinLoadString(WinQueryAnchorBlock( HWND_DESKTOP ), ,
|
---|
| 163 | (USHORT)IDB_EXAMPLE, CCHMAXPATH, szTabText );
|
---|
| 164 | #endif
|
---|
| 165 |
|
---|
| 166 | /*******************************************************************/
|
---|
| 167 | /* Set Tab Text */
|
---|
| 168 | /*******************************************************************/
|
---|
| 169 |
|
---|
| 170 | WinSendMsg( pMCIDevSettings->hwndNotebook, BKM_SETTABTEXT,
|
---|
| 171 | MPFROMP( ulPageId ), szTabText );
|
---|
| 172 |
|
---|
| 173 | return( hwndPage );
|
---|
| 174 |
|
---|
| 175 | }
|
---|
| 176 |
|
---|
| 177 |
|
---|
| 178 |
|
---|
| 179 |
|
---|