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 core.sys.windows.intshcut;
version(Windows)11 version (Windows):
12 @system:
13
14 version (ANSI) {} else version = Unicode;
15
16 import core.sys.windows.unknwn, core.sys.windows.windef;
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 URLINVOKECOMMANDINFO CURLINVOKECOMMANDINFO;
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 typeof(*(IUniformResourceLocator.init)) CIUniformResourceLocator; // value-type of interface not representable in D
71 alias IUniformResourceLocator PIUniformResourceLocator,
72 PCIUniformResourceLocator;
73
74 extern (Windows) {
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
version(Unicode)84 version (Unicode) {
85 alias TranslateURLW TranslateURL;
86 alias MIMEAssociationDialogW MIMEAssociationDialog;
87 alias URLAssociationDialogW URLAssociationDialog;
88 } else {
89 alias TranslateURLA TranslateURL;
90 alias MIMEAssociationDialogA MIMEAssociationDialog;
91 alias URLAssociationDialogA URLAssociationDialog;
92 }
93