Commit 83755cca authored by Francois Gouget's avatar Francois Gouget Committed by Alexandre Julliard

Move the PROPVARIANT declaration from objidl.idl to propidl.idl.

Move related API declarations from individual C files to propidl.idl. Remove uneeded include of propidl.h in the propvariant.c test.
parent f0e6b584
......@@ -2326,8 +2326,6 @@ static void OLE_FreeClipDataArray(ULONG count, CLIPDATA * pClipDataArray)
CoTaskMemFree(pClipDataArray[i].pClipData);
}
HRESULT WINAPI FreePropVariantArray(ULONG,PROPVARIANT*);
/******************************************************************************
* Check if a PROPVARIANT's type is valid.
*/
......
......@@ -19,10 +19,6 @@
*/
#include "windows.h"
/* not present in Wine yet */
/*#include "propidl.h"*/
WINOLEAPI PropVariantClear(PROPVARIANT*);
WINOLEAPI PropVariantCopy(PROPVARIANT*, const PROPVARIANT*);
#include "wine/test.h"
......
......@@ -137,7 +137,7 @@ typedef enum {
} OLE_RELEASE_METHOD;
typedef LONG LHCLIENTDOC;
typedef struct _OLEOBJECT *LPOLEOBJECT;
typedef struct _OLEOBJECT *_LPOLEOBJECT;
typedef struct _OLECLIENT *LPOLECLIENT;
typedef LONG OLECLIPFORMAT;/* dunno about this type, please change/add */
typedef OLEOPT_UPDATE *LPOLEOPT_UPDATE;
......@@ -145,52 +145,52 @@ typedef LPCSTR LPCOLESTR16;
struct _OLESTREAM;
typedef struct _OLEOBJECTVTBL {
void CALLBACK *(*QueryProtocol)(LPOLEOBJECT,LPCOLESTR16);
OLESTATUS (CALLBACK *Release)(LPOLEOBJECT);
OLESTATUS (CALLBACK *Show)(LPOLEOBJECT,BOOL16);
OLESTATUS (CALLBACK *DoVerb)(LPOLEOBJECT,UINT16,BOOL16,BOOL16);
OLESTATUS (CALLBACK *GetData)(LPOLEOBJECT,OLECLIPFORMAT,HANDLE16 *);
OLESTATUS (CALLBACK *SetData)(LPOLEOBJECT,OLECLIPFORMAT,HANDLE16);
OLESTATUS (CALLBACK *SetTargetDevice)(LPOLEOBJECT,HGLOBAL16);
OLESTATUS (CALLBACK *SetBounds)(LPOLEOBJECT,LPRECT16);
OLESTATUS (CALLBACK *EnumFormats)(LPOLEOBJECT,OLECLIPFORMAT);
OLESTATUS (CALLBACK *SetColorScheme)(LPOLEOBJECT,struct tagLOGPALETTE*);
OLESTATUS (CALLBACK *Delete)(LPOLEOBJECT);
OLESTATUS (CALLBACK *SetHostNames)(LPOLEOBJECT,LPCOLESTR16,LPCOLESTR16);
OLESTATUS (CALLBACK *SaveToStream)(LPOLEOBJECT,struct _OLESTREAM*);
OLESTATUS (CALLBACK *Clone)(LPOLEOBJECT,LPOLECLIENT,LHCLIENTDOC,LPCOLESTR16,LPOLEOBJECT *);
OLESTATUS (CALLBACK *CopyFromLink)(LPOLEOBJECT,LPOLECLIENT,LHCLIENTDOC,LPCOLESTR16,LPOLEOBJECT *);
OLESTATUS (CALLBACK *Equal)(LPOLEOBJECT,LPOLEOBJECT);
OLESTATUS (CALLBACK *CopyToClipBoard)(LPOLEOBJECT);
OLESTATUS (CALLBACK *Draw)(LPOLEOBJECT,HDC16,LPRECT16,LPRECT16,HDC16);
OLESTATUS (CALLBACK *Activate)(LPOLEOBJECT,UINT16,BOOL16,BOOL16,HWND16,LPRECT16);
OLESTATUS (CALLBACK *Execute)(LPOLEOBJECT,HGLOBAL16,UINT16);
OLESTATUS (CALLBACK *Close)(LPOLEOBJECT);
OLESTATUS (CALLBACK *Update)(LPOLEOBJECT);
OLESTATUS (CALLBACK *Reconnect)(LPOLEOBJECT);
OLESTATUS (CALLBACK *ObjectConvert)(LPOLEOBJECT,LPCOLESTR16,LPOLECLIENT,LHCLIENTDOC,LPCOLESTR16,LPOLEOBJECT*);
OLESTATUS (CALLBACK *GetLinkUpdateOptions)(LPOLEOBJECT,LPOLEOPT_UPDATE);
OLESTATUS (CALLBACK *SetLinkUpdateOptions)(LPOLEOBJECT,OLEOPT_UPDATE);
OLESTATUS (CALLBACK *Rename)(LPOLEOBJECT,LPCOLESTR16);
OLESTATUS (CALLBACK *QueryName)(LPOLEOBJECT,LPSTR,LPUINT16);
OLESTATUS (CALLBACK *QueryType)(LPOLEOBJECT,LPLONG);
OLESTATUS (CALLBACK *QueryBounds)(LPOLEOBJECT,LPRECT16);
OLESTATUS (CALLBACK *QuerySize)(LPOLEOBJECT,LPDWORD);
OLESTATUS (CALLBACK *QueryOpen)(LPOLEOBJECT);
OLESTATUS (CALLBACK *QueryOutOfDate)(LPOLEOBJECT);
OLESTATUS (CALLBACK *QueryReleaseStatus)(LPOLEOBJECT);
OLESTATUS (CALLBACK *QueryReleaseError)(LPOLEOBJECT);
OLE_RELEASE_METHOD (CALLBACK *QueryReleaseMethod)(LPOLEOBJECT);
OLESTATUS (CALLBACK *RequestData)(LPOLEOBJECT,OLECLIPFORMAT);
OLESTATUS (CALLBACK *ObjectLong)(LPOLEOBJECT,UINT16,LPLONG);
typedef struct _OLEOBJECTVTBL16 {
void CALLBACK *(*QueryProtocol)(_LPOLEOBJECT,LPCOLESTR16);
OLESTATUS (CALLBACK *Release)(_LPOLEOBJECT);
OLESTATUS (CALLBACK *Show)(_LPOLEOBJECT,BOOL16);
OLESTATUS (CALLBACK *DoVerb)(_LPOLEOBJECT,UINT16,BOOL16,BOOL16);
OLESTATUS (CALLBACK *GetData)(_LPOLEOBJECT,OLECLIPFORMAT,HANDLE16 *);
OLESTATUS (CALLBACK *SetData)(_LPOLEOBJECT,OLECLIPFORMAT,HANDLE16);
OLESTATUS (CALLBACK *SetTargetDevice)(_LPOLEOBJECT,HGLOBAL16);
OLESTATUS (CALLBACK *SetBounds)(_LPOLEOBJECT,LPRECT16);
OLESTATUS (CALLBACK *EnumFormats)(_LPOLEOBJECT,OLECLIPFORMAT);
OLESTATUS (CALLBACK *SetColorScheme)(_LPOLEOBJECT,struct tagLOGPALETTE*);
OLESTATUS (CALLBACK *Delete)(_LPOLEOBJECT);
OLESTATUS (CALLBACK *SetHostNames)(_LPOLEOBJECT,LPCOLESTR16,LPCOLESTR16);
OLESTATUS (CALLBACK *SaveToStream)(_LPOLEOBJECT,struct _OLESTREAM*);
OLESTATUS (CALLBACK *Clone)(_LPOLEOBJECT,LPOLECLIENT,LHCLIENTDOC,LPCOLESTR16,_LPOLEOBJECT *);
OLESTATUS (CALLBACK *CopyFromLink)(_LPOLEOBJECT,LPOLECLIENT,LHCLIENTDOC,LPCOLESTR16,_LPOLEOBJECT *);
OLESTATUS (CALLBACK *Equal)(_LPOLEOBJECT,_LPOLEOBJECT);
OLESTATUS (CALLBACK *CopyToClipBoard)(_LPOLEOBJECT);
OLESTATUS (CALLBACK *Draw)(_LPOLEOBJECT,HDC16,LPRECT16,LPRECT16,HDC16);
OLESTATUS (CALLBACK *Activate)(_LPOLEOBJECT,UINT16,BOOL16,BOOL16,HWND16,LPRECT16);
OLESTATUS (CALLBACK *Execute)(_LPOLEOBJECT,HGLOBAL16,UINT16);
OLESTATUS (CALLBACK *Close)(_LPOLEOBJECT);
OLESTATUS (CALLBACK *Update)(_LPOLEOBJECT);
OLESTATUS (CALLBACK *Reconnect)(_LPOLEOBJECT);
OLESTATUS (CALLBACK *ObjectConvert)(_LPOLEOBJECT,LPCOLESTR16,LPOLECLIENT,LHCLIENTDOC,LPCOLESTR16,_LPOLEOBJECT*);
OLESTATUS (CALLBACK *GetLinkUpdateOptions)(_LPOLEOBJECT,LPOLEOPT_UPDATE);
OLESTATUS (CALLBACK *SetLinkUpdateOptions)(_LPOLEOBJECT,OLEOPT_UPDATE);
OLESTATUS (CALLBACK *Rename)(_LPOLEOBJECT,LPCOLESTR16);
OLESTATUS (CALLBACK *QueryName)(_LPOLEOBJECT,LPSTR,LPUINT16);
OLESTATUS (CALLBACK *QueryType)(_LPOLEOBJECT,LPLONG);
OLESTATUS (CALLBACK *QueryBounds)(_LPOLEOBJECT,LPRECT16);
OLESTATUS (CALLBACK *QuerySize)(_LPOLEOBJECT,LPDWORD);
OLESTATUS (CALLBACK *QueryOpen)(_LPOLEOBJECT);
OLESTATUS (CALLBACK *QueryOutOfDate)(_LPOLEOBJECT);
OLESTATUS (CALLBACK *QueryReleaseStatus)(_LPOLEOBJECT);
OLESTATUS (CALLBACK *QueryReleaseError)(_LPOLEOBJECT);
OLE_RELEASE_METHOD (CALLBACK *QueryReleaseMethod)(_LPOLEOBJECT);
OLESTATUS (CALLBACK *RequestData)(_LPOLEOBJECT,OLECLIPFORMAT);
OLESTATUS (CALLBACK *ObjectLong)(_LPOLEOBJECT,UINT16,LPLONG);
} OLEOBJECTVTBL;
typedef OLEOBJECTVTBL *LPOLEOBJECTVTBL;
typedef struct _OLEOBJECT
{
LPOLEOBJECTVTBL lpvtbl;
} OLEOBJECT;
} OLEOBJECT16;
static LONG OLE_current_handle;
......@@ -293,7 +293,7 @@ BOOL16 WINAPI OleIsDcMeta16(HDC16 hdc)
/******************************************************************************
* OleQueryType [OLECLI.14]
*/
OLESTATUS WINAPI OleQueryType16(LPOLEOBJECT oleob, SEGPTR xlong) {
OLESTATUS WINAPI OleQueryType16(_LPOLEOBJECT oleob, SEGPTR xlong) {
FIXME("(%p, %p): stub!\n", oleob, MapSL(xlong));
return OLE_OK;
}
......
......@@ -137,7 +137,7 @@ typedef enum {
} OLE_RELEASE_METHOD;
typedef LONG LHCLIENTDOC;
typedef struct _OLEOBJECT *LPOLEOBJECT;
typedef struct _OLEOBJECT *_LPOLEOBJECT;
typedef struct _OLECLIENT *LPOLECLIENT;
typedef LONG OLECLIPFORMAT;/* dunno about this type, please change/add */
typedef OLEOPT_UPDATE *LPOLEOPT_UPDATE;
......@@ -146,44 +146,44 @@ typedef LPCSTR LPCOLESTR16;
struct _OLESTREAM;
typedef struct _OLEOBJECTVTBL {
void CALLBACK *(*QueryProtocol)(LPOLEOBJECT,LPCOLESTR16);
OLESTATUS (CALLBACK *Release)(LPOLEOBJECT);
OLESTATUS (CALLBACK *Show)(LPOLEOBJECT,BOOL16);
OLESTATUS (CALLBACK *DoVerb)(LPOLEOBJECT,UINT16,BOOL16,BOOL16);
OLESTATUS (CALLBACK *GetData)(LPOLEOBJECT,OLECLIPFORMAT,HANDLE16 *);
OLESTATUS (CALLBACK *SetData)(LPOLEOBJECT,OLECLIPFORMAT,HANDLE16);
OLESTATUS (CALLBACK *SetTargetDevice)(LPOLEOBJECT,HGLOBAL16);
OLESTATUS (CALLBACK *SetBounds)(LPOLEOBJECT,LPRECT16);
OLESTATUS (CALLBACK *EnumFormats)(LPOLEOBJECT,OLECLIPFORMAT);
OLESTATUS (CALLBACK *SetColorScheme)(LPOLEOBJECT,struct tagLOGPALETTE*);
OLESTATUS (CALLBACK *Delete)(LPOLEOBJECT);
OLESTATUS (CALLBACK *SetHostNames)(LPOLEOBJECT,LPCOLESTR16,LPCOLESTR16);
OLESTATUS (CALLBACK *SaveToStream)(LPOLEOBJECT,struct _OLESTREAM*);
OLESTATUS (CALLBACK *Clone)(LPOLEOBJECT,LPOLECLIENT,LHCLIENTDOC,LPCOLESTR16,LPOLEOBJECT *);
OLESTATUS (CALLBACK *CopyFromLink)(LPOLEOBJECT,LPOLECLIENT,LHCLIENTDOC,LPCOLESTR16,LPOLEOBJECT *);
OLESTATUS (CALLBACK *Equal)(LPOLEOBJECT,LPOLEOBJECT);
OLESTATUS (CALLBACK *CopyToClipBoard)(LPOLEOBJECT);
OLESTATUS (CALLBACK *Draw)(LPOLEOBJECT,HDC16,LPRECT16,LPRECT16,HDC16);
OLESTATUS (CALLBACK *Activate)(LPOLEOBJECT,UINT16,BOOL16,BOOL16,HWND16,LPRECT16);
OLESTATUS (CALLBACK *Execute)(LPOLEOBJECT,HGLOBAL16,UINT16);
OLESTATUS (CALLBACK *Close)(LPOLEOBJECT);
OLESTATUS (CALLBACK *Update)(LPOLEOBJECT);
OLESTATUS (CALLBACK *Reconnect)(LPOLEOBJECT);
OLESTATUS (CALLBACK *ObjectConvert)(LPOLEOBJECT,LPCOLESTR16,LPOLECLIENT,LHCLIENTDOC,LPCOLESTR16,LPOLEOBJECT*);
OLESTATUS (CALLBACK *GetLinkUpdateOptions)(LPOLEOBJECT,LPOLEOPT_UPDATE);
OLESTATUS (CALLBACK *SetLinkUpdateOptions)(LPOLEOBJECT,OLEOPT_UPDATE);
OLESTATUS (CALLBACK *Rename)(LPOLEOBJECT,LPCOLESTR16);
OLESTATUS (CALLBACK *QueryName)(LPOLEOBJECT,LPSTR,LPUINT16);
OLESTATUS (CALLBACK *QueryType)(LPOLEOBJECT,LPLONG);
OLESTATUS (CALLBACK *QueryBounds)(LPOLEOBJECT,LPRECT16);
OLESTATUS (CALLBACK *QuerySize)(LPOLEOBJECT,LPDWORD);
OLESTATUS (CALLBACK *QueryOpen)(LPOLEOBJECT);
OLESTATUS (CALLBACK *QueryOutOfDate)(LPOLEOBJECT);
OLESTATUS (CALLBACK *QueryReleaseStatus)(LPOLEOBJECT);
OLESTATUS (CALLBACK *QueryReleaseError)(LPOLEOBJECT);
OLE_RELEASE_METHOD (CALLBACK *QueryReleaseMethod)(LPOLEOBJECT);
OLESTATUS (CALLBACK *RequestData)(LPOLEOBJECT,OLECLIPFORMAT);
OLESTATUS (CALLBACK *ObjectLong)(LPOLEOBJECT,UINT16,LPLONG);
void CALLBACK *(*QueryProtocol)(_LPOLEOBJECT,LPCOLESTR16);
OLESTATUS (CALLBACK *Release)(_LPOLEOBJECT);
OLESTATUS (CALLBACK *Show)(_LPOLEOBJECT,BOOL16);
OLESTATUS (CALLBACK *DoVerb)(_LPOLEOBJECT,UINT16,BOOL16,BOOL16);
OLESTATUS (CALLBACK *GetData)(_LPOLEOBJECT,OLECLIPFORMAT,HANDLE16 *);
OLESTATUS (CALLBACK *SetData)(_LPOLEOBJECT,OLECLIPFORMAT,HANDLE16);
OLESTATUS (CALLBACK *SetTargetDevice)(_LPOLEOBJECT,HGLOBAL16);
OLESTATUS (CALLBACK *SetBounds)(_LPOLEOBJECT,LPRECT16);
OLESTATUS (CALLBACK *EnumFormats)(_LPOLEOBJECT,OLECLIPFORMAT);
OLESTATUS (CALLBACK *SetColorScheme)(_LPOLEOBJECT,struct tagLOGPALETTE*);
OLESTATUS (CALLBACK *Delete)(_LPOLEOBJECT);
OLESTATUS (CALLBACK *SetHostNames)(_LPOLEOBJECT,LPCOLESTR16,LPCOLESTR16);
OLESTATUS (CALLBACK *SaveToStream)(_LPOLEOBJECT,struct _OLESTREAM*);
OLESTATUS (CALLBACK *Clone)(_LPOLEOBJECT,LPOLECLIENT,LHCLIENTDOC,LPCOLESTR16,_LPOLEOBJECT *);
OLESTATUS (CALLBACK *CopyFromLink)(_LPOLEOBJECT,LPOLECLIENT,LHCLIENTDOC,LPCOLESTR16,_LPOLEOBJECT *);
OLESTATUS (CALLBACK *Equal)(_LPOLEOBJECT,_LPOLEOBJECT);
OLESTATUS (CALLBACK *CopyToClipBoard)(_LPOLEOBJECT);
OLESTATUS (CALLBACK *Draw)(_LPOLEOBJECT,HDC16,LPRECT16,LPRECT16,HDC16);
OLESTATUS (CALLBACK *Activate)(_LPOLEOBJECT,UINT16,BOOL16,BOOL16,HWND16,LPRECT16);
OLESTATUS (CALLBACK *Execute)(_LPOLEOBJECT,HGLOBAL16,UINT16);
OLESTATUS (CALLBACK *Close)(_LPOLEOBJECT);
OLESTATUS (CALLBACK *Update)(_LPOLEOBJECT);
OLESTATUS (CALLBACK *Reconnect)(_LPOLEOBJECT);
OLESTATUS (CALLBACK *ObjectConvert)(_LPOLEOBJECT,LPCOLESTR16,LPOLECLIENT,LHCLIENTDOC,LPCOLESTR16,_LPOLEOBJECT*);
OLESTATUS (CALLBACK *GetLinkUpdateOptions)(_LPOLEOBJECT,LPOLEOPT_UPDATE);
OLESTATUS (CALLBACK *SetLinkUpdateOptions)(_LPOLEOBJECT,OLEOPT_UPDATE);
OLESTATUS (CALLBACK *Rename)(_LPOLEOBJECT,LPCOLESTR16);
OLESTATUS (CALLBACK *QueryName)(_LPOLEOBJECT,LPSTR,LPUINT16);
OLESTATUS (CALLBACK *QueryType)(_LPOLEOBJECT,LPLONG);
OLESTATUS (CALLBACK *QueryBounds)(_LPOLEOBJECT,LPRECT16);
OLESTATUS (CALLBACK *QuerySize)(_LPOLEOBJECT,LPDWORD);
OLESTATUS (CALLBACK *QueryOpen)(_LPOLEOBJECT);
OLESTATUS (CALLBACK *QueryOutOfDate)(_LPOLEOBJECT);
OLESTATUS (CALLBACK *QueryReleaseStatus)(_LPOLEOBJECT);
OLESTATUS (CALLBACK *QueryReleaseError)(_LPOLEOBJECT);
OLE_RELEASE_METHOD (CALLBACK *QueryReleaseMethod)(_LPOLEOBJECT);
OLESTATUS (CALLBACK *RequestData)(_LPOLEOBJECT,OLECLIPFORMAT);
OLESTATUS (CALLBACK *ObjectLong)(_LPOLEOBJECT,UINT16,LPLONG);
} OLEOBJECTVTBL;
typedef OLEOBJECTVTBL *LPOLEOBJECTVTBL;
......@@ -237,7 +237,7 @@ OLESTATUS WINAPI OleRevokeClientDoc(LHCLIENTDOC hServerDoc)
*/
OLESTATUS WINAPI OleCreateLinkFromClip(
LPCSTR name,LPOLECLIENT olecli,LHCLIENTDOC hclientdoc,LPCSTR xname,
LPOLEOBJECT *lpoleob,OLEOPT_RENDER render,OLECLIPFORMAT clipformat
_LPOLEOBJECT *lpoleob,OLEOPT_RENDER render,OLECLIPFORMAT clipformat
) {
FIXME("(%s,%p,%08lx,%s,%p,%d,%ld): stub!\n",
name,olecli,hclientdoc,xname,lpoleob,render,clipformat);
......@@ -272,7 +272,7 @@ BOOL WINAPI OleIsDcMeta(HDC hdc)
/******************************************************************************
* OleSetHostNames [OLECLI32.15]
*/
OLESTATUS WINAPI OleSetHostNames(LPOLEOBJECT oleob,LPCSTR name1,LPCSTR name2) {
OLESTATUS WINAPI OleSetHostNames(_LPOLEOBJECT oleob,LPCSTR name1,LPCSTR name2) {
FIXME("(%p,%s,%s): stub\n",oleob,name1,name2);
return OLE_OK;
}
......@@ -280,7 +280,7 @@ OLESTATUS WINAPI OleSetHostNames(LPOLEOBJECT oleob,LPCSTR name1,LPCSTR name2) {
/******************************************************************************
* OleQueryType [OLECLI32.14]
*/
OLESTATUS WINAPI OleQueryType(LPOLEOBJECT oleob,LONG*xlong) {
OLESTATUS WINAPI OleQueryType(_LPOLEOBJECT oleob,LONG*xlong) {
FIXME("(%p,%p): stub!\n",oleob,xlong);
if (!oleob)
return 0x10;
......@@ -294,7 +294,7 @@ OLESTATUS WINAPI OleQueryType(LPOLEOBJECT oleob,LONG*xlong) {
*/
OLESTATUS WINAPI OleCreateFromClip(
LPCSTR name,LPOLECLIENT olecli,LHCLIENTDOC hclientdoc,LPCSTR xname,
LPOLEOBJECT *lpoleob,OLEOPT_RENDER render, OLECLIPFORMAT clipformat
_LPOLEOBJECT *lpoleob,OLEOPT_RENDER render, OLECLIPFORMAT clipformat
) {
FIXME("(%s,%p,%08lx,%s,%p,%d,%ld): stub!\n",
name,olecli,hclientdoc,xname,lpoleob,render,clipformat);
......
......@@ -20,6 +20,7 @@ IDL_SRCS = \
objidl.idl \
ocidl.idl \
oleidl.idl \
propidl.idl \
pstore.idl \
servprov.idl \
shldisp.idl \
......
......@@ -487,6 +487,8 @@ HRESULT WINAPI StgOpenStorageOnILockBytes(ILockBytes *plkbyt, IStorage *pstgPrio
}
#endif
/* FIXME: #include <urlmon.h> */
#include <propidl.h>
#ifndef __WINESRC__
......
......@@ -1810,293 +1810,10 @@ interface IChannelHook : IUnknown
[in] HRESULT hrFault );
}
/******************** Property Storage ********************/
extern const FMTID FMTID_SummaryInformation;
extern const FMTID FMTID_DocSummaryInformation;
extern const FMTID FMTID_UserDefinedProperties;
interface IEnumSTATPROPSTG;
interface IEnumSTATPROPSETSTG;
[
object,
uuid(00000138-0000-0000-C000-000000000046),
pointer_default(unique)
]
interface IPropertyStorage : IUnknown
{
typedef [unique] IPropertyStorage *LPPROPERTYSTORAGE;
extern const FMTID FMTID_SummaryInformation;
extern const FMTID FMTID_DocSummaryInformation;
extern const FMTID FMTID_UserDefinedProperties;
const DWORD PROPSETFLAG_DEFAULT = 0;
const DWORD PROPSETFLAG_NONSIMPLE = 1;
const DWORD PROPSETFLAG_ANSI = 2;
const DWORD PROPSETFLAG_UNBUFFERED = 4;
typedef struct tagPROPVARIANT PROPVARIANT;
#define TYPEDEF_CA(type, name) \
typedef struct tag##name { \
ULONG cElems; \
[size_is(cElems)] \
type *pElems; \
} name
TYPEDEF_CA(unsigned char, CAUB);
TYPEDEF_CA(short, CAI);
TYPEDEF_CA(USHORT, CAUI);
TYPEDEF_CA(long, CAL);
TYPEDEF_CA(ULONG, CAUL);
TYPEDEF_CA(float, CAFLT);
TYPEDEF_CA(double, CADBL);
TYPEDEF_CA(CY, CACY);
TYPEDEF_CA(DATE, CADATE);
TYPEDEF_CA(BSTR, CABSTR);
TYPEDEF_CA(BSTRBLOB, CABSTRBLOB);
TYPEDEF_CA(VARIANT_BOOL, CABOOL);
TYPEDEF_CA(SCODE, CASCODE);
TYPEDEF_CA(PROPVARIANT, CAPROPVARIANT);
TYPEDEF_CA(LARGE_INTEGER, CAH);
TYPEDEF_CA(ULARGE_INTEGER, CAUH);
TYPEDEF_CA(LPSTR, CALPSTR);
TYPEDEF_CA(LPWSTR, CALPWSTR);
TYPEDEF_CA(FILETIME, CAFILETIME);
TYPEDEF_CA(CLIPDATA, CACLIPDATA);
TYPEDEF_CA(CLSID, CACLSID);
struct tagPROPVARIANT {
VARTYPE vt;
WORD wReserved1;
WORD wReserved2;
WORD wReserved3;
[switch_is(vt & 0x1fff)] union {
[case(VT_EMPTY, VT_NULL)] ;
[case(VT_I1)] char cVal;
[case(VT_UI1)] UCHAR bVal;
[case(VT_I2)] short iVal;
[case(VT_UI2)] USHORT uiVal;
[case(VT_BOOL)] VARIANT_BOOL boolVal;
#if 0 /* illegal in C++ */
[case(VT_ILLEGAL)] _VARIANT_BOOL bool;
#endif
[case(VT_I4)] long lVal;
[case(VT_UI4)] ULONG ulVal;
[case(VT_R4)] float fltVal;
[case(VT_ERROR)] SCODE scode;
[case(VT_I8)] LARGE_INTEGER hVal;
[case(VT_UI8)] ULARGE_INTEGER uhVal;
[case(VT_R8)] double dblVal;
[case(VT_CY)] CY cyVal;
[case(VT_DATE)] DATE date;
[case(VT_FILETIME)] FILETIME filetime;
[case(VT_CLSID)] CLSID *puuid;
[case(VT_BLOB, VT_BLOB_OBJECT)] BLOB blob;
[case(VT_CF)] CLIPDATA *pclipdata;
[case(VT_STREAM, VT_STREAMED_OBJECT)] IStream *pStream;
[case(VT_STORAGE, VT_STORED_OBJECT)] IStorage *pStorage;
[case(VT_BSTR)] BSTR bstrVal;
[case(VT_BSTR_BLOB)] BSTRBLOB bstrblobVal;
[case(VT_LPSTR)] LPSTR pszVal;
[case(VT_LPWSTR)] LPWSTR pwszVal;
[case(VT_UI1|VT_VECTOR)] CAUB caub;
[case(VT_I2|VT_VECTOR)] CAI cai;
[case(VT_UI2|VT_VECTOR)] CAUI caui;
[case(VT_BOOL|VT_VECTOR)] CABOOL cabool;
[case(VT_I4|VT_VECTOR)] CAL cal;
[case(VT_UI4|VT_VECTOR)] CAUL caul;
[case(VT_R4|VT_VECTOR)] CAFLT caflt;
[case(VT_ERROR|VT_VECTOR)] CASCODE cascode;
[case(VT_I8|VT_VECTOR)] CAH cah;
[case(VT_UI8|VT_VECTOR)] CAUH cauh;
[case(VT_R8|VT_VECTOR)] CADBL cadbl;
[case(VT_CY|VT_VECTOR)] CACY cacy;
[case(VT_DATE|VT_VECTOR)] CADATE cadate;
[case(VT_FILETIME|VT_VECTOR)] CAFILETIME cafiletime;
[case(VT_CLSID|VT_VECTOR)] CACLSID cauuid;
[case(VT_CF|VT_VECTOR)] CACLIPDATA caclipdata;
[case(VT_BSTR|VT_VECTOR)] CABSTR cabstr;
[case(VT_BSTR_BLOB|VT_VECTOR)] CABSTRBLOB cabstrblob;
[case(VT_LPSTR|VT_VECTOR)] CALPSTR calpstr;
[case(VT_LPWSTR|VT_VECTOR)] CALPWSTR calpwstr;
[case(VT_VARIANT|VT_VECTOR)] CAPROPVARIANT capropvar;
};
};
typedef struct tagPROPVARIANT *LPPROPVARIANT;
/* FIXME: bunches of property IDs */
const ULONG PRSPEC_INVALID = 0xffffffff;
const ULONG PRSPEC_LPWSTR = 0;
const ULONG PRSPEC_PROPID = 1;
typedef struct tagPROPSPEC {
ULONG ulKind;
[switch_is(ulKind)] union {
[case(PRSPEC_PROPID)] PROPID propid;
[case(PRSPEC_LPWSTR)] LPOLESTR lpwstr;
[default] ;
};
} PROPSPEC;
typedef struct tagSTATPROPSTG {
LPOLESTR lpwstrName;
PROPID propid;
VARTYPE vt;
} STATPROPSTG;
/* FIXME: macros */
typedef struct tagSTATPROPSETSTG {
FMTID fmtid;
CLSID clsid;
DWORD grfFlags;
FILETIME mtime;
FILETIME ctime;
FILETIME atime;
DWORD dwOSVersion;
} STATPROPSETSTG;
HRESULT ReadMultiple(
[in] ULONG cpspec,
[in, size_is(cpspec)] const PROPSPEC rgpspec[],
[out, size_is(cpspec)] PROPVARIANT rgpropvar[]);
HRESULT WriteMultiple(
[in] ULONG cpspec,
[in, size_is(cpspec)] const PROPSPEC rgpspec[],
[in, size_is(cpspec)] const PROPVARIANT rgpropvar[],
[in] PROPID propidNameFirst);
HRESULT DeleteMultiple(
[in] ULONG cpspec,
[in, size_is(cpspec)] const PROPSPEC rgpspec[]);
HRESULT ReadPropertyNames(
[in] ULONG cpropid,
[in, size_is(cpropid)] const PROPID rgpropid[],
[out, size_is(cpropid)] LPOLESTR rglpwstrName[]);
HRESULT WritePropertyNames(
[in] ULONG cpropid,
[in, size_is(cpropid)] const PROPID rgpropid[],
[in, size_is(cpropid)] const LPOLESTR rglpwstrName[]);
HRESULT DeletePropertyNames(
[in] ULONG cpropid,
[in, size_is(cpropid)] const PROPID rgpropid[]);
HRESULT Commit(
[in] DWORD grfCommitFlags);
HRESULT Revert();
HRESULT Enum(
[out] IEnumSTATPROPSTG **ppenum);
HRESULT SetTimes(
[in] const FILETIME *pctime,
[in] const FILETIME *patime,
[in] const FILETIME *pmtime);
HRESULT SetClass(
[in] REFCLSID clsid);
HRESULT Stat(
[out] STATPROPSETSTG *statpsstg);
}
[
object,
uuid(0000013A-0000-0000-C000-000000000046),
pointer_default(unique)
]
interface IPropertySetStorage : IUnknown
{
typedef [unique] IPropertySetStorage *LPPROPERTYSETSTORAGE;
HRESULT Create(
[in] REFFMTID rfmtid,
[in, unique] const CLSID *pclsid,
[in] DWORD grfFlags,
[in] DWORD grfMode,
[out] IPropertyStorage **ppprstg);
HRESULT Open(
[in] REFFMTID rfmtid,
[in] DWORD grfMode,
[out] IPropertyStorage **ppprstg);
HRESULT Delete(
[in] REFFMTID rfmtid);
HRESULT Enum(
[out] IEnumSTATPROPSETSTG **ppenum);
}
[
object,
uuid(00000139-0000-0000-C000-000000000046),
pointer_default(unique)
]
interface IEnumSTATPROPSTG : IUnknown
{
typedef [unique] IEnumSTATPROPSTG *LPENUMSTATPROPSTG;
[local]
HRESULT Next(
[in] ULONG celt,
[out, size_is(celt), length_is(*pceltFetched)]
STATPROPSTG *rgelt,
[out] ULONG *pceltFetched);
[call_as(Next)]
HRESULT RemoteNext(
[in] ULONG celt,
[out, size_is(celt), length_is(*pceltFetched)]
STATPROPSTG *rgelt,
[out] ULONG *pceltFetched);
HRESULT Skip(
[in] ULONG celt);
HRESULT Reset();
HRESULT Clone(
[out] IEnumSTATPROPSTG **ppenum);
}
[
object,
uuid(0000013B-0000-0000-C000-000000000046),
pointer_default(unique)
]
interface IEnumSTATPROPSETSTG : IUnknown
{
typedef [unique] IEnumSTATPROPSETSTG *LPENUMSTATPROPSETSTG;
[local]
HRESULT Next(
[in] ULONG celt,
[out, size_is(celt), length_is(*pceltFetched)]
STATPROPSETSTG *rgelt,
[out] ULONG *pceltFetched);
[call_as(Next)]
HRESULT RemoteNext(
[in] ULONG celt,
[out, size_is(celt), length_is(*pceltFetched)]
STATPROPSETSTG *rgelt,
[out] ULONG *pceltFetched);
HRESULT Skip(
[in] ULONG celt);
HRESULT Reset();
HRESULT Clone(
[out] IEnumSTATPROPSETSTG **ppenum);
}
/******************** Connection Points ********************/
/* FIXME */
......
/*
* Copyright 2002 Ove Kaaven
* Copyright 2004 Francois Gouget
*
* 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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
import "objidl.idl";
import "oaidl.idl";
/******************** Property Storage ********************/
interface IEnumSTATPROPSTG;
interface IEnumSTATPROPSETSTG;
[
object,
uuid(00000138-0000-0000-C000-000000000046),
pointer_default(unique)
]
interface IPropertyStorage : IUnknown
{
typedef [unique] IPropertyStorage *LPPROPERTYSTORAGE;
const DWORD PROPSETFLAG_DEFAULT = 0;
const DWORD PROPSETFLAG_NONSIMPLE = 1;
const DWORD PROPSETFLAG_ANSI = 2;
const DWORD PROPSETFLAG_UNBUFFERED = 4;
typedef struct tagPROPVARIANT PROPVARIANT;
#define TYPEDEF_CA(type, name) \
typedef struct tag##name { \
ULONG cElems; \
[size_is(cElems)] \
type *pElems; \
} name
TYPEDEF_CA(unsigned char, CAUB);
TYPEDEF_CA(short, CAI);
TYPEDEF_CA(USHORT, CAUI);
TYPEDEF_CA(long, CAL);
TYPEDEF_CA(ULONG, CAUL);
TYPEDEF_CA(float, CAFLT);
TYPEDEF_CA(double, CADBL);
TYPEDEF_CA(CY, CACY);
TYPEDEF_CA(DATE, CADATE);
TYPEDEF_CA(BSTR, CABSTR);
TYPEDEF_CA(BSTRBLOB, CABSTRBLOB);
TYPEDEF_CA(VARIANT_BOOL, CABOOL);
TYPEDEF_CA(SCODE, CASCODE);
TYPEDEF_CA(PROPVARIANT, CAPROPVARIANT);
TYPEDEF_CA(LARGE_INTEGER, CAH);
TYPEDEF_CA(ULARGE_INTEGER, CAUH);
TYPEDEF_CA(LPSTR, CALPSTR);
TYPEDEF_CA(LPWSTR, CALPWSTR);
TYPEDEF_CA(FILETIME, CAFILETIME);
TYPEDEF_CA(CLIPDATA, CACLIPDATA);
TYPEDEF_CA(CLSID, CACLSID);
struct tagPROPVARIANT {
VARTYPE vt;
WORD wReserved1;
WORD wReserved2;
WORD wReserved3;
[switch_is(vt & 0x1fff)] union {
[case(VT_EMPTY, VT_NULL)] ;
[case(VT_I1)] char cVal;
[case(VT_UI1)] UCHAR bVal;
[case(VT_I2)] short iVal;
[case(VT_UI2)] USHORT uiVal;
[case(VT_BOOL)] VARIANT_BOOL boolVal;
#if 0 /* illegal in C++ */
[case(VT_ILLEGAL)] _VARIANT_BOOL bool;
#endif
[case(VT_I4)] long lVal;
[case(VT_UI4)] ULONG ulVal;
[case(VT_R4)] float fltVal;
[case(VT_ERROR)] SCODE scode;
[case(VT_I8)] LARGE_INTEGER hVal;
[case(VT_UI8)] ULARGE_INTEGER uhVal;
[case(VT_R8)] double dblVal;
[case(VT_CY)] CY cyVal;
[case(VT_DATE)] DATE date;
[case(VT_FILETIME)] FILETIME filetime;
[case(VT_CLSID)] CLSID *puuid;
[case(VT_BLOB, VT_BLOB_OBJECT)] BLOB blob;
[case(VT_CF)] CLIPDATA *pclipdata;
[case(VT_STREAM, VT_STREAMED_OBJECT)] IStream *pStream;
[case(VT_STORAGE, VT_STORED_OBJECT)] IStorage *pStorage;
[case(VT_BSTR)] BSTR bstrVal;
[case(VT_BSTR_BLOB)] BSTRBLOB bstrblobVal;
[case(VT_LPSTR)] LPSTR pszVal;
[case(VT_LPWSTR)] LPWSTR pwszVal;
[case(VT_UI1|VT_VECTOR)] CAUB caub;
[case(VT_I2|VT_VECTOR)] CAI cai;
[case(VT_UI2|VT_VECTOR)] CAUI caui;
[case(VT_BOOL|VT_VECTOR)] CABOOL cabool;
[case(VT_I4|VT_VECTOR)] CAL cal;
[case(VT_UI4|VT_VECTOR)] CAUL caul;
[case(VT_R4|VT_VECTOR)] CAFLT caflt;
[case(VT_ERROR|VT_VECTOR)] CASCODE cascode;
[case(VT_I8|VT_VECTOR)] CAH cah;
[case(VT_UI8|VT_VECTOR)] CAUH cauh;
[case(VT_R8|VT_VECTOR)] CADBL cadbl;
[case(VT_CY|VT_VECTOR)] CACY cacy;
[case(VT_DATE|VT_VECTOR)] CADATE cadate;
[case(VT_FILETIME|VT_VECTOR)] CAFILETIME cafiletime;
[case(VT_CLSID|VT_VECTOR)] CACLSID cauuid;
[case(VT_CF|VT_VECTOR)] CACLIPDATA caclipdata;
[case(VT_BSTR|VT_VECTOR)] CABSTR cabstr;
[case(VT_BSTR_BLOB|VT_VECTOR)] CABSTRBLOB cabstrblob;
[case(VT_LPSTR|VT_VECTOR)] CALPSTR calpstr;
[case(VT_LPWSTR|VT_VECTOR)] CALPWSTR calpwstr;
[case(VT_VARIANT|VT_VECTOR)] CAPROPVARIANT capropvar;
};
};
typedef struct tagPROPVARIANT *LPPROPVARIANT;
/* FIXME: bunches of property IDs */
const ULONG PRSPEC_INVALID = 0xffffffff;
const ULONG PRSPEC_LPWSTR = 0;
const ULONG PRSPEC_PROPID = 1;
typedef struct tagPROPSPEC {
ULONG ulKind;
[switch_is(ulKind)] union {
[case(PRSPEC_PROPID)] PROPID propid;
[case(PRSPEC_LPWSTR)] LPOLESTR lpwstr;
[default] ;
};
} PROPSPEC;
typedef struct tagSTATPROPSTG {
LPOLESTR lpwstrName;
PROPID propid;
VARTYPE vt;
} STATPROPSTG;
/* FIXME: macros */
typedef struct tagSTATPROPSETSTG {
FMTID fmtid;
CLSID clsid;
DWORD grfFlags;
FILETIME mtime;
FILETIME ctime;
FILETIME atime;
DWORD dwOSVersion;
} STATPROPSETSTG;
HRESULT ReadMultiple(
[in] ULONG cpspec,
[in, size_is(cpspec)] const PROPSPEC rgpspec[],
[out, size_is(cpspec)] PROPVARIANT rgpropvar[]);
HRESULT WriteMultiple(
[in] ULONG cpspec,
[in, size_is(cpspec)] const PROPSPEC rgpspec[],
[in, size_is(cpspec)] const PROPVARIANT rgpropvar[],
[in] PROPID propidNameFirst);
HRESULT DeleteMultiple(
[in] ULONG cpspec,
[in, size_is(cpspec)] const PROPSPEC rgpspec[]);
HRESULT ReadPropertyNames(
[in] ULONG cpropid,
[in, size_is(cpropid)] const PROPID rgpropid[],
[out, size_is(cpropid)] LPOLESTR rglpwstrName[]);
HRESULT WritePropertyNames(
[in] ULONG cpropid,
[in, size_is(cpropid)] const PROPID rgpropid[],
[in, size_is(cpropid)] const LPOLESTR rglpwstrName[]);
HRESULT DeletePropertyNames(
[in] ULONG cpropid,
[in, size_is(cpropid)] const PROPID rgpropid[]);
HRESULT Commit(
[in] DWORD grfCommitFlags);
HRESULT Revert();
HRESULT Enum(
[out] IEnumSTATPROPSTG **ppenum);
HRESULT SetTimes(
[in] const FILETIME *pctime,
[in] const FILETIME *patime,
[in] const FILETIME *pmtime);
HRESULT SetClass(
[in] REFCLSID clsid);
HRESULT Stat(
[out] STATPROPSETSTG *statpsstg);
}
[
object,
uuid(0000013A-0000-0000-C000-000000000046),
pointer_default(unique)
]
interface IPropertySetStorage : IUnknown
{
typedef [unique] IPropertySetStorage *LPPROPERTYSETSTORAGE;
HRESULT Create(
[in] REFFMTID rfmtid,
[in, unique] const CLSID *pclsid,
[in] DWORD grfFlags,
[in] DWORD grfMode,
[out] IPropertyStorage **ppprstg);
HRESULT Open(
[in] REFFMTID rfmtid,
[in] DWORD grfMode,
[out] IPropertyStorage **ppprstg);
HRESULT Delete(
[in] REFFMTID rfmtid);
HRESULT Enum(
[out] IEnumSTATPROPSETSTG **ppenum);
}
[
object,
uuid(00000139-0000-0000-C000-000000000046),
pointer_default(unique)
]
interface IEnumSTATPROPSTG : IUnknown
{
typedef [unique] IEnumSTATPROPSTG *LPENUMSTATPROPSTG;
[local]
HRESULT Next(
[in] ULONG celt,
[out, size_is(celt), length_is(*pceltFetched)]
STATPROPSTG *rgelt,
[out] ULONG *pceltFetched);
[call_as(Next)]
HRESULT RemoteNext(
[in] ULONG celt,
[out, size_is(celt), length_is(*pceltFetched)]
STATPROPSTG *rgelt,
[out] ULONG *pceltFetched);
HRESULT Skip(
[in] ULONG celt);
HRESULT Reset();
HRESULT Clone(
[out] IEnumSTATPROPSTG **ppenum);
}
[
object,
uuid(0000013B-0000-0000-C000-000000000046),
pointer_default(unique)
]
interface IEnumSTATPROPSETSTG : IUnknown
{
typedef [unique] IEnumSTATPROPSETSTG *LPENUMSTATPROPSETSTG;
[local]
HRESULT Next(
[in] ULONG celt,
[out, size_is(celt), length_is(*pceltFetched)]
STATPROPSETSTG *rgelt,
[out] ULONG *pceltFetched);
[call_as(Next)]
HRESULT RemoteNext(
[in] ULONG celt,
[out, size_is(celt), length_is(*pceltFetched)]
STATPROPSETSTG *rgelt,
[out] ULONG *pceltFetched);
HRESULT Skip(
[in] ULONG celt);
HRESULT Reset();
HRESULT Clone(
[out] IEnumSTATPROPSETSTG **ppenum);
}
cpp_quote("HRESULT WINAPI FreePropVariantArray(ULONG,PROPVARIANT*);");
cpp_quote("HRESULT WINAPI PropVariantClear(PROPVARIANT*);");
cpp_quote("HRESULT WINAPI PropVariantCopy(PROPVARIANT*,const PROPVARIANT*);");
......@@ -13,6 +13,7 @@ extern "C" {
#include <shtypes.h>
#include <servprov.h>
#include <comcat.h>
#include <propidl.h>
#ifndef __IPersistFolder_FWD_DEFINED__
#define __IPersistFolder_FWD_DEFINED__
typedef struct IPersistFolder IPersistFolder;
......
......@@ -25,7 +25,7 @@ import "oaidl.idl";
import "shtypes.idl";
import "servprov.idl";
import "comcat.idl";
/*import "propidl.idl";*/
import "propidl.idl";
/*import "prsht.idl";*/
/*import "msxml.idl";*/
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment