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
)
30 uuid(2206CEB0
-19C1
-11D1
-89E0
-00C04FD7A829
),
35 importlib
("stdole2.tlb");
37 typedef DWORD DBPROMPTOPTIONS
;
39 typedef enum tagDBPROMPTOPTIONSENUM
41 DBPROMPTOPTIONS_NONE
= 0x00,
42 DBPROMPTOPTIONS_WIZARDSHEET
= 0x01,
43 DBPROMPTOPTIONS_PROPERTYSHEET
= 0x02,
44 DBPROMPTOPTIONS_BROWSEONLY
= 0x08,
45 DBPROMPTOPTIONS_DISABLE_PROVIDER_SELECTION
= 0x10,
46 DBPROMPTOPTIONS_DISABLESAVEPASSWORD
= 0x20
47 } DBPROMPTOPTIONSENUM
;
51 uuid(2206CCB2
-19C1
-11D1
-89E0
-00C04FD7A829
),
52 helpstring("OLE DB Service Component Automation Interface"),
56 interface IDataSourceLocator
: IDispatch
58 [id(0x60020000), propget]
59 HRESULT hWnd
([out, retval] long* phwndParent
);
61 [id(0x60020000), propput]
62 HRESULT hWnd
([in] long phwndParent
);
64 [id(0x60020002), helpstring("PromptNew")]
65 HRESULT PromptNew
([out, retval] IDispatch
** ppADOConnection
);
67 [id(0x60020003), helpstring("PromptEdit")]
68 HRESULT PromptEdit
([in, out] IDispatch
** ppADOConnection
, [out, retval] VARIANT_BOOL* pbSuccess
);
73 uuid(2206CCB0
-19C1
-11D1
-89E0
-00C04FD7A829
),
76 interface IDBPromptInitialize
: IUnknown
78 HRESULT _stdcall PromptDataSource
([in] IUnknown
* pUnkOuter
, [in] HWND hWndParent
,
79 [in] DBPROMPTOPTIONS dwPromptOptions
, [in] ULONG cSourceTypeFilter
,
80 [in] DBSOURCETYPE
* rgSourceTypeFilter
, [in] LPWSTR pwszszzProviderFilter
,
81 [in] GUID
* riid
, [in, out] IUnknown
** ppDataSource
);
83 HRESULT _stdcall PromptFileName
([in] HWND hWndParent
, [in] ULONG dwPromptOptions
,
84 [in] LPWSTR pwszInitialDirectory
, [in] LPWSTR pwszInitialFile
, [out] LPWSTR
* ppwszSelectedFile
);
88 uuid(2206CCB1
-19C1
-11D1
-89E0
-00C04FD7A829
),
90 interface IDataInitialize
: IUnknown
92 HRESULT GetDataSource
([in] IUnknown
* pUnkOuter
, [in] DWORD dwClsCtx
,
93 [in] LPWSTR pwszInitializationString
, [in] REFIID riid
,
94 [in, out] IUnknown
** ppDataSource
);
96 HRESULT GetInitializationString
([in] IUnknown
* pDataSource
, [in] boolean fIncludePassword
,
97 [out] LPWSTR
* ppwszInitString
);
99 HRESULT CreateDBInstance
([in] REFCLSID clsidProvider
, [in] IUnknown
* pUnkOuter
,
100 [in] DWORD dwClsCtx
, [in] LPWSTR pwszReserved
,
101 [in] REFIID riid
, [out] IUnknown
** ppDataSource
);
103 HRESULT RemoteCreateDBInstanceEx
([in] REFCLSID clsidProvider
, [in] IUnknown
* pUnkOuter
,
104 [in] DWORD dwClsCtx
, [in] LPWSTR pwszReserved
, [in] COSERVERINFO
* pServerInfo
,
105 [in] DWORD cmq
, [in] GUID
** rgpIID
, [out] IUnknown
** rgpItf
,
106 [out] HRESULT* rghr
);
108 HRESULT LoadStringFromStorage
([in] LPWSTR pwszFileName
, [out] LPWSTR
* ppwszInitializationString
);
110 HRESULT WriteStringToStorage
([in] LPWSTR pwszFileName
, [in] LPWSTR pwszInitializationString
,
111 [in] DWORD dwCreationDisposition
);
115 uuid(2206CDB0
-19C1
-11D1
-89E0
-00C04FD7A829
),
117 progid
("MSDASC.MSDAINITIALIZE.1"),
118 vi_progid
("MSDASC.MSDAINITIALIZE"),
120 coclass MSDAINITIALIZE
122 [default] interface IDataInitialize
;
126 uuid(2206CDB2
-19C1
-11D1
-89E0
-00C04FD7A829
),
132 [default] interface IDataSourceLocator
;
133 interface IDBPromptInitialize
;
134 interface IDataInitialize
;