Subversion Repositories Kolibri OS

Rev

Blame | Last modification | View Log | Download | RSS feed

  1. /**
  2.  * This file is part of the mingw-w64 runtime package.
  3.  * No warranty is given; refer to the file DISCLAIMER within this package.
  4.  */
  5.  
  6. #ifndef _INC_SHELLAPI
  7. #define _INC_SHELLAPI
  8.  
  9. #include <_mingw_unicode.h>
  10. #include <specstrings.h>
  11.  
  12. #ifndef WINSHELLAPI
  13. #ifndef _SHELL32_
  14. #define WINSHELLAPI DECLSPEC_IMPORT
  15. #else
  16. #define WINSHELLAPI
  17. #endif
  18. #endif
  19.  
  20. #ifndef SHSTDAPI
  21. #ifndef _SHELL32_
  22. #ifdef __cplusplus
  23. #define SHSTDAPI EXTERN_C DECLSPEC_IMPORT HRESULT STDAPICALLTYPE
  24. #define SHSTDAPI_(type) EXTERN_C DECLSPEC_IMPORT type STDAPICALLTYPE
  25. #else
  26. #define SHSTDAPI DECLSPEC_IMPORT HRESULT STDAPICALLTYPE
  27. #define SHSTDAPI_(type) DECLSPEC_IMPORT type STDAPICALLTYPE
  28. #endif
  29. #else
  30. #define SHSTDAPI STDAPI
  31. #define SHSTDAPI_(type) STDAPI_(type)
  32. #endif
  33. #endif
  34.  
  35. #ifndef SHDOCAPI
  36. #ifndef _SHDOCVW_
  37. #ifdef __cplusplus
  38. #define SHDOCAPI EXTERN_C DECLSPEC_IMPORT HRESULT STDAPICALLTYPE
  39. #define SHDOCAPI_(type) EXTERN_C DECLSPEC_IMPORT type STDAPICALLTYPE
  40. #else
  41. #define SHDOCAPI DECLSPEC_IMPORT HRESULT STDAPICALLTYPE
  42. #define SHDOCAPI_(type) DECLSPEC_IMPORT type STDAPICALLTYPE
  43. #endif
  44. #else
  45. #define SHDOCAPI STDAPI
  46. #define SHDOCAPI_(type) STDAPI_(type)
  47. #endif
  48. #endif
  49.  
  50. #ifndef _WIN64
  51. #include <pshpack1.h>
  52. #endif
  53.  
  54. #ifdef __cplusplus
  55. extern "C" {
  56. #endif
  57.  
  58. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  59.   DECLARE_HANDLE (HDROP);
  60.  
  61. #define DragQueryFile __MINGW_NAME_AW(DragQueryFile)
  62. #define ShellExecute __MINGW_NAME_AW(ShellExecute)
  63. #define FindExecutable __MINGW_NAME_AW(FindExecutable)
  64. #define ShellAbout __MINGW_NAME_AW(ShellAbout)
  65. #define ExtractAssociatedIcon __MINGW_NAME_AW(ExtractAssociatedIcon)
  66. #define ExtractAssociatedIconEx __MINGW_NAME_AW(ExtractAssociatedIconEx)
  67. #define ExtractIcon __MINGW_NAME_AW(ExtractIcon)
  68.  
  69.   SHSTDAPI_(UINT) DragQueryFileA (HDROP hDrop, UINT iFile, LPSTR lpszFile, UINT cch);
  70.   SHSTDAPI_(UINT) DragQueryFileW (HDROP hDrop, UINT iFile, LPWSTR lpszFile, UINT cch);
  71.   SHSTDAPI_(WINBOOL) DragQueryPoint (HDROP hDrop, POINT *ppt);
  72.   SHSTDAPI_(void) DragFinish (HDROP hDrop);
  73.   SHSTDAPI_(void) DragAcceptFiles (HWND hWnd, WINBOOL fAccept);
  74.   SHSTDAPI_(HINSTANCE) ShellExecuteA (HWND hwnd, LPCSTR lpOperation, LPCSTR lpFile, LPCSTR lpParameters, LPCSTR lpDirectory, INT nShowCmd);
  75.   SHSTDAPI_(HINSTANCE) ShellExecuteW (HWND hwnd, LPCWSTR lpOperation, LPCWSTR lpFile, LPCWSTR lpParameters, LPCWSTR lpDirectory, INT nShowCmd);
  76.   SHSTDAPI_(HINSTANCE) FindExecutableA (LPCSTR lpFile, LPCSTR lpDirectory, LPSTR lpResult);
  77.   SHSTDAPI_(HINSTANCE) FindExecutableW (LPCWSTR lpFile, LPCWSTR lpDirectory, LPWSTR lpResult);
  78.   SHSTDAPI_(LPWSTR *) CommandLineToArgvW (LPCWSTR lpCmdLine, int *pNumArgs);
  79.   SHSTDAPI_(INT) ShellAboutA (HWND hWnd, LPCSTR szApp, LPCSTR szOtherStuff, HICON hIcon);
  80.   SHSTDAPI_(INT) ShellAboutW (HWND hWnd, LPCWSTR szApp, LPCWSTR szOtherStuff, HICON hIcon);
  81.   SHSTDAPI_(HICON) DuplicateIcon (HINSTANCE hInst, HICON hIcon);
  82.   SHSTDAPI_(HICON) ExtractAssociatedIconA (HINSTANCE hInst, LPSTR pszIconPath, WORD *piIcon);
  83.   SHSTDAPI_(HICON) ExtractAssociatedIconW (HINSTANCE hInst, LPWSTR pszIconPath, WORD *piIcon);
  84.   SHSTDAPI_(HICON) ExtractAssociatedIconExA (HINSTANCE hInst, LPSTR pszIconPath, WORD *piIconIndex, WORD *piIconId);
  85.   SHSTDAPI_(HICON) ExtractAssociatedIconExW (HINSTANCE hInst, LPWSTR pszIconPath, WORD *piIconIndex, WORD *piIconId);
  86.   SHSTDAPI_(HICON) ExtractIconA (HINSTANCE hInst, LPCSTR pszExeFileName, UINT nIconIndex);
  87.   SHSTDAPI_(HICON) ExtractIconW (HINSTANCE hInst, LPCWSTR pszExeFileName, UINT nIconIndex);
  88.  
  89.   typedef struct _DRAGINFOA {
  90.     UINT uSize;
  91.     POINT pt;
  92.     WINBOOL fNC;
  93.     LPSTR lpFileList;
  94.     DWORD grfKeyState;
  95.   } DRAGINFOA,*LPDRAGINFOA;
  96.  
  97.   typedef struct _DRAGINFOW {
  98.     UINT uSize;
  99.     POINT pt;
  100.     WINBOOL fNC;
  101.     LPWSTR lpFileList;
  102.     DWORD grfKeyState;
  103.   } DRAGINFOW,*LPDRAGINFOW;
  104.  
  105.   __MINGW_TYPEDEF_AW(DRAGINFO)
  106.   __MINGW_TYPEDEF_AW(LPDRAGINFO)
  107.  
  108. #define ABM_NEW 0x00000000
  109. #define ABM_REMOVE 0x00000001
  110. #define ABM_QUERYPOS 0x00000002
  111. #define ABM_SETPOS 0x00000003
  112. #define ABM_GETSTATE 0x00000004
  113. #define ABM_GETTASKBARPOS 0x00000005
  114. #define ABM_ACTIVATE 0x00000006
  115. #define ABM_GETAUTOHIDEBAR 0x00000007
  116. #define ABM_SETAUTOHIDEBAR 0x00000008
  117.  
  118. #define ABM_WINDOWPOSCHANGED 0x0000009
  119. #define ABM_SETSTATE 0x0000000a
  120. #if NTDDI_VERSION >= 0x06020000
  121. #define ABM_GETAUTOHIDEBAREX 0x0000000b
  122. #define ABM_SETAUTOHIDEBAREX 0x0000000c
  123. #endif
  124.  
  125. #define ABN_STATECHANGE 0x0000000
  126. #define ABN_POSCHANGED 0x0000001
  127. #define ABN_FULLSCREENAPP 0x0000002
  128. #define ABN_WINDOWARRANGE 0x0000003
  129.  
  130. #define ABS_AUTOHIDE 0x0000001
  131. #define ABS_ALWAYSONTOP 0x0000002
  132.  
  133. #define ABE_LEFT 0
  134. #define ABE_TOP 1
  135. #define ABE_RIGHT 2
  136. #define ABE_BOTTOM 3
  137.  
  138.   typedef struct _AppBarData {
  139.     DWORD cbSize;
  140.     HWND hWnd;
  141.     UINT uCallbackMessage;
  142.     UINT uEdge;
  143.     RECT rc;
  144.     LPARAM lParam;
  145.   } APPBARDATA,*PAPPBARDATA;
  146.  
  147.   SHSTDAPI_(UINT_PTR) SHAppBarMessage (DWORD dwMessage, PAPPBARDATA pData);
  148.   SHSTDAPI_(DWORD) DoEnvironmentSubstA (LPSTR pszSrc, UINT cchSrc);
  149.   SHSTDAPI_(DWORD) DoEnvironmentSubstW (LPWSTR pszSrc, UINT cchSrc);
  150.   SHSTDAPI_(UINT) ExtractIconExA (LPCSTR lpszFile, int nIconIndex, HICON *phiconLarge, HICON *phiconSmall, UINT nIcons);
  151.   SHSTDAPI_(UINT) ExtractIconExW (LPCWSTR lpszFile, int nIconIndex, HICON *phiconLarge, HICON *phiconSmall, UINT nIcons);
  152.  
  153. #define DoEnvironmentSubst __MINGW_NAME_AW(DoEnvironmentSubst)
  154. #define ExtractIconEx __MINGW_NAME_AW(ExtractIconEx)
  155.  
  156. #define EIRESID(x) (-1 * (int)(x))
  157.  
  158. #define FO_MOVE 0x1
  159. #define FO_COPY 0x2
  160. #define FO_DELETE 0x3
  161. #define FO_RENAME 0x4
  162.  
  163. #define FOF_MULTIDESTFILES 0x1
  164. #define FOF_CONFIRMMOUSE 0x2
  165. #define FOF_SILENT 0x4
  166. #define FOF_RENAMEONCOLLISION 0x8
  167. #define FOF_NOCONFIRMATION 0x10
  168. #define FOF_WANTMAPPINGHANDLE 0x20
  169. #define FOF_ALLOWUNDO 0x40
  170. #define FOF_FILESONLY 0x80
  171. #define FOF_SIMPLEPROGRESS 0x100
  172. #define FOF_NOCONFIRMMKDIR 0x200
  173. #define FOF_NOERRORUI 0x400
  174. #define FOF_NOCOPYSECURITYATTRIBS 0x800
  175. #define FOF_NORECURSION 0x1000
  176. #define FOF_NO_CONNECTED_ELEMENTS 0x2000
  177. #define FOF_WANTNUKEWARNING 0x4000
  178. #define FOF_NORECURSEREPARSE 0x8000
  179.  
  180. #define FOF_NO_UI (FOF_SILENT | FOF_NOCONFIRMATION | FOF_NOERRORUI | FOF_NOCONFIRMMKDIR)
  181.  
  182.   typedef WORD FILEOP_FLAGS;
  183.  
  184. #define PO_DELETE 0x0013
  185. #define PO_RENAME 0x0014
  186. #define PO_PORTCHANGE 0x0020
  187.  
  188. #define PO_REN_PORT 0x0034
  189.  
  190.   typedef WORD PRINTEROP_FLAGS;
  191.  
  192.   typedef struct _SHFILEOPSTRUCTA {
  193.     HWND hwnd;
  194.     UINT wFunc;
  195.     LPCSTR pFrom;
  196.     LPCSTR pTo;
  197.     FILEOP_FLAGS fFlags;
  198.     WINBOOL fAnyOperationsAborted;
  199.     LPVOID hNameMappings;
  200.     PCSTR lpszProgressTitle;
  201.   } SHFILEOPSTRUCTA,*LPSHFILEOPSTRUCTA;
  202.  
  203.   typedef struct _SHFILEOPSTRUCTW {
  204.     HWND hwnd;
  205.     UINT wFunc;
  206.     LPCWSTR pFrom;
  207.     LPCWSTR pTo;
  208.     FILEOP_FLAGS fFlags;
  209.     WINBOOL fAnyOperationsAborted;
  210.     LPVOID hNameMappings;
  211.     PCWSTR lpszProgressTitle;
  212.   } SHFILEOPSTRUCTW,*LPSHFILEOPSTRUCTW;
  213.  
  214.   __MINGW_TYPEDEF_AW(SHFILEOPSTRUCT)
  215.   __MINGW_TYPEDEF_AW(LPSHFILEOPSTRUCT)
  216.  
  217.   SHSTDAPI_(int) SHFileOperationA (LPSHFILEOPSTRUCTA lpFileOp);
  218.   SHSTDAPI_(int) SHFileOperationW (LPSHFILEOPSTRUCTW lpFileOp);
  219.  
  220. #define SHFileOperation __MINGW_NAME_AW(SHFileOperation)
  221.  
  222.   SHSTDAPI_(void) SHFreeNameMappings (HANDLE hNameMappings);
  223.  
  224.   typedef struct _SHNAMEMAPPINGA {
  225.     LPSTR pszOldPath;
  226.     LPSTR pszNewPath;
  227.     int cchOldPath;
  228.     int cchNewPath;
  229.   } SHNAMEMAPPINGA,*LPSHNAMEMAPPINGA;
  230.  
  231.   typedef struct _SHNAMEMAPPINGW {
  232.     LPWSTR pszOldPath;
  233.     LPWSTR pszNewPath;
  234.     int cchOldPath;
  235.     int cchNewPath;
  236.   } SHNAMEMAPPINGW,*LPSHNAMEMAPPINGW;
  237.  
  238.  
  239.   __MINGW_TYPEDEF_AW(SHNAMEMAPPING)
  240.   __MINGW_TYPEDEF_AW(LPSHNAMEMAPPING)
  241.  
  242. #define SE_ERR_FNF 2
  243. #define SE_ERR_PNF 3
  244. #define SE_ERR_ACCESSDENIED 5
  245. #define SE_ERR_OOM 8
  246. #define SE_ERR_DLLNOTFOUND 32
  247.  
  248. #define SE_ERR_SHARE 26
  249. #define SE_ERR_ASSOCINCOMPLETE 27
  250. #define SE_ERR_DDETIMEOUT 28
  251. #define SE_ERR_DDEFAIL 29
  252. #define SE_ERR_DDEBUSY 30
  253. #define SE_ERR_NOASSOC 31
  254.  
  255. #define SEE_MASK_DEFAULT 0x0
  256. #define SEE_MASK_CLASSNAME 0x1
  257. #define SEE_MASK_CLASSKEY 0x3
  258.  
  259. #define SEE_MASK_IDLIST 0x4
  260. #define SEE_MASK_INVOKEIDLIST 0xc
  261. #if NTDDI_VERSION < 0x06000000
  262. #define SEE_MASK_ICON 0x10
  263. #endif
  264. #define SEE_MASK_HOTKEY 0x20
  265. #define SEE_MASK_NOCLOSEPROCESS 0x40
  266. #define SEE_MASK_CONNECTNETDRV 0x80
  267. #define SEE_MASK_NOASYNC 0x100
  268. #define SEE_MASK_FLAG_DDEWAIT SEE_MASK_NOASYNC
  269. #define SEE_MASK_DOENVSUBST 0x200
  270. #define SEE_MASK_FLAG_NO_UI 0x400
  271. #define SEE_MASK_UNICODE 0x4000
  272. #define SEE_MASK_NO_CONSOLE 0x8000
  273. #define SEE_MASK_ASYNCOK 0x100000
  274. #define SEE_MASK_HMONITOR 0x200000
  275. #define SEE_MASK_NOZONECHECKS 0x800000
  276. #define SEE_MASK_NOQUERYCLASSSTORE 0x1000000
  277. #define SEE_MASK_WAITFORINPUTIDLE 0x2000000
  278. #define SEE_MASK_FLAG_LOG_USAGE 0x4000000
  279. #if NTDDI_VERSION >= 0x06020000
  280. #define SEE_MASK_FLAG_HINST_IS_SITE 0x8000000
  281. #endif
  282.  
  283. #ifndef DUMMYUNIONNAME
  284. #ifdef NONAMELESSUNION
  285. #define DUMMYUNIONNAME u
  286. #define DUMMYUNIONNAME2 u2
  287. #define DUMMYUNIONNAME3 u3
  288. #define DUMMYUNIONNAME4 u4
  289. #define DUMMYUNIONNAME5 u5
  290. #else
  291. #define DUMMYUNIONNAME
  292. #define DUMMYUNIONNAME2
  293. #define DUMMYUNIONNAME3
  294. #define DUMMYUNIONNAME4
  295. #define DUMMYUNIONNAME5
  296. #endif
  297. #endif
  298.  
  299. #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
  300.  
  301.   typedef struct _SHELLEXECUTEINFOA {
  302.     DWORD cbSize;
  303.     ULONG fMask;
  304.     HWND hwnd;
  305.     LPCSTR lpVerb;
  306.     LPCSTR lpFile;
  307.     LPCSTR lpParameters;
  308.     LPCSTR lpDirectory;
  309.     int nShow;
  310.     HINSTANCE hInstApp;
  311.     void *lpIDList;
  312.     LPCSTR lpClass;
  313.     HKEY hkeyClass;
  314.     DWORD dwHotKey;
  315.     __C89_NAMELESS union {
  316.       HANDLE hIcon;
  317.       HANDLE hMonitor;
  318.     } DUMMYUNIONNAME;
  319.     HANDLE hProcess;
  320.   } SHELLEXECUTEINFOA,*LPSHELLEXECUTEINFOA;
  321.  
  322.   typedef struct _SHELLEXECUTEINFOW {
  323.     DWORD cbSize;
  324.     ULONG fMask;
  325.     HWND hwnd;
  326.     LPCWSTR lpVerb;
  327.     LPCWSTR lpFile;
  328.     LPCWSTR lpParameters;
  329.     LPCWSTR lpDirectory;
  330.     int nShow;
  331.     HINSTANCE hInstApp;
  332.     void *lpIDList;
  333.     LPCWSTR lpClass;
  334.     HKEY hkeyClass;
  335.     DWORD dwHotKey;
  336.     __C89_NAMELESS union {
  337.       HANDLE hIcon;
  338.       HANDLE hMonitor;
  339.     } DUMMYUNIONNAME;
  340.     HANDLE hProcess;
  341.   } SHELLEXECUTEINFOW,*LPSHELLEXECUTEINFOW;
  342.  
  343.   __MINGW_TYPEDEF_AW(SHELLEXECUTEINFO)
  344.   __MINGW_TYPEDEF_AW(LPSHELLEXECUTEINFO)
  345.  
  346.   SHSTDAPI_(WINBOOL) ShellExecuteExA (SHELLEXECUTEINFOA *pExecInfo);
  347.   SHSTDAPI_(WINBOOL) ShellExecuteExW (SHELLEXECUTEINFOW *pExecInfo);
  348.  
  349. #define ShellExecuteEx __MINGW_NAME_AW(ShellExecuteEx)
  350.  
  351.   typedef struct _SHCREATEPROCESSINFOW {
  352.     DWORD cbSize;
  353.     ULONG fMask;
  354.     HWND hwnd;
  355.     LPCWSTR pszFile;
  356.     LPCWSTR pszParameters;
  357.     LPCWSTR pszCurrentDirectory;
  358.     HANDLE hUserToken;
  359.     LPSECURITY_ATTRIBUTES lpProcessAttributes;
  360.     LPSECURITY_ATTRIBUTES lpThreadAttributes;
  361.     WINBOOL bInheritHandles;
  362.     DWORD dwCreationFlags;
  363.     LPSTARTUPINFOW lpStartupInfo;
  364.     LPPROCESS_INFORMATION lpProcessInformation;
  365.   } SHCREATEPROCESSINFOW,*PSHCREATEPROCESSINFOW;
  366.  
  367.   SHSTDAPI_(WINBOOL) SHCreateProcessAsUserW (PSHCREATEPROCESSINFOW pscpi);
  368.  
  369. #if NTDDI_VERSION >= 0x06000000
  370.   SHSTDAPI SHEvaluateSystemCommandTemplate (PCWSTR pszCmdTemplate, PWSTR *ppszApplication, PWSTR *ppszCommandLine, PWSTR *ppszParameters);
  371.  
  372.   typedef enum ASSOCCLASS {
  373.     ASSOCCLASS_SHELL_KEY = 0,
  374.     ASSOCCLASS_PROGID_KEY,
  375.     ASSOCCLASS_PROGID_STR,
  376.     ASSOCCLASS_CLSID_KEY,
  377.     ASSOCCLASS_CLSID_STR,
  378.     ASSOCCLASS_APP_KEY,
  379.     ASSOCCLASS_APP_STR,
  380.     ASSOCCLASS_SYSTEM_STR,
  381.     ASSOCCLASS_FOLDER,
  382.     ASSOCCLASS_STAR,
  383. #if NTDDI_VERSION >= 0x06020000
  384.     ASSOCCLASS_FIXED_PROGID_STR,
  385.     ASSOCCLASS_PROTOCOL_STR,
  386. #endif
  387.   } ASSOCCLASS;
  388.  
  389.   typedef struct ASSOCIATIONELEMENT {
  390.     ASSOCCLASS ac;
  391.     HKEY hkClass;
  392.     PCWSTR pszClass;
  393.   } ASSOCIATIONELEMENT;
  394.  
  395.   SHSTDAPI AssocCreateForClasses (const ASSOCIATIONELEMENT *rgClasses, ULONG cClasses, REFIID riid, void **ppv);
  396. #endif
  397.  
  398.   typedef struct _SHQUERYRBINFO {
  399.     DWORD cbSize;
  400.     __MINGW_EXTENSION __int64 i64Size;
  401.     __MINGW_EXTENSION __int64 i64NumItems;
  402.   } SHQUERYRBINFO,*LPSHQUERYRBINFO;
  403.  
  404. #define SHERB_NOCONFIRMATION 0x00000001
  405. #define SHERB_NOPROGRESSUI 0x00000002
  406. #define SHERB_NOSOUND 0x00000004
  407.  
  408.   SHSTDAPI SHQueryRecycleBinA (LPCSTR pszRootPath, LPSHQUERYRBINFO pSHQueryRBInfo);
  409.   SHSTDAPI SHQueryRecycleBinW (LPCWSTR pszRootPath, LPSHQUERYRBINFO pSHQueryRBInfo);
  410.  
  411. #define SHQueryRecycleBin __MINGW_NAME_AW(SHQueryRecycleBin)
  412.  
  413.   SHSTDAPI SHEmptyRecycleBinA (HWND hwnd, LPCSTR pszRootPath, DWORD dwFlags);
  414.   SHSTDAPI SHEmptyRecycleBinW (HWND hwnd, LPCWSTR pszRootPath, DWORD dwFlags);
  415.  
  416. #define SHEmptyRecycleBin __MINGW_NAME_AW(SHEmptyRecycleBin)
  417.  
  418. #if NTDDI_VERSION >= 0x06000000
  419.   typedef enum {
  420.     QUNS_NOT_PRESENT = 1,
  421.     QUNS_BUSY = 2,
  422.     QUNS_RUNNING_D3D_FULL_SCREEN = 3,
  423.     QUNS_PRESENTATION_MODE = 4,
  424.     QUNS_ACCEPTS_NOTIFICATIONS = 5
  425. #if NTDDI_VERSION >= 0x06010000
  426.     , QUNS_QUIET_TIME = 6
  427. #endif
  428. #if NTDDI_VERSION >= 0x06020000
  429.     , QUNS_APP = 7
  430. #endif
  431.   } QUERY_USER_NOTIFICATION_STATE;
  432.  
  433.   SHSTDAPI SHQueryUserNotificationState (QUERY_USER_NOTIFICATION_STATE *pquns);
  434. #endif
  435.  
  436. #if NTDDI_VERSION >= 0x06010000
  437.   SHSTDAPI SHGetPropertyStoreForWindow (HWND hwnd, REFIID riid, void **ppv);
  438. #endif
  439.  
  440. #endif /* WINAPI_PARTITION_DESKTOP.  */
  441.  
  442.   typedef struct _NOTIFYICONDATAA {
  443.     DWORD cbSize;
  444.     HWND hWnd;
  445.     UINT uID;
  446.     UINT uFlags;
  447.     UINT uCallbackMessage;
  448.     HICON hIcon;
  449.     CHAR szTip[128];
  450.     DWORD dwState;
  451.     DWORD dwStateMask;
  452.     CHAR szInfo[256];
  453.     __C89_NAMELESS union {
  454.       UINT uTimeout;
  455.       UINT uVersion;
  456.     } DUMMYUNIONNAME;
  457.     CHAR szInfoTitle[64];
  458.     DWORD dwInfoFlags;
  459.     GUID guidItem;
  460. #if NTDDI_VERSION >= 0x06000000
  461.     HICON hBalloonIcon;
  462. #endif
  463.   } NOTIFYICONDATAA,*PNOTIFYICONDATAA;
  464.  
  465.   typedef struct _NOTIFYICONDATAW {
  466.     DWORD cbSize;
  467.     HWND hWnd;
  468.     UINT uID;
  469.     UINT uFlags;
  470.     UINT uCallbackMessage;
  471.     HICON hIcon;
  472.     WCHAR szTip[128];
  473.     DWORD dwState;
  474.     DWORD dwStateMask;
  475.     WCHAR szInfo[256];
  476.     __C89_NAMELESS union {
  477.       UINT uTimeout;
  478.       UINT uVersion;
  479.     } DUMMYUNIONNAME;
  480.     WCHAR szInfoTitle[64];
  481.     DWORD dwInfoFlags;
  482.     GUID guidItem;
  483. #if NTDDI_VERSION >= 0x06000000
  484.     HICON hBalloonIcon;
  485. #endif
  486.   } NOTIFYICONDATAW,*PNOTIFYICONDATAW;
  487.  
  488.   __MINGW_TYPEDEF_AW(NOTIFYICONDATA)
  489.   __MINGW_TYPEDEF_AW(PNOTIFYICONDATA)
  490.  
  491. #define NOTIFYICONDATAA_V1_SIZE FIELD_OFFSET (NOTIFYICONDATAA, szTip[64])
  492. #define NOTIFYICONDATAW_V1_SIZE FIELD_OFFSET (NOTIFYICONDATAW, szTip[64])
  493. #define NOTIFYICONDATAA_V2_SIZE FIELD_OFFSET (NOTIFYICONDATAA, guidItem)
  494. #define NOTIFYICONDATAW_V2_SIZE FIELD_OFFSET (NOTIFYICONDATAW, guidItem)
  495. #define NOTIFYICONDATAA_V3_SIZE FIELD_OFFSET (NOTIFYICONDATAA, hBalloonIcon)
  496. #define NOTIFYICONDATAW_V3_SIZE FIELD_OFFSET (NOTIFYICONDATAW, hBalloonIcon)
  497.  
  498. #define NOTIFYICONDATA_V1_SIZE __MINGW_NAME_AW_EXT(NOTIFYICONDATA,_V1_SIZE)
  499. #define NOTIFYICONDATA_V2_SIZE __MINGW_NAME_AW_EXT(NOTIFYICONDATA,_V2_SIZE)
  500. #define NOTIFYICONDATA_V3_SIZE __MINGW_NAME_AW_EXT(NOTIFYICONDATA,_V3_SIZE)
  501.  
  502. #define NIN_SELECT (WM_USER + 0)
  503. #define NINF_KEY 0x1
  504. #define NIN_KEYSELECT (NIN_SELECT | NINF_KEY)
  505.  
  506. #define NIN_BALLOONSHOW (WM_USER + 2)
  507. #define NIN_BALLOONHIDE (WM_USER + 3)
  508. #define NIN_BALLOONTIMEOUT (WM_USER + 4)
  509. #define NIN_BALLOONUSERCLICK (WM_USER + 5)
  510. #if NTDDI_VERSION >= 0x06000000
  511. #define NIN_POPUPOPEN (WM_USER + 6)
  512. #define NIN_POPUPCLOSE (WM_USER + 7)
  513. #endif
  514.  
  515. #define NIM_ADD 0x00000000
  516. #define NIM_MODIFY 0x00000001
  517. #define NIM_DELETE 0x00000002
  518. #define NIM_SETFOCUS 0x00000003
  519. #define NIM_SETVERSION 0x00000004
  520.  
  521. #define NOTIFYICON_VERSION 3
  522. #if NTDDI_VERSION >= 0x06000000
  523. #define NOTIFYICON_VERSION_4 4
  524. #endif
  525.  
  526. #define NIF_MESSAGE 0x00000001
  527. #define NIF_ICON 0x00000002
  528. #define NIF_TIP 0x00000004
  529. #define NIF_STATE 0x00000008
  530. #define NIF_INFO 0x00000010
  531. #if _WIN32_IE >= 0x600
  532. #define NIF_GUID 0x00000020
  533. #endif
  534. #if NTDDI_VERSION >= 0x06000000
  535. #define NIF_REALTIME 0x00000040
  536. #define NIF_SHOWTIP 0x00000080
  537. #endif
  538.  
  539. #define NIS_HIDDEN 0x00000001
  540. #define NIS_SHAREDICON 0x00000002
  541.  
  542. #define NIIF_NONE 0x00000000
  543. #define NIIF_INFO 0x00000001
  544. #define NIIF_WARNING 0x00000002
  545. #define NIIF_ERROR 0x00000003
  546. #define NIIF_USER 0x00000004
  547. #define NIIF_ICON_MASK 0x0000000f
  548. #define NIIF_NOSOUND 0x00000010
  549. #if NTDDI_VERSION >= 0x06000000
  550. #define NIIF_LARGE_ICON 0x00000020
  551. #endif
  552. #if NTDDI_VERSION >= 0x06010000
  553. #define NIIF_RESPECT_QUIET_TIME 0x00000080
  554. #endif
  555.  
  556.   typedef struct _NOTIFYICONIDENTIFIER {
  557.     DWORD cbSize;
  558.     HWND hWnd;
  559.     UINT uID;
  560.     GUID guidItem;
  561.   } NOTIFYICONIDENTIFIER,*PNOTIFYICONIDENTIFIER;
  562.  
  563.   SHSTDAPI_(WINBOOL) Shell_NotifyIconA (DWORD dwMessage, PNOTIFYICONDATAA lpData);
  564.   SHSTDAPI_(WINBOOL) Shell_NotifyIconW (DWORD dwMessage, PNOTIFYICONDATAW lpData);
  565.  
  566. #define Shell_NotifyIcon __MINGW_NAME_AW(Shell_NotifyIcon)
  567.  
  568. #if NTDDI_VERSION >= 0x06010000
  569.   SHSTDAPI Shell_NotifyIconGetRect (const NOTIFYICONIDENTIFIER *identifier, RECT *iconLocation);
  570. #endif
  571.  
  572. #ifndef SHFILEINFO_DEFINED
  573. #define SHFILEINFO_DEFINED
  574.  
  575.   typedef struct _SHFILEINFOA {
  576.     HICON hIcon;
  577.     int iIcon;
  578.     DWORD dwAttributes;
  579.     CHAR szDisplayName[MAX_PATH];
  580.     CHAR szTypeName[80];
  581.   } SHFILEINFOA;
  582.  
  583.   typedef struct _SHFILEINFOW {
  584.     HICON hIcon;
  585.     int iIcon;
  586.     DWORD dwAttributes;
  587.     WCHAR szDisplayName[MAX_PATH];
  588.     WCHAR szTypeName[80];
  589.   } SHFILEINFOW;
  590.  
  591.   __MINGW_TYPEDEF_AW(SHFILEINFO)
  592. #endif
  593.  
  594. #define SHGFI_ICON 0x000000100
  595. #define SHGFI_DISPLAYNAME 0x000000200
  596. #define SHGFI_TYPENAME 0x000000400
  597. #define SHGFI_ATTRIBUTES 0x000000800
  598. #define SHGFI_ICONLOCATION 0x000001000
  599. #define SHGFI_EXETYPE 0x000002000
  600. #define SHGFI_SYSICONINDEX 0x000004000
  601. #define SHGFI_LINKOVERLAY 0x000008000
  602. #define SHGFI_SELECTED 0x000010000
  603. #define SHGFI_ATTR_SPECIFIED 0x000020000
  604.  
  605. #define SHGFI_LARGEICON 0x000000000
  606. #define SHGFI_SMALLICON 0x000000001
  607. #define SHGFI_OPENICON 0x000000002
  608. #define SHGFI_SHELLICONSIZE 0x000000004
  609. #define SHGFI_PIDL 0x000000008
  610. #define SHGFI_USEFILEATTRIBUTES 0x000000010
  611.  
  612. #define SHGFI_ADDOVERLAYS 0x000000020
  613. #define SHGFI_OVERLAYINDEX 0x000000040
  614.  
  615.   SHSTDAPI_(DWORD_PTR) SHGetFileInfoA (LPCSTR pszPath, DWORD dwFileAttributes, SHFILEINFOA *psfi, UINT cbFileInfo, UINT uFlags);
  616.   SHSTDAPI_(DWORD_PTR) SHGetFileInfoW (LPCWSTR pszPath, DWORD dwFileAttributes, SHFILEINFOW *psfi, UINT cbFileInfo, UINT uFlags);
  617.  
  618. #define SHGetFileInfo __MINGW_NAME_AW(SHGetFileInfo)
  619.  
  620. #if NTDDI_VERSION >= 0x06000000
  621.   typedef struct _SHSTOCKICONINFO {
  622.     DWORD cbSize;
  623.     HICON hIcon;
  624.     int iSysImageIndex;
  625.     int iIcon;
  626.     WCHAR szPath[MAX_PATH];
  627.   } SHSTOCKICONINFO;
  628.  
  629. #define SHGSI_ICONLOCATION 0
  630. #define SHGSI_ICON SHGFI_ICON
  631. #define SHGSI_SYSICONINDEX SHGFI_SYSICONINDEX
  632. #define SHGSI_LINKOVERLAY SHGFI_LINKOVERLAY
  633. #define SHGSI_SELECTED SHGFI_SELECTED
  634. #define SHGSI_LARGEICON SHGFI_LARGEICON
  635. #define SHGSI_SMALLICON SHGFI_SMALLICON
  636. #define SHGSI_SHELLICONSIZE SHGFI_SHELLICONSIZE
  637.  
  638.   typedef enum SHSTOCKICONID {
  639.     SIID_DOCNOASSOC = 0,
  640.     SIID_DOCASSOC = 1,
  641.     SIID_APPLICATION = 2,
  642.     SIID_FOLDER = 3,
  643.     SIID_FOLDEROPEN = 4,
  644.     SIID_DRIVE525 = 5,
  645.     SIID_DRIVE35 = 6,
  646.     SIID_DRIVEREMOVE = 7,
  647.     SIID_DRIVEFIXED = 8,
  648.     SIID_DRIVENET = 9,
  649.     SIID_DRIVENETDISABLED = 10,
  650.     SIID_DRIVECD = 11,
  651.     SIID_DRIVERAM = 12,
  652.     SIID_WORLD = 13,
  653.     SIID_SERVER = 15,
  654.     SIID_PRINTER = 16,
  655.     SIID_MYNETWORK = 17,
  656.     SIID_FIND = 22,
  657.     SIID_HELP = 23,
  658.     SIID_SHARE = 28,
  659.     SIID_LINK = 29,
  660.     SIID_SLOWFILE = 30,
  661.     SIID_RECYCLER = 31,
  662.     SIID_RECYCLERFULL = 32,
  663.     SIID_MEDIACDAUDIO = 40,
  664.     SIID_LOCK = 47,
  665.     SIID_AUTOLIST = 49,
  666.     SIID_PRINTERNET = 50,
  667.     SIID_SERVERSHARE = 51,
  668.     SIID_PRINTERFAX = 52,
  669.     SIID_PRINTERFAXNET = 53,
  670.     SIID_PRINTERFILE = 54,
  671.     SIID_STACK = 55,
  672.     SIID_MEDIASVCD = 56,
  673.     SIID_STUFFEDFOLDER = 57,
  674.     SIID_DRIVEUNKNOWN = 58,
  675.     SIID_DRIVEDVD = 59,
  676.     SIID_MEDIADVD = 60,
  677.     SIID_MEDIADVDRAM = 61,
  678.     SIID_MEDIADVDRW = 62,
  679.     SIID_MEDIADVDR = 63,
  680.     SIID_MEDIADVDROM = 64,
  681.     SIID_MEDIACDAUDIOPLUS = 65,
  682.     SIID_MEDIACDRW = 66,
  683.     SIID_MEDIACDR = 67,
  684.     SIID_MEDIACDBURN = 68,
  685.     SIID_MEDIABLANKCD = 69,
  686.     SIID_MEDIACDROM = 70,
  687.     SIID_AUDIOFILES = 71,
  688.     SIID_IMAGEFILES = 72,
  689.     SIID_VIDEOFILES = 73,
  690.     SIID_MIXEDFILES = 74,
  691.     SIID_FOLDERBACK = 75,
  692.     SIID_FOLDERFRONT = 76,
  693.     SIID_SHIELD = 77,
  694.     SIID_WARNING = 78,
  695.     SIID_INFO = 79,
  696.     SIID_ERROR = 80,
  697.     SIID_KEY = 81,
  698.     SIID_SOFTWARE = 82,
  699.     SIID_RENAME = 83,
  700.     SIID_DELETE = 84,
  701.     SIID_MEDIAAUDIODVD = 85,
  702.     SIID_MEDIAMOVIEDVD = 86,
  703.     SIID_MEDIAENHANCEDCD = 87,
  704.     SIID_MEDIAENHANCEDDVD = 88,
  705.     SIID_MEDIAHDDVD = 89,
  706.     SIID_MEDIABLURAY = 90,
  707.     SIID_MEDIAVCD = 91,
  708.     SIID_MEDIADVDPLUSR = 92,
  709.     SIID_MEDIADVDPLUSRW = 93,
  710.     SIID_DESKTOPPC = 94,
  711.     SIID_MOBILEPC = 95,
  712.     SIID_USERS = 96,
  713.     SIID_MEDIASMARTMEDIA = 97,
  714.     SIID_MEDIACOMPACTFLASH = 98,
  715.     SIID_DEVICECELLPHONE = 99,
  716.     SIID_DEVICECAMERA = 100,
  717.     SIID_DEVICEVIDEOCAMERA = 101,
  718.     SIID_DEVICEAUDIOPLAYER = 102,
  719.     SIID_NETWORKCONNECT = 103,
  720.     SIID_INTERNET = 104,
  721.     SIID_ZIPFILE = 105,
  722.     SIID_SETTINGS = 106,
  723.  
  724.     SIID_DRIVEHDDVD = 132,
  725.     SIID_DRIVEBD = 133,
  726.     SIID_MEDIAHDDVDROM = 134,
  727.     SIID_MEDIAHDDVDR = 135,
  728.     SIID_MEDIAHDDVDRAM = 136,
  729.     SIID_MEDIABDROM = 137,
  730.     SIID_MEDIABDR = 138,
  731.     SIID_MEDIABDRE = 139,
  732.     SIID_CLUSTEREDDRIVE = 140,
  733.  
  734.     SIID_MAX_ICONS = 175
  735.   } SHSTOCKICONID;
  736.  
  737. #define SIID_INVALID ((SHSTOCKICONID)-1)
  738.  
  739.   SHSTDAPI SHGetStockIconInfo (SHSTOCKICONID siid, UINT uFlags, SHSTOCKICONINFO *psii);
  740. #endif
  741.  
  742. #define SHGetDiskFreeSpace SHGetDiskFreeSpaceEx
  743.  
  744.   SHSTDAPI_(WINBOOL) SHGetDiskFreeSpaceExA (LPCSTR pszDirectoryName, ULARGE_INTEGER *pulFreeBytesAvailableToCaller, ULARGE_INTEGER *pulTotalNumberOfBytes, ULARGE_INTEGER *pulTotalNumberOfFreeBytes);
  745.   SHSTDAPI_(WINBOOL) SHGetDiskFreeSpaceExW (LPCWSTR pszDirectoryName, ULARGE_INTEGER *pulFreeBytesAvailableToCaller, ULARGE_INTEGER *pulTotalNumberOfBytes, ULARGE_INTEGER *pulTotalNumberOfFreeBytes);
  746.   SHSTDAPI_(WINBOOL) SHGetNewLinkInfoA (LPCSTR pszLinkTo, LPCSTR pszDir, LPSTR pszName, WINBOOL *pfMustCopy, UINT uFlags);
  747.   SHSTDAPI_(WINBOOL) SHGetNewLinkInfoW (LPCWSTR pszLinkTo, LPCWSTR pszDir, LPWSTR pszName, WINBOOL *pfMustCopy, UINT uFlags);
  748.  
  749. #define SHGetDiskFreeSpaceEx __MINGW_NAME_AW(SHGetDiskFreeSpaceEx)
  750. #define SHGetNewLinkInfo __MINGW_NAME_AW(SHGetNewLinkInfo)
  751.  
  752. #define SHGNLI_PIDL 0x000000001
  753. #define SHGNLI_PREFIXNAME 0x000000002
  754. #define SHGNLI_NOUNIQUE 0x000000004
  755. #define SHGNLI_NOLNK 0x000000008
  756. #if _WIN32_IE >= 0x0600
  757. #define SHGNLI_NOLOCNAME 0x000000010
  758. #endif
  759. #if NTDDI_VERSION >= 0x06010000
  760. #define SHGNLI_USEURLEXT 0x000000020
  761. #endif
  762.  
  763. #define PRINTACTION_OPEN 0
  764. #define PRINTACTION_PROPERTIES 1
  765. #define PRINTACTION_NETINSTALL 2
  766. #define PRINTACTION_NETINSTALLLINK 3
  767. #define PRINTACTION_TESTPAGE 4
  768. #define PRINTACTION_OPENNETPRN 5
  769. #define PRINTACTION_DOCUMENTDEFAULTS 6
  770. #define PRINTACTION_SERVERPROPERTIES 7
  771.  
  772.   SHSTDAPI_(WINBOOL) SHInvokePrinterCommandA (HWND hwnd, UINT uAction, LPCSTR lpBuf1, LPCSTR lpBuf2, WINBOOL fModal);
  773.   SHSTDAPI_(WINBOOL) SHInvokePrinterCommandW (HWND hwnd, UINT uAction, LPCWSTR lpBuf1, LPCWSTR lpBuf2, WINBOOL fModal);
  774.  
  775. #define SHInvokePrinterCommand __MINGW_NAME_AW(SHInvokePrinterCommand)
  776.  
  777. #if NTDDI_VERSION >= 0x06000000
  778.   typedef struct _OPEN_PRINTER_PROPS_INFOA {
  779.     DWORD dwSize;
  780.     LPSTR pszSheetName;
  781.     UINT uSheetIndex;
  782.     DWORD dwFlags;
  783.     WINBOOL bModal;
  784.   } OPEN_PRINTER_PROPS_INFOA,*POPEN_PRINTER_PROPS_INFOA;
  785.  
  786.   typedef struct _OPEN_PRINTER_PROPS_INFOW {
  787.     DWORD dwSize;
  788.     LPWSTR pszSheetName;
  789.     UINT uSheetIndex;
  790.     DWORD dwFlags;
  791.     WINBOOL bModal;
  792.   } OPEN_PRINTER_PROPS_INFOW,*POPEN_PRINTER_PROPS_INFOW;
  793.  
  794.   __MINGW_TYPEDEF_AW(OPEN_PRINTER_PROPS_INFO)
  795.   __MINGW_TYPEDEF_AW(POPEN_PRINTER_PROPS_INFO)
  796. #define PRINT_PROP_FORCE_NAME 0x01
  797. #endif
  798.  
  799.   SHSTDAPI SHLoadNonloadedIconOverlayIdentifiers (void);
  800.   SHSTDAPI SHIsFileAvailableOffline (PCWSTR pwszPath, DWORD *pdwStatus);
  801.  
  802. #define OFFLINE_STATUS_LOCAL 0x0001
  803. #define OFFLINE_STATUS_REMOTE 0x0002
  804. #define OFFLINE_STATUS_INCOMPLETE 0x0004
  805.  
  806.   SHSTDAPI SHSetLocalizedName (PCWSTR pszPath, PCWSTR pszResModule, int idsRes);
  807.  
  808. #if NTDDI_VERSION >= 0x06000000
  809.   SHSTDAPI SHRemoveLocalizedName (PCWSTR pszPath);
  810.   SHSTDAPI SHGetLocalizedName (PCWSTR pszPath, PWSTR pszResModule, UINT cch, int *pidsRes);
  811. #endif
  812.  
  813. #ifndef _SHLWAPI_
  814. #define LWSTDAPIV_(type) EXTERN_C DECLSPEC_IMPORT type STDAPIVCALLTYPE
  815. #else
  816. #define LWSTDAPIV_(type) STDAPIV_ (type)
  817. #endif
  818.  
  819.   LWSTDAPIV_ (int) ShellMessageBoxA (HINSTANCE hAppInst, HWND hWnd, LPCSTR lpcText, LPCSTR lpcTitle, UINT fuStyle,...);
  820.   LWSTDAPIV_ (int) ShellMessageBoxW (HINSTANCE hAppInst, HWND hWnd, LPCWSTR lpcText, LPCWSTR lpcTitle, UINT fuStyle,...);
  821.  
  822. #define ShellMessageBox __MINGW_NAME_AW(ShellMessageBox)
  823.  
  824.   SHSTDAPI_(WINBOOL) IsLFNDriveA (LPCSTR pszPath);
  825.   SHSTDAPI_(WINBOOL) IsLFNDriveW (LPCWSTR pszPath);
  826.  
  827. #define IsLFNDrive __MINGW_NAME_AW(IsLFNDrive)
  828.  
  829. #if _WIN32_IE >= 0x0600
  830.   STDAPI SHEnumerateUnreadMailAccountsA (HKEY hKeyUser, DWORD dwIndex, LPSTR pszMailAddress, int cchMailAddress);
  831.   STDAPI SHEnumerateUnreadMailAccountsW (HKEY hKeyUser, DWORD dwIndex, LPWSTR pszMailAddress, int cchMailAddress);
  832.   STDAPI SHGetUnreadMailCountA (HKEY hKeyUser, LPCSTR pszMailAddress, DWORD *pdwCount, FILETIME *pFileTime, LPSTR pszShellExecuteCommand, int cchShellExecuteCommand);
  833.   STDAPI SHGetUnreadMailCountW (HKEY hKeyUser, LPCWSTR pszMailAddress, DWORD *pdwCount, FILETIME *pFileTime, LPWSTR pszShellExecuteCommand, int cchShellExecuteCommand);
  834.   STDAPI SHSetUnreadMailCountA (LPCSTR pszMailAddress, DWORD dwCount, LPCSTR pszShellExecuteCommand);
  835.   STDAPI SHSetUnreadMailCountW (LPCWSTR pszMailAddress, DWORD dwCount, LPCWSTR pszShellExecuteCommand);
  836.  
  837. #define SHEnumerateUnreadMailAccounts __MINGW_NAME_AW(SHEnumerateUnreadMailAccounts)
  838. #define SHGetUnreadMailCount __MINGW_NAME_AW(SHGetUnreadMailCount)
  839. #define SHSetUnreadMailCount __MINGW_NAME_AW(SHSetUnreadMailCount)
  840.  
  841. #endif
  842. #if _WIN32_IE >= 0x0601
  843.   STDAPI_ (WINBOOL) SHTestTokenMembership (HANDLE hToken, ULONG ulRID);
  844. #endif
  845.  
  846. #if _WIN32_IE >= 0x0600
  847.   SHSTDAPI SHGetImageList (int iImageList, REFIID riid, void **ppvObj);
  848.  
  849. #define SHIL_LARGE 0
  850. #define SHIL_SMALL 1
  851. #define SHIL_EXTRALARGE 2
  852. #define SHIL_SYSSMALL 3
  853. #if NTDDI_VERSION >= 0x06000000
  854. #define SHIL_JUMBO 4
  855. #define SHIL_LAST SHIL_JUMBO
  856. #else
  857. #define SHIL_LAST SHIL_SYSSMALL
  858. #endif
  859.  
  860.   typedef HRESULT (STDMETHODCALLTYPE *PFNCANSHAREFOLDERW) (PCWSTR pszPath);
  861.   typedef HRESULT (STDMETHODCALLTYPE *PFNSHOWSHAREFOLDERUIW) (HWND hwndParent, PCWSTR pszPath);
  862.  
  863. #endif
  864. #endif
  865.  
  866. #ifdef __cplusplus
  867. }
  868. #endif
  869.  
  870. #ifndef _WIN64
  871. #include <poppack.h>
  872. #endif
  873.  
  874. #if WINAPI_FAMILY_PARTITION (WINAPI_PARTITION_DESKTOP)
  875. #if NTDDI_VERSION >= 0x06000000
  876.  
  877. #define WC_NETADDRESS L"msctls_netaddress"
  878.  
  879. SHSTDAPI_(WINBOOL) InitNetworkAddressControl (void);
  880.  
  881. #define NCM_GETADDRESS (WM_USER+1)
  882. #define NetAddr_GetAddress(hwnd, pv) (HRESULT)SNDMSG (hwnd, NCM_GETADDRESS, 0,(LPARAM)pv)
  883.  
  884. typedef struct tagNC_ADDRESS {
  885.   struct NET_ADDRESS_INFO_ *pAddrInfo;
  886.   USHORT PortNumber;
  887.   BYTE PrefixLength;
  888. } NC_ADDRESS,*PNC_ADDRESS;
  889.  
  890. #define NCM_SETALLOWTYPE (WM_USER+2)
  891. #define NetAddr_SetAllowType(hwnd, addrMask) (HRESULT)SNDMSG (hwnd, NCM_SETALLOWTYPE,(WPARAM)addrMask, 0)
  892.  
  893. #define NCM_GETALLOWTYPE (WM_USER+3)
  894. #define NetAddr_GetAllowType(hwnd) (DWORD)SNDMSG (hwnd, NCM_GETALLOWTYPE, 0, 0)
  895.  
  896. #define NCM_DISPLAYERRORTIP (WM_USER+4)
  897. #define NetAddr_DisplayErrorTip(hwnd) (HRESULT)SNDMSG (hwnd, NCM_DISPLAYERRORTIP, 0, 0)
  898. #endif
  899.  
  900. #if NTDDI_VERSION >= 0x06000000
  901. STDAPI SHGetDriveMedia (PCWSTR pszDrive, DWORD *pdwMediaContent);
  902. #endif
  903. #endif
  904. #endif
  905.