3 * Copyright 2012, 2013 MinGW.org project
5 * Permission is hereby granted, free of charge, to any person obtaining a
6 * copy of this software and associated documentation files (the "Software"),
7 * to deal in the Software without restriction, including without limitation
8 * the rights to use, copy, modify, merge, publish, distribute, sublicense,
9 * and/or sell copies of the Software, and to permit persons to whom the
10 * Software is furnished to do so, subject to the following conditions:
12 * The above copyright notice and this permission notice (including the next
13 * paragraph) shall be included in all copies or substantial portions of the
16 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
21 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
22 * DEALINGS IN THE SOFTWARE.
26 #pragma GCC system_header
35 #define INTSHCUTAPI DECLSPEC_IMPORT
36 #define E_FLAGS MAKE_SCODE(SEVERITY_ERROR,FACILITY_ITF,0x1000)
37 #define IS_E_EXEC_FAILED MAKE_SCODE(SEVERITY_ERROR,FACILITY_ITF,0x2002)
38 #define URL_E_INVALID_SYNTAX MAKE_SCODE(SEVERITY_ERROR,FACILITY_ITF,0x1001)
39 #define URL_E_UNREGISTERED_PROTOCOL MAKE_SCODE(SEVERITY_ERROR,FACILITY_ITF,0x1002)
40 typedef enum iurl_seturl_flags {
41 IURL_SETURL_FL_GUESS_PROTOCOL=1,
42 IURL_SETURL_FL_USE_DEFAULT_PROTOCOL,
43 ALL_IURL_SETURL_FLAGS=(IURL_SETURL_FL_GUESS_PROTOCOL|IURL_SETURL_FL_USE_DEFAULT_PROTOCOL)
45 typedef enum iurl_invokecommand_flags {
46 IURL_INVOKECOMMAND_FL_ALLOW_UI=1,
47 IURL_INVOKECOMMAND_FL_USE_DEFAULT_VERB,
48 ALL_IURL_INVOKECOMMAND_FLAGS=(IURL_INVOKECOMMAND_FL_ALLOW_UI|IURL_INVOKECOMMAND_FL_USE_DEFAULT_VERB)
49 } IURL_INVOKECOMMAND_FLAGS;
50 typedef enum translateurl_in_flags {
51 TRANSLATEURL_FL_GUESS_PROTOCOL=1,
52 TRANSLATEURL_FL_USE_DEFAULT_PROTOCOL,
53 ALL_TRANSLATEURL_FLAGS=(TRANSLATEURL_FL_GUESS_PROTOCOL|TRANSLATEURL_FL_USE_DEFAULT_PROTOCOL)
54 } TRANSLATEURL_IN_FLAGS;
55 typedef enum urlassociationdialog_in_flags {
56 URLASSOCDLG_FL_USE_DEFAULT_NAME=1,
57 URLASSOCDLG_FL_REGISTER_ASSOC,
58 ALL_URLASSOCDLG_FLAGS=(URLASSOCDLG_FL_USE_DEFAULT_NAME|URLASSOCDLG_FL_REGISTER_ASSOC)
59 } URLASSOCIATIONDIALOG_IN_FLAGS;
60 typedef enum mimeassociationdialog_in_flags {
61 MIMEASSOCDLG_FL_REGISTER_ASSOC=1,
62 ALL_MIMEASSOCDLG_FLAGS=MIMEASSOCDLG_FL_REGISTER_ASSOC
63 } MIMEASSOCIATIONDIALOG_IN_FLAGS;
64 typedef struct urlinvokecommandinfo {
69 } URLINVOKECOMMANDINFO,*PURLINVOKECOMMANDINFO;
70 typedef const URLINVOKECOMMANDINFO CURLINVOKECOMMANDINFO;
71 typedef const URLINVOKECOMMANDINFO *PCURLINVOKECOMMANDINFO;
72 #define INTERFACE IUniformResourceLocator
73 DECLARE_INTERFACE_(IUniformResourceLocator,IUnknown)
75 STDMETHOD(QueryInterface)(THIS_ REFIID,PVOID*) PURE;
76 STDMETHOD_(ULONG,AddRef)(THIS) PURE;
77 STDMETHOD_(ULONG,Release)(THIS) PURE;
78 STDMETHOD(SetURL)(THIS_ PCSTR,DWORD) PURE;
79 STDMETHOD(GetURL)(THIS_ PSTR*) PURE;
80 STDMETHOD(InvokeCommand)(THIS_ PURLINVOKECOMMANDINFO) PURE;
83 typedef IUniformResourceLocator *PIUniformResourceLocator;
84 typedef const IUniformResourceLocator CIUniformResourceLocator;
85 typedef const IUniformResourceLocator *PCIUniformResourceLocator;
87 BOOL WINAPI InetIsOffline(DWORD);
88 HRESULT WINAPI MIMEAssociationDialogA(HWND,DWORD,PCSTR,PCSTR,PSTR,UINT);
89 HRESULT WINAPI MIMEAssociationDialogW(HWND,DWORD,PCWSTR,PCWSTR,PWSTR,UINT);
90 HRESULT WINAPI TranslateURLA(PCSTR,DWORD,PSTR*);
91 HRESULT WINAPI TranslateURLW(PCWSTR,DWORD,PWSTR*);
92 HRESULT WINAPI URLAssociationDialogA(HWND,DWORD,PCSTR,PCSTR,PSTR,UINT);
93 HRESULT WINAPI URLAssociationDialogW(HWND,DWORD,PCWSTR,PCWSTR,PWSTR,UINT);
94 #define TranslateURL __AW(TranslateURL)
95 #define MIMEAssociationDialog __AW(MIMEAssociationDialog)
96 #define URLAssociationDialog __AW(URLAssociationDialog)