124 lines
3.8 KiB
C
124 lines
3.8 KiB
C
|
/*++
|
||
|
|
||
|
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_
|