blob: 6a904ba1d2fb9785e58a21f6fd1ce737975957ef [file] [log] [blame]
/*
* Copyright (C) 2012 Alistair Leslie-Hughes
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
*/
import "oaidl.idl";
import "ocidl.idl";
import "oledb.idl";
#if !defined(progid) && !defined(__WIDL__)
#define threading(model)
#define progid(str)
#define vi_progid(str)
#endif
typedef LONG_PTR COMPATIBLE_LONG;
[
uuid(2206CEB0-19C1-11D1-89E0-00C04FD7A829),
version(1.0)
]
library MSDASC
{
importlib("stdole2.tlb");
typedef DWORD DBPROMPTOPTIONS;
typedef enum tagDBPROMPTOPTIONSENUM
{
DBPROMPTOPTIONS_NONE = 0x00,
DBPROMPTOPTIONS_WIZARDSHEET = 0x01,
DBPROMPTOPTIONS_PROPERTYSHEET = 0x02,
DBPROMPTOPTIONS_BROWSEONLY = 0x08,
DBPROMPTOPTIONS_DISABLE_PROVIDER_SELECTION = 0x10,
DBPROMPTOPTIONS_DISABLESAVEPASSWORD = 0x20
} DBPROMPTOPTIONSENUM;
[
odl,
uuid(2206CCB2-19C1-11D1-89E0-00C04FD7A829),
helpstring("OLE DB Service Component Automation Interface"),
dual,
oleautomation
]
interface IDataSourceLocator : IDispatch
{
[id(0x60020000), propget]
HRESULT hWnd([out, retval] COMPATIBLE_LONG* phwndParent);
[id(0x60020000), propput]
HRESULT hWnd([in] COMPATIBLE_LONG hwndParent);
[id(0x60020002), helpstring("PromptNew")]
HRESULT PromptNew([out, retval] IDispatch** ppADOConnection);
[id(0x60020003), helpstring("PromptEdit")]
HRESULT PromptEdit([in, out] IDispatch** ppADOConnection, [out, retval] VARIANT_BOOL* pbSuccess);
}
[
odl,
uuid(2206CCB0-19C1-11D1-89E0-00C04FD7A829),
restricted
]
interface IDBPromptInitialize : IUnknown
{
HRESULT _stdcall PromptDataSource([in] IUnknown* pUnkOuter, [in] HWND hWndParent,
[in] DBPROMPTOPTIONS dwPromptOptions, [in] ULONG cSourceTypeFilter,
[in] DBSOURCETYPE* rgSourceTypeFilter, [in] LPWSTR pwszszzProviderFilter,
[in] GUID* riid, [in, out] IUnknown** ppDataSource);
HRESULT _stdcall PromptFileName([in] HWND hWndParent, [in] ULONG dwPromptOptions,
[in] LPWSTR pwszInitialDirectory, [in] LPWSTR pwszInitialFile, [out] LPWSTR* ppwszSelectedFile);
}
[
uuid(2206CCB1-19C1-11D1-89E0-00C04FD7A829),
]
interface IDataInitialize : IUnknown
{
HRESULT GetDataSource([in] IUnknown* pUnkOuter, [in] DWORD dwClsCtx,
[in] LPWSTR pwszInitializationString, [in] REFIID riid,
[in, out] IUnknown** ppDataSource);
HRESULT GetInitializationString([in] IUnknown* pDataSource, [in] boolean fIncludePassword,
[out] LPWSTR* ppwszInitString);
HRESULT CreateDBInstance([in] REFCLSID clsidProvider, [in] IUnknown* pUnkOuter,
[in] DWORD dwClsCtx, [in] LPWSTR pwszReserved,
[in] REFIID riid, [out] IUnknown** ppDataSource);
[local]
HRESULT CreateDBInstanceEx([in] REFCLSID clsidProvider, [in] IUnknown* pUnkOuter,
[in] DWORD dwClsCtx, [in] LPWSTR pwszReserved, [in] COSERVERINFO* pServerInfo,
[in] DWORD cmq, [in, out, size_is(cmq)] MULTI_QI *results);
[call_as(CreateDBInstanceEx)]
HRESULT RemoteCreateDBInstanceEx([in] REFCLSID clsidProvider, [in] IUnknown* pUnkOuter,
[in] DWORD dwClsCtx, [in] LPWSTR pwszReserved, [in] COSERVERINFO* pServerInfo,
[in] DWORD cmq, [in, size_is(cmq)] const IID **iids, [out, size_is(cmq)] IUnknown **ifs,
[out, size_is(cmq)] HRESULT *hr);
HRESULT LoadStringFromStorage([in] LPWSTR pwszFileName, [out] LPWSTR* ppwszInitializationString);
HRESULT WriteStringToStorage([in] LPWSTR pwszFileName, [in] LPWSTR pwszInitializationString,
[in] DWORD dwCreationDisposition);
}
[
uuid(2206CDB0-19C1-11D1-89E0-00C04FD7A829),
threading(both),
progid("MSDASC.MSDAINITIALIZE.1"),
vi_progid("MSDASC.MSDAINITIALIZE"),
]
coclass MSDAINITIALIZE
{
[default] interface IDataInitialize;
}
[
uuid(2206CDB2-19C1-11D1-89E0-00C04FD7A829),
threading(both),
progid("DataLinks")
]
coclass DataLinks
{
[default] interface IDataSourceLocator;
interface IDBPromptInitialize;
interface IDataInitialize;
}
}