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.
 
 
 
 
 
 

54 lines
2.4 KiB

#ifndef __PSHELPER_H_INCLUDED
#define __PSHELPER_H_INCLUDED
#include <windows.h>
#include "simstr.h"
#include "simarray.h"
namespace PropStorageHelpers
{
struct CPropertyRange
{
LONG nMin;
LONG nMax;
LONG nStep;
};
class CPropertyId
{
private:
CSimpleStringWide m_strPropId;
PROPID m_nPropId;
bool m_bIsStringPropId;
public:
CPropertyId(void);
CPropertyId( const CSimpleStringWide &strPropId );
CPropertyId( PROPID propId );
CPropertyId( const CPropertyId &other );
~CPropertyId(void);
CPropertyId &operator=( const CPropertyId &other );
CSimpleStringWide PropIdString(void) const;
PROPID PropIdNumber(void) const;
bool IsString(void) const;
};
bool GetProperty( IUnknown *pIUnknown, const CPropertyId &propertyName, PROPVARIANT &pPropVar );
bool GetProperty( IUnknown *pIUnknown, const CPropertyId &propertyName, CSimpleStringWide &strPropertyValue );
bool GetProperty( IUnknown *pIUnknown, const CPropertyId &propertyName, GUID &guidValue );
bool GetProperty( IUnknown *pIUnknown, const CPropertyId &propertyName, LONG &nValue );
bool SetProperty( IUnknown *pIUnknown, const CPropertyId &propertyName, PROPVARIANT &pPropVar, PROPID nNameFirst=2 );
bool SetProperty( IUnknown *pIUnknown, const CPropertyId &propertyName, LONG nValue, PROPID nNameFirst=2 );
bool SetProperty( IUnknown *pIUnknown, const CPropertyId &propertyName, const GUID &guidValue, PROPID nNameFirst=2 );
bool GetPropertyAttributes( IUnknown *pIUnknown, const CPropertyId &propertyName, ULONG &nAccessFlags, PROPVARIANT &pvAttributes );
bool GetPropertyAttributes( IUnknown *pIUnknown, const CPropertyId &propertyName, PROPVARIANT &pvAttributes );
bool GetPropertyAccessFlags( IUnknown *pIUnknown, const CPropertyId &propertyName, ULONG &nAccessFlags );
bool GetPropertyRange( IUnknown *pIUnknown, const CPropertyId &propertyName, CPropertyRange &propertyRange );
bool GetPropertyList( IUnknown *pIUnknown, const CPropertyId &propertyName, CSimpleDynamicArray<LONG> &aProp );
bool GetPropertyList( IUnknown *pIUnknown, const CPropertyId &propertyName, CSimpleDynamicArray<GUID> &aProp );
bool GetPropertyFlags( IUnknown *pIUnknown, const CPropertyId &propertyName, LONG &nFlags );
bool IsReadOnlyProperty( IUnknown *pIUnknown, const CPropertyId &propertyName );
}
#endif //__PSHELPER_H_INCLUDED