2 * Copyright 2009 Huw Davies
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
25 pointer_default(unique),
26 uuid(0c733a8d-2a1c-11ce-ade5-00aa0044773d)
28 interface IDataConvert : IUnknown
30 typedef DWORD DBDATACONVERT;
32 enum DBDATACONVERTENUM
34 DBDATACONVERT_DEFAULT = 0,
35 DBDATACONVERT_SETDATABEHAVIOR = 1,
36 DBDATACONVERT_LENGTHFROMNTS = 2,
37 DBDATACONVERT_DSTISFIXEDLENGTH = 4,
38 DBDATACONVERT_DECIMALSCALE = 8
41 [local] HRESULT DataConvert([in] DBTYPE wSrcType,
43 [in] DBLENGTH cbSrcLength,
44 [in, out] DBLENGTH *pcbDstLength,
47 [in] DBLENGTH cbDstMaxLength,
48 [in] DBSTATUS dbsSrcStatus,
49 [out] DBSTATUS *pdbsDstStatus,
52 [in] DBDATACONVERT dwFlags);
55 HRESULT CanConvert([in] DBTYPE wSrcType,
56 [in] DBTYPE wDstType);
59 [local] HRESULT GetConversionSize([in] DBTYPE wSrcType,
61 [in] DBLENGTH *pcbSrcLength,
62 [out] DBLENGTH *pcbDstLength,
63 [in, size_is(*pcbSrcLength)] void *pSrc);
68 pointer_default(unique),
69 uuid(0c733a9c-2a1c-11ce-ade5-00aa0044773d)
71 interface IDCInfo : IUnknown
73 typedef DWORD DCINFOTYPE;
77 DCINFOTYPE_VERSION = 1
80 typedef struct tagDCINFO
86 HRESULT GetInfo([in] ULONG cInfo,
87 [in, size_is(cInfo)] DCINFOTYPE rgeInfoType[],
88 [out, size_is(cInfo)] DCINFO **prgInfo);
90 HRESULT SetInfo([in] ULONG cInfo,
91 [in, size_is(cInfo)] DCINFO prgInfo[]);