Source code of Windows XP (NT5)
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
//
// Copyright 2001 - Microsoft Corporation
//
//
// Created By:
// Geoff Pease (GPease) 23-JAN-2001
//
// Maintained By:
// Geoff Pease (GPease) 23-JAN-2001
//
#pragma once
static enum PROPTREE_IMAGE_INDEX { PTI_NULL = 0 , PTI_PROP_READONLY = 3 , PTI_PROP_READWRITE = 4 , PTI_MULTIPROP_READONLY = 5 , PTI_MULTIPROP_READWRITE = 6 };
class CPropertyCacheItem { private: // data
CPropertyCacheItem * _pNext; // pointer to next property - CPropertyCache is responsible for freeing this member.
BOOL _fReadOnly:1; // has this property been forced read-only?
BOOL _fDirty:1; // is the property value dirty?
BOOL _fMultiple:1; // does the property have mutliple values? (when mutliple docs are selected)
FMTID _fmtid; // format id
PROPID _propid; // property id
VARTYPE _vt; // variant type
UINT _uCodePage; // language code page of the property value
PROPVARIANT _propvar; // cache property value
ULONG _idxDefProp; // index into g_rgDefPropertyItems - if 0xFFFFFFFF, then the valid is invalid
IPropertyUI * _ppui; // shell's property UI helper.
WCHAR _wszTitle[ MAX_PATH ]; // property title - initialized when GetPropertyTitle() is called.
WCHAR _wszDesc[ MAX_PATH ]; // property description - initialized when GetPropertyDescription() is called.
WCHAR _wszValue[ MAX_PATH ]; // property value as a string - initialized when GetPropertyStringValue() is called.
WCHAR _wszHelpFile[ MAX_PATH ]; // property's help file - initialized when GetPropertyHelpInfo() is called.
DEFVAL * _pDefVals; // property state string table - initialized when GetStateStrings() is called.
static WCHAR _szMultipleString[ MAX_PATH ]; // String to display when multiple values have been found for the same property.
private: // methods
explicit CPropertyCacheItem( void ); ~CPropertyCacheItem( void ); HRESULT Init( void ); HRESULT FindDefPropertyIndex( void ); void EnsureMultipleStringLoaded( void );
public: // methods
static HRESULT CreateInstance( CPropertyCacheItem ** ppItemOut );
STDMETHOD( Destroy )( void );
STDMETHOD( SetPropertyUIHelper )( IPropertyUI * ppuiIn ); STDMETHOD( GetPropertyUIHelper )( IPropertyUI ** pppuiOut );
STDMETHOD( SetNextItem )( CPropertyCacheItem * pNextIn ); STDMETHOD( GetNextItem )( CPropertyCacheItem ** pNextOut );
STDMETHOD( SetFmtId )( const FMTID * pFmtIdIn ); STDMETHOD( GetFmtId )( FMTID * pfmtidOut );
STDMETHOD( SetPropId )( PROPID propidIn ); STDMETHOD( GetPropId )( PROPID * ppropidOut );
STDMETHOD( SetDefaultVarType )( VARTYPE vtIn ); STDMETHOD( GetDefaultVarType )( VARTYPE * pvtOut );
STDMETHOD( SetCodePage )( UINT uCodePageIn ); STDMETHOD( GetCodePage )( UINT * puCodePageOut );
STDMETHOD( MarkDirty )( void ); STDMETHOD( IsDirty )( void );
STDMETHOD( MarkReadOnly )( void ); STDMETHOD( MarkMultiple )( void );
STDMETHOD( GetPropertyValue )( PROPVARIANT ** ppvarOut ); STDMETHOD( GetPropertyTitle )( LPCWSTR * ppwszOut ); STDMETHOD( GetPropertyDescription )( LPCWSTR * ppwszOut ); STDMETHOD( GetPropertyHelpInfo )( LPCWSTR * ppwszFileOut, UINT * puHelpIDOut ); STDMETHOD( GetPropertyStringValue )( LPCWSTR * ppwszOut ); STDMETHOD( GetImageIndex )( int * piImageOut ); STDMETHOD( GetPFID )( const PFID ** ppPFIDOut ); STDMETHOD( GetControlCLSID )( CLSID * pclsidOut );
STDMETHOD( GetStateStrings )( DEFVAL ** ppDefValOut );
};
|