structure PROPVARIANT ?

Windows specific forum
User avatar
bingo
Enthusiast
Enthusiast
Posts: 210
Joined: Fri Apr 02, 2004 12:21 pm
Location: germany/thueringen
Contact:

structure PROPVARIANT ?

Post by bingo »

i can not convert any parts of PROPVARIANT (new in vista) in pb :cry:

http://msdn.microsoft.com/en-us/library ... S.85).aspx

typedef struct PROPVARIANT {
VARTYPE vt;
WORD wReserved1;
WORD wReserved2;
WORD wReserved3;
union {
CHAR cVal;
UCHAR bVal;
SHORT iVal;
USHORT uiVal;
LONG lVal;
ULONG ulVal;
INT intVal;
UINT uintVal;
LARGE_INTEGER hVal;
ULARGE_INTEGER uhVal;
FLOAT fltVal;
DOUBLE dblVal;
VARIANT_BOOL boolVal;
SCODE scode;
CY cyVal;
DATE date;
FILETIME filetime;
CLSID* puuid;
CLIPDATA* pclipdata;
BSTR bstrVal;
BSTRBLOB bstrblobVal;
BLOB blob;
LPSTR pszVal;
LPWSTR pwszVal;
IUnknown* punkVal;
IDispatch* pdispVal;
IStream* pStream;
IStorage* pStorage;
LPVERSIONEDSTREAM pVersionedStream;
LPSAFEARRAY parray;
CAC cac;
CAUB caub;
CAI cai;
CAUI caui;
CAL cal;
CAUL caul;
CAH cah;
CAUH cauh;
CAFLT caflt;
CADBL cadbl;
CABOOL cabool;
CASCODE cascode;
CACY cacy;
CADATE cadate;
CAFILETIME cafiletime;
CACLSID cauuid;
CACLIPDATA caclipdata;
CABSTR cabstr;
CABSTRBLOB cabstrblob;
CALPSTR calpstr;
CALPWSTR calpwstr;
CAPROPVARIANT capropvar;
CHAR* pcVal;
UCHAR* pbVal;
SHORT* piVal;
USHORT* puiVal;
LONG* plVal;
ULONG* pulVal;
INT* pintVal;
UINT* puintVal;
FLOAT* pfltVal;
DOUBLE* pdblVal;
VARIANT_BOOL* pboolVal;
DECIMAL* pdecVal;
SCODE* pscode;
CY* pcyVal;
DATE* pdate;
BSTR* pbstrVal;
IUnknown** ppunkVal;
IDispatch** ppdispVal;
LPSAFEARRAY* pparray;
PROPVARIANT* pvarVal;
};
} PROPVARIANT;
["1:0>1"]
User avatar
Fluid Byte
Addict
Addict
Posts: 2336
Joined: Fri Jul 21, 2006 4:41 am
Location: Berlin, Germany

Post by Fluid Byte »

I have never seen this structure before and it contains many data types I never even heard of. I tried to convert but didn't get very far:

Code: Select all

Structure PROPVARIANT
	vt.VARTYPE
	wReserved1.w
	wReserved2.w
	wReserved3.w
	StructureUnion
		cVal.c
		bVal.c
		iVal.w
		uiVal.w
		lVal.l
		ulVal.l
		intVal.l
		uintVal.l
		hVal.LARGE_INTEGER
		uhVal.ULARGE_INTEGER
		fltVal.f
		dblVal.d
; 		VARIANT_BOOL boolVal
; 		SCODE scode
; 		CY cyVal
; 		DATE date
		filetime.FILETIME
		*puuid.CLSID
; 		CLIPDATA* pclipdata
; 		BSTR bstrVal
; 		BSTRBLOB bstrblobVal
; 		BLOB blob
; 		LPSTR pszVal
; 		LPWSTR pwszVal
		*punkVal.IUnknown
		*pdispVal.IDispatch
		*pStream.IStream
		*pStorage.IStorage
; 		LPVERSIONEDSTREAM pVersionedStream
; 		LPSAFEARRAY parray
; 		CAC cac
; 		CAUB caub
; 		CAI cai
; 		CAUI caui
; 		CAL cal
; 		CAUL caul
; 		CAH cah
; 		CAUH cauh
; 		CAFLT caflt
; 		CADBL cadbl
; 		CABOOL cabool
; 		CASCODE cascode
; 		CACY cacy
; 		CADATE cadate
; 		CAFILETIME cafiletime
; 		CACLSID cauuid
; 		CACLIPDATA caclipdata
; 		CABSTR cabstr
; 		CABSTRBLOB cabstrblob
; 		CALPSTR calpstr
; 		CALPWSTR calpwstr
; 		CAPROPVARIANT capropvar
		*pcVal.c
		*pbVal.c
		*piVal.w
		*puiVal.w
		*plVal.l
		*pulVal.l
		*pintVal.l
		*puintVal.l
		*pfltVal.f
		*pdblVal.d
