commimpl.h 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541
  1. // This is a part of the Microsoft Foundation Classes C++ library.
  2. // Copyright (C) 1992-1997 Microsoft Corporation
  3. // All rights reserved.
  4. //
  5. // This source code is only intended as a supplement to the
  6. // Microsoft Foundation Classes Reference and related
  7. // electronic documentation provided with the library.
  8. // See these sources for detailed information regarding the
  9. // Microsoft Foundation Classes product.
  10. /////////////////////////////////////////////////////////////////////////////
  11. // AFX_COMCTL_CALL - used to dynamically load the COMCTL32 library
  12. #ifdef _AFXDLL
  13. #undef AFX_DATA
  14. #define AFX_DATA AFX_CORE_DATA
  15. struct AFX_COMMCTRL_CALL
  16. {
  17. // housekeeping and other
  18. void (STDAPICALLTYPE* pfnInitCommonControls)();
  19. int (STDAPICALLTYPE* pfnLBItemFromPt)(HWND hLB, POINT pt, BOOL bAutoScroll);
  20. HBITMAP (STDAPICALLTYPE* pfnCreateMappedBitmap)(HINSTANCE hInstance, int idBitmap,
  21. UINT wFlags, LPCOLORMAP lpColorMap, int iNumMaps);
  22. BOOL (STDAPICALLTYPE* pfnMakeDragList)(HWND hLB);
  23. // image lists
  24. BOOL (STDAPICALLTYPE* pfnImageList_SetOverlayImage)(HIMAGELIST himl, int iImage, int iOverlay);
  25. COLORREF (STDAPICALLTYPE* pfnImageList_GetBkColor)(HIMAGELIST himl);
  26. COLORREF (STDAPICALLTYPE* pfnImageList_SetBkColor)(HIMAGELIST himl, COLORREF clrBk);
  27. BOOL (STDAPICALLTYPE* pfnImageList_GetImageInfo)(HIMAGELIST himl, int i, IMAGEINFO FAR* pImageInfo);
  28. BOOL (STDAPICALLTYPE* pfnImageList_Draw)(HIMAGELIST himl, int i, HDC hdcDst, int x, int y, UINT fStyle);
  29. HICON (STDAPICALLTYPE* pfnImageList_GetIcon)(HIMAGELIST himl, int i, UINT flags);
  30. int (STDAPICALLTYPE* pfnImageList_ReplaceIcon)(HIMAGELIST himl, int i, HICON hicon);
  31. BOOL (STDAPICALLTYPE* pfnImageList_Replace)(HIMAGELIST himl, int i, HBITMAP hbmImage, HBITMAP hbmMask);
  32. BOOL (STDAPICALLTYPE* pfnImageList_Remove)(HIMAGELIST himl, int i);
  33. int (STDAPICALLTYPE* pfnImageList_AddMasked)(HIMAGELIST himl, HBITMAP hbmImage, COLORREF crMask);
  34. void (STDAPICALLTYPE* pfnImageList_EndDrag)();
  35. BOOL (STDAPICALLTYPE* pfnImageList_BeginDrag)(HIMAGELIST himlTrack, int iTrack, int dxHotspot, int dyHotspot);
  36. HIMAGELIST (STDAPICALLTYPE* pfnImageList_Merge)(HIMAGELIST himl1, int i1, HIMAGELIST himl2, int i2, int dx, int dy);
  37. HIMAGELIST (STDAPICALLTYPE* pfnImageList_Create)(int cx, int cy, UINT flags, int cInitial, int cGrow);
  38. BOOL (STDAPICALLTYPE* pfnImageList_Destroy)(HIMAGELIST himl);
  39. BOOL (STDAPICALLTYPE* pfnImageList_DragMove)(int x, int y);
  40. BOOL (STDAPICALLTYPE* pfnImageList_SetDragCursorImage)(HIMAGELIST himlDrag, int iDrag, int dxHotspot, int dyHotspot);
  41. BOOL (STDAPICALLTYPE* pfnImageList_DragShowNolock)(BOOL fShow);
  42. HIMAGELIST (STDAPICALLTYPE* pfnImageList_GetDragImage)(POINT FAR* ppt,POINT FAR* pptHotspot);
  43. BOOL (STDAPICALLTYPE* pfnImageList_DragEnter)(HWND hwndLock, int x, int y);
  44. BOOL (STDAPICALLTYPE* pfnImageList_DragLeave)(HWND hwndLock);
  45. int (STDAPICALLTYPE* pfnImageList_GetImageCount)(HIMAGELIST himl);
  46. int (STDAPICALLTYPE* pfnImageList_Add)(HIMAGELIST himl, HBITMAP hbmImage, HBITMAP hbmMask);
  47. HIMAGELIST (STDAPICALLTYPE* pfnImageList_LoadImage)(HINSTANCE hi, LPCTSTR lpbmp, int cx, int cGrow, COLORREF crMask, UINT uType, UINT uFlags);
  48. #ifndef _AFX_NO_OLE_SUPPORT
  49. BOOL (STDAPICALLTYPE* pfnImageList_Write)(HIMAGELIST himl, LPSTREAM pstm);
  50. HIMAGELIST (STDAPICALLTYPE* pfnImageList_Read)(LPSTREAM pstm);
  51. #endif
  52. // property sheets
  53. BOOL (STDAPICALLTYPE* pfnDestroyPropertySheetPage)(HPROPSHEETPAGE);
  54. int (STDAPICALLTYPE* pfnPropertySheet)(LPCPROPSHEETHEADER);
  55. HPROPSHEETPAGE (STDAPICALLTYPE* pfnCreatePropertySheetPage)(LPCPROPSHEETPAGE);
  56. };
  57. extern AFX_DATA AFX_COMMCTRL_CALL _afxCommCtrl;
  58. /////////////////////////////////////////////////////////////////////////////
  59. // AFX_SHELL_CALL - used to dynamically load SHELL32.DLL
  60. #ifndef _MAC
  61. struct AFX_SHELL_CALL
  62. {
  63. DWORD (WINAPI* pfnSHGetFileInfo)(LPCTSTR pszPath, DWORD dwFileAttributes, SHFILEINFO FAR *psfi, UINT cbFileInfo, UINT uFlags);
  64. HICON (WINAPI* pfnExtractIcon)(HINSTANCE hInst, LPCTSTR lpszExeFileName, UINT nIconIndex);
  65. UINT (WINAPI* pfnDragQueryFile)(HDROP,UINT,LPTSTR,UINT);
  66. VOID (WINAPI* pfnDragAcceptFiles)(HWND,BOOL);
  67. VOID (WINAPI* pfnDragFinish)(HDROP);
  68. };
  69. /////////////////////////////////////////////////////////////////////////////
  70. // AFX_WINSPOOL_CALL - used to dynamically load WINSPOOL.DLL
  71. struct AFX_WINSPOOL_CALL
  72. {
  73. BOOL (APIENTRY* pfnOpenPrinter)(LPTSTR, LPHANDLE, LPPRINTER_DEFAULTS);
  74. BOOL (APIENTRY* pfnClosePrinter)(HANDLE hPrinter);
  75. LONG (APIENTRY* pfnDocumentProperties)(HWND hWnd, HANDLE hPrinter,
  76. LPTSTR pDeviceName, PDEVMODE pDevModeOutput, PDEVMODE pDevModeInput,
  77. DWORD fMode);
  78. };
  79. /////////////////////////////////////////////////////////////////////////////
  80. // AFX_COMDLG_CALL - used to dynamically load COMDLG32.DLL
  81. struct AFX_COMDLG_CALL
  82. {
  83. BOOL (APIENTRY* pfnChooseColor)(LPCHOOSECOLOR);
  84. DWORD (APIENTRY* pfnCommDlgExtendedError)(VOID);
  85. HWND (APIENTRY* pfnReplaceText)(LPFINDREPLACE);
  86. BOOL (APIENTRY* pfnGetSaveFileName)(LPOPENFILENAME);
  87. short (APIENTRY* pfnGetFileTitle)(LPCTSTR, LPTSTR, WORD);
  88. BOOL (APIENTRY* pfnPrintDlg)(LPPRINTDLG);
  89. BOOL (APIENTRY* pfnChooseFont)(LPCHOOSEFONT);
  90. HWND (APIENTRY* pfnFindText)(LPFINDREPLACE);
  91. BOOL (APIENTRY* pfnPageSetupDlg)(LPPAGESETUPDLG);
  92. BOOL (APIENTRY* pfnGetOpenFileName)(LPOPENFILENAME);
  93. };
  94. /////////////////////////////////////////////////////////////////////////////
  95. // AFX_ADVAPI_CALL - used to dynamically load ADVAPI.DLL
  96. struct AFX_ADVAPI_CALL
  97. {
  98. LONG (APIENTRY* pfnRegCreateKeyEx)(HKEY hKey, LPCTSTR lpSubKey,
  99. DWORD Reserved, LPTSTR lpClass, DWORD dwOptions, REGSAM samDesired,
  100. LPSECURITY_ATTRIBUTES lpSecurityAttributes, PHKEY phkResult,
  101. LPDWORD lpdwDisposition);
  102. LONG (APIENTRY* pfnRegEnumKey)(HKEY hKey, DWORD dwIndex, LPTSTR lpName,
  103. DWORD cbName);
  104. LONG (APIENTRY* pfnRegDeleteKey)(HKEY hKey, LPCTSTR lpSubKey);
  105. LONG (APIENTRY* pfnRegDeleteValue)(HKEY hKey, LPCTSTR lpValueName);
  106. LONG (APIENTRY* pfnRegOpenKeyEx)(HKEY hKey, LPCTSTR lpSubKey,
  107. DWORD ulOptions, REGSAM samDesired, PHKEY phkResult);
  108. LONG (APIENTRY* pfnRegCloseKey)(HKEY hKey);
  109. LONG (APIENTRY* pfnRegSetValue)(HKEY hKey, LPCTSTR lpSubKey, DWORD dwType,
  110. LPCTSTR lpData, DWORD cbData);
  111. LONG (APIENTRY* pfnRegCreateKey)(HKEY hKey, LPCTSTR lpSubKey,
  112. PHKEY phkResult);
  113. LONG (APIENTRY* pfnRegSetValueEx)(HKEY hKey, LPCTSTR lpValueName,
  114. DWORD Reserved, DWORD dwType, CONST BYTE* lpData, DWORD cbData);
  115. LONG (APIENTRY* pfnRegQueryValue)(HKEY hKey, LPCTSTR lpSubKey,
  116. LPTSTR lpValue, PLONG lpcbValue);
  117. LONG (APIENTRY* pfnRegOpenKey)(HKEY hKey, LPCTSTR lpSubKey,
  118. PHKEY phkResult);
  119. LONG (APIENTRY* pfnRegQueryValueEx)(HKEY hKey, LPCTSTR lpValueName,
  120. LPDWORD lpReserved, LPDWORD lpType, LPBYTE lpData, LPDWORD lpcbData);
  121. #ifndef _MAC
  122. BOOL (APIENTRY* pfnSetFileSecurity)(LPCTSTR lpszFile, SECURITY_INFORMATION si,
  123. PSECURITY_DESCRIPTOR psd);
  124. BOOL (APIENTRY* pfnGetFileSecurity)(LPCTSTR lpFileName,
  125. SECURITY_INFORMATION RequestedInformation, PSECURITY_DESCRIPTOR pSecurityDescriptor,
  126. DWORD nLength, LPDWORD lpnLengthNeeded);
  127. #endif
  128. };
  129. extern AFX_DATA AFX_COMDLG_CALL _afxComDlg;
  130. extern AFX_DATA AFX_SHELL_CALL _afxShell;
  131. extern AFX_DATA AFX_WINSPOOL_CALL _afxWinSpool;
  132. extern AFX_DATA AFX_ADVAPI_CALL _afxAdvApi;
  133. #endif //!_MAC
  134. /////////////////////////////////////////////////////////////////////////////
  135. // macros for AFX_COMCTL_CALL access
  136. #ifdef InitCommonControls
  137. #undef InitCommonControls
  138. #endif
  139. #define InitCommonControls _afxCommCtrl.pfnInitCommonControls
  140. #ifdef LBItemFromPt
  141. #undef LBItemFromPt
  142. #endif
  143. #define LBItemFromPt _afxCommCtrl.pfnLBItemFromPt
  144. #ifdef CreateMappedBitmap
  145. #undef CreateMappedBitmap
  146. #endif
  147. #define CreateMappedBitmap _afxCommCtrl.pfnCreateMappedBitmap
  148. #ifdef MakeDragList
  149. #undef MakeDragList
  150. #endif
  151. #define MakeDragList _afxCommCtrl.pfnMakeDragList
  152. #ifdef ImageList_SetOverlayImage
  153. #undef ImageList_SetOverlayImage
  154. #endif
  155. #define ImageList_SetOverlayImage _afxCommCtrl.pfnImageList_SetOverlayImage
  156. #ifdef ImageList_GetBkColor
  157. #undef ImageList_GetBkColor
  158. #endif
  159. #define ImageList_GetBkColor _afxCommCtrl.pfnImageList_GetBkColor
  160. #ifdef ImageList_SetBkColor
  161. #undef ImageList_SetBkColor
  162. #endif
  163. #define ImageList_SetBkColor _afxCommCtrl.pfnImageList_SetBkColor
  164. #ifdef ImageList_GetImageInfo
  165. #undef ImageList_GetImageInfo
  166. #endif
  167. #define ImageList_GetImageInfo _afxCommCtrl.pfnImageList_GetImageInfo
  168. #ifdef ImageList_Draw
  169. #undef ImageList_Draw
  170. #endif
  171. #define ImageList_Draw _afxCommCtrl.pfnImageList_Draw
  172. #ifdef ImageList_GetIcon
  173. #undef ImageList_GetIcon
  174. #endif
  175. #define ImageList_GetIcon _afxCommCtrl.pfnImageList_GetIcon
  176. #ifdef ImageList_ReplaceIcon
  177. #undef ImageList_ReplaceIcon
  178. #endif
  179. #define ImageList_ReplaceIcon _afxCommCtrl.pfnImageList_ReplaceIcon
  180. #ifdef ImageList_Replace
  181. #undef ImageList_Replace
  182. #endif
  183. #define ImageList_Replace _afxCommCtrl.pfnImageList_Replace
  184. #ifdef ImageList_Remove
  185. #undef ImageList_Remove
  186. #endif
  187. #define ImageList_Remove _afxCommCtrl.pfnImageList_Remove
  188. #ifdef ImageList_AddMasked
  189. #undef ImageList_AddMasked
  190. #endif
  191. #define ImageList_AddMasked _afxCommCtrl.pfnImageList_AddMasked
  192. #ifdef ImageList_EndDrag
  193. #undef ImageList_EndDrag
  194. #endif
  195. #define ImageList_EndDrag _afxCommCtrl.pfnImageList_EndDrag
  196. #ifdef ImageList_BeginDrag
  197. #undef ImageList_BeginDrag
  198. #endif
  199. #define ImageList_BeginDrag _afxCommCtrl.pfnImageList_BeginDrag
  200. #ifdef ImageList_LoadImage
  201. #undef ImageList_LoadImage
  202. #endif
  203. #define ImageList_LoadImage _afxCommCtrl.pfnImageList_LoadImage
  204. #ifndef _AFX_NO_OLE_SUPPORT
  205. #ifdef ImageList_Write
  206. #undef ImageList_Write
  207. #endif
  208. #define ImageList_Write _afxCommCtrl.pfnImageList_Write
  209. #ifdef ImageList_Read
  210. #undef ImageList_Read
  211. #endif
  212. #define ImageList_Read _afxCommCtrl.pfnImageList_Read
  213. #endif // !_AFX_NO_OLE_SUPPORT
  214. #ifdef ImageList_Merge
  215. #undef ImageList_Merge
  216. #endif
  217. #define ImageList_Merge _afxCommCtrl.pfnImageList_Merge
  218. #ifdef ImageList_Create
  219. #undef ImageList_Create
  220. #endif
  221. #define ImageList_Create _afxCommCtrl.pfnImageList_Create
  222. #ifdef ImageList_Destroy
  223. #undef ImageList_Destroy
  224. #endif
  225. #define ImageList_Destroy _afxCommCtrl.pfnImageList_Destroy
  226. #ifdef ImageList_DragMove
  227. #undef ImageList_DragMove
  228. #endif
  229. #define ImageList_DragMove _afxCommCtrl.pfnImageList_DragMove
  230. #ifdef ImageList_SetDragCursorImage
  231. #undef ImageList_SetDragCursorImage
  232. #endif
  233. #define ImageList_SetDragCursorImage _afxCommCtrl.pfnImageList_SetDragCursorImage
  234. #ifdef ImageList_DragShowNolock
  235. #undef ImageList_DragShowNolock
  236. #endif
  237. #define ImageList_DragShowNolock _afxCommCtrl.pfnImageList_DragShowNolock
  238. #ifdef ImageList_GetDragImage
  239. #undef ImageList_GetDragImage
  240. #endif
  241. #define ImageList_GetDragImage _afxCommCtrl.pfnImageList_GetDragImage
  242. #ifdef ImageList_DragEnter
  243. #undef ImageList_DragEnter
  244. #endif
  245. #define ImageList_DragEnter _afxCommCtrl.pfnImageList_DragEnter
  246. #ifdef ImageList_DragLeave
  247. #undef ImageList_DragLeave
  248. #endif
  249. #define ImageList_DragLeave _afxCommCtrl.pfnImageList_DragLeave
  250. #ifdef ImageList_GetImageCount
  251. #undef ImageList_GetImageCount
  252. #endif
  253. #define ImageList_GetImageCount _afxCommCtrl.pfnImageList_GetImageCount
  254. #ifdef ImageList_Add
  255. #undef ImageList_Add
  256. #endif
  257. #define ImageList_Add _afxCommCtrl.pfnImageList_Add
  258. #ifdef DestroyPropertySheetPage
  259. #undef DestroyPropertySheetPage
  260. #endif
  261. #define DestroyPropertySheetPage _afxCommCtrl.pfnDestroyPropertySheetPage
  262. #ifdef PropertySheet
  263. #undef PropertySheet
  264. #endif
  265. #define PropertySheet _afxCommCtrl.pfnPropertySheet
  266. #ifdef CreatePropertySheetPage
  267. #undef CreatePropertySheetPage
  268. #endif
  269. #define CreatePropertySheetPage _afxCommCtrl.pfnCreatePropertySheetPage
  270. #ifndef _MAC
  271. /////////////////////////////////////////////////////////////////////////////
  272. // macros for AFX_COMDLG_CALL access
  273. #ifdef ChooseColor
  274. #undef ChooseColor
  275. #endif
  276. #define ChooseColor _afxComDlg.pfnChooseColor
  277. #ifdef CommDlgExtendedError
  278. #undef CommDlgExtendedError
  279. #endif
  280. #define CommDlgExtendedError _afxComDlg.pfnCommDlgExtendedError
  281. #ifdef ReplaceText
  282. #undef ReplaceText
  283. #endif
  284. #define ReplaceText _afxComDlg.pfnReplaceText
  285. #ifdef GetSaveFileName
  286. #undef GetSaveFileName
  287. #endif
  288. #define GetSaveFileName _afxComDlg.pfnGetSaveFileName
  289. //#define GetFileTitle _afxComDlg.pfnGetFileTitle
  290. #ifdef PrintDlg
  291. #undef PrintDlg
  292. #endif
  293. #define PrintDlg _afxComDlg.pfnPrintDlg
  294. #ifdef ChooseFont
  295. #undef ChooseFont
  296. #endif
  297. #define ChooseFont _afxComDlg.pfnChooseFont
  298. //#define FindText _afxComDlg.pfnFindText
  299. inline HWND APIENTRY FindText(LPFINDREPLACE lp)
  300. {
  301. return _afxComDlg.pfnFindText(lp);
  302. }
  303. #ifdef PageSetupDlg
  304. #undef PageSetupDlg
  305. #endif
  306. #define PageSetupDlg _afxComDlg.pfnPageSetupDlg
  307. #ifdef GetOpenFileName
  308. #undef GetOpenFileName
  309. #endif
  310. #define GetOpenFileName _afxComDlg.pfnGetOpenFileName
  311. /////////////////////////////////////////////////////////////////////////////
  312. // macros for AFX_SHELL_CALL access
  313. #ifdef SHGetFileInfo
  314. #undef SHGetFileInfo
  315. #endif
  316. #define SHGetFileInfo _afxShell.pfnSHGetFileInfo
  317. //#define ExtractIcon _afxShell.pfnExtractIcon
  318. #ifdef DragQueryFile
  319. #undef DragQueryFile
  320. #endif
  321. #define DragQueryFile _afxShell.pfnDragQueryFile
  322. //#define DragAcceptFiles _afxShell.pfnDragAcceptFiles
  323. #ifdef DragFinish
  324. #undef DragFinish
  325. #endif
  326. #define DragFinish _afxShell.pfnDragFinish
  327. /////////////////////////////////////////////////////////////////////////////
  328. // macros for AFX_WINSPOOL_CALL access
  329. #ifdef DocumentProperties
  330. #undef DocumentProperties
  331. #endif
  332. #define DocumentProperties _afxWinSpool.pfnDocumentProperties
  333. #ifdef OpenPrinter
  334. #undef OpenPrinter
  335. #endif
  336. #define OpenPrinter _afxWinSpool.pfnOpenPrinter
  337. #ifdef ClosePrinter
  338. #undef ClosePrinter
  339. #endif
  340. #define ClosePrinter _afxWinSpool.pfnClosePrinter
  341. /////////////////////////////////////////////////////////////////////////////
  342. // macros for AFX_ADVAPI_CALL access
  343. #ifdef RegCreateKeyEx
  344. #undef RegCreateKeyEx
  345. #endif
  346. #define RegCreateKeyEx _afxAdvApi.pfnRegCreateKeyEx
  347. #ifdef RegEnumKey
  348. #undef RegEnumKey
  349. #endif
  350. #define RegEnumKey _afxAdvApi.pfnRegEnumKey
  351. #ifdef RegDeleteKey
  352. #undef RegDeleteKey
  353. #endif
  354. #define RegDeleteKey _afxAdvApi.pfnRegDeleteKey
  355. #ifdef RegDeleteValue
  356. #undef RegDeleteValue
  357. #endif
  358. #define RegDeleteValue _afxAdvApi.pfnRegDeleteValue
  359. #ifdef RegOpenKeyEx
  360. #undef RegOpenKeyEx
  361. #endif
  362. #define RegOpenKeyEx _afxAdvApi.pfnRegOpenKeyEx
  363. #ifdef RegCloseKey
  364. #undef RegCloseKey
  365. #endif
  366. #define RegCloseKey _afxAdvApi.pfnRegCloseKey
  367. #ifdef RegSetValue
  368. #undef RegSetValue
  369. #endif
  370. #define RegSetValue _afxAdvApi.pfnRegSetValue
  371. #ifdef RegCreateKey
  372. #undef RegCreateKey
  373. #endif
  374. #define RegCreateKey _afxAdvApi.pfnRegCreateKey
  375. #ifdef RegSetValueEx
  376. #undef RegSetValueEx
  377. #endif
  378. #define RegSetValueEx _afxAdvApi.pfnRegSetValueEx
  379. #ifdef RegQueryValue
  380. #undef RegQueryValue
  381. #endif
  382. #define RegQueryValue _afxAdvApi.pfnRegQueryValue
  383. #ifdef RegOpenKey
  384. #undef RegOpenKey
  385. #endif
  386. #define RegOpenKey _afxAdvApi.pfnRegOpenKey
  387. #ifdef RegQueryValueEx
  388. #undef RegQueryValueEx
  389. #endif
  390. #define RegQueryValueEx _afxAdvApi.pfnRegQueryValueEx
  391. #ifdef SetFileSecurity
  392. #undef SetFileSecurity
  393. #endif
  394. #define SetFileSecurity _afxAdvApi.pfnSetFileSecurity
  395. #ifdef GetFileSecurity
  396. #undef GetFileSecurity
  397. #endif
  398. #define GetFileSecurity _afxAdvApi.pfnGetFileSecurity
  399. #define AfxDllExtractIcon _afxShell.pfnExtractIcon
  400. #define AfxDllDragAcceptFiles _afxShell.pfnDragAcceptFiles
  401. #define AfxDllGetFileTitle _afxComDlg.pfnGetFileTitle
  402. #else // !_MAC
  403. #define AfxDllExtractIcon ::ExtractIcon
  404. #define AfxDllDragAcceptFiles ::DragAcceptFiles
  405. #define AfxDllGetFileTitle ::GetFileTitle
  406. #endif // !_MAC
  407. /////////////////////////////////////////////////////////////////////////////
  408. // _AFX_EXTDLL_STATE
  409. #undef AFX_DATA
  410. #define AFX_DATA
  411. class _AFX_EXTDLL_STATE : public CNoTrackObject
  412. {
  413. public:
  414. _AFX_EXTDLL_STATE::~_AFX_EXTDLL_STATE();
  415. // Note: only necessary to initialize non-zero data
  416. #ifdef _AFXDLL
  417. HINSTANCE m_hInstCommCtrl;
  418. #ifndef _MAC
  419. HINSTANCE m_hInstComDlg;
  420. HINSTANCE m_hInstShell;
  421. HINSTANCE m_hInstWinSpool;
  422. HINSTANCE m_hInstAdvApi;
  423. HINSTANCE m_hInstInternet;
  424. #endif
  425. #endif
  426. };
  427. EXTERN_PROCESS_LOCAL(_AFX_EXTDLL_STATE, _afxExtDllState)
  428. ///////////////////////////////////////////////////////////////////////////////
  429. #else // _AFXDLL
  430. #define AfxDllExtractIcon ::ExtractIcon
  431. #define AfxDllDragAcceptFiles ::DragAcceptFiles
  432. #define AfxDllGetFileTitle ::GetFileTitle
  433. #endif // _AFXDLL