2 * Copyright (C) 2012 Alistair Leslie-Hughes
4 * This library is free software; you can redistribute it and/or
5 * modify it under the terms of the GNU Lesser General Public
6 * License as published by the Free Software Foundation; either
7 * version 2.1 of the License, or (at your option) any later version.
9 * This library is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 * Lesser General Public License for more details.
14 * You should have received a copy of the GNU Lesser General Public
15 * License along with this library; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
23 #if
!defined
(progid
) && !defined
(__WIDL__
)
24 #define threading
(model
)
26 #define vi_progid
(str
)
29 typedef LONG_PTR COMPATIBLE_LONG
;
32 uuid(2206CEB0
-19C1
-11D1
-89E0
-00C04FD7A829
),
37 importlib
("stdole2.tlb");
39 typedef DWORD DBPROMPTOPTIONS
;
41 typedef enum tagDBPROMPTOPTIONSENUM
43 DBPROMPTOPTIONS_NONE
= 0x00,
44 DBPROMPTOPTIONS_WIZARDSHEET
= 0x01,
45 DBPROMPTOPTIONS_PROPERTYSHEET
= 0x02,
46 DBPROMPTOPTIONS_BROWSEONLY
= 0x08,
47 DBPROMPTOPTIONS_DISABLE_PROVIDER_SELECTION
= 0x10,
48 DBPROMPTOPTIONS_DISABLESAVEPASSWORD
= 0x20
49 } DBPROMPTOPTIONSENUM
;
53 uuid(2206CCB2
-19C1
-11D1
-89E0
-00C04FD7A829
),
54 helpstring("OLE DB Service Component Automation Interface"),
58 interface IDataSourceLocator
: IDispatch
60 [id(0x60020000), propget]
61 HRESULT hWnd
([out, retval] COMPATIBLE_LONG
* phwndParent
);
63 [id(0x60020000), propput]
64 HRESULT hWnd
([in] COMPATIBLE_LONG hwndParent
);
66 [id(0x60020002), helpstring("PromptNew")]
67 HRESULT PromptNew
([out, retval] IDispatch
** ppADOConnection
);
69 [id(0x60020003), helpstring("PromptEdit")]
70 HRESULT PromptEdit
([in, out] IDispatch
** ppADOConnection
, [out, retval] VARIANT_BOOL* pbSuccess
);
75 uuid(2206CCB0
-19C1
-11D1
-89E0
-00C04FD7A829
),
78 interface IDBPromptInitialize
: IUnknown
80 HRESULT _stdcall PromptDataSource
([in] IUnknown
* pUnkOuter
, [in] HWND hWndParent
,
81 [in] DBPROMPTOPTIONS dwPromptOptions
, [in] ULONG cSourceTypeFilter
,
82 [in] DBSOURCETYPE
* rgSourceTypeFilter
, [in] LPWSTR pwszszzProviderFilter
,
83 [in] GUID
* riid
, [in, out] IUnknown
** ppDataSource
);
85 HRESULT _stdcall PromptFileName
([in] HWND hWndParent
, [in] ULONG dwPromptOptions
,
86 [in] LPWSTR pwszInitialDirectory
, [in] LPWSTR pwszInitialFile
, [out] LPWSTR
* ppwszSelectedFile
);
90 uuid(2206CCB1
-19C1
-11D1
-89E0
-00C04FD7A829
),
92 interface IDataInitialize
: IUnknown
94 HRESULT GetDataSource
([in] IUnknown
* pUnkOuter
, [in] DWORD dwClsCtx
,
95 [in] LPCOLESTR pwszInitializationString
, [in] REFIID riid
,
96 [in, out] IUnknown
** ppDataSource
);
98 HRESULT GetInitializationString
([in] IUnknown
* pDataSource
, [in] boolean fIncludePassword
,
99 [out] LPWSTR
* ppwszInitString
);
101 HRESULT CreateDBInstance
([in] REFCLSID clsidProvider
, [in] IUnknown
* pUnkOuter
,
102 [in] DWORD dwClsCtx
, [in] LPWSTR pwszReserved
,
103 [in] REFIID riid
, [out] IUnknown
** ppDataSource
);
106 HRESULT CreateDBInstanceEx
([in] REFCLSID clsidProvider
, [in] IUnknown
* pUnkOuter
,
107 [in] DWORD dwClsCtx
, [in] LPWSTR pwszReserved
, [in] COSERVERINFO
* pServerInfo
,
108 [in] DWORD cmq
, [in, out, size_is(cmq
)] MULTI_QI
*results
);
110 [call_as
(CreateDBInstanceEx
)]
111 HRESULT RemoteCreateDBInstanceEx
([in] REFCLSID clsidProvider
, [in] IUnknown
* pUnkOuter
,
112 [in] DWORD dwClsCtx
, [in] LPWSTR pwszReserved
, [in] COSERVERINFO
* pServerInfo
,
113 [in] DWORD cmq
, [in, size_is(cmq
)] const IID
**iids
, [out, size_is(cmq
)] IUnknown
**ifs
,
114 [out, size_is(cmq
)] HRESULT *hr
);
116 HRESULT LoadStringFromStorage
([in] LPCOLESTR pwszFileName
, [out] LPOLESTR
*ppwszInitializationString
);
118 HRESULT WriteStringToStorage
([in] LPCOLESTR pwszFileName
, [in] LPCOLESTR pwszInitializationString
,
119 [in] DWORD dwCreationDisposition
);
123 uuid(2206CDB0
-19C1
-11D1
-89E0
-00C04FD7A829
),
125 progid
("MSDASC.MSDAINITIALIZE.1"),
126 vi_progid
("MSDASC.MSDAINITIALIZE"),
128 coclass MSDAINITIALIZE
130 [default] interface IDataInitialize
;
134 uuid(2206CDB2
-19C1
-11D1
-89E0
-00C04FD7A829
),
140 [default] interface IDataSourceLocator
;
141 interface IDBPromptInitialize
;
142 interface IDataInitialize
;