1 /***********************************************************************\ 2 * intshcut.d * 3 * * 4 * Windows API header module * 5 * * 6 * Translated from MinGW Windows headers * 7 * by Stewart Gordon * 8 * * 9 * Placed into public domain * 10 \***********************************************************************/ 11 module win32.intshcut; 12 version(Windows): 13 14 private import win32.unknwn, win32.windef; 15 16 enum : SCODE { 17 E_FLAGS = 0x80041000, 18 // = MAKE_SCODE(SEVERITY_ERROR, FACILITY_ITF, 0x1000) 19 URL_E_INVALID_SYNTAX = 0x80041001, 20 // = MAKE_SCODE(SEVERITY_ERROR, FACILITY_ITF, 0x1001) 21 URL_E_UNREGISTERED_PROTOCOL = 0x80041002, // etc. 22 IS_E_EXEC_FAILED = 0x80042002 23 } 24 25 enum IURL_SETURL_FLAGS { 26 IURL_SETURL_FL_GUESS_PROTOCOL = 1, 27 IURL_SETURL_FL_USE_DEFAULT_PROTOCOL, 28 ALL_IURL_SETURL_FLAGS 29 } 30 31 enum IURL_INVOKECOMMAND_FLAGS { 32 IURL_INVOKECOMMAND_FL_ALLOW_UI = 1, 33 IURL_INVOKECOMMAND_FL_USE_DEFAULT_VERB, 34 ALL_IURL_INVOKECOMMAND_FLAGS 35 } 36 37 enum TRANSLATEURL_IN_FLAGS { 38 TRANSLATEURL_FL_GUESS_PROTOCOL = 1, 39 TRANSLATEURL_FL_USE_DEFAULT_PROTOCOL, 40 ALL_TRANSLATEURL_FLAGS 41 } 42 43 enum URLASSOCIATIONDIALOG_IN_FLAGS { 44 URLASSOCDLG_FL_USE_DEFAULT_NAME = 1, 45 URLASSOCDLG_FL_REGISTER_ASSOC, 46 ALL_URLASSOCDLG_FLAGS 47 } 48 49 enum MIMEASSOCIATIONDIALOG_IN_FLAGS { 50 MIMEASSOCDLG_FL_REGISTER_ASSOC = 1, 51 ALL_MIMEASSOCDLG_FLAGS = MIMEASSOCDLG_FL_REGISTER_ASSOC 52 } 53 54 struct URLINVOKECOMMANDINFO { 55 DWORD dwcbSize = URLINVOKECOMMANDINFO.sizeof; 56 DWORD dwFlags; 57 HWND hwndParent; 58 PCSTR pcszVerb; 59 } 60 alias URLINVOKECOMMANDINFO CURLINVOKECOMMANDINFO; 61 alias URLINVOKECOMMANDINFO* PURLINVOKECOMMANDINFO, PCURLINVOKECOMMANDINFO; 62 63 interface IUniformResourceLocator : IUnknown { 64 HRESULT SetURL(PCSTR, DWORD); 65 HRESULT GetURL(PSTR*); 66 HRESULT InvokeCommand(PURLINVOKECOMMANDINFO); 67 } 68 //alias typeof(*(IUniformResourceLocator.init)) CIUniformResourceLocator; // value-type of interface not representable in D 69 alias IUniformResourceLocator PIUniformResourceLocator, 70 PCIUniformResourceLocator; 71 72 extern (Windows) { 73 BOOL InetIsOffline(DWORD); 74 HRESULT MIMEAssociationDialogA(HWND, DWORD, PCSTR, PCSTR, PSTR, UINT); 75 HRESULT MIMEAssociationDialogW(HWND, DWORD, PCWSTR, PCWSTR, PWSTR, UINT); 76 HRESULT TranslateURLA(PCSTR, DWORD, PSTR*); 77 HRESULT TranslateURLW(PCWSTR, DWORD, PWSTR*); 78 HRESULT URLAssociationDialogA(HWND, DWORD, PCSTR, PCSTR, PSTR, UINT); 79 HRESULT URLAssociationDialogW(HWND, DWORD, PCWSTR, PCWSTR, PWSTR, UINT); 80 } 81 82 version (Unicode) { 83 alias TranslateURLW TranslateURL; 84 alias MIMEAssociationDialogW MIMEAssociationDialog; 85 alias URLAssociationDialogW URLAssociationDialog; 86 } else { 87 alias TranslateURLA TranslateURL; 88 alias MIMEAssociationDialogA MIMEAssociationDialog; 89 alias URLAssociationDialogA URLAssociationDialog; 90 }