Leaked source code of windows server 2003
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.
 
 
 
 
 
 

70 lines
2.3 KiB

/*-----------------------------------------------------------------------------
*
* File: wiautil.h
* Author: Samuel Clement (samclem)
* Date: Mon Aug 16 13:22:36 1999
*
* Copyright (c) 1999 Microsoft Corporation
*
* Description:
* This contains the declaration of the wia util functions
*
* History:
* 16 Aug 1999: Created.
*----------------------------------------------------------------------------*/
#ifndef _WIAUTIL_H_
#define _WIAUTIL_H_
// this is the structure of a string table. A string table is used to look
// up a string for a specified value. And to look up the value for a specified
// string. This supports assigning a string to range of numbers.
struct STRINGTABLE
{
DWORD dwStartRange;
DWORD dwEndRange;
WCHAR* pwchValue;
};
// define a new string table with name "x"
#define STRING_TABLE(x) \
static const STRINGTABLE x[] = { \
{ 0, 0, NULL },
// define a new string table with name "x" and the default value of "str"
#define STRING_TABLE_DEF( x, str ) \
static const STRINGTABLE x[] = { \
{ 0, 0, ( L ## str ) },
// add an entry to the string table.
#define STRING_ENTRY( s, str ) \
{ (s), (s), ( L ## str ) },
// Add a ranged entry to the string table
#define STRING_ENTRY2( s, e, str ) \
{ (s), (e), ( L ## str ) },
// end the string table
#define END_STRING_TABLE() \
{ 0, 0, NULL } \
};
// returns the string for the specified value, or the default
// value if not found. If no default was supplied then this
// returns NULL.
WCHAR* GetStringForVal( const STRINGTABLE* pStrTable, DWORD dwVal );
// this retrieves the desired property from the IWiaPropertyStorage, it will fill
// the variant passed it. It doesn't have to be initialized.
HRESULT GetWiaProperty( IWiaPropertyStorage* pStg, PROPID propid, PROPVARIANT* pvaProp );
// this will retrieve the desired property from the IWiaPropertyStorage and
// coherce the type to a BSTR and allocate one for the out param pbstrProp.
HRESULT GetWiaPropertyBSTR( IWiaPropertyStorage* pStg, PROPID propid, BSTR* pbstrProp );
// Conversion methods which copy a PROPVARIANT from a variant
// structure
HRESULT PropVariantToVariant( const PROPVARIANT* pvaProp, VARIANT* pvaOut );
HRESULT VariantToPropVariant( const VARIANT* pvaIn, PROPVARIANT* pvaProp );
#endif //_WIAUTIL_H_