|
|
/*++
Copyright (c) Microsoft Corporation. All rights reserved.
Module Name:
faxext.h
Abstract:
Declarations of fax extension configuration and notification functions.
--*/
#ifndef _FAX_EXT_H_
#define _FAX_EXT_H_
#if _MSC_VER > 1000
#pragma once
#endif
#ifdef __cplusplus
extern "C" { #endif
/************************************
* * * Extension configuration data * * * ************************************/
typedef enum { DEV_ID_SRC_FAX, // Device id is generated by the fax server of EFSP
DEV_ID_SRC_TAPI // Device id is generated by a TAPI TSP (of FSP).
} FAX_ENUM_DEVICE_ID_SOURCE;
//
// Prototype of FaxExtGetData
//
DWORD FaxExtGetData ( DWORD dwDeviceId, // Device id (0 = No device)
FAX_ENUM_DEVICE_ID_SOURCE DevIdSrc, // The source of the device id
LPCWSTR lpcwstrDataGUID,// GUID of data
LPBYTE *ppData, // (Out) Pointer to allocated data
LPDWORD lpdwDataSize // (Out) Pointer to data size
); typedef DWORD (CALLBACK *PFAX_EXT_GET_DATA) (DWORD, FAX_ENUM_DEVICE_ID_SOURCE, LPCWSTR, LPBYTE *, LPDWORD);
//
// Prototype of FaxExtSetData
//
DWORD FaxExtSetData ( HINSTANCE hInst, // Instance of calling extension
DWORD dwDeviceId, // Device id (0 = No device)
FAX_ENUM_DEVICE_ID_SOURCE DevIdSrc, // The source of the device id
LPCWSTR lpcwstrDataGUID,// GUID of data
LPBYTE pData, // Pointer to data
DWORD dwDataSize // Data size
); typedef DWORD (CALLBACK *PFAX_EXT_SET_DATA) (HINSTANCE, DWORD, FAX_ENUM_DEVICE_ID_SOURCE, LPCWSTR, LPBYTE, DWORD);
HRESULT FaxExtConfigChange ( DWORD dwDeviceId, // The device for which configuration has changed
LPCWSTR lpcwstrDataGUID, // Configuration name
LPBYTE lpData, // New configuration data
DWORD dwDataSize // Size of new configuration data
); typedef HRESULT (WINAPI *PFAX_EXT_CONFIG_CHANGE) (DWORD, LPCWSTR, LPBYTE, DWORD);
//
// Prototype of FaxExtRegisterForEvents
//
HANDLE FaxExtRegisterForEvents ( HINSTANCE hInst, // Instance of calling extension
DWORD dwDeviceId, // Device id (0 = No device)
FAX_ENUM_DEVICE_ID_SOURCE DevIdSrc, // The source of the device id
LPCWSTR lpcwstrDataGUID,// GUID of data
PFAX_EXT_CONFIG_CHANGE lpConfigChangeCallback ); typedef HANDLE (CALLBACK *PFAX_EXT_REGISTER_FOR_EVENTS) (HINSTANCE, DWORD, FAX_ENUM_DEVICE_ID_SOURCE, LPCWSTR, PFAX_EXT_CONFIG_CHANGE);
//
// Prototype of FaxExtUnregisterForEvents
//
DWORD FaxExtUnregisterForEvents ( HANDLE hNotification ); typedef DWORD (CALLBACK *PFAX_EXT_UNREGISTER_FOR_EVENTS) (HANDLE);
//
// Prototype of FaxExtFreeBuffer
//
VOID FaxExtFreeBuffer ( LPVOID lpvBuffer ); typedef VOID (CALLBACK *PFAX_EXT_FREE_BUFFER) (LPVOID);
//
// The extension should implement and export the following function:
//
HRESULT FaxExtInitializeConfig ( PFAX_EXT_GET_DATA, // Pointer to FaxExtGetExtensionData in service
PFAX_EXT_SET_DATA, // Pointer to FaxExtSetExtensionData in service
PFAX_EXT_REGISTER_FOR_EVENTS, // Pointer to FaxExtRegisterForExtensionEvents in service
PFAX_EXT_UNREGISTER_FOR_EVENTS, // Pointer to FaxExtUnregisterForExtensionEvents in service
PFAX_EXT_FREE_BUFFER // Pointer to FaxExtFreeBuffer in service
); typedef HRESULT (WINAPI *PFAX_EXT_INITIALIZE_CONFIG) (PFAX_EXT_GET_DATA, PFAX_EXT_SET_DATA, PFAX_EXT_REGISTER_FOR_EVENTS, PFAX_EXT_UNREGISTER_FOR_EVENTS, PFAX_EXT_FREE_BUFFER);
#ifdef __cplusplus
} #endif
#endif // _FAX_EXT_H_
|