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.
 
 
 
 
 
 

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_