* propvariant and friends.

git-svn-id: trunk@10185 -
This commit is contained in:
marco 2008-02-03 17:18:45 +00:00
parent 7ab46e8507
commit a259154511
4 changed files with 246 additions and 6 deletions

View File

@ -44,6 +44,11 @@ TYPE
PROPID = ULONG;
TPROPID= PROPID;
PPROPID= ^PROPID;
VARIANT_BOOL = short;
_VARIANT_BOOL = VARIANT_BOOL;
CY = CURRENCY;
DATE = DOUBLE;
BSTR = POLESTR;
CONST
GUID_NULL : TGUID = '{00000000-0000-0000-0000-000000000000}';
@ -1529,9 +1534,146 @@ TYPE
CUSTDATA = tagCUSTDATA;
LPCUSTDATA = ^CUSTDATA;
// CURRENCY = CY;
PPROPVARIANT = ^TPROPVARIANT;
tagVersionedStream = record
guidVersion : TGUID;
pStream : pointer; {IStream}
end;
VERSIONEDSTREAM = tagVersionedStream;
TVERSIONEDSTREAM = tagVersionedStream;
LPVERSIONEDSTREAM = tagVersionedStream;
PVERSIONEDSTREAM = ^TagVersionedStream;
LPSAFEARRAY = ^SAFEARRAY;
tagDEC = record // simpler remoting variant without nested unions. see wtypes.h
wReserved : ushort;
scale,
sign : byte;
hi32 : ULONG;
lo64 : ULONGLONG;
end;
TDECIMAL=tagDEC;
PDecimal=^TDECIMAL;
tagCAC = record
cElems : ULONG;
pElems : pCHAR;
end;
CAC = tagCAC;
tagCAUB = record
cElems : ULONG;
pElems : pUCHAR;
end;
CAUB = tagCAUB;
tagCAI = record
cElems : ULONG;
pElems : pSHORT;
end;
CAI = tagCAI;
tagCAUI = record
cElems : ULONG;
pElems : pUSHORT;
end;
CAUI = tagCAUI;
tagCAL = record
cElems : ULONG;
pElems : pLONG;
end;
CAL = tagCAL;
tagCAUL = record
cElems : ULONG;
pElems : pULONG;
end;
CAUL = tagCAUL;
tagCAFLT = record
cElems : ULONG;
pElems : pSingle;
end;
CAFLT = tagCAFLT;
tagCADBL = record
cElems : ULONG;
pElems : ^DOUBLE;
end;
CADBL = tagCADBL;
tagCACY = record
cElems : ULONG;
pElems : ^CY;
end;
CACY = tagCACY;
tagCADATE = record
cElems : ULONG;
pElems : ^DATE;
end;
CADATE = tagCADATE;
tagCABSTR = record
cElems : ULONG;
pElems : ^BSTR;
end;
CABSTR = tagCABSTR;
tagCABSTRBLOB = record
cElems : ULONG;
pElems : ^BSTRBLOB;
end;
CABSTRBLOB = tagCABSTRBLOB;
tagCABOOL = record
cElems : ULONG;
pElems : ^VARIANT_BOOL;
end;
CABOOL = tagCABOOL;
tagCASCODE = record
cElems : ULONG;
pElems : ^SCODE;
end;
CASCODE = tagCASCODE;
tagCAPROPVARIANT = record
cElems : ULONG;
pElems : ^PROPVARIANT;
end;
CAPROPVARIANT = tagCAPROPVARIANT;
tagCAH = record
cElems : ULONG;
pElems : ^LARGE_INTEGER;
end;
CAH = tagCAH;
tagCAUH = record
cElems : ULONG;
pElems : ^ULARGE_INTEGER;
end;
CAUH = tagCAUH;
tagCALPSTR = record
cElems : ULONG;
pElems : ^LPSTR;
end;
CALPSTR = tagCALPSTR;
tagCALPWSTR = record
cElems : ULONG;
pElems : ^LPWSTR;
end;
CALPWSTR = tagCALPWSTR;
tagCAFILETIME = record
cElems : ULONG;
pElems : ^FILETIME;
end;
CAFILETIME = tagCAFILETIME;
tagCACLIPDATA = record
cElems : ULONG;
pElems : ^CLIPDATA;
end;
CACLIPDATA = tagCACLIPDATA;
tagCACLSID = record
cElems : ULONG;
pElems : ^CLSID;
end;
CACLSID = tagCACLSID;
PROPVAR_PAD1 = WORD;
PROPVAR_PAD2 = WORD;
PROPVAR_PAD3 = WORD;
// Forward interfaces.
IStream = Types.IStream;
@ -1548,6 +1690,88 @@ TYPE
ISynchronize = Interface;
ITypeLib = Interface;
TPROPVARIANT = record
vt : VARTYPE;
wReserved1 : PROPVAR_PAD1;
wReserved2 : PROPVAR_PAD2;
wReserved3 : PROPVAR_PAD3;
case longint of
0 : ( cVal : CHAR );
1 : ( bVal : UCHAR );
2 : ( iVal : SHORT );
3 : ( uiVal : USHORT );
4 : ( lVal : LONG );
5 : ( ulVal : ULONG );
6 : ( intVal : longINT );
7 : ( uintVal : UINT );
8 : ( hVal : LARGE_INTEGER );
9 : ( uhVal : ULARGE_INTEGER );
10 : ( fltVal : SINGLE );
11 : ( dblVal : DOUBLE );
12 : ( boolVal : VARIANT_BOOL );
13 : ( bool : _VARIANT_BOOL );
14 : ( scode : SCODE );
15 : ( cyVal : CY );
16 : ( date : DATE );
17 : ( filetime : FILETIME );
18 : ( puuid : ^CLSID );
19 : ( pclipdata : ^CLIPDATA );
20 : ( bstrVal : BSTR );
21 : ( bstrblobVal : BSTRBLOB );
22 : ( blob : BLOB );
23 : ( pszVal : LPSTR );
24 : ( pwszVal : LPWSTR );
25 : ( punkVal : pointer; { IUnknown to avoid Data types which require initialization/finalization can't be used in variant records});
26 : ( pdispVal : pointer; {IDispatch} );
27 : ( pStream : pointer {IStream} );
28 : ( pStorage : pointer{IStorage} );
29 : ( pVersionedStream : LPVERSIONEDSTREAM );
30 : ( parray : LPSAFEARRAY );
31 : ( cac : CAC );
32 : ( caub : CAUB );
33 : ( cai : CAI );
34 : ( caui : CAUI );
35 : ( cal : CAL );
36 : ( caul : CAUL );
37 : ( cah : CAH );
38 : ( cauh : CAUH );
39 : ( caflt : CAFLT );
40 : ( cadbl : CADBL );
41 : ( cabool : CABOOL );
42 : ( cascode : CASCODE );
43 : ( cacy : CACY );
44 : ( cadate : CADATE );
45 : ( cafiletime : CAFILETIME );
46 : ( cauuid : CACLSID );
47 : ( caclipdata : CACLIPDATA );
48 : ( cabstr : CABSTR );
49 : ( cabstrblob : CABSTRBLOB );
50 : ( calpstr : CALPSTR );
51 : ( calpwstr : CALPWSTR );
52 : ( capropvar : CAPROPVARIANT );
53 : ( pcVal : pCHAR );
54 : ( pbVal : pUCHAR );
55 : ( piVal : pSHORT );
56 : ( puiVal : pUSHORT );
57 : ( plVal : pLONG );
58 : ( pulVal : pULONG );
59 : ( pintVal : plongint );
60 : ( puintVal : pUINT );
61 : ( pfltVal : psingle );
62 : ( pdblVal : pDOUBLE );
63 : ( pboolVal : ^VARIANT_BOOL );
64 : ( pdecVal : pDECIMAL );
65 : ( pscode : ^SCODE );
66 : ( pcyVal : ^CY );
67 : ( pdate : ^DATE );
68 : ( pbstrVal : ^TBSTR );
69 : ( ppunkVal : ^IUnknown );
70 : ( ppdispVal : ^IDispatch );
71 : ( pparray : ^LPSAFEARRAY );
72 : ( pvarVal : ^PROPVARIANT );
end;
PROPVARIANT=TPROPVARIANT;
// Unknwn.idl
// IUnknown is in classesh.inc

View File

@ -657,7 +657,7 @@ function ImageList_GetDragImage(ppt:PPOINT;pptHotspot:PPOINT):HIMAGELIST; stdcal
Procedure ImageList_RemoveAll(himl:HIMAGELIST);
// Macro 14
Procedure ImageList_ExtractIcon(hi:longint; {dummy?} himl:HIMAGELIST;i:cint);
Procedure ImageList_ExtractIcon(hi:longint; himl:HIMAGELIST;i:longint);
// Macro 15
@ -9152,7 +9152,7 @@ End;
// Macro 14
// #define ImageList_ExtractIcon(hi, himl, i) ImageList_GetIcon(himl, i, 0)
Procedure ImageList_ExtractIcon(hi:longint; {dummy?} himl:HIMAGELIST;i:cint);
Procedure ImageList_ExtractIcon(hi:longint; himl:HIMAGELIST;i:longint);
Begin
ImageList_GetIcon(himl, i,0);

View File

@ -1799,7 +1799,7 @@ Type
IShellLinkA = Interface(IUnknown)
['{000214EE-0000-0000-C000-000000000046}']
function GetPath(pszFile:LPSTR; cch:longint; pfd:pWIN32_FIND_DATA; fFlags:DWORD):HRESULT;StdCall;
function GetPath(pszFile:LPSTR; cch:longint;var pfd:WIN32_FIND_DATA; fFlags:DWORD):HRESULT;StdCall;
function GetIDList(var ppidl:LPITEMIDLIST):HRESULT;StdCall;
function SetIDList(pidl:LPCITEMIDLIST):HRESULT;StdCall;
function GetDescription(pszName:LPSTR; cch:longint):HRESULT;StdCall;

View File

@ -6952,8 +6952,7 @@
TWOHandleArray = array[0..MAXIMUM_WAIT_OBJECTS-1] of HANDLE;
PWOHandleArray = ^TWOHandleArray;
MMRESULT = Longint;
MMRESULT = Longint;
type
PWaveFormatEx = ^TWaveFormatEx;
@ -7207,6 +7206,23 @@ type
GET_FILEEX_INFO_LEVELS = _GET_FILEEX_INFO_LEVELS;
TGetFileExInfoLevels = GET_FILEEX_INFO_LEVELS;
tagBSTRBLOB = record
cbsize : ULONG;
pdata : pbyte;
end;
BSTRBLOB=TagBSTRBlob;
TBSTRBLOB=BSTRBLOB;
PBSTRBLOB=^BSTRBLOB;
tagCLIPDATA = record
cbsize : ULONG;
ulClipFmt : long;
pclipdata : pbyte;
end;
CLIPDATA=TagCLIPDATA;
TCLIPDATA=CLIPDATA;
PCLIPDATA=^CLIPDATA;
{$endif read_interface}