master
  1/**
  2 * This file has no copyright assigned and is placed in the Public Domain.
  3 * This file is part of the mingw-w64 runtime package.
  4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
  5 */
  6#ifndef __INTSHCUT_H__
  7#define __INTSHCUT_H__
  8
  9#include <_mingw_unicode.h>
 10#include <isguids.h>
 11
 12#ifdef __cplusplus
 13extern "C" {
 14#endif
 15
 16#ifdef _INTSHCUT_
 17#define INTSHCUTAPI
 18#else
 19#define INTSHCUTAPI DECLSPEC_IMPORT
 20#endif
 21
 22#define E_FLAGS MAKE_SCODE(SEVERITY_ERROR,FACILITY_ITF,0x1000)
 23#define IS_E_EXEC_FAILED MAKE_SCODE(SEVERITY_ERROR,FACILITY_ITF,0x2002)
 24#define URL_E_INVALID_SYNTAX MAKE_SCODE(SEVERITY_ERROR,FACILITY_ITF,0x1001)
 25#define URL_E_UNREGISTERED_PROTOCOL MAKE_SCODE(SEVERITY_ERROR,FACILITY_ITF,0x1002)
 26
 27  typedef enum iurl_seturl_flags {
 28    IURL_SETURL_FL_GUESS_PROTOCOL = 0x0001,IURL_SETURL_FL_USE_DEFAULT_PROTOCOL = 0x0002
 29  } IURL_SETURL_FLAGS;
 30
 31  typedef enum iurl_invokecommand_flags {
 32    IURL_INVOKECOMMAND_FL_ALLOW_UI = 0x0001,IURL_INVOKECOMMAND_FL_USE_DEFAULT_VERB = 0x0002,IURL_INVOKECOMMAND_FL_DDEWAIT = 0x0004
 33  } IURL_INVOKECOMMAND_FLAGS;
 34
 35  typedef struct urlinvokecommandinfoA {
 36    DWORD dwcbSize;
 37    DWORD dwFlags;
 38    HWND hwndParent;
 39    LPCSTR pcszVerb;
 40  } URLINVOKECOMMANDINFOA;
 41
 42  typedef URLINVOKECOMMANDINFOA *PURLINVOKECOMMANDINFOA;
 43  typedef const URLINVOKECOMMANDINFOA CURLINVOKECOMMANDINFOA;
 44  typedef const URLINVOKECOMMANDINFOA *PCURLINVOKECOMMANDINFOA;
 45
 46  typedef struct urlinvokecommandinfoW {
 47    DWORD dwcbSize;
 48    DWORD dwFlags;
 49    HWND hwndParent;
 50    LPCWSTR pcszVerb;
 51  } URLINVOKECOMMANDINFOW;
 52
 53  typedef URLINVOKECOMMANDINFOW *PURLINVOKECOMMANDINFOW;
 54  typedef const URLINVOKECOMMANDINFOW CURLINVOKECOMMANDINFOW;
 55  typedef const URLINVOKECOMMANDINFOW *PCURLINVOKECOMMANDINFOW;
 56
 57#define URLINVOKECOMMANDINFO __MINGW_NAME_AW(URLINVOKECOMMANDINFO)
 58#define PURLINVOKECOMMANDINFO __MINGW_NAME_AW(PURLINVOKECOMMANDINFO)
 59#define CURLINVOKECOMMANDINFO __MINGW_NAME_AW(CURLINVOKECOMMANDINFO)
 60#define PCURLINVOKECOMMANDINFO __MINGW_NAME_AW(PCURLINVOKECOMMANDINFO)
 61
 62#undef INTERFACE
 63#define INTERFACE IUniformResourceLocatorA
 64
 65  DECLARE_INTERFACE_(IUniformResourceLocatorA,IUnknown) {
 66    STDMETHOD(QueryInterface)(THIS_ REFIID riid,PVOID *ppvObject) PURE;
 67    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
 68    STDMETHOD_(ULONG,Release)(THIS) PURE;
 69    STDMETHOD(SetURL)(THIS_ LPCSTR pcszURL,DWORD dwInFlags) PURE;
 70    STDMETHOD(GetURL)(THIS_ LPSTR *ppszURL) PURE;
 71    STDMETHOD(InvokeCommand)(THIS_ PURLINVOKECOMMANDINFOA purlici) PURE;
 72  };
 73
 74#undef INTERFACE
 75#define INTERFACE IUniformResourceLocatorW
 76  DECLARE_INTERFACE_(IUniformResourceLocatorW,IUnknown) {
 77    STDMETHOD(QueryInterface)(THIS_ REFIID riid,PVOID *ppvObject) PURE;
 78    STDMETHOD_(ULONG,AddRef)(THIS) PURE;
 79    STDMETHOD_(ULONG,Release)(THIS) PURE;
 80    STDMETHOD(SetURL)(THIS_ LPCWSTR pcszURL,DWORD dwInFlags) PURE;
 81    STDMETHOD(GetURL)(THIS_ LPWSTR *ppszURL) PURE;
 82    STDMETHOD(InvokeCommand)(THIS_ PURLINVOKECOMMANDINFOW purlici) PURE;
 83  };
 84
 85#define IUniformResourceLocator __MINGW_NAME_AW(IUniformResourceLocator)
 86
 87#define IUniformResourceLocatorVtbl __MINGW_NAME_AW_EXT(IUniformResourceLocator,Vtbl)
 88
 89  typedef IUniformResourceLocator *PIUniformResourceLocator;
 90  typedef const IUniformResourceLocator CIUniformResourceLocator;
 91  typedef const IUniformResourceLocator *PCIUniformResourceLocator;
 92
 93  typedef enum translateurl_in_flags {
 94    TRANSLATEURL_FL_GUESS_PROTOCOL = 0x0001,TRANSLATEURL_FL_USE_DEFAULT_PROTOCOL = 0x0002
 95  } TRANSLATEURL_IN_FLAGS;
 96
 97  INTSHCUTAPI HRESULT WINAPI TranslateURLA(PCSTR pcszURL,DWORD dwInFlags,PSTR *ppszTranslatedURL);
 98  INTSHCUTAPI HRESULT WINAPI TranslateURLW(PCWSTR pcszURL,DWORD dwInFlags,PWSTR UNALIGNED *ppszTranslatedURL);
 99
100#define TranslateURL __MINGW_NAME_AW(TranslateURL)
101
102  typedef enum urlassociationdialog_in_flags {
103    URLASSOCDLG_FL_USE_DEFAULT_NAME = 0x0001,URLASSOCDLG_FL_REGISTER_ASSOC = 0x0002
104  } URLASSOCIATIONDIALOG_IN_FLAGS;
105
106  INTSHCUTAPI HRESULT WINAPI URLAssociationDialogA(HWND hwndParent,DWORD dwInFlags,PCSTR pcszFile,PCSTR pcszURL,PSTR pszAppBuf,UINT ucAppBufLen);
107  INTSHCUTAPI HRESULT WINAPI URLAssociationDialogW(HWND hwndParent,DWORD dwInFlags,PCWSTR pcszFile,PCWSTR pcszURL,PWSTR pszAppBuf,UINT ucAppBufLen);
108
109#define URLAssociationDialog __MINGW_NAME_AW(URLAssociationDialog)
110
111  typedef enum mimeassociationdialog_in_flags {
112    MIMEASSOCDLG_FL_REGISTER_ASSOC = 0x0001
113  } MIMEASSOCIATIONDIALOG_IN_FLAGS;
114
115  INTSHCUTAPI HRESULT WINAPI MIMEAssociationDialogA(HWND hwndParent,DWORD dwInFlags,PCSTR pcszFile,PCSTR pcszMIMEContentType,PSTR pszAppBuf,UINT ucAppBufLen);
116  INTSHCUTAPI HRESULT WINAPI MIMEAssociationDialogW(HWND hwndParent,DWORD dwInFlags,PCWSTR pcszFile,PCWSTR pcszMIMEContentType,PWSTR pszAppBuf,UINT ucAppBufLen);
117
118#define MIMEAssociationDialog __MINGW_NAME_AW(MIMEAssociationDialog)
119
120  INTSHCUTAPI WINBOOL WINAPI InetIsOffline(DWORD dwFlags);
121
122#ifdef __cplusplus
123}
124#endif
125#endif