123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203 |
- {******************************************************************************}
- { }
- { Winsock2 Namespace API interface Unit for Object Pascal }
- { }
- { Portions created by Microsoft are Copyright (C) 1995-2001 Microsoft }
- { Corporation. All Rights Reserved. }
- { }
- { The original file is: nspapi.h, released June 2000. The original Pascal }
- { code is: NspApi.pas, released December 2000. The initial developer of the }
- { Pascal code is Marcel van Brakel (brakelm att chello dott nl). }
- { }
- { Portions created by Marcel van Brakel are Copyright (C) 1999-2001 }
- { Marcel van Brakel. All Rights Reserved. }
- { }
- { Obtained through: Joint Endeavour of Delphi Innovators (Project JEDI) }
- { }
- { You may retrieve the latest version of this file at the Project JEDI }
- { APILIB home page, located at http://jedi-apilib.sourceforge.net }
- { }
- { The contents of this file are used with permission, subject to the Mozilla }
- { Public License Version 1.1 (the "License"); you may not use this file except }
- { in compliance with the License. You may obtain a copy of the License at }
- { http://www.mozilla.org/MPL/MPL-1.1.html }
- { }
- { Software distributed under the License is distributed on an "AS IS" basis, }
- { WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for }
- { the specific language governing rights and limitations under the License. }
- { }
- { Alternatively, the contents of this file may be used under the terms of the }
- { GNU Lesser General Public License (the "LGPL License"), in which case the }
- { provisions of the LGPL License are applicable instead of those above. }
- { If you wish to allow use of your version of this file only under the terms }
- { of the LGPL License and not to allow others to use your version of this file }
- { under the MPL, indicate your decision by deleting the provisions above and }
- { replace them with the notice and other provisions required by the LGPL }
- { License. If you do not delete the provisions above, a recipient may use }
- { your version of this file under either the MPL or the LGPL License. }
- { }
- { For more information about the LGPL: http://www.gnu.org/copyleft/lesser.html }
- { }
- {******************************************************************************}
- unit JwaNspAPI;
- {$WEAKPACKAGEUNIT}
- {$HPPEMIT ''}
- {$HPPEMIT '#include "nspapi.h"'}
- {$HPPEMIT ''}
- {$I jediapilib.inc}
- interface
- uses
- JwaWinType, JwaWinSock2;
- //
- // Service categories
- //
- const
- SERVICE_RESOURCE = $00000001;
- {$EXTERNALSYM SERVICE_RESOURCE}
- SERVICE_SERVICE = $00000002;
- {$EXTERNALSYM SERVICE_SERVICE}
- SERVICE_LOCAL = $00000004;
- {$EXTERNALSYM SERVICE_LOCAL}
- //
- // Operation used when calling SetService()
- //
- SERVICE_REGISTER = $00000001;
- {$EXTERNALSYM SERVICE_REGISTER}
- SERVICE_DEREGISTER = $00000002;
- {$EXTERNALSYM SERVICE_DEREGISTER}
- SERVICE_FLUSH = $00000003;
- {$EXTERNALSYM SERVICE_FLUSH}
- SERVICE_ADD_TYPE = $00000004;
- {$EXTERNALSYM SERVICE_ADD_TYPE}
- SERVICE_DELETE_TYPE = $00000005;
- {$EXTERNALSYM SERVICE_DELETE_TYPE}
- //
- // Flags that affect the operations above
- //
- SERVICE_FLAG_DEFER = $00000001;
- {$EXTERNALSYM SERVICE_FLAG_DEFER}
- SERVICE_FLAG_HARD = $00000002;
- {$EXTERNALSYM SERVICE_FLAG_HARD}
- //
- // Used as input to GetService() for setting the dwProps parameter
- //
- PROP_COMMENT = $00000001;
- {$EXTERNALSYM PROP_COMMENT}
- PROP_LOCALE = $00000002;
- {$EXTERNALSYM PROP_LOCALE}
- PROP_DISPLAY_HINT = $00000004;
- {$EXTERNALSYM PROP_DISPLAY_HINT}
- PROP_VERSION = $00000008;
- {$EXTERNALSYM PROP_VERSION}
- PROP_START_TIME = $00000010;
- {$EXTERNALSYM PROP_START_TIME}
- PROP_MACHINE = $00000020;
- {$EXTERNALSYM PROP_MACHINE}
- PROP_ADDRESSES = $00000100;
- {$EXTERNALSYM PROP_ADDRESSES}
- PROP_SD = $00000200;
- {$EXTERNALSYM PROP_SD}
- PROP_ALL = DWORD($80000000);
- {$EXTERNALSYM PROP_ALL}
- //
- // Flags that describe attributes of Service Addresses
- //
- SERVICE_ADDRESS_FLAG_RPC_CN = $00000001;
- {$EXTERNALSYM SERVICE_ADDRESS_FLAG_RPC_CN}
- SERVICE_ADDRESS_FLAG_RPC_DG = $00000002;
- {$EXTERNALSYM SERVICE_ADDRESS_FLAG_RPC_DG}
- SERVICE_ADDRESS_FLAG_RPC_NB = $00000004;
- {$EXTERNALSYM SERVICE_ADDRESS_FLAG_RPC_NB}
- //
- // Name Spaces
- //
- NS_DEFAULT = 0;
- {$EXTERNALSYM NS_DEFAULT}
- NS_SAP = 1;
- {$EXTERNALSYM NS_SAP}
- NS_NDS = 2;
- {$EXTERNALSYM NS_NDS}
- NS_PEER_BROWSE = 3;
- {$EXTERNALSYM NS_PEER_BROWSE}
- NS_TCPIP_LOCAL = 10;
- {$EXTERNALSYM NS_TCPIP_LOCAL}
- NS_TCPIP_HOSTS = 11;
- {$EXTERNALSYM NS_TCPIP_HOSTS}
- NS_DNS = 12;
- {$EXTERNALSYM NS_DNS}
- NS_NETBT = 13;
- {$EXTERNALSYM NS_NETBT}
- NS_WINS = 14;
- {$EXTERNALSYM NS_WINS}
- NS_NBP = 20;
- {$EXTERNALSYM NS_NBP}
- NS_MS = 30;
- {$EXTERNALSYM NS_MS}
- NS_STDA = 31;
- {$EXTERNALSYM NS_STDA}
- NS_NTDS = 32;
- {$EXTERNALSYM NS_NTDS}
- NS_X500 = 40;
- {$EXTERNALSYM NS_X500}
- NS_NIS = 41;
- {$EXTERNALSYM NS_NIS}
- NS_VNS = 50;
- {$EXTERNALSYM NS_VNS}
- //
- // Name space attributes.
- //
- NSTYPE_HIERARCHICAL = $00000001;
- {$EXTERNALSYM NSTYPE_HIERARCHICAL}
- NSTYPE_DYNAMIC = $00000002;
- {$EXTERNALSYM NSTYPE_DYNAMIC}
- NSTYPE_ENUMERABLE = $00000004;
- {$EXTERNALSYM NSTYPE_ENUMERABLE}
- NSTYPE_WORKGROUP = $00000008;
- {$EXTERNALSYM NSTYPE_WORKGROUP}
- //
- // Transport attributes.
- //
- XP_CONNECTIONLESS = $00000001;
- {$EXTERNALSYM XP_CONNECTIONLESS}
- XP_GUARANTEED_DELIVERY = $00000002;
- {$EXTERNALSYM XP_GUARANTEED_DELIVERY}
- XP_GUARANTEED_ORDER = $00000004;
- {$EXTERNALSYM XP_GUARANTEED_ORDER}
- XP_MESSAGE_ORIENTED = $00000008;
- {$EXTERNALSYM XP_MESSAGE_ORIENTED}
- XP_PSEUDO_STREAM = $00000010;
- {$EXTERNALSYM XP_PSEUDO_STREAM}
- XP_GRACEFUL_CLOSE = $00000020;
- {$EXTERNALSYM XP_GRACEFUL_CLOSE}
- XP_EXPEDITED_DATA = $00000040;
- {$EXTERNALSYM XP_EXPEDITED_DATA}
- XP_CONNECT_DATA = $00000080;
- {$EXTERNALSYM XP_CONNECT_DATA}
- XP_DISCONNECT_DATA = $00000100;
- {$EXTERNALSYM XP_DISCONNECT_DATA}
- XP_SUPPORTS_BROADCAST = $00000200;
- {$EXTERNALSYM XP_SUPPORTS_BROADCAST}
- XP_SUPPORTS_MULTICAST = $00000400;
- {$EXTERNALSYM XP_SUPPORTS_MULTICAST}
- XP_BANDWIDTH_ALLOCATION = $00000800;
- {$EXTERNALSYM XP_BANDWIDTH_ALLOCATION}
- XP_FRAGMENTATION = $00001000;
- {$EXTERNALSYM XP_FRAGMENTATION}
- XP_ENCRYPTS = $00002000;
- {$EXTERNALSYM XP_ENCRYPTS}
- //
- // Resolution flags for GetAddressByName().
- //
- RES_SOFT_SEARCH = $00000001;
- {$EXTERNALSYM RES_SOFT_SEARCH}
- RES_FIND_MULTIPLE = $00000002;
- {$EXTERNALSYM RES_FIND_MULTIPLE}
- RES_SERVICE = $00000004;
- {$EXTERNALSYM RES_SERVICE}
- //
- // Well known value names for Service Types
- //
- SERVICE_TYPE_VALUE_SAPIDA = 'SapId';
- {$EXTERNALSYM SERVICE_TYPE_VALUE_SAPIDA}
- SERVICE_TYPE_VALUE_SAPIDW = WideString('SapId');
- {$EXTERNALSYM SERVICE_TYPE_VALUE_SAPIDW}
- SERVICE_TYPE_VALUE_CONNA = 'ConnectionOriented';
- {$EXTERNALSYM SERVICE_TYPE_VALUE_CONNA}
- SERVICE_TYPE_VALUE_CONNW = WideString('ConnectionOriented');
- {$EXTERNALSYM SERVICE_TYPE_VALUE_CONNW}
- SERVICE_TYPE_VALUE_TCPPORTA = 'TcpPort';
- {$EXTERNALSYM SERVICE_TYPE_VALUE_TCPPORTA}
- SERVICE_TYPE_VALUE_TCPPORTW = WideString('TcpPort');
- {$EXTERNALSYM SERVICE_TYPE_VALUE_TCPPORTW}
- SERVICE_TYPE_VALUE_UDPPORTA = 'UdpPort';
- {$EXTERNALSYM SERVICE_TYPE_VALUE_UDPPORTA}
- SERVICE_TYPE_VALUE_UDPPORTW = WideString('UdpPort');
- {$EXTERNALSYM SERVICE_TYPE_VALUE_UDPPORTW}
- {$IFDEF UNICODE}
- SERVICE_TYPE_VALUE_SAPID = SERVICE_TYPE_VALUE_SAPIDW;
- {$EXTERNALSYM SERVICE_TYPE_VALUE_SAPID}
- SERVICE_TYPE_VALUE_CONN = SERVICE_TYPE_VALUE_CONNW;
- {$EXTERNALSYM SERVICE_TYPE_VALUE_CONN}
- SERVICE_TYPE_VALUE_TCPPORT = SERVICE_TYPE_VALUE_TCPPORTW;
- {$EXTERNALSYM SERVICE_TYPE_VALUE_TCPPORT}
- SERVICE_TYPE_VALUE_UDPPORT = SERVICE_TYPE_VALUE_UDPPORTW;
- {$EXTERNALSYM SERVICE_TYPE_VALUE_UDPPORT}
- {$ELSE}
- SERVICE_TYPE_VALUE_SAPID = SERVICE_TYPE_VALUE_SAPIDA;
- {$EXTERNALSYM SERVICE_TYPE_VALUE_SAPID}
- SERVICE_TYPE_VALUE_CONN = SERVICE_TYPE_VALUE_CONNA;
- {$EXTERNALSYM SERVICE_TYPE_VALUE_CONN}
- SERVICE_TYPE_VALUE_TCPPORT = SERVICE_TYPE_VALUE_TCPPORTA;
- {$EXTERNALSYM SERVICE_TYPE_VALUE_TCPPORT}
- SERVICE_TYPE_VALUE_UDPPORT = SERVICE_TYPE_VALUE_UDPPORTA;
- {$EXTERNALSYM SERVICE_TYPE_VALUE_UDPPORT}
- {$ENDIF UNICODE}
- //
- // status flags returned by SetService
- //
- SET_SERVICE_PARTIAL_SUCCESS = $00000001;
- {$EXTERNALSYM SET_SERVICE_PARTIAL_SUCCESS}
- //
- // Name Space Information
- //
- type
- _NS_INFOA = record
- dwNameSpace: DWORD;
- dwNameSpaceFlags: DWORD;
- lpNameSpace: LPSTR;
- end;
- {$EXTERNALSYM _NS_INFOA}
- NS_INFOA = _NS_INFOA;
- {$EXTERNALSYM NS_INFOA}
- PNS_INFOA = ^NS_INFOA;
- {$EXTERNALSYM PNS_INFOA}
- LPNS_INFOA = ^NS_INFOA;
- {$EXTERNALSYM LPNS_INFOA}
- TNsInfoA = NS_INFOA;
- PNsInfoA = LPNS_INFOA;
- //
- // Name Space Information
- //
- _NS_INFOW = record
- dwNameSpace: DWORD;
- dwNameSpaceFlags: DWORD;
- lpNameSpace: LPWSTR;
- end;
- {$EXTERNALSYM _NS_INFOW}
- NS_INFOW = _NS_INFOW;
- {$EXTERNALSYM NS_INFOW}
- PNS_INFOW = ^NS_INFOW;
- {$EXTERNALSYM PNS_INFOW}
- LPNS_INFOW = ^NS_INFOW;
- {$EXTERNALSYM LPNS_INFOW}
- TNsInfoW = NS_INFOW;
- PNsInfoW = LPNS_INFOW;
- {$IFDEF UNICODE}
- NS_INFO = NS_INFOW;
- {$EXTERNALSYM NS_INFO}
- PNS_INFO = PNS_INFOW;
- {$EXTERNALSYM PNS_INFO}
- LPNS_INFO = LPNS_INFOW;
- {$EXTERNALSYM LPNS_INFO}
- TNsInfo = TNsInfoW;
- PNsInfo = PNsInfoW;
- {$ELSE}
- NS_INFO = NS_INFOA;
- {$EXTERNALSYM NS_INFO}
- PNS_INFO = PNS_INFOA;
- {$EXTERNALSYM PNS_INFO}
- LPNS_INFO = LPNS_INFOA;
- {$EXTERNALSYM LPNS_INFO}
- TNsInfo = TNsInfoA;
- PNsInfo = PNsInfoA;
- {$ENDIF UNICODE}
- //
- // Service Type Values. The structures are used to define named Service
- // Type specific values. This structure is self relative and has no pointers.
- //
- LPSERVICE_TYPE_VALUE = ^SERVICE_TYPE_VALUE;
- {$EXTERNALSYM LPSERVICE_TYPE_VALUE}
- PSERVICE_TYPE_VALUE = ^SERVICE_TYPE_VALUE;
- {$EXTERNALSYM PSERVICE_TYPE_VALUE}
- _SERVICE_TYPE_VALUE = record
- dwNameSpace: DWORD;
- dwValueType: DWORD;
- dwValueSize: DWORD;
- dwValueNameOffset: DWORD;
- dwValueOffset: DWORD;
- end;
- {$EXTERNALSYM _SERVICE_TYPE_VALUE}
- SERVICE_TYPE_VALUE = _SERVICE_TYPE_VALUE;
- {$EXTERNALSYM SERVICE_TYPE_VALUE}
- TServiceTypeValue = SERVICE_TYPE_VALUE;
- PServiceTypeValue = LPSERVICE_TYPE_VALUE;
- //
- // An absolute version of above. This structure does contain pointers.
- //
- LPSERVICE_TYPE_VALUE_ABSA = ^SERVICE_TYPE_VALUE_ABSA;
- {$EXTERNALSYM LPSERVICE_TYPE_VALUE_ABSA}
- PSERVICE_TYPE_VALUE_ABSA = ^SERVICE_TYPE_VALUE_ABSA;
- {$EXTERNALSYM PSERVICE_TYPE_VALUE_ABSA}
- _SERVICE_TYPE_VALUE_ABSA = record
- dwNameSpace: DWORD;
- dwValueType: DWORD;
- dwValueSize: DWORD;
- lpValueName: LPSTR;
- lpValue: LPVOID;
- end;
- {$EXTERNALSYM _SERVICE_TYPE_VALUE_ABSA}
- SERVICE_TYPE_VALUE_ABSA = _SERVICE_TYPE_VALUE_ABSA;
- {$EXTERNALSYM SERVICE_TYPE_VALUE_ABSA}
- TServiceTypeValueAbsA = SERVICE_TYPE_VALUE_ABSA;
- PServiceTypeValueAbsA = LPSERVICE_TYPE_VALUE_ABSA;
- //
- // An absolute version of above. This structure does contain pointers.
- //
- LPSERVICE_TYPE_VALUE_ABSW = ^SERVICE_TYPE_VALUE_ABSW;
- {$EXTERNALSYM LPSERVICE_TYPE_VALUE_ABSW}
- PSERVICE_TYPE_VALUE_ABSW = ^SERVICE_TYPE_VALUE_ABSW;
- {$EXTERNALSYM PSERVICE_TYPE_VALUE_ABSW}
- _SERVICE_TYPE_VALUE_ABSW = record
- dwNameSpace: DWORD;
- dwValueType: DWORD;
- dwValueSize: DWORD;
- lpValueName: LPWSTR;
- lpValue: LPVOID;
- end;
- {$EXTERNALSYM _SERVICE_TYPE_VALUE_ABSW}
- SERVICE_TYPE_VALUE_ABSW = _SERVICE_TYPE_VALUE_ABSW;
- {$EXTERNALSYM SERVICE_TYPE_VALUE_ABSW}
- TServiceTypeValueAbsW = SERVICE_TYPE_VALUE_ABSW;
- PServiceTypeValueAbsW = LPSERVICE_TYPE_VALUE_ABSW;
- {$IFDEF UNICODE}
- SERVICE_TYPE_VALUE_ABS = SERVICE_TYPE_VALUE_ABSW;
- {$EXTERNALSYM SERVICE_TYPE_VALUE_ABS}
- PSERVICE_TYPE_VALUE_ABS = PSERVICE_TYPE_VALUE_ABSW;
- {$EXTERNALSYM PSERVICE_TYPE_VALUE_ABS}
- LPSERVICE_TYPE_VALUE_ABS = LPSERVICE_TYPE_VALUE_ABSW;
- {$EXTERNALSYM LPSERVICE_TYPE_VALUE_ABS}
- TServiceTypeValueAbs = TServiceTypeValueAbsW;
- PServiceTypeValueAbs = PServiceTypeValueAbsW;
- {$ELSE}
- SERVICE_TYPE_VALUE_ABS = SERVICE_TYPE_VALUE_ABSA;
- {$EXTERNALSYM SERVICE_TYPE_VALUE_ABS}
- PSERVICE_TYPE_VALUE_ABS = PSERVICE_TYPE_VALUE_ABSA;
- {$EXTERNALSYM PSERVICE_TYPE_VALUE_ABS}
- LPSERVICE_TYPE_VALUE_ABS = LPSERVICE_TYPE_VALUE_ABSA;
- {$EXTERNALSYM LPSERVICE_TYPE_VALUE_ABS}
- TServiceTypeValueAbs = TServiceTypeValueAbsA;
- PServiceTypeValueAbs = PServiceTypeValueAbsA;
- {$ENDIF UNICODE}
- //
- // Service Type Information. Contains the name of the Service Type and
- // and an array of SERVICE_NS_TYPE_VALUE structures. This structure is self
- // relative and has no pointers in it.
- //
- LPSERVICE_TYPE_INFO = ^SERVICE_TYPE_INFO;
- {$EXTERNALSYM LPSERVICE_TYPE_INFO}
- PSERVICE_TYPE_INFO = ^SERVICE_TYPE_INFO;
- {$EXTERNALSYM PSERVICE_TYPE_INFO}
- _SERVICE_TYPE_INFO = record
- dwTypeNameOffset: DWORD;
- dwValueCount: DWORD;
- Values: array [0..0] of SERVICE_TYPE_VALUE;
- end;
- {$EXTERNALSYM _SERVICE_TYPE_INFO}
- SERVICE_TYPE_INFO = _SERVICE_TYPE_INFO;
- {$EXTERNALSYM SERVICE_TYPE_INFO}
- TServiceTypeInfo = SERVICE_TYPE_INFO;
- PServiceTypeInfo = LPSERVICE_TYPE_INFO;
- LPSERVICE_TYPE_INFO_ABSA = ^SERVICE_TYPE_INFO_ABSA;
- {$EXTERNALSYM LPSERVICE_TYPE_INFO_ABSA}
- PSERVICE_TYPE_INFO_ABSA = ^SERVICE_TYPE_INFO_ABSA;
- {$EXTERNALSYM PSERVICE_TYPE_INFO_ABSA}
- _SERVICE_TYPE_INFO_ABSA = record
- lpTypeName: LPSTR;
- dwValueCount: DWORD;
- Values: array [0..0] of SERVICE_TYPE_VALUE_ABSA;
- end;
- {$EXTERNALSYM _SERVICE_TYPE_INFO_ABSA}
- SERVICE_TYPE_INFO_ABSA = _SERVICE_TYPE_INFO_ABSA;
- {$EXTERNALSYM SERVICE_TYPE_INFO_ABSA}
- TServiceTypeInfoAbsA = SERVICE_TYPE_INFO_ABSA;
- PServiceTypeInfoAbsA = PSERVICE_TYPE_INFO_ABSA;
- LPSERVICE_TYPE_INFO_ABSW = ^SERVICE_TYPE_INFO_ABSW;
- {$EXTERNALSYM LPSERVICE_TYPE_INFO_ABSW}
- PSERVICE_TYPE_INFO_ABSW = ^SERVICE_TYPE_INFO_ABSW;
- {$EXTERNALSYM PSERVICE_TYPE_INFO_ABSW}
- _SERVICE_TYPE_INFO_ABSW = record
- lpTypeName: LPWSTR;
- dwValueCount: DWORD;
- Values: array [0..0] of SERVICE_TYPE_VALUE_ABSW;
- end;
- {$EXTERNALSYM _SERVICE_TYPE_INFO_ABSW}
- SERVICE_TYPE_INFO_ABSW = _SERVICE_TYPE_INFO_ABSW;
- {$EXTERNALSYM SERVICE_TYPE_INFO_ABSW}
- TServiceTypeInfoAbsW = SERVICE_TYPE_INFO_ABSW;
- PServiceTypeInfoAbsW = LPSERVICE_TYPE_INFO_ABSW;
- {$IFDEF UNICODE}
- SERVICE_TYPE_INFO_ABS = SERVICE_TYPE_INFO_ABSW;
- {$EXTERNALSYM SERVICE_TYPE_INFO_ABS}
- PSERVICE_TYPE_INFO_ABS = PSERVICE_TYPE_INFO_ABSW;
- {$EXTERNALSYM PSERVICE_TYPE_INFO_ABS}
- LPSERVICE_TYPE_INFO_ABS = LPSERVICE_TYPE_INFO_ABSW;
- {$EXTERNALSYM LPSERVICE_TYPE_INFO_ABS}
- TServiceTypeInfoAbs = TServiceTypeInfoAbsW;
- PServiceTypeInfoAbs = PServiceTypeInfoAbsW;
- {$ELSE}
- SERVICE_TYPE_INFO_ABS = SERVICE_TYPE_INFO_ABSA;
- {$EXTERNALSYM SERVICE_TYPE_INFO_ABS}
- PSERVICE_TYPE_INFO_ABS = PSERVICE_TYPE_INFO_ABSA;
- {$EXTERNALSYM PSERVICE_TYPE_INFO_ABS}
- LPSERVICE_TYPE_INFO_ABS = LPSERVICE_TYPE_INFO_ABSA;
- {$EXTERNALSYM LPSERVICE_TYPE_INFO_ABS}
- TServiceTypeInfoAbs = TServiceTypeInfoAbsA;
- PServiceTypeInfoAbs = PServiceTypeInfoAbsA;
- {$ENDIF UNICODE}
- //
- // A Single Address definition.
- //
- LPSERVICE_ADDRESS = ^SERVICE_ADDRESS;
- {$EXTERNALSYM LPSERVICE_ADDRESS}
- PSERVICE_ADDRESS = ^SERVICE_ADDRESS;
- {$EXTERNALSYM PSERVICE_ADDRESS}
- _SERVICE_ADDRESS = record
- dwAddressType: DWORD;
- dwAddressFlags: DWORD;
- dwAddressLength: DWORD;
- dwPrincipalLength: DWORD;
- lpAddress: LPBYTE;
- lpPrincipal: LPBYTE;
- end;
- {$EXTERNALSYM _SERVICE_ADDRESS}
- SERVICE_ADDRESS = _SERVICE_ADDRESS;
- {$EXTERNALSYM SERVICE_ADDRESS}
- TServiceAddress = SERVICE_ADDRESS;
- PServiceAddress = LPSERVICE_ADDRESS;
- //
- // Addresses used by the service. Contains array of SERVICE_ADDRESS.
- //
- LPSERVICE_ADDRESSES = ^SERVICE_ADDRESSES;
- {$EXTERNALSYM LPSERVICE_ADDRESSES}
- PSERVICE_ADDRESSES = ^SERVICE_ADDRESSES;
- {$EXTERNALSYM PSERVICE_ADDRESSES}
- _SERVICE_ADDRESSES = record
- dwAddressCount: DWORD;
- Addresses: array [0..0] of SERVICE_ADDRESS;
- end;
- {$EXTERNALSYM _SERVICE_ADDRESSES}
- SERVICE_ADDRESSES = _SERVICE_ADDRESSES;
- {$EXTERNALSYM SERVICE_ADDRESSES}
- TServiceAddresses = SERVICE_ADDRESSES;
- PServiceAddresses = PSERVICE_ADDRESSES;
- //
- // Service Information.
- //
- LPSERVICE_INFOA = ^SERVICE_INFOA;
- {$EXTERNALSYM LPSERVICE_INFOA}
- PSERVICE_INFOA = ^SERVICE_INFOA;
- {$EXTERNALSYM PSERVICE_INFOA}
- _SERVICE_INFOA = record
- lpServiceType: PGUID;
- lpServiceName: LPSTR;
- lpComment: LPSTR;
- lpLocale: LPSTR;
- dwDisplayHint: DWORD;
- dwVersion: DWORD;
- dwTime: DWORD;
- lpMachineName: LPSTR;
- lpServiceAddress: LPSERVICE_ADDRESSES;
- ServiceSpecificInfo: BLOB;
- end;
- {$EXTERNALSYM _SERVICE_INFOA}
- SERVICE_INFOA = _SERVICE_INFOA;
- {$EXTERNALSYM SERVICE_INFOA}
- TServiceInfoA = SERVICE_INFOA;
- PServiceInfoA = PSERVICE_INFOA;
- //
- // Service Information.
- //
- LPSERVICE_INFOW = ^SERVICE_INFOW;
- {$EXTERNALSYM LPSERVICE_INFOW}
- PSERVICE_INFOW = ^SERVICE_INFOW;
- {$EXTERNALSYM PSERVICE_INFOW}
- _SERVICE_INFOW = record
- lpServiceType: PGUID;
- lpServiceName: LPWSTR;
- lpComment: LPWSTR;
- lpLocale: LPWSTR;
- dwDisplayHint: DWORD;
- dwVersion: DWORD;
- dwTime: DWORD;
- lpMachineName: LPWSTR;
- lpServiceAddress: LPSERVICE_ADDRESSES;
- ServiceSpecificInfo: BLOB;
- end;
- {$EXTERNALSYM _SERVICE_INFOW}
- SERVICE_INFOW = _SERVICE_INFOW;
- {$EXTERNALSYM SERVICE_INFOW}
- TServiceInfoW = SERVICE_INFOW;
- PServiceInfoW = PSERVICE_INFOW;
- {$IFDEF UNICODE}
- SERVICE_INFO = SERVICE_INFOW;
- {$EXTERNALSYM SERVICE_INFO}
- PSERVICE_INFO = PSERVICE_INFOW;
- {$EXTERNALSYM PSERVICE_INFO}
- LPSERVICE_INFO = LPSERVICE_INFOW;
- {$EXTERNALSYM LPSERVICE_INFO}
- TServiceInfo = TServiceInfoW;
- PServiceInfo = PServiceInfoW;
- {$ELSE}
- SERVICE_INFO = SERVICE_INFOA;
- {$EXTERNALSYM SERVICE_INFO}
- PSERVICE_INFO = PSERVICE_INFOA;
- {$EXTERNALSYM PSERVICE_INFO}
- LPSERVICE_INFO = LPSERVICE_INFOA;
- {$EXTERNALSYM LPSERVICE_INFO}
- TServiceInfo = TServiceInfoA;
- PServiceInfo = PServiceInfoA;
- {$ENDIF UNICODE}
- //
- // Name Space & Service Information
- //
- LPNS_SERVICE_INFOA = ^NS_SERVICE_INFOA;
- {$EXTERNALSYM LPNS_SERVICE_INFOA}
- PNS_SERVICE_INFOA = ^NS_SERVICE_INFOA;
- {$EXTERNALSYM PNS_SERVICE_INFOA}
- _NS_SERVICE_INFOA = record
- dwNameSpace: DWORD;
- ServiceInfo: SERVICE_INFOA;
- end;
- {$EXTERNALSYM _NS_SERVICE_INFOA}
- NS_SERVICE_INFOA = _NS_SERVICE_INFOA;
- {$EXTERNALSYM NS_SERVICE_INFOA}
- TNsServiceInfoA = NS_SERVICE_INFOA;
- PNsServiceInfoA = LPNS_SERVICE_INFOA;
- //
- // Name Space & Service Information
- //
- LPNS_SERVICE_INFOW = ^NS_SERVICE_INFOW;
- {$EXTERNALSYM LPNS_SERVICE_INFOW}
- PNS_SERVICE_INFOW = ^NS_SERVICE_INFOW;
- {$EXTERNALSYM PNS_SERVICE_INFOW}
- _NS_SERVICE_INFOW = record
- dwNameSpace: DWORD;
- ServiceInfo: SERVICE_INFOW;
- end;
- {$EXTERNALSYM _NS_SERVICE_INFOW}
- NS_SERVICE_INFOW = _NS_SERVICE_INFOW;
- {$EXTERNALSYM NS_SERVICE_INFOW}
- TNsServiceInfoW = NS_SERVICE_INFOW;
- PNsServiceInfoW = LPNS_SERVICE_INFOW;
- {$IFDEF UNICODE}
- NS_SERVICE_INFO = NS_SERVICE_INFOW;
- {$EXTERNALSYM NS_SERVICE_INFO}
- PNS_SERVICE_INFO = PNS_SERVICE_INFOW;
- {$EXTERNALSYM PNS_SERVICE_INFO}
- LPNS_SERVICE_INFO = LPNS_SERVICE_INFOW;
- {$EXTERNALSYM LPNS_SERVICE_INFO}
- TNsServiceInfo = TNsServiceInfoW;
- PNsServiceInfo = PNsServiceInfoW;
- {$ELSE}
- NS_SERVICE_INFO = NS_SERVICE_INFOA;
- {$EXTERNALSYM NS_SERVICE_INFO}
- PNS_SERVICE_INFO = PNS_SERVICE_INFOA;
- {$EXTERNALSYM PNS_SERVICE_INFO}
- LPNS_SERVICE_INFO = LPNS_SERVICE_INFOA;
- {$EXTERNALSYM LPNS_SERVICE_INFO}
- TNsServiceInfo = TNsServiceInfoA;
- PNsServiceInfo = PNsServiceInfoA;
- {$ENDIF UNICODE}
- //
- // SockAddr Information
- //
- LPSOCKET_ADDRESS = ^SOCKET_ADDRESS;
- {$EXTERNALSYM LPSOCKET_ADDRESS}
- PSOCKET_ADDRESS = ^SOCKET_ADDRESS;
- {$EXTERNALSYM PSOCKET_ADDRESS}
- _SOCKET_ADDRESS = record
- lpSockaddr: LPSOCKADDR;
- iSockaddrLength: Integer;
- end;
- {$EXTERNALSYM _SOCKET_ADDRESS}
- SOCKET_ADDRESS = _SOCKET_ADDRESS;
- {$EXTERNALSYM SOCKET_ADDRESS}
- TSocketAddress = SOCKET_ADDRESS;
- PSocketAddress = PSOCKET_ADDRESS;
- //
- // CSAddr Information
- //
- LPCSADDR_INFO = ^CSADDR_INFO;
- {$EXTERNALSYM LPCSADDR_INFO}
- PCSADDR_INFO = ^CSADDR_INFO;
- {$EXTERNALSYM PCSADDR_INFO}
- _CSADDR_INFO = record
- LocalAddr: SOCKET_ADDRESS;
- RemoteAddr: SOCKET_ADDRESS;
- iSocketType: Integer;
- iProtocol: Integer;
- end;
- {$EXTERNALSYM _CSADDR_INFO}
- CSADDR_INFO = _CSADDR_INFO;
- {$EXTERNALSYM CSADDR_INFO}
- TCsAddrInfo = CSADDR_INFO;
- PCsAddrInfo = LPCSADDR_INFO;
- //
- // Protocol Information
- //
- LPPROTOCOL_INFOA = ^PROTOCOL_INFOA;
- {$EXTERNALSYM LPPROTOCOL_INFOA}
- PPROTOCOL_INFOA = ^PROTOCOL_INFOA;
- {$EXTERNALSYM PPROTOCOL_INFOA}
- _PROTOCOL_INFOA = record
- dwServiceFlags: DWORD;
- iAddressFamily: Integer;
- iMaxSockAddr: Integer;
- iMinSockAddr: Integer;
- iSocketType: Integer;
- iProtocol: Integer;
- dwMessageSize: DWORD;
- lpProtocol: LPSTR;
- end;
- {$EXTERNALSYM _PROTOCOL_INFOA}
- PROTOCOL_INFOA = _PROTOCOL_INFOA;
- {$EXTERNALSYM PROTOCOL_INFOA}
- TProtocolInfoA = PROTOCOL_INFOA;
- PProtocolInfoA = LPPROTOCOL_INFOA;
- //
- // Protocol Information
- //
- LPPROTOCOL_INFOW = ^PROTOCOL_INFOW;
- {$EXTERNALSYM LPPROTOCOL_INFOW}
- PPROTOCOL_INFOW = ^PROTOCOL_INFOW;
- {$EXTERNALSYM PPROTOCOL_INFOW}
- _PROTOCOL_INFOW = record
- dwServiceFlags: DWORD;
- iAddressFamily: Integer;
- iMaxSockAddr: Integer;
- iMinSockAddr: Integer;
- iSocketType: Integer;
- iProtocol: Integer;
- dwMessageSize: DWORD;
- lpProtocol: LPWSTR;
- end;
- {$EXTERNALSYM _PROTOCOL_INFOW}
- PROTOCOL_INFOW = _PROTOCOL_INFOW;
- {$EXTERNALSYM PROTOCOL_INFOW}
- TProtocolInfoW = PROTOCOL_INFOW;
- PProtocolInfoW = LPPROTOCOL_INFOW;
- {$IFDEF UNICODE}
- PROTOCOL_INFO = PROTOCOL_INFOW;
- {$EXTERNALSYM PROTOCOL_INFO}
- PPROTOCOL_INFO = PPROTOCOL_INFOW;
- {$EXTERNALSYM PPROTOCOL_INFO}
- LPPROTOCOL_INFO = LPPROTOCOL_INFOW;
- {$EXTERNALSYM LPPROTOCOL_INFO}
- TProtocolInfo = TProtocolInfoW;
- PProtocolInfo = PProtocolInfoW;
- {$ELSE}
- PROTOCOL_INFO = PROTOCOL_INFOA;
- {$EXTERNALSYM PROTOCOL_INFO}
- PPROTOCOL_INFO = PPROTOCOL_INFOA;
- {$EXTERNALSYM PPROTOCOL_INFO}
- LPPROTOCOL_INFO = LPPROTOCOL_INFOA;
- {$EXTERNALSYM LPPROTOCOL_INFO}
- TProtocolInfo = TProtocolInfoA;
- PProtocolInfo = PProtocolInfoA;
- {$ENDIF UNICODE}
- //
- // NETRESOURCE2 Structure
- //
- LPNETRESOURCE2A = ^NETRESOURCE2A;
- {$EXTERNALSYM LPNETRESOURCE2A}
- PNETRESOURCE2A = ^NETRESOURCE2A;
- {$EXTERNALSYM PNETRESOURCE2A}
- _NETRESOURCE2A = record
- dwScope: DWORD;
- dwType: DWORD;
- dwUsage: DWORD;
- dwDisplayType: DWORD;
- lpLocalName: LPSTR;
- lpRemoteName: LPSTR;
- lpComment: LPSTR;
- ns_info: NS_INFO;
- ServiceType: TGUID;
- dwProtocols: DWORD;
- lpiProtocols: PINT;
- end;
- {$EXTERNALSYM _NETRESOURCE2A}
- NETRESOURCE2A = _NETRESOURCE2A;
- {$EXTERNALSYM NETRESOURCE2A}
- TNetResource2A = NETRESOURCE2A;
- //
- // NETRESOURCE2 Structure
- //
- LPNETRESOURCE2W = ^NETRESOURCE2W;
- {$EXTERNALSYM LPNETRESOURCE2W}
- PNETRESOURCE2W = ^NETRESOURCE2W;
- {$EXTERNALSYM PNETRESOURCE2W}
- _NETRESOURCE2W = record
- dwScope: DWORD;
- dwType: DWORD;
- dwUsage: DWORD;
- dwDisplayType: DWORD;
- lpLocalName: LPWSTR;
- lpRemoteName: LPWSTR;
- lpComment: LPWSTR;
- ns_info: NS_INFO;
- ServiceType: TGUID;
- dwProtocols: DWORD;
- lpiProtocols: PINT;
- end;
- {$EXTERNALSYM _NETRESOURCE2W}
- NETRESOURCE2W = _NETRESOURCE2W;
- {$EXTERNALSYM NETRESOURCE2W}
- TNetResource2W = NETRESOURCE2W;
- {$IFDEF UNICODE}
- NETRESOURCE2 = NETRESOURCE2W;
- {$EXTERNALSYM NETRESOURCE2}
- PNETRESOURCE2 = PNETRESOURCE2W;
- {$EXTERNALSYM PNETRESOURCE2}
- LPNETRESOURCE2 = LPNETRESOURCE2W;
- {$EXTERNALSYM LPNETRESOURCE2}
- TNetResource2 = TNetResource2W;
- {$ELSE}
- NETRESOURCE2 = NETRESOURCE2A;
- {$EXTERNALSYM NETRESOURCE2}
- PNETRESOURCE2 = PNETRESOURCE2A;
- {$EXTERNALSYM PNETRESOURCE2}
- LPNETRESOURCE2 = LPNETRESOURCE2A;
- {$EXTERNALSYM LPNETRESOURCE2}
- TNetResource2 = TNetResource2A;
- {$ENDIF UNICODE}
- LPFN_NSPAPI = function: DWORD; stdcall;
- {$EXTERNALSYM LPFN_NSPAPI}
- TFnNspApi = LPFN_NSPAPI;
- //
- // Structures for using the service routines asynchronously.
- //
- type
- LPSERVICE_CALLBACK_PROC = procedure(lParam: LPARAM; hAsyncTaskHandle: HANDLE); stdcall;
- {$EXTERNALSYM LPSERVICE_CALLBACK_PROC}
- TServiceCallbackProc = LPSERVICE_CALLBACK_PROC;
- type
- LPSERVICE_ASYNC_INFO = ^SERVICE_ASYNC_INFO;
- {$EXTERNALSYM LPSERVICE_ASYNC_INFO}
- PSERVICE_ASYNC_INFO = ^SERVICE_ASYNC_INFO;
- {$EXTERNALSYM PSERVICE_ASYNC_INFO}
- _SERVICE_ASYNC_INFO = record
- lpServiceCallbackProc: LPSERVICE_CALLBACK_PROC;
- lParam: LPARAM;
- hAsyncTaskHandle: HANDLE;
- end;
- {$EXTERNALSYM _SERVICE_ASYNC_INFO}
- SERVICE_ASYNC_INFO = _SERVICE_ASYNC_INFO;
- {$EXTERNALSYM SERVICE_ASYNC_INFO}
- TServiceAsyncInfo = SERVICE_ASYNC_INFO;
- PServiceAsyncInfo = LPSERVICE_ASYNC_INFO;
- //
- // Public NSP API prototypes.
- //
- function EnumProtocolsA(lpiProtocols: PINT; lpProtocolBuffer: LPVOID; lpdwBufferLength: LPDWORD): Integer; stdcall;
- {$EXTERNALSYM EnumProtocolsA}
- function EnumProtocolsW(lpiProtocols: PINT; lpProtocolBuffer: LPVOID; lpdwBufferLength: LPDWORD): Integer; stdcall;
- {$EXTERNALSYM EnumProtocolsW}
- function EnumProtocols(lpiProtocols: PINT; lpProtocolBuffer: LPVOID; lpdwBufferLength: LPDWORD): Integer; stdcall;
- {$EXTERNALSYM EnumProtocols}
- function GetAddressByNameA(dwNameSpace: DWORD; const lpServiceType: TGUID;
- lpServiceName: LPSTR; lpiProtocols: PINT; dwResolution: DWORD;
- lpServiceAsyncInfo: LPSERVICE_ASYNC_INFO; lpCsaddrBuffer: LPVOID;
- var lpdwBufferLength: DWORD; lpAliasBuffer: LPSTR; lpdwAliasBufferLength: LPDWORD): Integer; stdcall;
- {$EXTERNALSYM GetAddressByNameA}
- function GetAddressByNameW(dwNameSpace: DWORD; const lpServiceType: TGUID;
- lpServiceName: LPWSTR; lpiProtocols: PINT; dwResolution: DWORD;
- lpServiceAsyncInfo: LPSERVICE_ASYNC_INFO; lpCsaddrBuffer: LPVOID;
- var lpdwBufferLength: DWORD; lpAliasBuffer: LPWSTR; lpdwAliasBufferLength: LPDWORD): Integer; stdcall;
- {$EXTERNALSYM GetAddressByNameW}
- function GetAddressByName(dwNameSpace: DWORD; const lpServiceType: TGUID;
- lpServiceName: LPTSTR; lpiProtocols: PINT; dwResolution: DWORD;
- lpServiceAsyncInfo: LPSERVICE_ASYNC_INFO; lpCsaddrBuffer: LPVOID;
- var lpdwBufferLength: DWORD; lpAliasBuffer: LPTSTR; lpdwAliasBufferLength: LPDWORD): Integer; stdcall;
- {$EXTERNALSYM GetAddressByName}
- function GetTypeByNameA(lpServiceName: LPSTR; var lpServiceType: TGUID): Integer; stdcall;
- {$EXTERNALSYM GetTypeByNameA}
- function GetTypeByNameW(lpServiceName: LPWSTR; var lpServiceType: TGUID): Integer; stdcall;
- {$EXTERNALSYM GetTypeByNameW}
- function GetTypeByName(lpServiceName: LPTSTR; var lpServiceType: TGUID): Integer; stdcall;
- {$EXTERNALSYM GetTypeByName}
- function GetNameByTypeA(const lpServiceType: TGUID; lpServiceName: LPSTR; dwNameLength: DWORD): Integer; stdcall;
- {$EXTERNALSYM GetNameByTypeA}
- function GetNameByTypeW(const lpServiceType: TGUID; lpServiceName: LPWSTR; dwNameLength: DWORD): Integer; stdcall;
- {$EXTERNALSYM GetNameByTypeW}
- function GetNameByType(const lpServiceType: TGUID; lpServiceName: LPTSTR; dwNameLength: DWORD): Integer; stdcall;
- {$EXTERNALSYM GetNameByType}
- function SetServiceA(dwNameSpace, dwOperation, dwFlags: DWORD;
- const lpServiceInfo: SERVICE_INFOA; lpServiceAsyncInfo: LPSERVICE_ASYNC_INFO;
- var lpdwStatusFlags: DWORD): Integer; stdcall;
- {$EXTERNALSYM SetServiceA}
- function SetServiceW(dwNameSpace, dwOperation, dwFlags: DWORD;
- const lpServiceInfo: SERVICE_INFOW; lpServiceAsyncInfo: LPSERVICE_ASYNC_INFO;
- var lpdwStatusFlags: DWORD): Integer; stdcall;
- {$EXTERNALSYM SetServiceW}
- function SetService(dwNameSpace, dwOperation, dwFlags: DWORD;
- const lpServiceInfo: SERVICE_INFO; lpServiceAsyncInfo: LPSERVICE_ASYNC_INFO;
- var lpdwStatusFlags: DWORD): Integer; stdcall;
- {$EXTERNALSYM SetService}
- function GetServiceA(dwNameSpace: DWORD; const lpGuid: TGUID; lpServiceName: LPSTR;
- dwProperties: DWORD; lpBuffer: LPVOID; var lpdwBufferSize: DWORD;
- lpServiceAsyncInfo: LPSERVICE_ASYNC_INFO): Integer; stdcall;
- {$EXTERNALSYM GetServiceA}
- function GetServiceW(dwNameSpace: DWORD; const lpGuid: TGUID; lpServiceName: LPWSTR;
- dwProperties: DWORD; lpBuffer: LPVOID; var lpdwBufferSize: DWORD;
- lpServiceAsyncInfo: LPSERVICE_ASYNC_INFO): Integer; stdcall;
- {$EXTERNALSYM GetServiceW}
- function GetService(dwNameSpace: DWORD; const lpGuid: TGUID; lpServiceName: LPTSTR;
- dwProperties: DWORD; lpBuffer: LPVOID; var lpdwBufferSize: DWORD;
- lpServiceAsyncInfo: LPSERVICE_ASYNC_INFO): Integer; stdcall;
- {$EXTERNALSYM GetService}
- implementation
- const
- nsplib = 'wsock32.dll';
- {$IFDEF UNICODE}
- AWSuffix = 'W';
- {$ELSE}
- AWSuffix = 'A';
- {$ENDIF UNICODE}
- {$IFDEF DYNAMIC_LINK}
- var
- _EnumProtocolsA: Pointer;
- function EnumProtocolsA;
- begin
- GetProcedureAddress(_EnumProtocolsA, nsplib, 'EnumProtocolsA');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_EnumProtocolsA]
- end;
- end;
- var
- _EnumProtocolsW: Pointer;
- function EnumProtocolsW;
- begin
- GetProcedureAddress(_EnumProtocolsW, nsplib, 'EnumProtocolsW');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_EnumProtocolsW]
- end;
- end;
- var
- _EnumProtocols: Pointer;
- function EnumProtocols;
- begin
- GetProcedureAddress(_EnumProtocols, nsplib, 'EnumProtocols' + AWSuffix);
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_EnumProtocols]
- end;
- end;
- var
- _GetAddressByNameA: Pointer;
- function GetAddressByNameA;
- begin
- GetProcedureAddress(_GetAddressByNameA, nsplib, 'GetAddressByNameA');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_GetAddressByNameA]
- end;
- end;
- var
- _GetAddressByNameW: Pointer;
- function GetAddressByNameW;
- begin
- GetProcedureAddress(_GetAddressByNameW, nsplib, 'GetAddressByNameW');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_GetAddressByNameW]
- end;
- end;
- var
- _GetAddressByName: Pointer;
- function GetAddressByName;
- begin
- GetProcedureAddress(_GetAddressByName, nsplib, 'GetAddressByName' + AWSuffix);
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_GetAddressByName]
- end;
- end;
- var
- _GetTypeByNameA: Pointer;
- function GetTypeByNameA;
- begin
- GetProcedureAddress(_GetTypeByNameA, nsplib, 'GetTypeByNameA');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_GetTypeByNameA]
- end;
- end;
- var
- _GetTypeByNameW: Pointer;
- function GetTypeByNameW;
- begin
- GetProcedureAddress(_GetTypeByNameW, nsplib, 'GetTypeByNameW');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_GetTypeByNameW]
- end;
- end;
- var
- _GetTypeByName: Pointer;
- function GetTypeByName;
- begin
- GetProcedureAddress(_GetTypeByName, nsplib, 'GetTypeByName' + AWSuffix);
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_GetTypeByName]
- end;
- end;
- var
- _GetNameByTypeA: Pointer;
- function GetNameByTypeA;
- begin
- GetProcedureAddress(_GetNameByTypeA, nsplib, 'GetNameByTypeA');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_GetNameByTypeA]
- end;
- end;
- var
- _GetNameByTypeW: Pointer;
- function GetNameByTypeW;
- begin
- GetProcedureAddress(_GetNameByTypeW, nsplib, 'GetNameByTypeW');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_GetNameByTypeW]
- end;
- end;
- var
- _GetNameByType: Pointer;
- function GetNameByType;
- begin
- GetProcedureAddress(_GetNameByType, nsplib, 'GetNameByType' + AWSuffix);
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_GetNameByType]
- end;
- end;
- var
- _SetServiceA: Pointer;
- function SetServiceA;
- begin
- GetProcedureAddress(_SetServiceA, nsplib, 'SetServiceA');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_SetServiceA]
- end;
- end;
- var
- _SetServiceW: Pointer;
- function SetServiceW;
- begin
- GetProcedureAddress(_SetServiceW, nsplib, 'SetServiceW');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_SetServiceW]
- end;
- end;
- var
- _SetService: Pointer;
- function SetService;
- begin
- GetProcedureAddress(_SetService, nsplib, 'SetService' + AWSuffix);
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_SetService]
- end;
- end;
- var
- _GetServiceA: Pointer;
- function GetServiceA;
- begin
- GetProcedureAddress(_GetServiceA, nsplib, 'GetServiceA');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_GetServiceA]
- end;
- end;
- var
- _GetServiceW: Pointer;
- function GetServiceW;
- begin
- GetProcedureAddress(_GetServiceW, nsplib, 'GetServiceW');
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_GetServiceW]
- end;
- end;
- var
- _GetService: Pointer;
- function GetService;
- begin
- GetProcedureAddress(_GetService, nsplib, 'GetService' + AWSuffix);
- asm
- MOV ESP, EBP
- POP EBP
- JMP [_GetService]
- end;
- end;
- {$ELSE}
- function EnumProtocolsA; external nsplib name 'EnumProtocolsA';
- function EnumProtocolsW; external nsplib name 'EnumProtocolsW';
- function EnumProtocols; external nsplib name 'EnumProtocols' + AWSuffix;
- function GetAddressByNameA; external nsplib name 'GetAddressByNameA';
- function GetAddressByNameW; external nsplib name 'GetAddressByNameW';
- function GetAddressByName; external nsplib name 'GetAddressByName' + AWSuffix;
- function GetTypeByNameA; external nsplib name 'GetTypeByNameA';
- function GetTypeByNameW; external nsplib name 'GetTypeByNameW';
- function GetTypeByName; external nsplib name 'GetTypeByName' + AWSuffix;
- function GetNameByTypeA; external nsplib name 'GetNameByTypeA';
- function GetNameByTypeW; external nsplib name 'GetNameByTypeW';
- function GetNameByType; external nsplib name 'GetNameByType' + AWSuffix;
- function SetServiceA; external nsplib name 'SetServiceA';
- function SetServiceW; external nsplib name 'SetServiceW';
- function SetService; external nsplib name 'SetService' + AWSuffix;
- function GetServiceA; external nsplib name 'GetServiceA';
- function GetServiceW; external nsplib name 'GetServiceW';
- function GetService; external nsplib name 'GetService' + AWSuffix;
- {$ENDIF DYNAMIC_LINK}
- end.
|