| Server IP : 209.209.40.120 / Your IP : 216.73.217.112 Web Server : Microsoft-IIS/10.0 System : Windows NT NEWWWW 10.0 build 17763 (Windows Server 2019) i586 User : NEWWWW$ ( 0) PHP Version : 8.3.30 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /Program Files (x86)/Windows Kits/10/Include/10.0.19041.0/um/ |
Upload File : |
/******************************************************************************
*
* (C) COPYRIGHT MICROSOFT CORP., 1998-1999
*
* TITLE: wiamdef.h
*
* VERSION: 2.0
*
* DATE: 28 July, 1999
*
* DESCRIPTION:
* Header file used to define WIA constants and globals.
* Note: This header was introduced first in Windows XP
*
******************************************************************************/
#ifndef _WIAMDEF_H_
#define _WIAMDEF_H_
#if (NTDDI_VERSION >= NTDDI_WINXP)
#pragma once
#include <winapifamily.h>
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
#define STRSAFE_NO_DEPRECATE
#include <strsafe.h>
//
// The following array of PROPIDs identifies properties that are ALWAYS
// present in a WIA_PROPERTY_CONTEXT. Drivers can specify additional
// properties when creating a property context with wiasCreatePropContext.
//
#ifdef STD_PROPS_IN_CONTEXT
#define NUM_STD_PROPS_IN_CONTEXT 13
PROPID WIA_StdPropsInContext[NUM_STD_PROPS_IN_CONTEXT] = {
WIA_IPA_DATATYPE,
WIA_IPA_DEPTH,
WIA_IPS_XRES,
WIA_IPS_XPOS,
WIA_IPS_XEXTENT,
WIA_IPA_PIXELS_PER_LINE,
WIA_IPS_YRES,
WIA_IPS_YPOS,
WIA_IPS_YEXTENT,
WIA_IPA_NUMBER_OF_LINES,
WIA_IPS_CUR_INTENT,
WIA_IPA_TYMED,
WIA_IPA_FORMAT,
};
#endif
#if (NTDDI_VERSION >= NTDDI_VISTA)
//
// drvAcquireItemData flags
//
#define WIA_MINIDRV_TRANSFER_ACQUIRE_CHILDREN 0x00000001
#define WIA_MINIDRV_TRANSFER_DOWNLOAD 0x00000002
#define WIA_MINIDRV_TRANSFER_UPLOAD 0x00000004
#endif //#if (NTDDI_VERSION >= NTDDI_VISTA)
//**************************************************************************
//
// WIA Service prototypes
//
//
// History:
//
// 4/27/1999 - Initial Version
//
//**************************************************************************
// Flag used by wiasGetImageInformation.
#define WIAS_INIT_CONTEXT 1
// Flag used by wiasDownSampleBuffer
#define WIAS_GET_DOWNSAMPLED_SIZE_ONLY 0x1
//
// IWiaMiniDrvService methods
//
#ifdef __cplusplus
extern "C" {
#endif
HRESULT _stdcall wiasCreateDrvItem(LONG lObjectFlags, BSTR bstrItemName, BSTR bstrFullItemName,
_Inout_ IWiaMiniDrv *pIMiniDrv, LONG cbDevSpecContext,
_Outptr_opt_result_bytebuffer_(cbDevSpecContext) BYTE **ppDevSpecContext, _Outptr_ IWiaDrvItem **ppIWiaDrvItem);
HRESULT _stdcall wiasReadMultiple(_In_ BYTE *pWiasContext, ULONG ulCount,
_In_reads_(ulCount) const PROPSPEC *ps, _Out_writes_(ulCount) PROPVARIANT *pv,
_Out_writes_opt_(ulCount) PROPVARIANT *pvOld);
HRESULT _stdcall wiasWriteMultiple(_In_ BYTE *pWiasContext, ULONG ulCount,
_In_reads_(ulCount) const PROPSPEC *ps, const PROPVARIANT *pv);
HRESULT _stdcall wiasWritePropBin(_In_ BYTE *pWiasContext, PROPID propid, LONG cbVal,
_In_reads_bytes_(cbVal) BYTE *pbVal);
HRESULT _stdcall wiasGetPropertyAttributes(_In_ BYTE *pWiasContext, LONG cPropSpec,
_In_reads_(cPropSpec) PROPSPEC *pPropSpec, ULONG *pulAccessFlags,
_Out_writes_(cPropSpec) PROPVARIANT *pPropVar);
HRESULT _stdcall wiasSetPropertyAttributes(_In_ BYTE *pWiasContext, LONG cPropSpec,
_In_reads_(cPropSpec) PROPSPEC *pPropSpec, _In_reads_(cPropSpec) ULONG *pulAccessFlags,
_Out_writes_(cPropSpec) PROPVARIANT *pPropVar);
HRESULT _stdcall wiasValidateItemProperties(_In_ BYTE *pWiasContext, ULONG nPropSpec,
_In_reads_(nPropSpec) const PROPSPEC *pPropSpec);
HRESULT _stdcall wiasCreatePropContext(ULONG cPropSpec, _In_reads_(cPropSpec) PROPSPEC *pPropSpec,
ULONG cProps, _In_reads_opt_(cProps) PROPID *pProps, _In_ WIA_PROPERTY_CONTEXT *pContext);
HRESULT _stdcall wiasGetImageInformation(_In_ BYTE *pWiasContext, LONG lFlags,
_Inout_ PMINIDRV_TRANSFER_CONTEXT pmdtc);
HRESULT _stdcall wiasWritePageBufToFile(_In_ PMINIDRV_TRANSFER_CONTEXT pmdtc);
HRESULT _stdcall wiasWritePageBufToStream(_In_ PMINIDRV_TRANSFER_CONTEXT pmdtc, _In_ IStream * pstream);
HRESULT _stdcall wiasWriteBufToFile(LONG lFlags, _In_ PMINIDRV_TRANSFER_CONTEXT pmdtc);
HRESULT _stdcall wiasReadPropStr(_In_ BYTE *pWiasContext, PROPID propid,
_Out_ BSTR *pbstr, _Out_opt_ BSTR *pbstrOld, BOOL bMustExist);
HRESULT _stdcall wiasReadPropLong(_In_ BYTE *pWiasContext, PROPID propid,
_Out_ LONG *plVal, _Out_opt_ LONG *plValOld, BOOL bMustExist);
HRESULT _stdcall wiasReadPropFloat(_In_ BYTE *pWiasContext, PROPID propid,
_Out_ FLOAT *pfVal, _Out_opt_ FLOAT *pfValOld, BOOL bMustExist);
HRESULT _stdcall wiasReadPropGuid(_In_ BYTE *pWiasContext, PROPID propid,
_Out_ GUID *pguidVal, _Out_opt_ GUID *pguidValOld, BOOL bMustExist);
HRESULT _stdcall wiasReadPropBin(_In_ BYTE *pWiasContext, PROPID propid,
_Out_ BYTE **ppbVal, _Out_opt_ BYTE **ppbValOld, BOOL bMustExist);
HRESULT _stdcall wiasWritePropStr(_In_ BYTE *pWiasContext, PROPID propid, _In_opt_ BSTR bstr);
HRESULT _stdcall wiasWritePropLong(_In_ BYTE *pWiasContext, PROPID propid, LONG lVal);
HRESULT _stdcall wiasWritePropFloat(_In_ BYTE *pWiasContext, PROPID propid, float fVal);
HRESULT _stdcall wiasWritePropGuid(_In_ BYTE *pWiasContext, PROPID propid, GUID guidVal);
HRESULT _stdcall wiasSetItemPropNames(_In_ BYTE *pWiasContext, LONG cItemProps,
_Inout_updates_(cItemProps) PROPID *ppId, _Inout_updates_(cItemProps) LPOLESTR *ppszNames);
HRESULT _stdcall wiasSetItemPropAttribs(_In_ BYTE *pWiasContext, LONG cPropSpec,
_In_reads_(cPropSpec) PROPSPEC *pPropSpec, _In_reads_(cPropSpec) PWIA_PROPERTY_INFO pwpi);
HRESULT _stdcall wiasSendEndOfPage(_In_ BYTE *pWiasContext,
LONG lPageCount, _Inout_ PMINIDRV_TRANSFER_CONTEXT pmdtc);
HRESULT _stdcall wiasGetItemType(_In_ BYTE *pWiasContext, _Out_ LONG *plType);
HRESULT _stdcall wiasGetDrvItem(_In_ BYTE *pWiasContext, _Out_ IWiaDrvItem **ppIWiaDrvItem);
HRESULT _stdcall wiasGetRootItem(_In_ BYTE *pWiasContext, _Out_ BYTE **ppWiasContext);
HRESULT _stdcall wiasSetValidFlag(_In_ BYTE* pWiasContext, PROPID propid, ULONG ulNom, ULONG ulValidBits);
HRESULT _stdcall wiasSetValidRangeLong(_In_ BYTE* pWiasContext, PROPID propid, LONG lMin, LONG lNom, LONG lMax, LONG lStep);
HRESULT _stdcall wiasSetValidRangeFloat(_In_ BYTE* pWiasContext, PROPID propid, FLOAT fMin, FLOAT fNom, FLOAT fMax, FLOAT fStep);
HRESULT _stdcall wiasSetValidListLong(_In_ BYTE *pWiasContext, PROPID propid, ULONG ulCount, LONG lNom, LONG *plValues);
HRESULT _stdcall wiasSetValidListFloat(_In_ BYTE *pWiasContext, PROPID propid, ULONG ulCount, FLOAT fNom, _In_reads_(ulCount) FLOAT *pfValues);
HRESULT _stdcall wiasSetValidListGuid(_In_ BYTE *pWiasContext, PROPID propid, ULONG ulCount, GUID guidNom, _In_reads_(ulCount) GUID *pguidValues);
HRESULT _stdcall wiasSetValidListStr(_In_ BYTE *pWiasContext, PROPID propid, ULONG ulCount, BSTR bstrNom, _In_reads_(ulCount) BSTR *bstrValues);
HRESULT _stdcall wiasFreePropContext(_Inout_ WIA_PROPERTY_CONTEXT *pContext);
HRESULT _stdcall wiasIsPropChanged(PROPID propid, _In_ WIA_PROPERTY_CONTEXT *pContext, _Out_ BOOL *pbChanged);
HRESULT _stdcall wiasSetPropChanged(PROPID propid, _In_ WIA_PROPERTY_CONTEXT *pContext, BOOL bChanged);
HRESULT _stdcall wiasGetChangedValueLong(_In_ BYTE *pWiasContext, _In_ WIA_PROPERTY_CONTEXT *pContext,
BOOL bNoValidation, PROPID propID, _Out_ WIAS_CHANGED_VALUE_INFO *pInfo);
HRESULT _stdcall wiasGetChangedValueFloat(_In_ BYTE *pWiasContext, _In_ WIA_PROPERTY_CONTEXT *pContext,
BOOL bNoValidation, PROPID propID, _Out_ WIAS_CHANGED_VALUE_INFO *pInfo);
HRESULT _stdcall wiasGetChangedValueGuid(_In_ BYTE *pWiasContext, _In_ WIA_PROPERTY_CONTEXT *pContext,
BOOL bNoValidation, PROPID propID, _Out_ WIAS_CHANGED_VALUE_INFO *pInfo);
HRESULT _stdcall wiasGetChangedValueStr(_In_ BYTE *pWiasContext, _In_ WIA_PROPERTY_CONTEXT *pContext,
BOOL bNoValidation, PROPID propID, _Out_ WIAS_CHANGED_VALUE_INFO *pInfo);
HRESULT _stdcall wiasGetContextFromName(_In_ BYTE *pWiasContext, LONG lFlags, _In_ BSTR bstrName, _Out_ BYTE **ppWiasContext);
HRESULT _stdcall wiasUpdateScanRect(_In_ BYTE *pWiasContext, _In_ WIA_PROPERTY_CONTEXT *pContext, LONG lWidth, LONG lHeight);
HRESULT _stdcall wiasUpdateValidFormat(_In_ BYTE *pWiasContext, _In_ WIA_PROPERTY_CONTEXT *pContext, _In_ IWiaMiniDrv *pIMiniDrv);
HRESULT _stdcall wiasGetChildrenContexts(_In_ BYTE *pParentContext, _Out_ ULONG *pulNumChildren,
_Out_writes_(*pulNumChildren) BYTE ***pppChildren);
HRESULT _stdcall wiasQueueEvent(_In_ BSTR bstrDeviceId, _In_ const GUID *pEventGUID, _In_opt_ BSTR bstrFullItemName);
VOID __cdecl wiasDebugTrace(_In_ HINSTANCE hInstance, _In_ LPCSTR pszFormat, ... );
VOID __cdecl wiasDebugError(_In_ HINSTANCE hInstance, _In_ LPCSTR pszFormat, ... );
VOID __stdcall wiasPrintDebugHResult(_In_ HINSTANCE hInstance, HRESULT hr );
BSTR __cdecl wiasFormatArgs(_In_ LPCSTR lpszFormat, ...);
HRESULT _stdcall wiasCreateChildAppItem(_In_ BYTE *pParentWiasContext, LONG lFlags,
_In_ BSTR bstrItemName, _In_ BSTR bstrFullItemName, _Out_ BYTE **ppWiasChildContext);
HRESULT _stdcall wiasCreateLogInstance(_In_ BYTE *pModuleHandle, _Out_ IWiaLogEx **ppIWiaLogEx);
HRESULT _stdcall wiasDownSampleBuffer(LONG lFlags, _Inout_ WIAS_DOWN_SAMPLE_INFO *pInfo);
HRESULT _stdcall wiasParseEndorserString(_In_ BYTE *pWiasContext, LONG lFlags,
_Out_opt_ WIAS_ENDORSER_INFO *pInfo, _Out_ BSTR *pOutputString);
#ifndef WIA_MAP_OLD_DEBUG
#if defined(_DEBUG) || defined(DBG) || defined(WIA_DEBUG)
#define WIAS_TRACE(x) wiasDebugTrace x
#define WIAS_ERROR(x) wiasDebugError x
#define WIAS_HRESULT(x) wiasPrintDebugHResult x
#define WIAS_ASSERT(x, y) \
if (!(y)) { \
WIAS_ERROR((x, (char*) TEXT("ASSERTION FAILED: %hs(%d): %hs"), __FILE__,__LINE__,#x)); \
NT_ASSERT(FALSE); \
}
#else
#define WIAS_TRACE(x)
#define WIAS_ERROR(x)
#define WIAS_HRESULT(x)
#define WIAS_ASSERT(x, y)
#endif
#define WIAS_LTRACE(pILog,ResID,Detail,Args) \
{ if ( pILog ) \
pILog->Log(WIALOG_TRACE, ResID, Detail, wiasFormatArgs Args);\
};
#define WIAS_LERROR(pILog,ResID,Args) \
{if ( pILog )\
pILog->Log(WIALOG_ERROR, ResID, WIALOG_NO_LEVEL, wiasFormatArgs Args);\
};
#define WIAS_LWARNING(pILog,ResID,Args) \
{if ( pILog )\
pILog->Log(WIALOG_WARNING, ResID, WIALOG_NO_LEVEL, wiasFormatArgs Args);\
};
#define WIAS_LHRESULT(pILog,hr) \
{if ( pILog )\
pILog->hResult(hr);\
};
//
// IWiaLog Defines
//
// Type of logging
#define WIALOG_TRACE 0x00000001
#define WIALOG_WARNING 0x00000002
#define WIALOG_ERROR 0x00000004
// level of detail for TRACE logging
#define WIALOG_LEVEL1 1 // Entry and Exit point of each function/method
#define WIALOG_LEVEL2 2 // LEVEL 1, + traces within the function/method
#define WIALOG_LEVEL3 3 // LEVEL 1, LEVEL 2, and any extra debugging information
#define WIALOG_LEVEL4 4 // USER DEFINED data + all LEVELS of tracing
#define WIALOG_NO_RESOURCE_ID 0
#define WIALOG_NO_LEVEL 0
//
// Entering / Leaving class
//
class CWiaLogProc {
private:
CHAR m_szMessage[MAX_PATH];
IWiaLog *m_pIWiaLog;
INT m_DetailLevel;
INT m_ResourceID;
public:
inline CWiaLogProc(IWiaLog *pIWiaLog, INT ResourceID, INT DetailLevel, _In_z_ CHAR *pszMsg) {
ZeroMemory(m_szMessage, sizeof(m_szMessage));
StringCchCopyA(m_szMessage, ARRAYSIZE(m_szMessage), pszMsg);
m_pIWiaLog = pIWiaLog;
m_DetailLevel = DetailLevel;
m_ResourceID = ResourceID;
WIAS_LTRACE(pIWiaLog,
ResourceID,
DetailLevel,
("%s, entering",m_szMessage));
}
inline ~CWiaLogProc() {
WIAS_LTRACE(m_pIWiaLog,
m_ResourceID,
m_DetailLevel,
("%s, leaving",m_szMessage));
}
};
class CWiaLogProcEx {
private:
CHAR m_szMessage[MAX_PATH];
IWiaLogEx *m_pIWiaLog;
INT m_DetailLevel;
INT m_ResourceID;
public:
inline CWiaLogProcEx(IWiaLogEx *pIWiaLog, INT ResourceID, INT DetailLevel, _In_z_ CHAR *pszMsg, LONG lMethodId = 0) {
UNREFERENCED_PARAMETER(lMethodId);
ZeroMemory(m_szMessage, sizeof(m_szMessage));
StringCchCopyA(m_szMessage, ARRAYSIZE(m_szMessage), pszMsg);
m_pIWiaLog = pIWiaLog;
m_DetailLevel = DetailLevel;
m_ResourceID = ResourceID;
WIAS_LTRACE(pIWiaLog,
ResourceID,
DetailLevel,
("%s, entering",m_szMessage));
}
inline ~CWiaLogProcEx() {
WIAS_LTRACE(m_pIWiaLog,
m_ResourceID,
m_DetailLevel,
("%s, leaving",m_szMessage));
}
};
#endif // WIA_MAP_OLD_DEBUG
#ifdef __cplusplus
}
#endif
#endif /* WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP) */
#pragma endregion
#endif //#ifdef (NTDDI_VERSION >= NTDDI_WINXP)
#endif // _WIAMDEF_H_