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