; 		VARIANT_BOOL* pboolVal
; 		DECIMAL* pdecVal
; 		SCODE* pscode
; 		CY* pcyVal
; 		DATE* pdate
; 		BSTR* pbstrVal
		*ppunkVal.IUnknown
		*ppdispVal.IDispatch
; 		LPSAFEARRAY* pparray;
; 		PROPVARIANT* pvarVal;
	EndStructureUnion
EndStructure
These two resources may help with converting:

http://purebasic.fr/english/viewtopic.php?t=22458
http://msdn.microsoft.com/en-us/library/aa383751.aspx
Windows 10 Pro, 64-Bit / Whose Hoff is it anyway?
User avatar
bingo
Enthusiast
Enthusiast
Posts: 210
Joined: Fri Apr 02, 2004 12:21 pm
Location: germany/thueringen
Contact:

Post by bingo »

yes ... propvariant is new in vista (propsys.dll) and part of shell functions

http://msdn.microsoft.com/en-us/library ... 85%29.aspx

InitPropVariant... and so on .

but the structure propvariant is needed for new vista/server api's :roll:
["1:0>1"]
User avatar
bingo
Enthusiast
Enthusiast
Posts: 210
Joined: Fri Apr 02, 2004 12:21 pm
Location: germany/thueringen
Contact:

Re: structure PROPVARIANT ?

Post by bingo »

any "propvariant"-news ? :roll:

http://msdn.microsoft.com/en-us/library ... 85%29.aspx

It is possible to implement propvariant in pb4.5x (like variant)? :wink:
["1:0>1"]
SFSxOI
Addict
Addict
Posts: 2970
Joined: Sat Dec 31, 2005 5:24 pm
Location: Where ya would never look.....

Re: structure PROPVARIANT ?

Post by SFSxOI »

Have you seen this?

http://msdn.microsoft.com/en-us/library ... 85%29.aspx

scroll down towards the bottom and look at the table, some are in there.
The advantage of a 64 bit operating system over a 32 bit operating system comes down to only being twice the headache.
User avatar
bingo
Enthusiast
Enthusiast
Posts: 210
Joined: Fri Apr 02, 2004 12:21 pm
Location: germany/thueringen
Contact:

Re: structure PROPVARIANT ?

Post by bingo »

but how convert this to pb-format ? :shock:
["1:0>1"]
SFSxOI
Addict
Addict
Posts: 2970
Joined: Sat Dec 31, 2005 5:24 pm
Location: Where ya would never look.....

Re: structure PROPVARIANT ?

Post by SFSxOI »

Look at the description of the members, for example it says that scode is a DWORD tht contains a status code, so that means scode.i would work.
The advantage of a 64 bit operating system over a 32 bit operating system comes down to only being twice the headache.
User avatar
bingo
Enthusiast
Enthusiast
Posts: 210
Joined: Fri Apr 02, 2004 12:21 pm
Location: germany/thueringen
Contact:

Re: structure PROPVARIANT ?

Post by bingo »

http://com.it-berater.org/COM/structure ... ctures.htm

maybe usefull for converting this structure to pb 8)
["1:0>1"]
User avatar
nco2k
Addict
Addict
Posts: 1344
Joined: Mon Sep 15, 2003 5:55 am

Re: structure PROPVARIANT ?

Post by nco2k »

sorry to bump such an old topic, but finding all the info was a real pain in the ass and i hope this will save a lot of trouble in the future. :)

Code: Select all

Structure PROPVARIANT_CLIPDATA
  cbSize.l
  ulClipFmt.l
  *pClipData.BYTE
EndStructure

Structure PROPVARIANT_BSTRBLOB
  cbSize.l
  *pData.BYTE
EndStructure

Structure PROPVARIANT_BLOB
  cbSize.l
  *pBlobData.BYTE
EndStructure

Structure PROPVARIANT_VERSIONEDSTREAM
  guidVersion.GUID
  *pStream.IStream
EndStructure

Structure PROPVARIANT_CAC
  cElems.l
  *pElems.BYTE
EndStructure

Structure PROPVARIANT_CAUB
  cElems.l
  *pElems.BYTE
EndStructure

Structure PROPVARIANT_CAI
  cElems.l
  *pElems.WORD
EndStructure

Structure PROPVARIANT_CAUI
  cElems.l
  *pElems.WORD
EndStructure

Structure PROPVARIANT_CAL
  cElems.l
  *pElems.LONG
EndStructure

Structure PROPVARIANT_CAUL
  cElems.l
  *pElems.LONG
EndStructure

