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