MS Property Set Spec.

on Michael Vorburger's Personal Homepage
Home Personal Projects alpha ware

 

The information in this document has been compiled from Microsoft Documentation (Win32 SDK) by Michael Vorburger <mike@vorburger.ch [E-MAIL]>. Feel free to use it for your own purpose. However, if you plan on implementing something similar to SumInf, you might want to contact contact alpha ware. (More Info about SumInf)

1. HEADER

typedef struct tagPROPERTYSETHEADER 
{ 
	// Header 
	WORD  wByteOrder ;  // Always 0xFFFE 
	WORD  wFormat ;     // Always 0 
	WORD  dwOSVer ;     // System version 
	CLSID  clsID ;      // Application CLSID 
	DWORD  reserved ;   // Should be 1 
} PROPERTYSETHEADER; 

2. FORMATID/offset

typedef struct tagFORMATIDOFFSET 
{ 
	FMTID  fmtid ;     // The name of the section. 
	DWORD  dwOffset ;  // The offset for the section FROM START OF STREAM
} FORMATIDOFFSET; 
 
// For example, the FMTID for the OLE Document Summary Information 
// property set is: F29F85E0-4FF9-1068-AB91-08002B27B3D9 

3a. Section containing actual values

Offsets are the distance from the start of the section to the start of the property (type, value) pair. This allows a section to be copied as an array of bytes without any translation of internal structure. The following pseudo-structures illustrate the format of a section:

typedef struct tagPROPERTYSECTIONHEADER 
{ 
	DWORD  cbSection ;    // Size of Section 
	DWORD  cProperties ;  // Count of Properties in section 
} PROPERTYSECTIONHEADER; 

3b. _Array_ of names & offsets

typedef struct tagPROPERTYIDOFFSET 
{ 
	DWORD  propid;   // Name of property 
	DWORD  dwOffset; // Offset from start of section to that property 
} PROPERTYIDOFFSET; 

3c. _Array_ of types & values

typedef struct tag SERIALIZEDPROPERTYVALUE 
{ 
	DWORD  dwType;  // Property Type 
	BYTE  rgb[];    // Property Value 
} SERIALIZEDPROPERTYVALUE ; 
 

Go to TOP of page
Page last modified on 03-Mai-98
© Copyright 1998-99 homepage@vorburger.ch [E-MAIL]

Site hosted by
ItaWeb, Peruggia (Italy)

KISSfp FrontPage Add-On
KISSfp FrontPage

  URL: http://www.vorburger.ch/projects/suminfo/mspropset.html