1 {******************************************************************************} 2 { } 3 { Fax Config and Notififcation Extensions API interface unit for Object Pascal } 4 { } 5 { Portions created by Microsoft are Copyright (C) 1995-2001 Microsoft } 6 { Corporation. All Rights Reserved. } 7 { } 8 { The original file is: faxext.h, released November 2001. The original Pascal } 9 { code is: FaxExt.pas, released April 2002. The initial developer of the } 10 { Pascal code is Marcel van Brakel (brakelm att chello dott nl). } 11 { } 12 { Portions created by Marcel van Brakel are Copyright (C) 1999-2001 } 13 { Marcel van Brakel. All Rights Reserved. } 14 { } 15 { Obtained through: Joint Endeavour of Delphi Innovators (Project JEDI) } 16 { } 17 { You may retrieve the latest version of this file at the Project JEDI } 18 { APILIB home page, located at http://jedi-apilib.sourceforge.net } 19 { } 20 { The contents of this file are used with permission, subject to the Mozilla } 21 { Public License Version 1.1 (the "License"); you may not use this file except } 22 { in compliance with the License. You may obtain a copy of the License at } 23 { http://www.mozilla.org/MPL/MPL-1.1.html } 24 { } 25 { Software distributed under the License is distributed on an "AS IS" basis, } 26 { WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for } 27 { the specific language governing rights and limitations under the License. } 28 { } 29 { Alternatively, the contents of this file may be used under the terms of the } 30 { GNU Lesser General Public License (the "LGPL License"), in which case the } 31 { provisions of the LGPL License are applicable instead of those above. } 32 { If you wish to allow use of your version of this file only under the terms } 33 { of the LGPL License and not to allow others to use your version of this file } 34 { under the MPL, indicate your decision by deleting the provisions above and } 35 { replace them with the notice and other provisions required by the LGPL } 36 { License. If you do not delete the provisions above, a recipient may use } 37 { your version of this file under either the MPL or the LGPL License. } 38 { } 39 { For more information about the LGPL: http://www.gnu.org/copyleft/lesser.html } 40 { } 41 {******************************************************************************} 42 43 // $Id: JwaFaxExt.pas,v 1.9 2007/09/05 11:58:49 dezipaitor Exp $ 44 45 {$IFNDEF JWA_OMIT_SECTIONS} 46 unit JwaFaxExt; 47 48 {$WEAKPACKAGEUNIT} 49 {$ENDIF JWA_OMIT_SECTIONS} 50 51 {$HPPEMIT ''} 52 {$HPPEMIT '#include "faxext.h"'} 53 {$HPPEMIT ''} 54 55 {$IFNDEF JWA_OMIT_SECTIONS} 56 {$I jediapilib.inc} 57 58 interface 59 60 uses 61 JwaWinType; 62 {$ENDIF JWA_OMIT_SECTIONS} 63 64 65 66 {$IFNDEF JWA_IMPLEMENTATIONSECTION} 67 68 {************************************ 69 * * 70 * Extension configuration data * 71 * * 72 ************************************} 73 74 type 75 FAX_ENUM_DEVICE_ID_SOURCE = ( 76 DEV_ID_SRC_FAX, // Device id is generated by the fax server 77 DEV_ID_SRC_TAPI); // Device id is generated by a TAPI TSP (of FSP). 78 {$EXTERNALSYM FAX_ENUM_DEVICE_ID_SOURCE} 79 TFaxEnumDeviceIdSource = FAX_ENUM_DEVICE_ID_SOURCE; 80 81 // 82 // Prototype of FaxExtGetData 83 // 84 85 type wDeviceIdnull86 PFAX_EXT_GET_DATA = function(dwDeviceId: DWORD; DevIdSrc: FAX_ENUM_DEVICE_ID_SOURCE; lpcwstrDataGUID: LPCWSTR; out ppData: LPBYTE; lpdwDataSize: LPDWORD): DWORD; stdcall; 87 {$EXTERNALSYM PFAX_EXT_GET_DATA} 88 89 // 90 // Prototype of FaxExtSetData 91 // 92 Instnull93 PFAX_EXT_SET_DATA = function(hInst: HINST; dwDeviceId: DWORD; DevIdSrc: FAX_ENUM_DEVICE_ID_SOURCE; lpcwstrDataGUID: LPCWSTR; pData: LPBYTE; dwDataSize: DWORD): DWORD; stdcall; 94 {$EXTERNALSYM PFAX_EXT_SET_DATA} 95 wDeviceIdnull96 PFAX_EXT_CONFIG_CHANGE = function(dwDeviceId: DWORD; lpcwstrDataGUID: LPCWSTR; lpData: LPBYTE; dwDataSize: DWORD): HRESULT; stdcall; 97 {$EXTERNALSYM PFAX_EXT_CONFIG_CHANGE} 98 99 // 100 // Prototype of FaxExtRegisterForEvents 101 // 102 Instnull103 PFAX_EXT_REGISTER_FOR_EVENTS = function(hInst: HINST; dwDeviceId: DWORD; DevIdSrc: FAX_ENUM_DEVICE_ID_SOURCE; lpcwstrDataGUID: LPCWSTR; lpConfigChangeCallback: PFAX_EXT_CONFIG_CHANGE): HANDLE; stdcall; 104 {$EXTERNALSYM PFAX_EXT_REGISTER_FOR_EVENTS} 105 106 // 107 // Prototype of FaxExtUnregisterForEvents 108 // 109 Notificationnull110 PFAX_EXT_UNREGISTER_FOR_EVENTS = function(hNotification: HANDLE): DWORD; stdcall; 111 {$EXTERNALSYM PFAX_EXT_UNREGISTER_FOR_EVENTS} 112 113 // 114 // Prototype of FaxExtFreeBuffer 115 // 116 117 PFAX_EXT_FREE_BUFFER = procedure(lpvBuffer: LPVOID); stdcall; 118 {$EXTERNALSYM PFAX_EXT_FREE_BUFFER} 119 120 // 121 // The extension should implement and export the following function: 122 // 123 124 PFAX_EXT_INITIALIZE_CONFIG = function( 125 pFaxExtGetData: PFAX_EXT_GET_DATA; 126 pFaxExtSetData: PFAX_EXT_SET_DATA; 127 pFaxExtRegisterForEvents: PFAX_EXT_REGISTER_FOR_EVENTS; 128 pFaxExtUnregisterForEvents: PFAX_EXT_UNREGISTER_FOR_EVENTS; 129 pFaxExtFreeBuffer: PFAX_EXT_FREE_BUFFER): HRESULT; stdcall; 130 {$EXTERNALSYM PFAX_EXT_INITIALIZE_CONFIG} 131 132 {$ENDIF JWA_IMPLEMENTATIONSECTION} 133 134 135 136 {$IFNDEF JWA_OMIT_SECTIONS} 137 implementation 138 //uses ... 139 {$ENDIF JWA_OMIT_SECTIONS} 140 141 142 143 {$IFNDEF JWA_INTERFACESECTION} 144 //your implementation here 145 {$ENDIF JWA_INTERFACESECTION} 146 147 148 149 {$IFNDEF JWA_OMIT_SECTIONS} 150 end. 151 {$ENDIF JWA_OMIT_SECTIONS} 152