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