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.
127 lines
4.2 KiB
127 lines
4.2 KiB
/*++
|
|
|
|
Copyright (c) Microsoft Corporation. All rights reserved.
|
|
|
|
THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND,
|
|
EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED
|
|
WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
|
|
|
|
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
|
|
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_
|