1 {******************************************************************************}
2 {                                                                              }
3 { Windows API interface Unit for Object Pascal                                 }
4 { Master file for Windows applications                                         }
5 {                                                                              }
6 { Portions created by Microsoft are Copyright (C) Microsoft Corporation.       }
7 {  All Rights Reserved.                                                        }
8 {                                                                              }
9 { The original Pascal code is: JwaWindows.pas, released September 2005.        }
10 { The initial developer of the Pascal code is                                  }
11 { Robert Marquardt (robert_marquardt att gmx dott de).                         }
12 {                                                                              }
13 { Portions created by Robert Marquardt are Copyright (C) 2005                  }
14 { Robert Marquardt. All Rights Reserved.                                       }
15 {                                                                              }
16 { Portions created by Christian Wimmer are Copyright (C) 2007                  }
17 { Christian Wimmer. All Rights Reserved.                                       }
18 {                                                                              }
19 { Obtained through: Joint Endeavour of Delphi Innovators (Project JEDI)        }
20 {                                                                              }
21 { You may retrieve the latest version of this file at the Project JEDI         }
22 { APILIB home page, located at http://jedi-apilib.sourceforge.net              }
23 {                                                                              }
24 { The contents of this file are used with permission, subject to the Mozilla   }
25 { Public License Version 1.1 (the "License"); you may not use this file except }
26 { in compliance with the License. You may obtain a copy of the License at      }
27 { http://www.mozilla.org/MPL/MPL-1.1.html                                      }
28 {                                                                              }
29 { Software distributed under the License is distributed on an "AS IS" basis,   }
30 { WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for }
31 { the specific language governing rights and limitations under the License.    }
32 {                                                                              }
33 { Alternatively, the contents of this file may be used under the terms of the  }
34 { GNU Lesser General Public License (the  "LGPL License"), in which case the   }
35 { provisions of the LGPL License are applicable instead of those above.        }
36 { If you wish to allow use of your version of this file only under the terms   }
37 { of the LGPL License and not to allow others to use your version of this file }
38 { under the MPL, indicate your decision by deleting  the provisions above and  }
39 { replace  them with the notice and other provisions required by the LGPL      }
40 { License.  If you do not delete the provisions above, a recipient may use     }
41 { your version of this file under either the MPL or the LGPL License.          }
42 {                                                                              }
43 { For more information about the LGPL: http://www.gnu.org/copyleft/lesser.html }
44 {                                                                              }
45 {******************************************************************************}
46 { Description: JwaWindows.pas has the goal to bring all windows conversion     }
47 {   units into one big unit. There is no need to include many units. Only one  }
48 {   unit - just this - one is needed. The resulted binary file will enlarge    }
49 {   about 100-300kb. This depends which parts are used. However it is also     }
50 {   possible to use all header units without this one. But you should not use  }
51 {   both versions at the same time. Delphi will fail on some cases because     }
52 {   types and so other things from two different units are completly different.}
53 {   You also have the possibility to remove some headers from the file by using}
54 {   compiler defines. For more information about that see the define comments  }
55 {   in the source.                                                             }
56 { HowTo: You can compile this file by creating a new package and just put this }
57 {   unit into it. You also have to include the "Common" path in search path    }
58 {   options. If you use the default tree folder structure just use "..\Common".}
59 {   You should also define output paths (e.g. "output7" for D7)                }
60 {                                                                              }
61 {   You can define compiler defines to change the compilation.                 }
62 {   Change the compiler defines in this source code or use the compiler        }
63 {   condition option in the package.                                           }
64 {   To use dynamic linked function use this:                                   }
65 {     PACKAGE_CONDITIONS;DYNAMIC_LINK;JWA_INCLUDE_SETUP_API                    }
66 {   For static linking just remove DYNAMIC_LINK .                              }
67 {   You can also define debug definitions and so on.                           }
68 {                                                                              }
69 { Warning: Compiling this unit needs a little bit more time than a delphi      }
70 {   programmer is used to. Therefore we recommend that you create a standalone }
71 {   JwaWindows.dcu file to use in projects and remove every search path to     }
72 {   the source codes except for debugger search path (so you can browse the    }
73 {   sources in the Delphi IDE). You can also create dynamic and static linked  }
74 {   JwaWindows.dcu seperatly and just change the search path. There can also   }
75 {   be a debug and a much smaller release version of the file.                 }
76 {   In conclusion there can be 4 JwaWindows.dcu versions:                      }
77 {    JwaWindows.dcu                                                            }
78 {       |- Static linked Debug version                                         }
79 {       |- Static linked Release version                                       }
80 {       |- Dynamic linked Debug version                                        }
81 {       |- Dynamic linked Release version                                      }
82 {   Be aware that dcu files are incompatible between delphi versions!          }
83 {                                                                              }
84 { Hints: If you get an error in a file you don't know or need you can remove   }
85 {   it from the include list in this code. You must do this twice: The first   }
86 {   is an interface include the second one is an implementation include.       }
87 {   It is very likely that this unit is needed by another one behind the       }
88 {   excluded one. In this case you must also exclude the other one.            }
89 {   Units at the beginning are mostly highly necessary for others. This        }
90 {   includes the first ten units. Errors in them won't probably be fixed easily}
91 {                                                                              }
92 {******************************************************************************}
93 
94 // $Id: JwaWindows.pas,v 1.20 2007/10/19 19:54:18 dezipaitor Exp $
95 
96 unit JwaWindows;
97 {
98 The following defines can be changed to remove headers from JwaWindows.
99 PACKAGE_CONDITIONS can be set in the options of a project
100 to disable these source code compiler defines and use
101 the one of the project.
102 }
103 
104 {$IFNDEF PACKAGE_CONDITIONS}
105 
106   {$DEFINE DYNAMIC_LINK}  //link most of functions dynamically ?
107 
108   {$DEFINE JWA_INCLUDE_SETUP_API} //include setup api ?
109 
110   {.$DEFINE JWA_WINSOCK_1} //use winsock.pas instead of winsock2.pas ?
111 
112   {-$DEFINE NOVCL}
113 
114   {The following directive includes the file jwaAdsTlb.pas
115    This unit needs the units OleServer, OleCtrls which do install
116    a windows handle in newer delphi versions.
117    This handle prevents SetThreadDesktop to work on the main thread. It
118    works on a new thread!
119 
120    ActiveX and COM is not supported by this lib on Freepascal yet!
121   }
122   {$DEFINE JWA_INCLUDE_JWAADSTLB}
123 
124   {$IFDEF FPC}
125     {$UNDEF JWA_INCLUDE_JWAADSTLB}
126     {$UNDEF JWA_INCLUDE_SETUP_API}
127     {$IFDEF CPU64}
128        // Dynamic linking code contains assembler blocks, which are specific
129        // to i386 and stdcall calling convention.
130        {$UNDEF DYNAMIC_LINK}
131     {$ENDIF}
132   {$ENDIF FPC}
133 {$ENDIF PACKAGE_CONDITIONS}
134 
135 
136 
137 {------ end of your business ------}
138 
139 
140 
141 {Exclude some units that are not compilabe under FPC
142   JwaSensEvts.pas - not supported
143   JwaWinFax.pas - partially fixed
144   JwaFaxDev.pas depends on jwaWinFax
145   JwaFaxExt.pas depends on jwaWinFax
146   JwaFaxMmc.pas depends on jwaWinFax
147   JwaFaxRoute.pas depends on jwaWinFax
148 }
149 {$IFDEF FPC}
150   {$DEFINE EXCLUDE_FPC}
151 {$ENDIF FPC}
152 
153 
154 {$WEAKPACKAGEUNIT}
155 
156 {The following defines should not be changed!}
157 {$DEFINE JWAWINDOWS_PAS}   //include mode activated
158 {$DEFINE JWA_INCLUDEMODE}  //exclude duplicate things - do not remove!
159 
160 
161 {$IFDEF DYNAMIC_LINK}
162 {$DEFINE RTDL} //native api dynamic link compiler define
163 {$ENDIF DYNAMIC_LINK}
164 
165 //exclude VCL from freepascal
166 {$IFDEF FPC}
167   {$DEFINE NOVCL}
168 {$ENDIF FPC}
169 
170 
171 //extra compiler options
172 {$I jedi.inc}
173 {$I jediapilib.inc} // paths here break FPC dir structure.
174 
175 
176 
177 interface
178 
179 
180 uses
181 {$IFDEF USE_DELPHI_TYPES}
182   Windows,
183 {$IFDEF HAS_UNIT_DATEUTILS}
184    DateUtils, //used by JwaWinSta.pas
185 {$ENDIF}
186 {$IFDEF JWA_INCLUDE_JWAADSTLB}
187 {The following units may not be included because of problems}
188 
189 //OleUnits creates window handles that prevents SetThreadDesktop to work
190   OleServer, //[warning] requires D5 or higher - required by jwaAdsTLB.pas
191   OleCtrls,
192 //JwaAdsTlb.pas and JwaDde.pas use these units and is therfore excluded
193 {$ENDIF JWA_INCLUDE_JWAADSTLB}
194 
195   {$ENDIF USE_DELPHI_TYPES}
196   SysUtils, // TODO
197 
198 {$IFDEF JWA_INCLUDE_SETUP_API}
199   CommCtrl, //used by SetupAPI.pas
200 {$ENDIF JWA_INCLUDE_SETUP_API}
201 
202   ActiveX, Classes, ComObj
203 {$IFNDEF NOVCL}
204   ,Graphics,
205   StdVCL
206 {$ENDIF}
207   ;
208 
209 
210 
211 {$IFNDEF COMPILER6_UP}
212   {$ifndef FPC}
213     type PCardinal = ^Cardinal;
214   {$ELSE}
215     {$ALIGN 4}
216   {$ENDIF}
217 {$ELSE}
218 {$ALIGN 4}
219 {$ENDIF}
220 
221 (* To include a new converted header file
222    you must use this structure:
223 
224   {$IFNDEF JWA_OMIT_SECTIONS}
225   unit XXXX;
226   interface
227   uses ...;
228 
229   {$ENDIF JWA_OMIT_SECTIONS}
230 
231 {$IFNDEF JWA_IMPLEMENTATIONSECTION}
232 your interface declarations here
233 {$ENDIF JWA_IMPLEMENTATIONSECTION}
234 
235 //!!!
236 //do no cross JWA_IMPLEMENTATIONSECTION or JWA_INTERFACESECTION with JWA_OMIT_SECTIONS here!
237   {$IFNDEF JWA_OMIT_SECTIONS}
238   implementation
239   uses ...
240   {$ENDIF JWA_OMIT_SECTIONS}
241 //!!!
242 //do no cross JWA_IMPLEMENTATIONSECTION or JWA_INTERFACESECTION with JWA_OMIT_SECTIONS here!
243 
244 {$IFNDEF JWA_INTERFACESECTION}
245 your implementation here
246 {$ENDIF JWA_INTERFACESECTION}
247 
248 {$IFNDEF JWA_OMIT_SECTIONS}
249 end.
250 {$ENDIF JWA_OMIT_SECTIONS}
251 
252 *)
253 
254 {$DEFINE JWA_OMIT_SECTIONS}
255 {$DEFINE JWA_INTERFACESECTION}
256 
257 {The following constant are version and compiler control instruments to be used
258 in source code.
259 }
260 const
261   //include mode active?
262   JWA_CONST_INCLUDEMODE = {$IFDEF JWA_INCLUDEMODE} True; {$ELSE} False; {$ENDIF}
263   {dynamic linking active? Warning: Not all function will be linked dynamically.
264    Some functions cannot be linked dynamically because of their
265   }
266   JWA_CONST_DYNAMICLINK = {$IFDEF DYNAMIC_LINK} True; {$ELSE} False; {$ENDIF}
267   {Like JWA_CONST_DYNAMICLINK but for native win api.}
268   JWA_CONST_RDTL        = {$IFDEF RTDL} True; {$ELSE} False; {$ENDIF}
269   {Use delphi types instead of our own.}
270   JWA_CONST_USE_DELPHI_TYPES  = {$IFDEF USE_DELPHI_TYPES} True; {$ELSE} False; {$ENDIF}
271   {Setup api headers included?}
272   JWA_CONST_INCLUDE_SETUP_API = {$IFDEF JWA_INCLUDE_SETUP_API} True; {$ELSE} False; {$ENDIF}
273   {Version of this header. Its not a CVS, SVN or compile version}
274   JWA_CONST_VERSION = '1.5';
275 
276 
277 
278 {Beginning of interface section.
279 These files must be in a correct order!
280 These files are included a second time in the implementation section!
281 }
282 
283 {$I JwaWinDLLNames.pas}
284 {$I JwaWinType.pas}
285 {$I JwaNtStatus.pas}
286 {$I JwaWinNT.pas}
287 {$I JwaWinBase.pas}
288 {$I JwaWinGDI.pas}
289 {$I JwaWinUser.pas}
290 {-$I JwaDde.pas} //do not include - see uses remarks
291 {$I JwaWinVer.pas}
292 {$I JwaWinError.pas}
293 {$I JwaExcpt.pas}
294 {$I JwaWinNLS.pas}
295 {$I JwaWinCon.pas}
296 {$I JwaReason.pas}
297 {$I JwaWinReg.pas}
298 {$I JwaWinNetWk.pas}
299 {$I JwaCdErr.pas}
300 { I JwaDDEml.pas} // TODO convert
301 {$I JwaDlgs.pas}
302 { I JwaMMSystem.pas} // TODO convert
303 {$I JwaNb30.pas}
304 { I JwaShellAPI.pas} // TODO convert
305 {$I JwaWinPerf.pas}
306 {$I JwaQos.pas}
307 {$I JwaQosSp.pas}
308 
309 {.$IFNDEF JWA_INCLUDE_JWAADSTLB}
310 type UUID = GUID;
311 {.$ENDIF JWA_INCLUDE_JWAADSTLB}
312 
313 {$I JwaNative.pas}
314 {The following files cannot be included because of unfixed errors and problems.
315 The list has no order!}
316 //no members
317 
318 {******** WINSOCK *******************}
319 
320 {$IFDEF JWA_WINSOCK_1}
321   {$I JwaWinSock.pas}
322 {$ELSE}
323   {$DEFINE JWA_WINSOCK_2}
324   {$I JwaWinSock2.pas}
325   {$I JwaWS2tcpip.pas}
326   {$I JwaWS2atm.pas}
327   {$I JwaWinDNS.pas}
328   {$I JwaNspAPI.pas}
329   {$I JwaWS2dnet.pas}
330   {$I JwaWS2spi.pas}
331   {$I JwaWSnetbs.pas}
332   {$I JwaWSNwLink.pas}
333   {$I JwaWSvns.pas}
334   {$I JwaAF_Irda.pas}
335   {$I JwaAtalkWsh.pas}
336   {$I JwaWShisotp.pas}
337   {$I JwaMSWSock.pas}
338   {$I JwaQosPol.pas}
339   {$I JwaMSTcpIP.pas}
340   {$I JwaQosName.pas}
341   {$I JwaIpExport.pas}
342   {$I JwaIpRtrMib.pas}
343   {$I JwaIpTypes.pas}
344   {$I JwaIpHlpApi.pas}
345   {$I JwaIcmpApi.pas}
346 {$ENDIF JWA_WINSOCK_1}
347 
348 
349 {******** various headers that must be included before rest *********}
350 
351 {$I JwaLpmApi.pas}
352 {$I JwaWinCrypt.pas}
353 {$I JwaRpc.pas}
354 {$I JwaWinEFS.pas}
355 { I JwaWinScard.pas} // TODO convert
356 { I JwaWinSpool.pas} // TODO convert
357 { I JwaOle2.pas} // TODO convert
358 { I JwaCommDlg.pas} // TODO convert
359 { I JwaStrAlign.pas} // TODO convert
360 {$I JwaWinSvc.pas}
361 { I JwaMCX.pas} // TODO convert
362 { I JwaIMM.pas} // TODO convert
363 {$I JwaAccCtrl.pas}
364 {$I JwaAclApi.pas}
365 {$I JwaSddl.pas}
366 {$I JwaLmErr.pas}
367 {$I JwaLmCons.pas}
368 {$I JwaNtSecApi.pas}
369 {$I JwaWinCred.pas}
370 {$I JwaWtsApi32.pas}
371 {$I JwaWinIoctl.pas}
372 {$I JwaWowNT32.pas}
373 {$I JwaSubAuth.pas}
374 {$I JwaSecurity.pas}
375 {$I JwaAclUI.pas}
376 {$I JwaImageHlp.pas}
377 
378 {******** Ads TLB ************}
379 {$IFDEF JWA_INCLUDE_JWAADSTLB}
380  {$DEFINE NOVCL}
381   {$I JwaAdsTLB.pas}
382  {$UNDEF NOVCL}
383 {$ENDIF JWA_INCLUDE_JWAADSTLB}
384 
385  {$I JwaActiveX.pas}
386  {$I JwaPrSht.pas}
387 
388 {$IFDEF JWA_INCLUDE_JWAADSTLB}
389  {$I JwaActiveDS.pas}
390  {$I JwaDSClient.pas}
391  {$I JwaDSAdmin.pas}
392  {$I JwaAdsProp.pas}
393  {$I JwaAdsHlp.pas}
394 {$ENDIF JWA_INCLUDE_JWAADSTLB}
395 
396 {$I JwaZMOUSE.pas}
397 {$I JwaUxTheme.pas}
398 {$I JwaWinCpl.pas}
399 {$I JwaWinLDAP.pas}
400 {$I JwaSvcGuid.pas}
401 {$I JwaSecExt.pas}
402 
403 {$IFDEF JWA_INCLUDE_JWAADSTLB}
404 {$I JwaSspi.pas}
405 {$ENDIF JWA_INCLUDE_JWAADSTLB}
406 
407 {******** LAN Manager **********}
408 {do not include JwaLM.pas!}
409 
410 {$DEFINE JWA_OMIT_SECTIONS_LM} //define special LM section omitting
411  {$I JwaLmAccess.pas}   // Access, Domain, Group and User classes
412  {$I JwaLmAlert.pas}    // Alerter
413  {$I JwaLmShare.pas}    // Connection, File, Session and Share classes
414  {$I JwaLmMsg.pas}      // Message class
415  {$I JwaLmRemUtl.pas}   // Remote Utility class
416  {$I JwaLmRepl.pas}     // Replicator class
417  {$I JwaLmServer.pas}   // Server class
418  {$I JwaLmSvc.pas}      // Service class
419  {$I JwaLmUse.pas}      // Use class
420  {$I JwaLmWkSta.pas}    // Workstation class
421  {$I JwaLmApiBuf.pas}   // NetApiBuffer class
422  {$I JwaLmErrLog.pas}   // NetErrorLog class
423  {$I JwaLmConfig.pas}   // NetConfig class
424  {$I JwaLmStats.pas}    // NetStats class
425  {$I JwaLmAudit.pas}    // NetAudit class
426  {$I JwaLmJoin.pas}     // NetJoinDomain class
427  {$I JwaLmUseFlg.pas}
428  {$I JwaLmAt.pas}
429  {$I JwaLmDFS.pas}
430  {$I JwaLmSName.pas}
431 
432 {******** the rest **********}
433 
434 {$I JwaNetSh.pas}
435 {$I JwaNtDdPar.pas}
436 {$I JwaSchedule.pas}
437 
438 {$IFDEF JWA_INCLUDE_JWAADSTLB}
439 {$I JwaNtQuery.pas}
440 {$I JwaRpcDce.pas}
441 {$I JwaNtDsApi.pas}
442 {$ENDIF JWA_INCLUDE_JWAADSTLB}
443 
444 {$I JwaNtDsbCli.pas}
445 {$I JwaNtDsBMsg.pas}
446 {$I JwaNtLDAP.pas}
447 {$I JwaPsApi.pas}
448 {$I JwaBitsMsg.pas}
449 {$I JwaBits.pas}
450 {$I JwaErrorRep.pas}
451 {$I JWaBthSdpDef.pas}
452 {$I JwaBluetoothAPIs.pas}
453 {$I JwaBtHDef.pas}
454   {$I JwaWs2Bth.pas} //depends JwaBtHDef.pas
455 {$I JwaCryptUIApi.pas}
456 {$I JwaCpl.pas}
457 {$I JwaCplext.pas}
458 {$I JwaColorDlg.pas}
459 {$I JwaIisCnfg.pas}
460 {$I JwaIAdmExt.pas}
461 {$I JwaMsi.pas}
462 {$I JwaMsiDefs.pas}
463 {$I JwaMsiQuery.pas}
464 {$I JwaDSGetDC.pas}
465 {$I JwaDskQuota.pas}
466 {$I JwaCmnQuery.pas}
467 {$I JwaDSQuery.pas}
468 {$I JwaDSRole.pas}
469 {$I JwaDsSec.pas}
470 {$I JwaDbt.pas}
471 {$I JwaDhcpCSDK.pas}
472 {$I JwaDhcpSSDK.pas}
473 {$I JwaDhcpsApi.pas}
474 {$I JwaWSipx.pas}
475 {$I JwaWsrm.pas}
476 {$I JwaWPTypes.pas}
477 {$I JwaWPWizMsg.pas}
478 {$I JwaHtmlGuid.pas}
479 {$I JwaHtmlHelp.pas}
480 {$I JwaHhError.pas}
481 {$I JwaRegStr.pas}
482 {$I JwaPdh.pas}
483 {$I JwaProfInfo.pas}
484 {$I JwaWbemCli.pas}
485 {$I JwaUserEnv.pas}
486 {$I JwaWPApiMsg.pas}
487 {$I JwaWPApi.pas}
488 {$I JwaWPSpiHlp.pas}
489 {$I JwaWPPstMsg.pas}
490 {$I JwaWPFtpMsg.pas}
491 {$I JwaWPCrsMsg.pas}
492 {$I JwaAdtGen.pas}
493 {$I JwaAdssts.pas}
494 {$I JwaAdsnms.pas}
495 {$I JwaAdsErr.pas}
496 {$I JwaAdsDb.pas}
497 {$I JwaAuthz.pas}
498 {$I JwaAuthif.pas}
499 {$I JwaWinAble.pas}
500 {$I JwaWinBer.pas}
501 {.$IFNDEF EXCLUDE_FPC}
502   {$I JwaWinFax.pas}
503 {.$ENDIF EXCLUDE_FPC}
504 {$I JwaWinResrc.pas}
505 {$I JwaWinSafer.pas}
506 {$I JwaWinWlx.pas}
507 {$I JwaWmiStr.pas}
508 {$I JwaWowNT16.pas}
509 {$I JwaSens.pas}
510 {$I JwaSensAPI.pas}
511 {$IFNDEF FPC}
512  {$I JwaSensEvts.pas}
513 {$ENDIF FPC}
514 {$I JwaSfc.pas}
515 {$I JwaShlGuid.pas}
516 {$I JwaSisBkUp.pas}
517 {$I JwaSisBkUp.pas}
518 {$I JwaSnmp.pas}
519 {$I JwaSpOrder.pas}
520 {$I JwaSrRestorePtApi.pas}
521 {$I JwaTlHelp32.pas}
522 {$I JwaTmSchema.pas}
523 {$I JwaTraffic.pas}
524 {$I JwaSceSvc.pas}
525 {$I JwaSchemaDef.pas}
526 {$I JwaObjSel.pas}
527 {$I JwaPatchApi.pas}
528 {$I JwaPatchWiz.pas}
529 {$I JwaPbt.pas}
530 {$I JwaPdhMsg.pas}
531 {$I JwaPowrProf.pas}
532 {$I JwaProtocol.pas}
533 
534 {$IFDEF JWA_INCLUDE_JWAADSTLB}
535 {$I JwaRpcASync.pas}
536 {$I JwaRpcNsi.pas}
537 {$ENDIF JWA_INCLUDE_JWAADSTLB}
538 
539 {$I JwaRpcNtErr.pas}
540 {$I JwaRpcSsl.pas}
541 {$I JwaMciAvi.pas}
542 {$I JwaMprError.pas}
543 {$I JwaMsTask.pas}
544 {$I JwaCardErr.pas}
545 {.$IFNDEF EXCLUDE_FPC}
546   {$I JwaFaxDev.pas}
547   {$I JwaFaxExt.pas}
548   {$I JwaFaxMmc.pas}
549   {$I JwaFaxRoute.pas}
550 {.$ENDIF EXCLUDE_FPC}
551 
552 {$I JwaGPEdit.pas}
553 {$I JwaIAccess.pas}
554 {$I JwaImapi.pas}
555 {$I JwaImapiError.pas}
556 {$I JwaIme.pas}
557 {$I JwaBits1_5.pas}
558 {$I JwaIoEvent.pas}
559 {$I JwaIpIfCons.pas}
560 {$I JwaIpInfoId.pas}
561 {$I JwaIsGuids.pas}
562 {$I JwaIssPer16.pas}
563 {$I JwaLoadPerf.pas}
564 {$I JwaBatClass.pas}
565 {$I JwaBLBErr.pas}
566 {$I JwaBugCodes.pas}
567 
568 {$IFDEF JWA_INCLUDE_JWAADSTLB}
569 {$I JwaBitscfg.pas}
570 {$ENDIF JWA_INCLUDE_JWAADSTLB}
571 
572 
573 
574 {$DEFINE JWA_INCLUDEMODE}
575 {$IFDEF COMPILER6_UP}
576  {$I JwaWinSta.pas}
577 {$ENDIF}
578 {$IFDEF FPC}
579  {$I JwaWinSta.pas}
580 {$ENDIF}
581 
582 {.$I JwaWinternl.pas}
583 
584 {$I ModuleLoader.pas}
585 {$IFDEF JWA_INCLUDE_SETUP_API}
586 {$DEFINE SETUPAPI_LINKONREQUEST}
587 {If the compiler cannot find "SaCMAPI" its
588 because it should be "Setup and Config Manager API".
589 But the compiler cannot include files with spaces in it.
590 Simply hard link or copy the following files into the new folder.
591 }
592 {$I ..\SaCMAPI\SetupApi.pas}
593 {$I ..\SaCMAPI\Cfg.pas}
594 {$I ..\SaCMAPI\CfgMgr32.pas}
595 {$ENDIF JWA_INCLUDE_SETUP_API}
596 
597 {$UNDEF JWA_INTERFACESECTION}
598 
599 {$UNDEF JWA_OMIT_SECTIONS}
600 
601 implementation
602 
603 {$DEFINE JWA_OMIT_SECTIONS}
604 {$DEFINE JWA_IMPLEMENTATIONSECTION}
605 
606 {Implementation section.
607 These files must be in a correct order!
608 }
609 
610 {$I JwaWinDLLNames.pas}
611 {$I JwaWinType.pas}
612 {$I JwaNtStatus.pas}
613 {$I JwaWinNT.pas}
614 {$I JwaWinBase.pas}
615 {$I JwaWinGDI.pas}
616 {$I JwaWinUser.pas}
617 {-$I JwaDde.pas} //do not include - see uses remarks
618 {$I JwaWinVer.pas}
619 {$I JwaWinError.pas}
620 {$I JwaExcpt.pas}
621 {$I JwaWinNLS.pas}
622 {$I JwaWinCon.pas}
623 {$I JwaReason.pas}
624 {$I JwaWinReg.pas}
625 {$I JwaWinNetWk.pas}
626 {$I JwaCdErr.pas}
627 { I JwaDDEml.pas} // TODO convert
628 {$I JwaDlgs.pas}
629 { I JwaMMSystem.pas} // TODO convert
630 {$I JwaNb30.pas}
631 { I JwaShellAPI.pas} // TODO convert
632 {$I JwaWinPerf.pas}
633 {$I JwaQos.pas}
634 {$I JwaQosSp.pas}
635 
636 {$I JwaNative.pas}
637 
638 {The following files cannot be included because of unfixed errors and problems.
639 The list has no order!}
640 //no members
641 
642 
643 {******** WINSOCK *******************}
644 
645 {$IFDEF JWA_WINSOCK_1}
646   {$I JwaWinSock.pas}
647   {$ELSE}
648   {$DEFINE JWA_WINSOCK_2}
649   {$I JwaWinSock2.pas}
650   {$I JwaWS2tcpip.pas}
651   {$I JwaWS2atm.pas}
652   {$I JwaWinDNS.pas}
653   {$I JwaNspAPI.pas}
654   {$I JwaWS2dnet.pas}
655   {$I JwaWS2spi.pas}
656   {$I JwaWSnetbs.pas}
657   {$I JwaWSNwLink.pas}
658   {$I JwaWSvns.pas}
659   {$I JwaAF_Irda.pas}
660   {$I JwaAtalkWsh.pas}
661   {$I JwaWShisotp.pas}
662   {$I JwaMSWSock.pas}
663   {$I JwaQosPol.pas}
664   {$I JwaMSTcpIP.pas}
665   {$I JwaQosName.pas}
666   {$I JwaIpExport.pas}
667   {$I JwaIpRtrMib.pas}
668   {$I JwaIpTypes.pas}
669   {$I JwaIpHlpApi.pas}
670   {$I JwaIcmpApi.pas}
671 {$ENDIF JWA_WINSOCK_1}
672 
673 {******** various headers that must be included before rest *********}
674 
675 {$I JwaLpmApi.pas}
676 {$I JwaWinCrypt.pas}
677 {$I JwaRpc.pas}
678 {$I JwaWinEFS.pas}
679 { I JwaWinScard.pas} // TODO convert
680 { I JwaWinSpool.pas} // TODO convert
681 { I JwaOle2.pas} // TODO convert
682 { I JwaCommDlg.pas} // TODO convert
683 { I JwaStrAlign.pas} // TODO convert
684 {$I JwaWinSvc.pas}
685 { I JwaMCX.pas} // TODO convert
686 { I JwaIMM.pas} // TODO convert
687 {$I JwaAccCtrl.pas}
688 {$I JwaAclApi.pas}
689 {$I JwaSddl.pas}
690 {$I JwaLmErr.pas}
691 {$I JwaLmCons.pas}
692 {$I JwaNtSecApi.pas}
693 {$I JwaWinCred.pas}
694 {$I JwaWtsApi32.pas}
695 {$I JwaWinIoctl.pas}
696 {$I JwaWowNT32.pas}
697 {$I JwaSubAuth.pas}
698 {$I JwaSecurity.pas}
699 {$I JwaAclUI.pas}
700 {$I JwaImageHlp.pas}
701 
702 
703 {$IFDEF JWA_INCLUDE_JWAADSTLB}
704 {******** Ads TLB ************}
705 {$DEFINE NOVCL}
706  {$I JwaAdsTLB.pas}
707 {$UNDEF NOVCL}
708 {$ENDIF JWA_INCLUDE_JWAADSTLB}
709 
710 {$I JwaActiveX.pas}
711 {$I JwaPrSht.pas}
712 
713 {$IFDEF JWA_INCLUDE_JWAADSTLB}
714 {$I JwaActiveDS.pas}
715 {$I JwaDSClient.pas}
716 {$I JwaDSAdmin.pas}
717 {$I JwaAdsProp.pas}
718 {$I JwaAdsHlp.pas}
719 {$ENDIF JWA_INCLUDE_JWAADSTLB}
720 
721 {$I JwaZMOUSE.pas}
722 {$I JwaUxTheme.pas}
723 {$I JwaWinCpl.pas}
724 {$I JwaWinLDAP.pas}
725 {$I JwaSvcGuid.pas}
726 {$I JwaSecExt.pas}
727 
728 {$IFDEF JWA_INCLUDE_JWAADSTLB}
729 {$I JwaSspi.pas}
730 {$ENDIF JWA_INCLUDE_JWAADSTLB}
731 
732 {******** LAN Manager **********}
733 {do not include JwaLM.pas!}
734 
735 {$DEFINE JWA_OMIT_SECTIONS_LM} //define special LM section omitting
736 {$I JwaLmAccess.pas}   // Access, Domain, Group and User classes
737 {$I JwaLmAlert.pas}    // Alerter
738 {$I JwaLmShare.pas}    // Connection, File, Session and Share classes
739 {$I JwaLmMsg.pas}      // Message class
740 {$I JwaLmRemUtl.pas}   // Remote Utility class
741 {$I JwaLmRepl.pas}     // Replicator class
742 {$I JwaLmServer.pas}   // Server class
743 {$I JwaLmSvc.pas}      // Service class
744 {$I JwaLmUse.pas}      // Use class
745 {$I JwaLmWkSta.pas}    // Workstation class
746 {$I JwaLmApiBuf.pas}   // NetApiBuffer class
747 {$I JwaLmErrLog.pas}   // NetErrorLog class
748 {$I JwaLmConfig.pas}   // NetConfig class
749 {$I JwaLmStats.pas}    // NetStats class
750 {$I JwaLmAudit.pas}    // NetAudit class
751 {$I JwaLmJoin.pas}     // NetJoinDomain class
752 {$I JwaLmUseFlg.pas}
753 {$I JwaLmAt.pas}
754 {$I JwaLmDFS.pas}
755 {$I JwaLmSName.pas}
756 
757 {******** the rest **********}
758 
759 {$I JwaNetSh.pas}
760 {$I JwaNtDdPar.pas}
761 {$I JwaSchedule.pas}
762 
763 {$IFDEF JWA_INCLUDE_JWAADSTLB}
764 {$I JwaNtQuery.pas}
765 {$I JwaRpcDce.pas}
766 {$I JwaNtDsApi.pas}
767 {$ENDIF JWA_INCLUDE_JWAADSTLB}
768 
769 
770 {$I JwaNtDsbCli.pas}
771 {$I JwaNtDsBMsg.pas}
772 {$I JwaNtLDAP.pas}
773 {$I JwaPsApi.pas}
774 {$I JwaBitsMsg.pas}
775 {$I JwaBits.pas}
776 {$I JwaErrorRep.pas}
777 {$I JWaBthSdpDef.pas}
778 {$I JwaBluetoothAPIs.pas}
779 {$I JwaBtHDef.pas}
780 {$I JwaWs2Bth.pas} //depends JwaBtHDef.pas
781 {$I JwaCryptUIApi.pas}
782 {$I JwaCpl.pas}
783 {$I JwaCplext.pas}
784 {$I JwaColorDlg.pas}
785 {$I JwaIisCnfg.pas}
786 {$I JwaIAdmExt.pas}
787 {$I JwaMsi.pas}
788 {$I JwaMsiDefs.pas}
789 {$I JwaMsiQuery.pas}
790 {$I JwaDSGetDC.pas}
791 {$I JwaDskQuota.pas}
792 {$I JwaCmnQuery.pas}
793 {$I JwaDSQuery.pas}
794 {$I JwaDSRole.pas}
795 {$I JwaDsSec.pas}
796 {$I JwaDbt.pas}
797 {$I JwaDhcpCSDK.pas}
798 {$I JwaDhcpSSDK.pas}
799 {$I JwaDhcpsApi.pas}
800 {$I JwaWSipx.pas}
801 {$I JwaWsrm.pas}
802 {$I JwaWPTypes.pas}
803 {$I JwaWPWizMsg.pas}
804 {$I JwaHtmlGuid.pas}
805 {$I JwaHtmlHelp.pas}
806 {$I JwaHhError.pas}
807 {$I JwaRegStr.pas}
808 {$I JwaPdh.pas}
809 {$I JwaProfInfo.pas}
810 {$I JwaWbemCli.pas}
811 {$I JwaUserEnv.pas}
812 {$I JwaWPApiMsg.pas}
813 {$I JwaWPApi.pas}
814 {$I JwaWPSpiHlp.pas}
815 {$I JwaWPPstMsg.pas}
816 {$I JwaWPFtpMsg.pas}
817 {$I JwaWPCrsMsg.pas}
818 {$I JwaAdtGen.pas}
819 {$I JwaAdssts.pas}
820 {$I JwaAdsnms.pas}
821 {$I JwaAdsErr.pas}
822 {$I JwaAdsDb.pas}
823 {$I JwaAuthz.pas}
824 {$I JwaAuthif.pas}
825 {$I JwaWinAble.pas}
826 {$I JwaWinBer.pas}
827 {.$IFNDEF EXCLUDE_FPC}
828   {$I JwaWinFax.pas}
829 {.$ENDIF EXCLUDE_FPC}
830 {$I JwaWinResrc.pas}
831 {$I JwaWinSafer.pas}
832 {$I JwaWinWlx.pas}
833 {$I JwaWmiStr.pas}
834 {$I JwaWowNT16.pas}
835 
836 
837 {$I JwaSens.pas}
838 {$I JwaSensAPI.pas}
839 {$IFNDEF FPC}
840  {$I JwaSensEvts.pas}
841 {$ENDIF FPC}
842 {$I JwaSfc.pas}
843 {$I JwaShlGuid.pas}
844 {$I JwaSisBkUp.pas}
845 {$I JwaSisBkUp.pas}
846 {$I JwaSnmp.pas}
847 {$I JwaSpOrder.pas}
848 {$I JwaSrRestorePtApi.pas}
849 {$I JwaTlHelp32.pas}
850 {$I JwaTmSchema.pas}
851 {$I JwaTraffic.pas}
852 {$I JwaSceSvc.pas}
853 {$I JwaSchemaDef.pas}
854 {$I JwaObjSel.pas}
855 {$I JwaPatchApi.pas}
856 {$I JwaPatchWiz.pas}
857 {$I JwaPbt.pas}
858 {$I JwaPdhMsg.pas}
859 {$I JwaPowrProf.pas}
860 {$I JwaProtocol.pas}
861 
862 {$IFDEF JWA_INCLUDE_JWAADSTLB}
863 {$I JwaRpcASync.pas}
864 {$I JwaRpcNsi.pas}
865 {$ENDIF JWA_INCLUDE_JWAADSTLB}
866 
867 {$I JwaRpcNtErr.pas}
868 {$I JwaRpcSsl.pas}
869 {$I JwaMciAvi.pas}
870 {$I JwaMprError.pas}
871 {$I JwaMsTask.pas}
872 {$I JwaCardErr.pas}
873 {.$IFNDEF EXCLUDE_FPC}
874   {$I JwaFaxDev.pas}
875   {$I JwaFaxExt.pas}
876   {$I JwaFaxMmc.pas}
877   {$I JwaFaxRoute.pas}
878 {.$ENDIF EXCLUDE_FPC}
879 {$I JwaGPEdit.pas}
880 {$I JwaIAccess.pas}
881 {$I JwaImapi.pas}
882 {$I JwaImapiError.pas}
883 {$I JwaIme.pas}
884 {$I JwaBits1_5.pas}
885 {$I JwaIoEvent.pas}
886 {$I JwaIpIfCons.pas}
887 {$I JwaIpInfoId.pas}
888 {$I JwaIsGuids.pas}
889 {$I JwaIssPer16.pas}
890 {$I JwaLoadPerf.pas}
891 {$I JwaBatClass.pas}
892 {$I JwaBLBErr.pas}
893 {$I JwaBugCodes.pas}
894 
895 {$IFDEF JWA_INCLUDE_JWAADSTLB}
896 {$I JwaBitscfg.pas}
897 {$ENDIF JWA_INCLUDE_JWAADSTLB}
898 
899 
900 
901 {$DEFINE JWA_INCLUDEMODE}
902 
903 {.$I JwaWinternl.pas}
904 //these files needs a newer version due to missing units
905 {$IFDEF COMPILER6_UP}
906 {$I JwaWinSta.pas}
907 {$ENDIF COMPILER6_UP}
908 {$IFDEF FPC}
909 {$I JwaWinSta.pas}
910 {$ENDIF FPC}
911 
912 {$I ModuleLoader.pas}
913 {$IFDEF JWA_INCLUDE_SETUP_API}
914 {$DEFINE SETUPAPI_LINKONREQUEST}
915 
916 {If the compiler cannot find "SetupApi.pas" its
917 because it resides in "Setup and Config Manager API".
918 But the compiler cannot include folders with spaces in it.
919 Simply hard link or copy the following files
920 into the new folder named "SaCMAPI".
921 This issue should be fixed in newer versions of JEDI API LIB.
922 If you get this error you should do the things described or upgrade.
923 }
924 {$I ..\SaCMAPI\SetupApi.pas}
925 {$I ..\SaCMAPI\Cfg.pas}
926 {$I ..\SaCMAPI\CfgMgr32.pas}
927 {$ENDIF JWA_INCLUDE_SETUP_API}
928 
929 {$UNDEF JWA_IMPLEMENTATIONSECTION}
930 
931 {$UNDEF JWA_OMIT_SECTIONS}
932 
933 end.
934 
935 
936 
937