xref: /netbsd-src/external/gpl3/gcc/dist/libphobos/libdruntime/core/sys/windows/intshcut.d (revision 0a3071956a3a9fdebdbf7f338cf2d439b45fc728)
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