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