Structure PROPVARIANT_CAFLT
  cElems.l
  *pElems.FLOAT
EndStructure

Structure PROPVARIANT_CADBL
  cElems.l
  *pElems.DOUBLE
EndStructure

Structure PROPVARIANT_CACY
  cElems.l
  *pElems.QUAD
EndStructure

Structure PROPVARIANT_CADATE
  cElems.l
  *pElems.DOUBLE
EndStructure

Structure PROPVARIANT_CABSTR
  cElems.l
  *pElems.INTEGER
EndStructure

Structure PROPVARIANT_CABSTRBLOB
  cElems.l
  *pElems.PROPVARIANT_BSTRBLOB
EndStructure

Structure PROPVARIANT_CABOOL
  cElems.l
  *pElems.WORD
EndStructure

Structure PROPVARIANT_CASCODE
  cElems.l
  *pElems.LONG
EndStructure

Structure PROPVARIANT_CAPROPVARIANT
  cElems.l
  *pElems.PROPVARIANT
EndStructure

Structure PROPVARIANT_CAH
  cElems.l
  *pElems.QUAD
EndStructure

Structure PROPVARIANT_CAUH
  cElems.l
  *pElems.QUAD
EndStructure

Structure PROPVARIANT_CALPSTR
  cElems.l
  *pElems.INTEGER
EndStructure

Structure PROPVARIANT_CALPWSTR
  cElems.l
  *pElems.INTEGER
EndStructure

Structure PROPVARIANT_CAFILETIME
  cElems.l
  *pElems.FILETIME
EndStructure

Structure PROPVARIANT_CACLIPDATA
  cElems.l
  *pElems.PROPVARIANT_CLIPDATA
EndStructure

Structure PROPVARIANT_CACLSID
  cElems.l
  *pElems.CLSID
EndStructure

Structure PROPVARIANT Align #PB_Structure_AlignC
  vt.w
  wReserved1.w
  wReserved2.w
  wReserved3.w
  StructureUnion
    cVal.b
    bVal.b
    iVal.w
    uiVal.w
    lVal.l
    ulVal.l
    intVal.l
    uintVal.l
    hVal.q
    uhVal.q
    fltVal.f
    dblVal.d
    boolVal.w
    scode.l
    cyVal.q
    date.d
    filetime.FILETIME
    *puuid.CLSID
    *pclipdata.PROPVARIANT_CLIPDATA
    bstrVal.i
    bstrblobVal.PROPVARIANT_BSTRBLOB
    blob.PROPVARIANT_BLOB
    *pszVal
    *pwszVal
    *punkVal.IUnknown
    *pdispVal.IDispatch
    *pStream.IStream
    *pStorage.IStorage
    *pVersionedStream.PROPVARIANT_VERSIONEDSTREAM
    *parray.SAFEARRAY
    cac.PROPVARIANT_CAC
    caub.PROPVARIANT_CAUB
    cai.PROPVARIANT_CAI
    caui.PROPVARIANT_CAUI
    cal.PROPVARIANT_CAL
    caul.PROPVARIANT_CAUL
    cah.PROPVARIANT_CAH
    cauh.PROPVARIANT_CAUH
    caflt.PROPVARIANT_CAFLT
    cadbl.PROPVARIANT_CADBL
    cabool.PROPVARIANT_CABOOL
    cascode.PROPVARIANT_CASCODE
    cacy.PROPVARIANT_CACY
    cadate.PROPVARIANT_CADATE
    cafiletime.PROPVARIANT_CAFILETIME
    cauuid.PROPVARIANT_CACLSID
    caclipdata.PROPVARIANT_CACLIPDATA
    cabstr.PROPVARIANT_CABSTR
    cabstrblob.PROPVARIANT_CABSTRBLOB
    calpstr.PROPVARIANT_CALPSTR
    calpwstr.PROPVARIANT_CALPWSTR
    capropvar.PROPVARIANT_CAPROPVARIANT
    *pcVal.BYTE
    *pbVal.BYTE
    *piVal.WORD
    *puiVal.WORD
    *plVal.LONG
    *pulVal.LONG
    *pintVal.LONG
    *puintVal.LONG
    *pfltVal.FLOAT
    *pdblVal.DOUBLE
    *pboolVal.WORD
    *pdecVal.VARIANT_DECIMAL
    *pscode.LONG
    *pcyVal.QUAD
    *pdate.DOUBLE
    *pbstrVal.INTEGER
    *ppunkVal.INTEGER
    *ppdispVal.INTEGER
    *pparray.INTEGER
    *pvarVal.PROPVARIANT
  EndStructureUnion
EndStructure
c ya,
nco2k
If OSVersion() = #PB_OS_Windows_ME : End : EndIf
Post Reply