1 /* OLEDB Database tests
3 * Copyright 2012 Alistair Leslie-Hughes
5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Lesser General Public
7 * License as published by the Free Software Foundation; either
8 * version 2.1 of the License, or (at your option) any later version.
10 * This library is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 * Lesser General Public License for more details.
15 * You should have received a copy of the GNU Lesser General Public
16 * License along with this library; if not, write to the Free Software
17 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
22 #define NONAMELESSUNION
23 #define NONAMELESSSTRUCT
32 #include "wine/test.h"
34 static void test_GetDataSource(WCHAR
*initstring
)
36 IDataInitialize
*datainit
= NULL
;
37 IDBInitialize
*dbinit
= NULL
;
40 trace("Data Source: %s\n", wine_dbgstr_w(initstring
));
42 hr
= CoCreateInstance(&CLSID_MSDAINITIALIZE
, NULL
, CLSCTX_INPROC_SERVER
, &IID_IDataInitialize
,(void**)&datainit
);
43 ok(hr
== S_OK
, "got %08x\n", hr
);
45 /* a failure to create data source here may indicate provider is simply not present */
46 hr
= IDataInitialize_GetDataSource(datainit
, NULL
, CLSCTX_INPROC_SERVER
, initstring
, &IID_IDBInitialize
, (IUnknown
**)&dbinit
);
49 IDBProperties
*props
= NULL
;
52 hr
= SHGetMalloc(&ppM
);
55 ok(0, "Couldn't get IMalloc object.\n");
59 hr
= IDBInitialize_QueryInterface(dbinit
, &IID_IDBProperties
, (void**)&props
);
60 ok(hr
== S_OK
, "got %08x\n", hr
);
64 DBPROPINFOSET
*pInfoset
;
67 hr
= IDBProperties_GetPropertyInfo(props
, 0, NULL
, &cnt
, &pInfoset
, &ary
);
68 todo_wine
ok(hr
== S_OK
, "got %08x\n", hr
);
72 for(i
=0; i
< pInfoset
->cPropertyInfos
; i
++)
74 trace("(0x%04x) '%s' %d\n", pInfoset
->rgPropertyInfos
[i
].dwPropertyID
, wine_dbgstr_w(pInfoset
->rgPropertyInfos
[i
].pwszDescription
),
75 pInfoset
->rgPropertyInfos
[i
].vtType
);
78 IMalloc_Free(ppM
, ary
);
81 IDBProperties_Release(props
);
87 IDBInitialize_Release(dbinit
);
90 IDataInitialize_Release(datainit
);
93 static void test_database(void)
95 static WCHAR initstring_jet
[] = {'P','r','o','v','i','d','e','r','=','M','i','c','r','o','s','o','f','t','.',
96 'J','e','t','.','O','L','E','D','B','.','4','.','0',';',
97 'D','a','t','a',' ','S','o','u','r','c','e','=','d','u','m','m','y',';',
98 'P','e','r','s','i','s','t',' ','S','e','c','u','r','i','t','y',' ','I','n','f','o','=','F','a','l','s','e',';',0};
99 static WCHAR initstring_default
[] = {'D','a','t','a',' ','S','o','u','r','c','e','=','d','u','m','m','y',';',0};
100 IDataInitialize
*datainit
= NULL
;
103 hr
= CoCreateInstance(&CLSID_MSDAINITIALIZE
, NULL
, CLSCTX_INPROC_SERVER
, &IID_IDataInitialize
, (void**)&datainit
);
106 win_skip("Unable to load oledb library\n");
109 IDataInitialize_Release(datainit
);
111 test_GetDataSource(NULL
);
112 test_GetDataSource(initstring_jet
);
113 test_GetDataSource(initstring_default
);