diff --git a/archive/SilentVoid13/Silent_Packer.txt b/archive/SilentVoid13/Silent_Packer.txt new file mode 100644 index 00000000..2dfd7b91 --- /dev/null +++ b/archive/SilentVoid13/Silent_Packer.txt @@ -0,0 +1,7763 @@ +Project Path: arc_SilentVoid13_Silent_Packer_l0847l_r + +Source Tree: + +```txt +arc_SilentVoid13_Silent_Packer_l0847l_r +├── CMakeLists.txt +├── LICENSE.TXT +├── METHODS.md +├── README.md +├── TODO.md +├── bin +│ └── Silent_Packer +├── extern +│ └── argtable3 +├── flake.lock +├── flake.nix +├── includes +│ ├── ELF +│ │ ├── elf_allocation.h +│ │ ├── elf_code_cave.h +│ │ ├── elf_deallocation.h +│ │ ├── elf_encryption.h +│ │ ├── elf_functions.h +│ │ ├── elf_packing.h +│ │ ├── elf_packing_method.h +│ │ ├── elf_section_insertion.h +│ │ ├── elf_silvio_infection.h +│ │ └── elf_writing.h +│ ├── PE +│ │ ├── pe_allocation.h +│ │ ├── pe_code_cave.h +│ │ ├── pe_deallocation.h +│ │ ├── pe_encryption.h +│ │ ├── pe_functions.h +│ │ ├── pe_packing.h +│ │ ├── pe_packing_method.h +│ │ ├── pe_section_insertion.h +│ │ ├── pe_struct.h +│ │ └── pe_writing.h +│ ├── STUB +│ │ ├── all_elf_loaders.h +│ │ ├── all_elf_loaders_infos.h +│ │ ├── all_loaders.h +│ │ ├── all_pe_loaders.h +│ │ ├── all_pe_loaders_infos.h +│ │ ├── amd64_aes_128_ecb_linux_elf_loader.h +│ │ ├── amd64_aes_128_ecb_win_pe_loader.h +│ │ ├── amd64_xor_linux_elf_loader.h +│ │ ├── amd64_xor_win_pe_loader.h +│ │ ├── i386_aes_128_ecb_linux_elf_loader.h +│ │ ├── i386_aes_128_ecb_win_pe_loader.h +│ │ ├── i386_xor_linux_elf_loader.h +│ │ └── i386_xor_win_pe_loader.h +│ ├── common +│ │ ├── aes_128_ecb_encryption.h +│ │ ├── cipher_functions.h +│ │ ├── file_functions.h +│ │ ├── loader_functions.h +│ │ └── packer_config.h +│ ├── main.h +│ └── packing_method.h +├── resources +│ ├── ELF_Section_Insertion.png +│ ├── ELF_Silvio_text_infection.png +│ ├── PE_Code_cave.png +│ ├── PE_structure.png +│ ├── elf_structure.svg +│ └── linking_execution_view.jpg +└── src + ├── ELF + │ ├── elf_allocation.c + │ ├── elf_code_cave.c + │ ├── elf_deallocation.c + │ ├── elf_encryption.c + │ ├── elf_functions.c + │ ├── elf_packing.c + │ ├── elf_packing_method.c + │ ├── elf_section_insertion.c + │ ├── elf_silvio_infection.c + │ └── elf_writing.c + ├── PE + │ ├── pe_allocation.c + │ ├── pe_code_cave.c + │ ├── pe_deallocation.c + │ ├── pe_encryption.c + │ ├── pe_functions.c + │ ├── pe_packing.c + │ ├── pe_packing_method.c + │ ├── pe_section_insertion.c + │ └── pe_writing.c + ├── STUB + │ ├── amd64_aes_128_ecb_linux_elf_loader.asm + │ ├── amd64_aes_128_ecb_win_pe_loader.asm + │ ├── amd64_xor_linux_elf_loader.asm + │ ├── amd64_xor_win_pe_loader.asm + │ ├── i386_aes_128_ecb_linux_elf_loader.asm + │ ├── i386_aes_128_ecb_win_pe_loader.asm + │ ├── i386_xor_linux_elf_loader.asm + │ └── i386_xor_win_pe_loader.asm + ├── common + │ ├── aes_128_ecb_encryption.asm + │ ├── cipher_functions.c + │ ├── file_functions.c + │ ├── loader_functions.c + │ └── packer_config.c + ├── main.c + └── utilities + └── Silent_Log + +``` + +`CMakeLists.txt`: + +```txt +### Basic cmake setup ### + +cmake_minimum_required(VERSION 3.2.1) + +set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/staticlibs) +set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/staticlibs) +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/bin) + +set(CMAKE_C_FLAGS "-Wall") +set(CMAKE_C_FLAGS "-Wextra") + +project(Silent_Packer) + +# https://cliutils.gitlab.io/modern-cmake/chapters/projects/submodule.html +### Git Submodule management ### +find_package(Git REQUIRED) +if(GIT_FOUND AND EXISTS "${PROJECT_SOURCE_DIR}/.git") + option(GIT_SUBMODULE "Check submodules during build" ON) + if(GIT_SUBMODULE) + message(STATUS "Submodule update") + execute_process(COMMAND ${GIT_EXECUTABLE} submodule update --init --recursive + WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} + RESULT_VARIABLE GIT_SUBMOD_RESULT) + if(NOT GIT_SUBMOD_RESULT EQUAL "0") + message(FATAL_ERROR "git submodule update --init failed with ${GIT_SUBMOD_RESULT}, please checkout submodules") + endif() + endif() +endif() + +### NASM management ### +enable_language(ASM_NASM) +if(CMAKE_ASM_NASM_COMPILER_LOADED) + set(CAN_USE_ASSEMBLER TRUE) + + # https://stackoverflow.com/questions/49131996/compile-asm-and-c-with-asm-for-debugging + set(CMAKE_ASM_NASM_OBJECT_FORMAT elf64) + set(CMAKE_ASM_NASM_COMPILE_OBJECT " \ + -f ${CMAKE_ASM_NASM_OBJECT_FORMAT} -o ") + set_source_files_properties(src/common/aes_128_ecb_encryption.asm PROPERTIES COMPILE_FLAGS "-g -Fdwarf") + + file(GLOB_RECURSE ENGINE_ASM_FILES "src/engine/*.asm") + set(ENGINE_SOURCES ${ENGINE_SOURCES} ${ENGINE_ASM_FILES}) +endif(CMAKE_ASM_NASM_COMPILER_LOADED) + +### Includes ### +include_directories(includes) +include_directories(includes/ELF) +include_directories(includes/PE) +include_directories(includes/STUB) +include_directories(includes/common) +include_directories(src/utilities/Silent_Log) + +### Sources ### +set(SOURCES src/main.c) + +set(UTILITIES_SOURCES src/utilities/Silent_Log/log.c) +set(SOURCES ${SOURCES} ${UTILITIES_SOURCES}) + +set(ELF_SOURCES src/ELF/elf_allocation.c src/ELF/elf_functions.c src/ELF/elf_packing.c src/ELF/elf_encryption.c src/ELF/elf_section_insertion.c src/ELF/elf_writing.c src/ELF/elf_silvio_infection.c src/ELF/elf_code_cave.c src/ELF/elf_deallocation.c) +set(PE_SOURCES src/PE/pe_allocation.c src/PE/pe_functions.c src/PE/pe_writing.c src/PE/pe_packing.c src/PE/pe_code_cave.c src/PE/pe_packing_method.c src/PE/pe_encryption.c src/PE/pe_section_insertion.c src/PE/pe_deallocation.c) + +set(COMMON_SOURCES ${ELF_SOURCES} ${PE_SOURCES} src/common/file_functions.c src/common/cipher_functions.c src/ELF/elf_packing_method.c src/common/loader_functions.c src/common/packer_config.c) + +set(ASSEMBLY_SOURCES src/common/aes_128_ecb_encryption.asm) + +set(SOURCES ${SOURCES} ${COMMON_SOURCES} ${ASSEMBLY_SOURCES}) + +add_executable(Silent_Packer ${SOURCES}) +install(TARGETS Silent_Packer DESTINATION bin) + +### External libs ### + +option(ARGTABLE3_ENABLE_TESTS OFF) +option(ARGTABLE3_ENABLE_EXAMPLES OFF) +add_subdirectory("extern/argtable3") + +target_link_libraries(Silent_Packer argtable3 pthread m) + +``` + +`LICENSE.TXT`: + +```TXT + GNU AFFERO GENERAL PUBLIC LICENSE + Version 3, 19 November 2007 + + Copyright (C) 2007 Free Software Foundation, Inc. + Everyone is permitted to copy and distribute verbatim copies + of this license document, but changing it is not allowed. + + Preamble + + The GNU Affero General Public License is a free, copyleft license for +software and other kinds of works, specifically designed to ensure +cooperation with the community in the case of network server software. + + The licenses for most software and other practical works are designed +to take away your freedom to share and change the works. By contrast, +our General Public Licenses are intended to guarantee your freedom to +share and change all versions of a program--to make sure it remains free +software for all its users. + + When we speak of free software, we are referring to freedom, not +price. Our General Public Licenses are designed to make sure that you +have the freedom to distribute copies of free software (and charge for +them if you wish), that you receive source code or can get it if you +want it, that you can change the software or use pieces of it in new +free programs, and that you know you can do these things. + + Developers that use our General Public Licenses protect your rights +with two steps: (1) assert copyright on the software, and (2) offer +you this License which gives you legal permission to copy, distribute +and/or modify the software. + + A secondary benefit of defending all users' freedom is that +improvements made in alternate versions of the program, if they +receive widespread use, become available for other developers to +incorporate. Many developers of free software are heartened and +encouraged by the resulting cooperation. However, in the case of +software used on network servers, this result may fail to come about. +The GNU General Public License permits making a modified version and +letting the public access it on a server without ever releasing its +source code to the public. + + The GNU Affero General Public License is designed specifically to +ensure that, in such cases, the modified source code becomes available +to the community. It requires the operator of a network server to +provide the source code of the modified version running there to the +users of that server. Therefore, public use of a modified version, on +a publicly accessible server, gives the public access to the source +code of the modified version. + + An older license, called the Affero General Public License and +published by Affero, was designed to accomplish similar goals. This is +a different license, not a version of the Affero GPL, but Affero has +released a new version of the Affero GPL which permits relicensing under +this license. + + The precise terms and conditions for copying, distribution and +modification follow. + + TERMS AND CONDITIONS + + 0. Definitions. + + "This License" refers to version 3 of the GNU Affero General Public License. + + "Copyright" also means copyright-like laws that apply to other kinds of +works, such as semiconductor masks. + + "The Program" refers to any copyrightable work licensed under this +License. Each licensee is addressed as "you". "Licensees" and +"recipients" may be individuals or organizations. + + To "modify" a work means to copy from or adapt all or part of the work +in a fashion requiring copyright permission, other than the making of an +exact copy. The resulting work is called a "modified version" of the +earlier work or a work "based on" the earlier work. + + A "covered work" means either the unmodified Program or a work based +on the Program. + + To "propagate" a work means to do anything with it that, without +permission, would make you directly or secondarily liable for +infringement under applicable copyright law, except executing it on a +computer or modifying a private copy. Propagation includes copying, +distribution (with or without modification), making available to the +public, and in some countries other activities as well. + + To "convey" a work means any kind of propagation that enables other +parties to make or receive copies. Mere interaction with a user through +a computer network, with no transfer of a copy, is not conveying. + + An interactive user interface displays "Appropriate Legal Notices" +to the extent that it includes a convenient and prominently visible +feature that (1) displays an appropriate copyright notice, and (2) +tells the user that there is no warranty for the work (except to the +extent that warranties are provided), that licensees may convey the +work under this License, and how to view a copy of this License. If +the interface presents a list of user commands or options, such as a +menu, a prominent item in the list meets this criterion. + + 1. Source Code. + + The "source code" for a work means the preferred form of the work +for making modifications to it. "Object code" means any non-source +form of a work. + + A "Standard Interface" means an interface that either is an official +standard defined by a recognized standards body, or, in the case of +interfaces specified for a particular programming language, one that +is widely used among developers working in that language. + + The "System Libraries" of an executable work include anything, other +than the work as a whole, that (a) is included in the normal form of +packaging a Major Component, but which is not part of that Major +Component, and (b) serves only to enable use of the work with that +Major Component, or to implement a Standard Interface for which an +implementation is available to the public in source code form. A +"Major Component", in this context, means a major essential component +(kernel, window system, and so on) of the specific operating system +(if any) on which the executable work runs, or a compiler used to +produce the work, or an object code interpreter used to run it. + + The "Corresponding Source" for a work in object code form means all +the source code needed to generate, install, and (for an executable +work) run the object code and to modify the work, including scripts to +control those activities. However, it does not include the work's +System Libraries, or general-purpose tools or generally available free +programs which are used unmodified in performing those activities but +which are not part of the work. For example, Corresponding Source +includes interface definition files associated with source files for +the work, and the source code for shared libraries and dynamically +linked subprograms that the work is specifically designed to require, +such as by intimate data communication or control flow between those +subprograms and other parts of the work. + + The Corresponding Source need not include anything that users +can regenerate automatically from other parts of the Corresponding +Source. + + The Corresponding Source for a work in source code form is that +same work. + + 2. Basic Permissions. + + All rights granted under this License are granted for the term of +copyright on the Program, and are irrevocable provided the stated +conditions are met. This License explicitly affirms your unlimited +permission to run the unmodified Program. The output from running a +covered work is covered by this License only if the output, given its +content, constitutes a covered work. This License acknowledges your +rights of fair use or other equivalent, as provided by copyright law. + + You may make, run and propagate covered works that you do not +convey, without conditions so long as your license otherwise remains +in force. You may convey covered works to others for the sole purpose +of having them make modifications exclusively for you, or provide you +with facilities for running those works, provided that you comply with +the terms of this License in conveying all material for which you do +not control copyright. Those thus making or running the covered works +for you must do so exclusively on your behalf, under your direction +and control, on terms that prohibit them from making any copies of +your copyrighted material outside their relationship with you. + + Conveying under any other circumstances is permitted solely under +the conditions stated below. Sublicensing is not allowed; section 10 +makes it unnecessary. + + 3. Protecting Users' Legal Rights From Anti-Circumvention Law. + + No covered work shall be deemed part of an effective technological +measure under any applicable law fulfilling obligations under article +11 of the WIPO copyright treaty adopted on 20 December 1996, or +similar laws prohibiting or restricting circumvention of such +measures. + + When you convey a covered work, you waive any legal power to forbid +circumvention of technological measures to the extent such circumvention +is effected by exercising rights under this License with respect to +the covered work, and you disclaim any intention to limit operation or +modification of the work as a means of enforcing, against the work's +users, your or third parties' legal rights to forbid circumvention of +technological measures. + + 4. Conveying Verbatim Copies. + + You may convey verbatim copies of the Program's source code as you +receive it, in any medium, provided that you conspicuously and +appropriately publish on each copy an appropriate copyright notice; +keep intact all notices stating that this License and any +non-permissive terms added in accord with section 7 apply to the code; +keep intact all notices of the absence of any warranty; and give all +recipients a copy of this License along with the Program. + + You may charge any price or no price for each copy that you convey, +and you may offer support or warranty protection for a fee. + + 5. Conveying Modified Source Versions. + + You may convey a work based on the Program, or the modifications to +produce it from the Program, in the form of source code under the +terms of section 4, provided that you also meet all of these conditions: + + a) The work must carry prominent notices stating that you modified + it, and giving a relevant date. + + b) The work must carry prominent notices stating that it is + released under this License and any conditions added under section + 7. This requirement modifies the requirement in section 4 to + "keep intact all notices". + + c) You must license the entire work, as a whole, under this + License to anyone who comes into possession of a copy. This + License will therefore apply, along with any applicable section 7 + additional terms, to the whole of the work, and all its parts, + regardless of how they are packaged. This License gives no + permission to license the work in any other way, but it does not + invalidate such permission if you have separately received it. + + d) If the work has interactive user interfaces, each must display + Appropriate Legal Notices; however, if the Program has interactive + interfaces that do not display Appropriate Legal Notices, your + work need not make them do so. + + A compilation of a covered work with other separate and independent +works, which are not by their nature extensions of the covered work, +and which are not combined with it such as to form a larger program, +in or on a volume of a storage or distribution medium, is called an +"aggregate" if the compilation and its resulting copyright are not +used to limit the access or legal rights of the compilation's users +beyond what the individual works permit. Inclusion of a covered work +in an aggregate does not cause this License to apply to the other +parts of the aggregate. + + 6. Conveying Non-Source Forms. + + You may convey a covered work in object code form under the terms +of sections 4 and 5, provided that you also convey the +machine-readable Corresponding Source under the terms of this License, +in one of these ways: + + a) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by the + Corresponding Source fixed on a durable physical medium + customarily used for software interchange. + + b) Convey the object code in, or embodied in, a physical product + (including a physical distribution medium), accompanied by a + written offer, valid for at least three years and valid for as + long as you offer spare parts or customer support for that product + model, to give anyone who possesses the object code either (1) a + copy of the Corresponding Source for all the software in the + product that is covered by this License, on a durable physical + medium customarily used for software interchange, for a price no + more than your reasonable cost of physically performing this + conveying of source, or (2) access to copy the + Corresponding Source from a network server at no charge. + + c) Convey individual copies of the object code with a copy of the + written offer to provide the Corresponding Source. This + alternative is allowed only occasionally and noncommercially, and + only if you received the object code with such an offer, in accord + with subsection 6b. + + d) Convey the object code by offering access from a designated + place (gratis or for a charge), and offer equivalent access to the + Corresponding Source in the same way through the same place at no + further charge. You need not require recipients to copy the + Corresponding Source along with the object code. If the place to + copy the object code is a network server, the Corresponding Source + may be on a different server (operated by you or a third party) + that supports equivalent copying facilities, provided you maintain + clear directions next to the object code saying where to find the + Corresponding Source. Regardless of what server hosts the + Corresponding Source, you remain obligated to ensure that it is + available for as long as needed to satisfy these requirements. + + e) Convey the object code using peer-to-peer transmission, provided + you inform other peers where the object code and Corresponding + Source of the work are being offered to the general public at no + charge under subsection 6d. + + A separable portion of the object code, whose source code is excluded +from the Corresponding Source as a System Library, need not be +included in conveying the object code work. + + A "User Product" is either (1) a "consumer product", which means any +tangible personal property which is normally used for personal, family, +or household purposes, or (2) anything designed or sold for incorporation +into a dwelling. In determining whether a product is a consumer product, +doubtful cases shall be resolved in favor of coverage. For a particular +product received by a particular user, "normally used" refers to a +typical or common use of that class of product, regardless of the status +of the particular user or of the way in which the particular user +actually uses, or expects or is expected to use, the product. A product +is a consumer product regardless of whether the product has substantial +commercial, industrial or non-consumer uses, unless such uses represent +the only significant mode of use of the product. + + "Installation Information" for a User Product means any methods, +procedures, authorization keys, or other information required to install +and execute modified versions of a covered work in that User Product from +a modified version of its Corresponding Source. The information must +suffice to ensure that the continued functioning of the modified object +code is in no case prevented or interfered with solely because +modification has been made. + + If you convey an object code work under this section in, or with, or +specifically for use in, a User Product, and the conveying occurs as +part of a transaction in which the right of possession and use of the +User Product is transferred to the recipient in perpetuity or for a +fixed term (regardless of how the transaction is characterized), the +Corresponding Source conveyed under this section must be accompanied +by the Installation Information. But this requirement does not apply +if neither you nor any third party retains the ability to install +modified object code on the User Product (for example, the work has +been installed in ROM). + + The requirement to provide Installation Information does not include a +requirement to continue to provide support service, warranty, or updates +for a work that has been modified or installed by the recipient, or for +the User Product in which it has been modified or installed. Access to a +network may be denied when the modification itself materially and +adversely affects the operation of the network or violates the rules and +protocols for communication across the network. + + Corresponding Source conveyed, and Installation Information provided, +in accord with this section must be in a format that is publicly +documented (and with an implementation available to the public in +source code form), and must require no special password or key for +unpacking, reading or copying. + + 7. Additional Terms. + + "Additional permissions" are terms that supplement the terms of this +License by making exceptions from one or more of its conditions. +Additional permissions that are applicable to the entire Program shall +be treated as though they were included in this License, to the extent +that they are valid under applicable law. If additional permissions +apply only to part of the Program, that part may be used separately +under those permissions, but the entire Program remains governed by +this License without regard to the additional permissions. + + When you convey a copy of a covered work, you may at your option +remove any additional permissions from that copy, or from any part of +it. (Additional permissions may be written to require their own +removal in certain cases when you modify the work.) You may place +additional permissions on material, added by you to a covered work, +for which you have or can give appropriate copyright permission. + + Notwithstanding any other provision of this License, for material you +add to a covered work, you may (if authorized by the copyright holders of +that material) supplement the terms of this License with terms: + + a) Disclaiming warranty or limiting liability differently from the + terms of sections 15 and 16 of this License; or + + b) Requiring preservation of specified reasonable legal notices or + author attributions in that material or in the Appropriate Legal + Notices displayed by works containing it; or + + c) Prohibiting misrepresentation of the origin of that material, or + requiring that modified versions of such material be marked in + reasonable ways as different from the original version; or + + d) Limiting the use for publicity purposes of names of licensors or + authors of the material; or + + e) Declining to grant rights under trademark law for use of some + trade names, trademarks, or service marks; or + + f) Requiring indemnification of licensors and authors of that + material by anyone who conveys the material (or modified versions of + it) with contractual assumptions of liability to the recipient, for + any liability that these contractual assumptions directly impose on + those licensors and authors. + + All other non-permissive additional terms are considered "further +restrictions" within the meaning of section 10. If the Program as you +received it, or any part of it, contains a notice stating that it is +governed by this License along with a term that is a further +restriction, you may remove that term. If a license document contains +a further restriction but permits relicensing or conveying under this +License, you may add to a covered work material governed by the terms +of that license document, provided that the further restriction does +not survive such relicensing or conveying. + + If you add terms to a covered work in accord with this section, you +must place, in the relevant source files, a statement of the +additional terms that apply to those files, or a notice indicating +where to find the applicable terms. + + Additional terms, permissive or non-permissive, may be stated in the +form of a separately written license, or stated as exceptions; +the above requirements apply either way. + + 8. Termination. + + You may not propagate or modify a covered work except as expressly +provided under this License. Any attempt otherwise to propagate or +modify it is void, and will automatically terminate your rights under +this License (including any patent licenses granted under the third +paragraph of section 11). + + However, if you cease all violation of this License, then your +license from a particular copyright holder is reinstated (a) +provisionally, unless and until the copyright holder explicitly and +finally terminates your license, and (b) permanently, if the copyright +holder fails to notify you of the violation by some reasonable means +prior to 60 days after the cessation. + + Moreover, your license from a particular copyright holder is +reinstated permanently if the copyright holder notifies you of the +violation by some reasonable means, this is the first time you have +received notice of violation of this License (for any work) from that +copyright holder, and you cure the violation prior to 30 days after +your receipt of the notice. + + Termination of your rights under this section does not terminate the +licenses of parties who have received copies or rights from you under +this License. If your rights have been terminated and not permanently +reinstated, you do not qualify to receive new licenses for the same +material under section 10. + + 9. Acceptance Not Required for Having Copies. + + You are not required to accept this License in order to receive or +run a copy of the Program. Ancillary propagation of a covered work +occurring solely as a consequence of using peer-to-peer transmission +to receive a copy likewise does not require acceptance. However, +nothing other than this License grants you permission to propagate or +modify any covered work. These actions infringe copyright if you do +not accept this License. Therefore, by modifying or propagating a +covered work, you indicate your acceptance of this License to do so. + + 10. Automatic Licensing of Downstream Recipients. + + Each time you convey a covered work, the recipient automatically +receives a license from the original licensors, to run, modify and +propagate that work, subject to this License. You are not responsible +for enforcing compliance by third parties with this License. + + An "entity transaction" is a transaction transferring control of an +organization, or substantially all assets of one, or subdividing an +organization, or merging organizations. If propagation of a covered +work results from an entity transaction, each party to that +transaction who receives a copy of the work also receives whatever +licenses to the work the party's predecessor in interest had or could +give under the previous paragraph, plus a right to possession of the +Corresponding Source of the work from the predecessor in interest, if +the predecessor has it or can get it with reasonable efforts. + + You may not impose any further restrictions on the exercise of the +rights granted or affirmed under this License. For example, you may +not impose a license fee, royalty, or other charge for exercise of +rights granted under this License, and you may not initiate litigation +(including a cross-claim or counterclaim in a lawsuit) alleging that +any patent claim is infringed by making, using, selling, offering for +sale, or importing the Program or any portion of it. + + 11. Patents. + + A "contributor" is a copyright holder who authorizes use under this +License of the Program or a work on which the Program is based. The +work thus licensed is called the contributor's "contributor version". + + A contributor's "essential patent claims" are all patent claims +owned or controlled by the contributor, whether already acquired or +hereafter acquired, that would be infringed by some manner, permitted +by this License, of making, using, or selling its contributor version, +but do not include claims that would be infringed only as a +consequence of further modification of the contributor version. For +purposes of this definition, "control" includes the right to grant +patent sublicenses in a manner consistent with the requirements of +this License. + + Each contributor grants you a non-exclusive, worldwide, royalty-free +patent license under the contributor's essential patent claims, to +make, use, sell, offer for sale, import and otherwise run, modify and +propagate the contents of its contributor version. + + In the following three paragraphs, a "patent license" is any express +agreement or commitment, however denominated, not to enforce a patent +(such as an express permission to practice a patent or covenant not to +sue for patent infringement). To "grant" such a patent license to a +party means to make such an agreement or commitment not to enforce a +patent against the party. + + If you convey a covered work, knowingly relying on a patent license, +and the Corresponding Source of the work is not available for anyone +to copy, free of charge and under the terms of this License, through a +publicly available network server or other readily accessible means, +then you must either (1) cause the Corresponding Source to be so +available, or (2) arrange to deprive yourself of the benefit of the +patent license for this particular work, or (3) arrange, in a manner +consistent with the requirements of this License, to extend the patent +license to downstream recipients. "Knowingly relying" means you have +actual knowledge that, but for the patent license, your conveying the +covered work in a country, or your recipient's use of the covered work +in a country, would infringe one or more identifiable patents in that +country that you have reason to believe are valid. + + If, pursuant to or in connection with a single transaction or +arrangement, you convey, or propagate by procuring conveyance of, a +covered work, and grant a patent license to some of the parties +receiving the covered work authorizing them to use, propagate, modify +or convey a specific copy of the covered work, then the patent license +you grant is automatically extended to all recipients of the covered +work and works based on it. + + A patent license is "discriminatory" if it does not include within +the scope of its coverage, prohibits the exercise of, or is +conditioned on the non-exercise of one or more of the rights that are +specifically granted under this License. You may not convey a covered +work if you are a party to an arrangement with a third party that is +in the business of distributing software, under which you make payment +to the third party based on the extent of your activity of conveying +the work, and under which the third party grants, to any of the +parties who would receive the covered work from you, a discriminatory +patent license (a) in connection with copies of the covered work +conveyed by you (or copies made from those copies), or (b) primarily +for and in connection with specific products or compilations that +contain the covered work, unless you entered into that arrangement, +or that patent license was granted, prior to 28 March 2007. + + Nothing in this License shall be construed as excluding or limiting +any implied license or other defenses to infringement that may +otherwise be available to you under applicable patent law. + + 12. No Surrender of Others' Freedom. + + If conditions are imposed on you (whether by court order, agreement or +otherwise) that contradict the conditions of this License, they do not +excuse you from the conditions of this License. If you cannot convey a +covered work so as to satisfy simultaneously your obligations under this +License and any other pertinent obligations, then as a consequence you may +not convey it at all. For example, if you agree to terms that obligate you +to collect a royalty for further conveying from those to whom you convey +the Program, the only way you could satisfy both those terms and this +License would be to refrain entirely from conveying the Program. + + 13. Remote Network Interaction; Use with the GNU General Public License. + + Notwithstanding any other provision of this License, if you modify the +Program, your modified version must prominently offer all users +interacting with it remotely through a computer network (if your version +supports such interaction) an opportunity to receive the Corresponding +Source of your version by providing access to the Corresponding Source +from a network server at no charge, through some standard or customary +means of facilitating copying of software. This Corresponding Source +shall include the Corresponding Source for any work covered by version 3 +of the GNU General Public License that is incorporated pursuant to the +following paragraph. + + Notwithstanding any other provision of this License, you have +permission to link or combine any covered work with a work licensed +under version 3 of the GNU General Public License into a single +combined work, and to convey the resulting work. The terms of this +License will continue to apply to the part which is the covered work, +but the work with which it is combined will remain governed by version +3 of the GNU General Public License. + + 14. Revised Versions of this License. + + The Free Software Foundation may publish revised and/or new versions of +the GNU Affero General Public License from time to time. Such new versions +will be similar in spirit to the present version, but may differ in detail to +address new problems or concerns. + + Each version is given a distinguishing version number. If the +Program specifies that a certain numbered version of the GNU Affero General +Public License "or any later version" applies to it, you have the +option of following the terms and conditions either of that numbered +version or of any later version published by the Free Software +Foundation. If the Program does not specify a version number of the +GNU Affero General Public License, you may choose any version ever published +by the Free Software Foundation. + + If the Program specifies that a proxy can decide which future +versions of the GNU Affero General Public License can be used, that proxy's +public statement of acceptance of a version permanently authorizes you +to choose that version for the Program. + + Later license versions may give you additional or different +permissions. However, no additional obligations are imposed on any +author or copyright holder as a result of your choosing to follow a +later version. + + 15. Disclaimer of Warranty. + + THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY +APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT +HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY +OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, +THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR +PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM +IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF +ALL NECESSARY SERVICING, REPAIR OR CORRECTION. + + 16. Limitation of Liability. + + IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING +WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS +THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY +GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE +USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF +DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD +PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), +EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF +SUCH DAMAGES. + + 17. Interpretation of Sections 15 and 16. + + If the disclaimer of warranty and limitation of liability provided +above cannot be given local legal effect according to their terms, +reviewing courts shall apply local law that most closely approximates +an absolute waiver of all civil liability in connection with the +Program, unless a warranty or assumption of liability accompanies a +copy of the Program in return for a fee. + + END OF TERMS AND CONDITIONS + + How to Apply These Terms to Your New Programs + + If you develop a new program, and you want it to be of the greatest +possible use to the public, the best way to achieve this is to make it +free software which everyone can redistribute and change under these terms. + + To do so, attach the following notices to the program. It is safest +to attach them to the start of each source file to most effectively +state the exclusion of warranty; and each file should have at least +the "copyright" line and a pointer to where the full notice is found. + + + Copyright (C) + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU Affero General Public License as published + by the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU Affero General Public License for more details. + + You should have received a copy of the GNU Affero General Public License + along with this program. If not, see . + +Also add information on how to contact you by electronic and paper mail. + + If your software can interact with users remotely through a computer +network, you should also make sure that it provides a way for users to +get its source. For example, if your program is a web application, its +interface could display a "Source" link that leads users to an archive +of the code. There are many ways you could offer source, and different +solutions will be better for different programs; see section 13 for the +specific requirements. + + You should also get your employer (if you work as a programmer) or school, +if any, to sign a "copyright disclaimer" for the program, if necessary. +For more information on this, and how to apply and follow the GNU AGPL, see +. + +``` + +`METHODS.md`: + +```md +This is a very basic explanation of the different file format structures and how does the different encryption methods used by Silent_Packer work. + +# ELF + +> In computing, the **Executable and Linkable Format** (ELF, formerly named Extensible Linking Format), is a common standard file format for executable files, object code, shared libraries, and core dumps. + +## ELF Structure + +![ELF Structure](resources/elf_structure.svg) + +## ELF Code cave + +**TODO** + +## ELF Section Insertion + +![ELF Section Insertion](resources/ELF_Section_Insertion.png) + +## ELF Silvio Text Infection + +![ELF Silvio Text Infection](resources/ELF_Silvio_text_infection.png) + +# PE + +> The **Portable Executable** (PE) format is a file format for executables, object code, DLLs and others used in 32-bit and 64-bit versions of Windows operating systems. The PE format is a data structure that encapsulates the information necessary for the Windows OS loader to manage the wrapped executable code. + +## PE Structure + +![PE Structure](resources/PE_structure.png) + +## PE Code Cave + +![PE Code Cave](resources/PE_Code_cave.png) + +## PE Section Insertion + +**TODO** +``` + +`README.md`: + +```md +# Silent_Packer + +Silent_Packer is an ELF / PE packer written in pure C. + +This program can be used to obfuscate a binary. This packer supports PIE binaries. + +## License + +Silent_Packer is licensed under the GNU AGPLv3 license. Refer to [LICENSE](https://github.com/SilentVoid13/Silent_Packer/blob/master/LICENSE.txt) for more informations. + +## What is a packer ? + +> Binary packers alter the original binary data, and restore it (more or less) before execution. + +Silent_Packer is a very basic and common packer, encrypting the code section from the binary (`.text`) and decrypting it before executing it. This technique can be used to obfuscate the binary code to bypass antiviruses or to make reverse engineering harder. Packers can also be used to compress a binary to reduce its size. + +You can find a more detailed stackoverflow post [here](https://reverseengineering.stackexchange.com/questions/1779/what-are-the-different-types-of-packers). + +## File formats + +Silent_Packer currently support the following file formats : + +- ELF64 +- ELF32 +- PE32+ +- PE32 + +I will maybe add the MACH-O file format later. You can suggest me a file format that you want me to add. + +## Cipher methods + +Silent_Packer currently support the following cipher methods : + +- XOR +- AES-128-ECB + +Support for some more secure AES modes should arrive soon (AES-128-CBC, AES-256, ...) + +You can suggest me a cipher method that you want me to add. + +## Encryption methods + +Silent_Packer currently support the following encryption methods : + +- Section Insertion +- Code Cave +- Silvio Text Infection (only for ELF files) + +For a basic explanation on how does these methods work, see the [METHODS](https://github.com/SilentVoid13/Silent_Packer/blob/master/METHODS.md) file. + +## Usage + +```bash +Usage: Silent_Packer [-hVvd] [-f file] [-c ] [-m ] [-o file] + -h, --help Display this help and exit + -V, --version Display version info and exit + -v, --verbose Verbose output + -d, --debug Debug mode + -f, --file=file File to pack + -c, --cipher= Cipher method to use + -m, --method= Method to pack the binary + -o, --output=file Output file +``` + +## Building + +You can either get the compiled version from the latest [release](https://github.com/SilentVoid13/Silent_Packer/releases), from the [bin](https://github.com/SilentVoid13/Silent_Packer/tree/master/bin) directory, or compile it yourself. + +This project relies on [Silent_Log](https://github.com/SilentVoid13/Silent_Log) for logging messages. + +To build it yourself you will need `cmake`, `gcc` and `nasm`. + +No windows version is available at the moment. + +**On Linux** + +```bash +mkdir build && cd build +cmake .. +make +make install +``` + +The compiled binary will be available in the **bin** directory. + +## Known_bugs + +Feel free to report any bugs, so that I can fix them. + +The packer has some recurrent bugs with PE files, especially with big binaries with a lot of dynamic libs. The section insertion method has a weird behavior sometimes (adding some null bytes at the beginning of the section making the offsets wrong). + +## Contributing + +Feel free to contribute. See the [TODO](https://github.com/SilentVoid13/Silent_Packer/blob/master/TODO.md) list. + +## Disclaimer + +I am not responsible for what you do with the information and code provided. This is intended for professional or educational purposes only. + +``` + +`TODO.md`: + +```md + +# Packer +- [x] Make README file +- [ ] Add dynamic library support +- [x] Add PIE support + - Probably my nasm loader that needs to be changed +- [ ] Add new ciphers + - [x] AES +- [x] Add PE Support +- [ ] Clean code +- [ ] Add mprotect in loader +- [x] Add functions prototypes +- [x] Add file recognition (ELF or PE) +- [x] Add file arch recognition (x32 or x64) +- [x] Free malloc variables +- [x] Add submodule warning in makefile +- [ ] Add possibility to add a custom stub (no encryption just executing stub before jumping to main) +- [ ] Add more packing methods +- [ ] Change stub message + +## ELF + +### 32 bit +- [x] Add 32 bit support + +### Section insertion +- [x] Add section name to the section string table +- [x] Fix string table errors + +### Silvio infection +- [ ] Add possibility to add a big payload and add multiple PAGE_SIZE padding + +### Code cave +- [x] Add code_cave support + +### Heap allocated variables +- [x] file_data mmap - munmap + +s_elf struct : + +- [x] t_elf (elf_allocation) +- [x] elf_header (elf_allocation) +- [x] prog_header (elf_allocation) +- [x] section_header (elf_allocation) +- [x] section_data (elf_allocation) +- [x] section_data\[i\] (elf_allocation) + +- [x] loader (loader_functions) + +## PE + +### 32 bit +- [x] Add 32 bit support + - Need to test it + +### Code cave +- [ ] Clean code + +### Section insertion +- [x] Add section insertion packing method +- [ ] Fix section insertion not working for every binary + - Don't know why, but it's adding some null bytes at the beginning of the section making the offsets wrong when decrypting the .text + +### Heap allocated variables + +- [x] t_pe64 (pe_allocation) +- [x] dos_header (pe_allocation) +- [x] dos_stub (pe_allocation) +- [x] pe_header (pe_allocation) +- [x] section_header (pe_allocation) +- [x] section_data (pe_allocation) +- [x] section_data\[i\] (pe_allocation) + +- [x] loader (loader_functions) + +## AES + +- [x] Add AES-128-ECB support for PE32, PE32+, ELF32 +- [ ] Add AES-128-CBC +- [ ] Add AES-256 + +``` + +`flake.lock`: + +```lock +{ + "nodes": { + "flake-utils": { + "inputs": { + "systems": "systems" + }, + "locked": { + "lastModified": 1710146030, + "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "nixpkgs": { + "locked": { + "lastModified": 1711523803, + "narHash": "sha256-UKcYiHWHQynzj6CN/vTcix4yd1eCu1uFdsuarupdCQQ=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "2726f127c15a4cc9810843b96cad73c7eb39e443", + "type": "github" + }, + "original": { + "id": "nixpkgs", + "ref": "nixos-unstable", + "type": "indirect" + } + }, + "root": { + "inputs": { + "flake-utils": "flake-utils", + "nixpkgs": "nixpkgs" + } + }, + "systems": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } + } + }, + "root": "root", + "version": 7 +} + +``` + +`flake.nix`: + +```nix +{ + description = "Silent_Packer"; + + inputs = { + nixpkgs.url = "nixpkgs/nixos-unstable"; + flake-utils.url = "github:numtide/flake-utils"; + }; + + outputs = { + self, + nixpkgs, + flake-utils, + ... + } @ inputs: let + in + flake-utils.lib.eachDefaultSystem ( + system: let + pkgs = import nixpkgs {inherit system;}; + buildInputs = with pkgs; [ + libmhash + ]; + nativeBuildInputs = with pkgs; [ + clang + pkg-config + cmake + nasm + ]; + in { + devShells.default = pkgs.mkShell { + inherit buildInputs; + inherit nativeBuildInputs; + }; + } + ); +} + +``` + +`includes/ELF/elf_allocation.h`: + +```h +// +// Created by silentvoid on 2/25/20. +// Copyright (c) 2020 SilentVoid. All rights reserved. +// + +#ifndef SILENT_PACKER_ELF_ALLOCATION_H +#define SILENT_PACKER_ELF_ALLOCATION_H + +#include +#include +#include + +#include +#include + +// http://man7.org/linux/man-pages/man5/elf.5.html + +typedef struct s_elf { + enum{ELF32, ELF64} s_type; +} t_elf; + +typedef struct s_elf64 +{ + t_elf type_header; + Elf64_Ehdr *elf_header; + Elf64_Phdr *prog_header; + Elf64_Shdr *section_header; + // Array of bytes for each section + char **section_data; +} t_elf64; + +typedef struct s_elf32 { + t_elf type_header; + Elf32_Ehdr *elf_header; + Elf32_Phdr *prog_header; + Elf32_Shdr *section_header; + // Array of bytes for each section + char **section_data; +} t_elf32; + +int allocate_elf_elf_header(t_elf *elf, void *file_data, size_t file_data_size); +int allocate_elf_program_header(t_elf *elf, void *file_data, size_t file_data_size); +int allocate_elf_sections_header(t_elf *elf, void *file_data, size_t file_data_size); +int allocate_elf_sections_data(t_elf *elf, void *file_data, size_t file_data_size); + +int allocate_elf(t_elf **elf, void *file_data, size_t file_data_size); + + +#endif //SILENT_PACKER_ELF_ALLOCATION_H + +``` + +`includes/ELF/elf_code_cave.h`: + +```h +// +// Created by silentvoid on 3/7/20. +// Copyright (c) 2020 SilentVoid. All rights reserved. +// + +#ifndef SILENT_PACKER_CODE_CAVE_H +#define SILENT_PACKER_CODE_CAVE_H + +#include +#include +#include + +#include "elf_allocation.h" + +int find_elf_code_cave_index(t_elf *elf); +int set_new_elf_cave_segment_values(t_elf *elf, int segment_index); +int elf_cave_insert_loader(t_elf *elf, int section_index, int old_section_size); + +int elf_code_cave_injection(t_elf *elf); + +#endif //SILENT_PACKER_CODE_CAVE_H + +``` + +`includes/ELF/elf_deallocation.h`: + +```h +// +// Created by silentvoid on 4/12/20. +// Copyright (c) 2020 SilentVoid. All rights reserved. +// + +#ifndef SILENT_PACKER_ELF_DEALLOCATION_H +#define SILENT_PACKER_ELF_DEALLOCATION_H + +#include +#include +#include + +#include "elf_allocation.h" + +void deallocate_elf_elf_header(t_elf *elf); +void deallocate_elf_program_header(t_elf *elf); +void deallocate_elf_sections_header(t_elf *elf); +void deallocate_elf_sections_data(t_elf *elf); +void deallocate_elf_sections_data_data(t_elf *elf); +void deallocate_elf_struct(t_elf *elf); +void deallocate_elf(t_elf *elf); + +#endif //SILENT_PACKER_ELF_DEALLOCATION_H + +``` + +`includes/ELF/elf_encryption.h`: + +```h +// +// Created by silentvoid on 3/16/20. +// Copyright (c) 2020 SilentVoid. All rights reserved. +// + +#ifndef SILENT_PACKER_ENCRYPT_ELF_H +#define SILENT_PACKER_ENCRYPT_ELF_H + +#include +#include +#include + +#include "elf_allocation.h" + +int encrypt_elf(t_elf *elf); + +#endif //SILENT_PACKER_ENCRYPT_ELF_H + +``` + +`includes/ELF/elf_functions.h`: + +```h +// +// Created by silentvoid on 2/28/20. +// Copyright (c) 2020 SilentVoid. All rights reserved. +// + +#ifndef SILENT_PACKER_ELF_FUNCTIONS_H +#define SILENT_PACKER_ELF_FUNCTIONS_H + +#include +#include +#include + +#include "elf_allocation.h" + +int set_new_elf_entry_to_section(t_elf *elf, int section_index); +int set_new_elf_entry_to_addr32(t_elf *elf, int32_t entry_address, int section_index, int section_size); +int set_new_elf_entry_to_addr64(t_elf *elf, int64_t entry_address, int section_index, int section_size); + +int find_last_elf_segment_of_type(t_elf *elf, unsigned int p_type); +int find_last_elf_section_from_segment(t_elf *elf, int segment_index); +int find_elf_text_segment(t_elf *elf); +int find_elf_segment_index_of_section(t_elf *elf, int section_index); +char * find_elf_section_name(t_elf *elf, int index); +int find_elf_section_index(t_elf *elf, char *section_name); + +void add_elf_segment_permission(t_elf *elf, int segment_index, int permission); + +#endif //SILENT_PACKER_ELF_FUNCTIONS_H + +``` + +`includes/ELF/elf_packing.h`: + +```h +// +// Created by silentvoid on 2/25/20. +// Copyright (c) 2020 SilentVoid. All rights reserved. +// + +#ifndef SILENT_PACKER_PACK_ELF_H +#define SILENT_PACKER_PACK_ELF_H + +#include +#include +#include + +#include +#include +#include +#include + +int pack_elf(char *file, char *file_data, size_t file_data_size, char *output); + +#endif //SILENT_PACKER_PACK_ELF_H + +``` + +`includes/ELF/elf_packing_method.h`: + +```h +// +// Created by silentvoid on 2/28/20. +// Copyright (c) 2020 SilentVoid. All rights reserved. +// + +#ifndef SILENT_PACKER_PACKING_METHOD_ELF_H +#define SILENT_PACKER_PACKING_METHOD_ELF_H + +#include +#include +#include + +#include "elf_allocation.h" + +#include "packing_method.h" + +int elf_pack_using_method(t_elf *elf); + +#endif //SILENT_PACKER_PACKING_METHOD_ELF_H + +``` + +`includes/ELF/elf_section_insertion.h`: + +```h +// +// Created by silentvoid on 2/26/20. +// Copyright (c) 2020 SilentVoid. All rights reserved. +// + +#ifndef SILENT_PACKER_SECTION_INSERTION_H +#define SILENT_PACKER_SECTION_INSERTION_H + +#include +#include +#include + +#include "elf_allocation.h" + +int set_new_elf_section_string_table(t_elf *elf); +int set_new_elf_section_symtab_sh_link_value(t_elf *elf); +int elf_section_create_new_section(t_elf *elf, int last_pt_load_index, int last_loadable_section_index); +void print_link_fields(t_elf *elf); +int set_new_elf_section_pt_loader_permissions(t_elf *elf); + +int elf_insert_section(t_elf *elf); + +#endif //SILENT_PACKER_SECTION_INSERTION_H + +``` + +`includes/ELF/elf_silvio_infection.h`: + +```h +// +// Created by silentvoid on 2/28/20. +// Copyright (c) 2020 SilentVoid. All rights reserved. +// + +#ifndef SILENT_PACKER_SILVIO_INFECTION_H +#define SILENT_PACKER_SILVIO_INFECTION_H + +#include +#include +#include + +#include "ELF/elf_allocation.h" + +#define PAGE_SIZE64 0x2000 +#define PAGE_SIZE32 4096 + +int set_new_elf_silvio_segment_values(t_elf *elf, int text_segment_index); +int set_new_elf_silvio_section_values(t_elf *elf, int last_section_index); +int elf_silvio_insert_loader(t_elf *elf, int section_index, int old_section_size); + +int elf_silvio_infect(t_elf *elf); + +#endif //SILENT_PACKER_SILVIO_INFECTION_H + +``` + +`includes/ELF/elf_writing.h`: + +```h +// +// Created by silentvoid on 2/26/20. +// Copyright (c) 2020 SilentVoid. All rights reserved. +// + +#ifndef SILENT_PACKER_WRITE_ELF_H +#define SILENT_PACKER_WRITE_ELF_H + +#include +#include +#include + +#include +#include +#include + +#include "ELF/elf_allocation.h" + +int write_elf(t_elf *elf, char *filename); + +#endif //SILENT_PACKER_WRITE_ELF_H + +``` + +`includes/PE/pe_allocation.h`: + +```h +// +// Created by silentvoid on 3/16/20. +// Copyright (c) 2020 SilentVoid. All rights reserved. +// + +#ifndef SILENT_PACKER_PE_ALLOCATION_H +#define SILENT_PACKER_PE_ALLOCATION_H + +#include +#include +#include + +#include "pe_struct.h" + +typedef struct s_pe { + enum{PE32, PE64} s_type; +} t_pe; + +typedef struct s_pe32 { + t_pe type_header; + IMAGE_DOS_HEADER *dos_header; + char *dos_stub; + IMAGE_NT_HEADERS32 *pe_header; + IMAGE_SECTION_HEADER *section_header; + char **section_data; +} t_pe32; + +typedef struct s_pe64 { + t_pe type_header; + IMAGE_DOS_HEADER *dos_header; + char *dos_stub; + IMAGE_NT_HEADERS64 *pe_header; + IMAGE_SECTION_HEADER *section_header; + char **section_data; +} t_pe64; + +/* + * Can be a solution too +typedef struct s_pe { + enum{PE32, PE64} s_type; + + union { + t_pe64 pe64; + t_pe32 pe32; + }; +} t_pe; +*/ + +int allocate_pe_dos_header(t_pe *pe, void *file_data, size_t file_data_size); +int allocate_pe_dos_stub(t_pe *pe, void *file_data); +int allocate_pe_pe_header(t_pe *pe, void *file_data, size_t file_data_size); +int allocate_pe_sections_headers(t_pe *pe, void *file_data, size_t file_data_size); +int allocate_pe_sections_data(t_pe *pe, void *file_data, size_t file_data_size); +void print_pe_info(t_pe *pe); + +int allocate_pe(t_pe **pe, void *file_data, size_t file_data_size, int arch); + +#endif //SILENT_PACKER_PE_ALLOCATION_H + +``` + +`includes/PE/pe_code_cave.h`: + +```h +// +// Created by silentvoid on 3/18/20. +// Copyright (c) 2020 SilentVoid. All rights reserved. +// + +#ifndef SILENT_PACKER_CODE_CAVE_H +#define SILENT_PACKER_CODE_CAVE_H + +#include +#include +#include + +#include "pe_allocation.h" + +int find_pe_code_cave_index(t_pe *pe); +int set_new_pe_cave_section_values(t_pe *pe, int section_index); +int pe_cave_insert_loader(t_pe *pe, int section_index, int old_section_size); + +int pe_code_cave_injection(t_pe *pe); + +#endif //SILENT_PACKER_CODE_CAVE_H + +``` + +`includes/PE/pe_deallocation.h`: + +```h +// +// Created by silentvoid on 4/12/20. +// Copyright (c) 2020 SilentVoid. All rights reserved. +// + +#ifndef SILENT_PACKER_PE_DEALLOCATION_H +#define SILENT_PACKER_PE_DEALLOCATION_H + +#include +#include +#include + +#include "pe_allocation.h" + +void deallocate_pe_dos_header(t_pe *pe); +void deallocate_pe_dos_stub(t_pe *pe); +void deallocate_pe_pe_header(t_pe *pe); +void deallocate_pe_sections_headers(t_pe *pe); +void deallocate_pe_sections_data(t_pe *pe); +void deallocate_pe_sections_data_data(t_pe *pe); +void deallocate_pe_struct(t_pe *pe); +void deallocate_pe(t_pe *pe); + +#endif //SILENT_PACKER_PE_DEALLOCATION_H + +``` + +`includes/PE/pe_encryption.h`: + +```h +// +// Created by silentvoid on 3/19/20. +// Copyright (c) 2020 SilentVoid. All rights reserved. +// + +#ifndef SILENT_PACKER_ENCRYPT_PE_H +#define SILENT_PACKER_ENCRYPT_PE_H + +#include +#include +#include + +#include "pe_allocation.h" + +int encrypt_pe(t_pe *pe); + +#endif //SILENT_PACKER_ENCRYPT_PE_H + +``` + +`includes/PE/pe_functions.h`: + +```h +// +// Created by silentvoid on 3/16/20. +// Copyright (c) 2020 SilentVoid. All rights reserved. +// + +#ifndef SILENT_PACKER_PE_FUNCTIONS_H +#define SILENT_PACKER_PE_FUNCTIONS_H + +#include +#include +#include + +#include "pe_allocation.h" + +int set_new_pe_entry_to_section(t_pe *pe, int section_index); +int set_new_pe_entry_to_addr(t_pe *pe, uint32_t entry_addr, int section_index, int section_size); + +int find_pe_text_section(t_pe *pe); +void add_pe_section_permission(t_pe *pe, int segment_index, int permission); +void print_pe_section_info(t_pe *pe, int section_index); + +#endif //SILENT_PACKER_PE_FUNCTIONS_H + +``` + +`includes/PE/pe_packing.h`: + +```h +// +// Created by silentvoid on 3/16/20. +// Copyright (c) 2020 SilentVoid. All rights reserved. +// + +#ifndef SILENT_PACKER_PACK_PE_H +#define SILENT_PACKER_PACK_PE_H + +#include +#include +#include + +int pack_pe(char *file, char *file_data, size_t file_data_size, char *output); + +#endif //SILENT_PACKER_PACK_PE_H + +``` + +`includes/PE/pe_packing_method.h`: + +```h +// +// Created by silentvoid on 3/18/20. +// Copyright (c) 2020 SilentVoid. All rights reserved. +// + +#ifndef SILENT_PACKER_PACKING_METHOD_PE_H +#define SILENT_PACKER_PACKING_METHOD_PE_H + +#include +#include +#include + +#include "pe_allocation.h" +#include "packing_method.h" + +int pe_pack_using_method(t_pe *pe); + +#endif //SILENT_PACKER_PACKING_METHOD_PE_H + +``` + +`includes/PE/pe_section_insertion.h`: + +```h +// +// Created by silentvoid on 3/26/20. +// Copyright (c) 2020 SilentVoid. All rights reserved. +// + +#ifndef SILENT_PACKER_PE_SECTION_INSERTION_H +#define SILENT_PACKER_PE_SECTION_INSERTION_H + +#include "pe_allocation.h" + +int add_new_pe_section_header(t_pe *pe); +int add_new_pe_section_data(t_pe *pe); +int set_new_pe_header_values(t_pe *pe); +void print_new_section_header_info(IMAGE_SECTION_HEADER *section_header); + +int pe_insert_section(t_pe *pe); + +#endif //SILENT_PACKER_PE_SECTION_INSERTION_H + +``` + +`includes/PE/pe_struct.h`: + +```h +// +// Created by silentvoid on 3/16/20. +// Copyright (c) 2020 SilentVoid. All rights reserved. +// + +#ifndef SILENT_PACKER_PE_STRUCT_H +#define SILENT_PACKER_PE_STRUCT_H + +#include +#include +#include +#include + +#define IMAGE_NUMBEROF_DIRECTORY_ENTRIES 16 +#define IMAGE_SIZEOF_SHORT_NAME 8 + +#define DOSMAG 0x5a4d + +#define STR_DOSMAG "MZ" +#define SSTR_DOSMAG 2 + +#define PEMAG 0x00004550 + +#define DOS_STUB_SIZE 64 + +#define PE32MAG 0x10b +#define PE64MAG 0x20b + +#define IMAGE_FILE_RELOCS_STRIPPED 0x0001 /**< No relocation info. */ +#define IMAGE_FILE_EXECUTABLE_IMAGE 0x0002 +#define IMAGE_FILE_LINE_NUMS_STRIPPED 0x0004 +#define IMAGE_FILE_LOCAL_SYMS_STRIPPED 0x0008 +#define IMAGE_FILE_AGGRESIVE_WS_TRIM 0x0010 +#define IMAGE_FILE_LARGE_ADDRESS_AWARE 0x0020 +#define IMAGE_FILE_16BIT_MACHINE 0x0040 +#define IMAGE_FILE_BYTES_REVERSED_LO 0x0080 +#define IMAGE_FILE_32BIT_MACHINE 0x0100 +#define IMAGE_FILE_DEBUG_STRIPPED 0x0200 +#define IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP 0x0400 +#define IMAGE_FILE_NET_RUN_FROM_SWAP 0x0800 +#define IMAGE_FILE_SYSTEM0x1000 +#define IMAGE_FILE_DLL 0x2000 +#define IMAGE_FILE_UP_SYSTEM_ONLY 0x4000 +#define IMAGE_FILE_BYTES_REVERSED_HI 0x8000 + +/* These are the settings of the Machine field. */ +#define IMAGE_FILE_MACHINE_UNKNOWN 0x0 /**< COFF header's Machine field for + unknown machine. */ +#define IMAGE_FILE_MACHINE_I386 0x014c /**< COFF header's Machine field for + I386 machines. */ +#define IMAGE_FILE_MACHINE_ARM 0x01c0 /**< COFF header's Machine field for ARM + machines. */ +#define IMAGE_FILE_MACHINE_AMD64 0x8664 /**< COFF header's Machine field for + AMD machines. */ + +#define IMAGE_NUMBEROF_DIRECTORY_ENTRIES 16 + +#define IMAGE_DOS_SIGNATURE 0x5A4D /**< DOS header signature. Equals to 'MZ'. */ +#define IMAGE_NT_SIGNATURE 0x00004550 /**< PE header signature. Equals to 'PE\0\0'. */ +#define IMAGE_NT_OPTIONAL_HDR32_MAGIC 0x10B /**< OPTIONAL header 32bits signature. */ +#define IMAGE_NT_OPTIONAL_HDR64_MAGIC 0x20B /**< OPTIONAL header 64bits signature. */ + +#define IMAGE_SIZEOF_SHORT_NAME 8 /**< Max length for the section header's name field. */ + +#define IMAGE_SCN_CNT_CODE 0x00000020 /**< The section contains executable code. */ +#define IMAGE_SCN_MEM_EXECUTE 0x20000000 /**< The section can be executed as code. */ +#define IMAGE_SCN_MEM_READ 0x40000000 /**< The section can be read. */ +#define IMAGE_SCN_MEM_WRITE 0x80000000 /**< The section can be written. */ + +/* PE classes */ +#define PECLASSNONE 0 /**< Unknown class. */ +#define PECLASS32 1 /**< 32-bit objects. */ +#define PECLASS64 2 /**< 64-bit objects. */ + +typedef struct _IMAGE_DOS_HEADER { + uint16_t e_magic; /**< DOS header signature. Must be equal to 'MZ' */ + uint16_t e_cblp; /**< Bytes on last page of file */ + uint16_t e_cp; /**< Pages in file */ + uint16_t e_crlc; /**< Relocations */ + uint16_t e_cparhdr; /**< Size of header in paragraphs */ + uint16_t e_minalloc; /**< Minimum extra paragraphs needed */ + uint16_t e_maxalloc; /**< Maximum extra paragraphs needed */ + uint16_t e_ss; /**< Initial (relative) SS value */ + uint16_t e_sp; /**< Initial SP value */ + uint16_t e_csum; /**< Checksum */ + uint16_t e_ip; /**< Initial IP value */ + uint16_t e_cs; /**< Initial (relative) CS value */ + uint16_t e_lfarlc; /**< File address of relocation table */ + uint16_t e_ovno; /**< Overlay number */ + uint16_t e_res[4]; /**< Reserved words */ + uint16_t e_oemid; /**< OEM identifier (for e_oeminfo) */ + uint16_t e_oeminfo; /**< OEM information; e_oemid specific */ + uint16_t e_res2[10]; /**< Reserved words */ + uint32_t e_lfanew; /**< Offset to extended header */ +} IMAGE_DOS_HEADER, *PIMAGE_DOS_HEADER; + +typedef struct _IMAGE_FILE_HEADER { + uint16_t Machine; + uint16_t NumberOfSections; + uint32_t TimeDateStamp; + uint32_t PointerToSymbolTable; + uint32_t NumberOfSymbols; + uint16_t SizeOfOptionalHeader; + uint16_t Characteristics; +} IMAGE_FILE_HEADER, *PIMAGE_FILE_HEADER; + +typedef struct _IMAGE_DATA_DIRECTORY { + uint32_t VirtualAddress; + uint32_t Size; +} IMAGE_DATA_DIRECTORY, *PIMAGE_DATA_DIRECTORY; + +typedef struct _IMAGE_OPTIONAL_HEADER32 { + uint16_t Magic; /**< OPTIONAL header signature. Equals to + #IMAGE_NT_OPTIONAL_HDR32_MAGIC for 32bits EXE files. */ + uint8_t MajorLinkerVersion; /**< The version of the linker that produced the file. */ + uint8_t MinorLinkerVersion; /**< The version of the linker that produced the file. */ + uint32_t SizeOfCode; /**< The combined and rounded-up size of all the code + sections (most of the time, '.text' section). */ + uint32_t SizeOfInitializedData; + uint32_t SizeOfUnitializedData; + uint32_t AddressOfEntryPoint; /**< The address where the loader will begin + the execution. */ + uint32_t BaseOfCode; /**< Relative virtual address where the code sections + begin. */ + uint32_t BaseOfData; /**< Relative virtual address where the data sections + begin. */ + uint32_t ImageBase; /**< Assumed location where the file will be + memory-mapped. */ + uint32_t SectionAlignment; /**< Alignment value for a section. */ + uint32_t FileAlignment; /**< Alignment value for the file's raw data. */ + uint16_t MajorOperatingSystemVersion; /**< The minimum version of the + operating system required to use + the executable. */ + uint16_t MinorOperatingSystemVersion; /**< The minimum version of the + operating system required to use + the executable. */ + uint16_t MajorImageVersion; /**< User-definable field to allow different + version of an EXE file. */ + uint16_t MinorImageVersion; /**< User-definable field to allow different + version of an EXE file. */ + uint16_t MajorSubsystemVersion; /**< The minimum subsystem version required + to run the EXE file. Typical value 3.10 + (meaning Windows NT 3.1). */ + uint16_t MinorSubsystemVersion; /**< The minimum subsystem version required + to run the EXE file. Typical value 3.10 + (meaning Windows NT 3.1). */ + uint32_t Win32VersionValue; /**< Reserved. */ + uint32_t SizeOfImage; /**< Total size starting from the image base to the + end of the last section. The end of the last + section is rounded up to the nearest multiple of + the #SectionAlignment value. */ + uint32_t SizeOfHeaders; /**< Size of the PE headers and the section table. + The raw section data starts immediately after all + the header components. */ + uint32_t CheckSum; /**< CRC checksum. Usualy ignored and set to 0. */ + uint16_t Subsystem; /**< Type of subsystem used for its user interface. */ + uint16_t DllCharacteristics; /**< Set of flags indicating under which + circumstances a DLL's initialization + function will be called. Appears to always + be set to 0. */ + uint32_t SizeOfStackReserve; /**< The amount of virtual memory to reserve + for the initial thread's stack. */ + uint32_t SizeOfStackCommit; /**< The amount of memory initially committed + for the initial thread's stack. */ + uint32_t SizeOfHeapReserve; /**< The amount of virtual memory to reserve + for the initial process heap. */ + uint32_t SizeOfHeapCommit; /**< The amount of memory initially committed in + the process heap. */ + uint32_t LoaderFlags; /**< Debugging related field. */ + uint32_t NumberOfRvaAndSizes; /**< The number of entries in the + #DataDirectory array. Always set to 16 by + the tools. */ + IMAGE_DATA_DIRECTORY DataDirectory[IMAGE_NUMBEROF_DIRECTORY_ENTRIES]; /**< Array of #IMAGE_DATA_DIRECTORY structures. See WINNT.H. */ +} IMAGE_OPTIONAL_HEADER32, *PIMAGE_OPTIONAL_HEADER32; + +typedef struct _IMAGE_OPTIONAL_HEADER64 { + uint16_t Magic; /**< OPTIONAL header signature. Equals to + #IMAGE_NT_OPTIONAL_HDR64_MAGIC for 64bits EXE files. */ + uint8_t MajorLinkerVersion; /**< The version of the linker that produced the file. */ + uint8_t MinorLinkerVersion; /**< The version of the linker that produced the file. */ + uint32_t SizeOfCode; /**< The combined and rounded-up size of all the code + sections (most of the time, '.text' section). */ + uint32_t SizeOfInitializedData; + uint32_t SizeOfUninitializedData; + uint32_t AddressOfEntryPoint; /**< The address where the loader will begin + the execution. */ + uint32_t BaseOfCode; /**< Relative virtual address where the code sections + begin. */ + uint64_t ImageBase; /**< Assumed location where the file will be + memory-mapped. */ + uint32_t SectionAlignment; /**< Alignment value for a section. */ + uint32_t FileAlignment; /**< Alignment value for the file's raw data. */ + uint16_t MajorOperatingSystemVersion; /**< The minimum version of the + operating system required to use + the executable. */ + uint16_t MinorOperatingSystemVersion; /**< The minimum version of the + operating system required to use + the executable. */ + uint16_t MajorImageVersion; /**< User-definable field to allow different + version of an EXE file. */ + uint16_t MinorImageVersion; /**< User-definable field to allow different + version of an EXE file. */ + uint16_t MajorSubsystemVersion; /**< The minimum subsystem version required + to run the EXE file. Typical value 3.10 + (meaning Windows NT 3.1). */ + uint16_t MinorSubsystemVersion; /**< The minimum subsystem version required + to run the EXE file. Typical value 3.10 + (meaning Windows NT 3.1). */ + uint32_t Win32VersionValue; /**< Reserved. */ + uint32_t SizeOfImage; /**< Total size starting from the image base to the + end of the last section. The end of the last + section is rounded up to the nearest multiple of + the #SectionAlignment value. */ + uint32_t SizeOfHeaders; /**< Size of the PE headers and the section table. + The raw section data starts immediately after all + the header components. */ + uint32_t CheckSum; /**< CRC checksum. Usualy ignored and set to 0. */ + uint16_t Subsystem; /**< Type of subsystem used for its user interface. */ + uint16_t DllCharacteristics; /**< Set of flags indicating under which + circumstances a DLL's initialization + function will be called. Appears to always + be set to 0. */ + uint64_t SizeOfStackReserve; /**< The amount of virtual memory to reserve + for the initial thread's stack. */ + uint64_t SizeOfStackCommit; /**< The amount of memory initially committed + for the initial thread's stack. */ + uint64_t SizeOfHeapReserve; /**< The amount of memory initially committed + in the process heap. */ + uint64_t SizeOfHeapCommit; /**< The amount of memory initially committed in + the process heap. */ + uint32_t LoaderFlags; /**< Debugging related field. */ + uint32_t NumberOfRvaAndSizes; /**< The number of entries in the + #DataDirectory array. Always set to 16 by + the tools. */ + IMAGE_DATA_DIRECTORY DataDirectory[IMAGE_NUMBEROF_DIRECTORY_ENTRIES]; /**< Array of #IMAGE_DATA_DIRECTORY structures. See WINNT.H. */ +} IMAGE_OPTIONAL_HEADER64, *PIMAGE_OPTIONAL_HEADER64; + +typedef struct _IMAGE_NT_HEADERS32 { + uint32_t Signature; + IMAGE_FILE_HEADER FileHeader; + IMAGE_OPTIONAL_HEADER32 OptionalHeader; +} IMAGE_NT_HEADERS32; + +typedef struct _IMAGE_NT_HEADERS64 { + uint32_t Signature; + IMAGE_FILE_HEADER FileHeader; + IMAGE_OPTIONAL_HEADER64 OptionalHeader; +} IMAGE_NT_HEADERS64, *PIMAGE_NT_HEADERS64; + +typedef struct _IMAGE_SECTION_HEADER { + uint8_t Name[IMAGE_SIZEOF_SHORT_NAME]; /**< 8-bytes ANSI name of the + section. If the length of the + string is greater than 8, it is + truncated without appending a NULL + terminating byte. */ + union { + uint32_t PhysicalAddress; + uint32_t VirtualSize; + } Misc; /**< Size of the code or the data before beeing rounded up to the + nearest file alignment multiple. */ + uint32_t VirtualAddress; /**< Relative virtual address to where the loader + should map the section. */ + uint32_t SizeOfRawData; /**< Size of the section after beeing rounded up to + the nearest file alignment multiple. */ + uint32_t PointerToRawData; /**< File based offset to the raw data. */ + uint32_t PointerToRelocations; /**< Set to 0 for EXE files. */ + uint32_t PointerToLinenumbers; /**< File based offset to the line number + table. */ + uint16_t NumberOfRelocations; /**< Irrelevant for EXE files. */ + uint16_t NumberOfLinenumbers; /**< Number of line numbers in the line + number table for the section. */ + uint32_t Characteristics; /**< Set of flags describing the section. + (Readable, Writeable, Executable, etc.) */ +} IMAGE_SECTION_HEADER, *PIMAGE_SECTION_HEADER; + +#endif //SILENT_PACKER_PE_STRUCT_H + +``` + +`includes/PE/pe_writing.h`: + +```h +// +// Created by silentvoid on 3/16/20. +// Copyright (c) 2020 SilentVoid. All rights reserved. +// + +#ifndef SILENT_PACKER_WRITE_PE_H +#define SILENT_PACKER_WRITE_PE_H + +#include +#include +#include + +#include +#include +#include + +#include "pe_allocation.h" + +int write_pe(t_pe *pe, char *filename); + +#endif //SILENT_PACKER_WRITE_PE_H + +``` + +`includes/STUB/all_elf_loaders.h`: + +```h +// +// Created by silentvoid on 4/2/20. +// Copyright (c) 2020 SilentVoid. All rights reserved. +// + +#ifndef SILENT_PACKER_ALL_ELF_LOADERS_H +#define SILENT_PACKER_ALL_ELF_LOADERS_H + +#include "i386_xor_linux_elf_loader.h" +#include "amd64_xor_linux_elf_loader.h" + +#include "amd64_aes_128_ecb_linux_elf_loader.h" +#include "i386_aes_128_ecb_linux_elf_loader.h" + +#endif //SILENT_PACKER_ALL_ELF_LOADERS_H + +``` + +`includes/STUB/all_elf_loaders_infos.h`: + +```h +// +// Created by silentvoid on 4/2/20. +// Copyright (c) 2020 SilentVoid. All rights reserved. +// + +#ifndef SILENT_PACKER_ALL_ELF_LOADERS_INFOS_H +#define SILENT_PACKER_ALL_ELF_LOADERS_INFOS_H + +#define NO_PAYLOAD +#include "all_elf_loaders.h" + +#endif //SILENT_PACKER_ALL_ELF_LOADERS_INFOS_H + +``` + +`includes/STUB/all_loaders.h`: + +```h +// +// Created by silentvoid on 4/2/20. +// Copyright (c) 2020 SilentVoid. All rights reserved. +// + +#ifndef SILENT_PACKER_ALL_LOADERS_H +#define SILENT_PACKER_ALL_LOADERS_H + +#include "all_elf_loaders.h" + +#include "all_pe_loaders.h" + +#endif //SILENT_PACKER_ALL_LOADERS_H + +``` + +`includes/STUB/all_pe_loaders.h`: + +```h +// +// Created by silentvoid on 4/2/20. +// Copyright (c) 2020 SilentVoid. All rights reserved. +// + +#ifndef SILENT_PACKER_ALL_PE_LOADERS_H +#define SILENT_PACKER_ALL_PE_LOADERS_H + +#include "amd64_xor_win_pe_loader.h" +#include "i386_xor_win_pe_loader.h" + +#include "amd64_aes_128_ecb_win_pe_loader.h" +#include "i386_aes_128_ecb_win_pe_loader.h" + +#endif //SILENT_PACKER_ALL_PE_LOADERS_H + +``` + +`includes/STUB/all_pe_loaders_infos.h`: + +```h +// +// Created by silentvoid on 4/2/20. +// Copyright (c) 2020 SilentVoid. All rights reserved. +// + +#ifndef SILENT_PACKER_ALL_PE_LOADERS_INFOS_H +#define SILENT_PACKER_ALL_PE_LOADERS_INFOS_H + +#define NO_PAYLOAD +#include "all_pe_loaders.h" + +#endif //SILENT_PACKER_ALL_PE_LOADERS_INFOS_H + +``` + +`includes/STUB/amd64_aes_128_ecb_linux_elf_loader.h`: + +```h +// +// Created by silentvoid on 4/10/20. +// Copyright (c) 2020 SilentVoid. All rights reserved. +// + +#ifndef SILENT_PACKER_AMD64_AES_128_ECB_LINUX_ELF_LOADER_H +#define SILENT_PACKER_AMD64_AES_128_ECB_LINUX_ELF_LOADER_H + +#define AMD64_AES_128_ECB_LINUX_ELF_LOADER_INFOS_SIZE 40 +#define AMD64_AES_128_ECB_LINUX_ELF_LOADER_SIZE 480 + +#ifndef NO_PAYLOAD +unsigned char amd64_aes_128_ecb_linux_elf_loader_stub[] = { + 0x9c, 0x50, 0x57, 0x56, 0x54, 0x52, 0x51, 0xb8, 0x01, 0x00, 0x00, 0x00, 0x48, 0x89, 0xc7, 0x48, +0x8d, 0x35, 0x3c, 0x00, 0x00, 0x00, 0xba, 0x10, 0x00, 0x00, 0x00, 0x0f, 0x05, 0x4c, 0x8d, 0x25, +0xdc, 0xff, 0xff, 0xff, 0x4c, 0x2b, 0x25, 0xad, 0x01, 0x00, 0x00, 0xeb, 0x35, 0x66, 0x0f, 0x70, +0xd2, 0xff, 0xc5, 0xe1, 0x73, 0xf9, 0x04, 0x66, 0x0f, 0xef, 0xcb, 0xc5, 0xe1, 0x73, 0xf9, 0x04, +0x66, 0x0f, 0xef, 0xcb, 0xc5, 0xe1, 0x73, 0xf9, 0x04, 0x66, 0x0f, 0xef, 0xcb, 0x66, 0x0f, 0xef, +0xca, 0xc3, 0x5b, 0x55, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x2e, 0x2e, 0x5d, +0x0a, 0x00, 0xf3, 0x0f, 0x6f, 0x0d, 0x4e, 0x01, 0x00, 0x00, 0x48, 0x8b, 0x05, 0x57, 0x01, 0x00, +0x00, 0x4c, 0x01, 0xe0, 0x48, 0x8b, 0x15, 0x55, 0x01, 0x00, 0x00, 0xf3, 0x0f, 0x6f, 0xc1, 0x66, +0x0f, 0x3a, 0xdf, 0xd1, 0x01, 0xe8, 0xa3, 0xff, 0xff, 0xff, 0xf3, 0x0f, 0x6f, 0xe1, 0x66, 0x0f, +0x3a, 0xdf, 0xd1, 0x02, 0xe8, 0x94, 0xff, 0xff, 0xff, 0xf3, 0x0f, 0x6f, 0xe9, 0x66, 0x0f, 0x3a, +0xdf, 0xd1, 0x04, 0xe8, 0x85, 0xff, 0xff, 0xff, 0xf3, 0x0f, 0x6f, 0xf1, 0x66, 0x0f, 0x3a, 0xdf, +0xd1, 0x08, 0xe8, 0x76, 0xff, 0xff, 0xff, 0xf3, 0x0f, 0x6f, 0xf9, 0x66, 0x0f, 0x3a, 0xdf, 0xd1, +0x10, 0xe8, 0x67, 0xff, 0xff, 0xff, 0xf3, 0x44, 0x0f, 0x6f, 0xc1, 0x66, 0x0f, 0x3a, 0xdf, 0xd1, +0x20, 0xe8, 0x57, 0xff, 0xff, 0xff, 0xf3, 0x44, 0x0f, 0x6f, 0xc9, 0x66, 0x0f, 0x3a, 0xdf, 0xd1, +0x40, 0xe8, 0x47, 0xff, 0xff, 0xff, 0xf3, 0x44, 0x0f, 0x6f, 0xd1, 0x66, 0x0f, 0x3a, 0xdf, 0xd1, +0x80, 0xe8, 0x37, 0xff, 0xff, 0xff, 0xf3, 0x44, 0x0f, 0x6f, 0xd9, 0x66, 0x0f, 0x3a, 0xdf, 0xd1, +0x1b, 0xe8, 0x27, 0xff, 0xff, 0xff, 0xf3, 0x44, 0x0f, 0x6f, 0xe1, 0x66, 0x0f, 0x3a, 0xdf, 0xd1, +0x36, 0xe8, 0x17, 0xff, 0xff, 0xff, 0xf3, 0x44, 0x0f, 0x6f, 0xe9, 0x66, 0x0f, 0x38, 0xdb, 0xe4, +0x66, 0x0f, 0x38, 0xdb, 0xed, 0x66, 0x0f, 0x38, 0xdb, 0xf6, 0x66, 0x0f, 0x38, 0xdb, 0xff, 0x66, +0x45, 0x0f, 0x38, 0xdb, 0xc0, 0x66, 0x45, 0x0f, 0x38, 0xdb, 0xc9, 0x66, 0x45, 0x0f, 0x38, 0xdb, +0xd2, 0x66, 0x45, 0x0f, 0x38, 0xdb, 0xdb, 0x66, 0x45, 0x0f, 0x38, 0xdb, 0xe4, 0x4d, 0x31, 0xc0, +0x48, 0x83, 0xea, 0x10, 0xf3, 0x46, 0x0f, 0x6f, 0x3c, 0x00, 0x66, 0x45, 0x0f, 0xef, 0xfd, 0x66, +0x45, 0x0f, 0x38, 0xde, 0xfc, 0x66, 0x45, 0x0f, 0x38, 0xde, 0xfb, 0x66, 0x45, 0x0f, 0x38, 0xde, +0xfa, 0x66, 0x45, 0x0f, 0x38, 0xde, 0xf9, 0x66, 0x45, 0x0f, 0x38, 0xde, 0xf8, 0x66, 0x44, 0x0f, +0x38, 0xde, 0xff, 0x66, 0x44, 0x0f, 0x38, 0xde, 0xfe, 0x66, 0x44, 0x0f, 0x38, 0xde, 0xfd, 0x66, +0x44, 0x0f, 0x38, 0xde, 0xfc, 0x66, 0x44, 0x0f, 0x38, 0xdf, 0xf8, 0xf3, 0x46, 0x0f, 0x7f, 0x3c, +0x00, 0x49, 0x83, 0xc0, 0x10, 0x4c, 0x39, 0xc2, 0x7e, 0x02, 0xeb, 0xa8, 0x59, 0x5a, 0x5c, 0x5e, +0x5f, 0x58, 0x9d, 0xe9, 0xfb, 0xff, 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, +0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, +0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee +}; +#endif //NO_PAYLOAD + +#endif //SILENT_PACKER_AMD64_AES_128_ECB_LINUX_ELF_LOADER_H + +``` + +`includes/STUB/amd64_aes_128_ecb_win_pe_loader.h`: + +```h +// +// Created by silentvoid on 4/10/20. +// Copyright (c) 2020 SilentVoid. All rights reserved. +// + +#ifndef SILENT_PACKER_AMD64_AES_128_ECB_WIN_PE_LOADER_H +#define SILENT_PACKER_AMD64_AES_128_ECB_WIN_PE_LOADER_H + +#define AMD64_AES_128_ECB_WIN_PE_LOADER_INFOS_SIZE 40 +#define AMD64_AES_128_ECB_WIN_PE_LOADER_SIZE 458 + +#ifndef NO_PAYLOAD +unsigned char amd64_aes_128_ecb_win_pe_loader_stub[] = { + 0x9c, 0x50, 0x57, 0x56, 0x54, 0x52, 0x51, 0x4c, 0x8d, 0x25, 0xf2, 0xff, 0xff, 0xff, 0x4c, 0x2b, + 0x25, 0xad, 0x01, 0x00, 0x00, 0xeb, 0x35, 0x66, 0x0f, 0x70, 0xd2, 0xff, 0xc5, 0xe1, 0x73, 0xf9, + 0x04, 0x66, 0x0f, 0xef, 0xcb, 0xc5, 0xe1, 0x73, 0xf9, 0x04, 0x66, 0x0f, 0xef, 0xcb, 0xc5, 0xe1, + 0x73, 0xf9, 0x04, 0x66, 0x0f, 0xef, 0xcb, 0x66, 0x0f, 0xef, 0xca, 0xc3, 0x5b, 0x55, 0x6e, 0x70, + 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x2e, 0x2e, 0x5d, 0x0a, 0x00, 0xf3, 0x0f, 0x6f, 0x0d, + 0x4e, 0x01, 0x00, 0x00, 0x48, 0x8b, 0x05, 0x57, 0x01, 0x00, 0x00, 0x4c, 0x01, 0xe0, 0x48, 0x8b, + 0x15, 0x55, 0x01, 0x00, 0x00, 0xf3, 0x0f, 0x6f, 0xc1, 0x66, 0x0f, 0x3a, 0xdf, 0xd1, 0x01, 0xe8, + 0xa3, 0xff, 0xff, 0xff, 0xf3, 0x0f, 0x6f, 0xe1, 0x66, 0x0f, 0x3a, 0xdf, 0xd1, 0x02, 0xe8, 0x94, + 0xff, 0xff, 0xff, 0xf3, 0x0f, 0x6f, 0xe9, 0x66, 0x0f, 0x3a, 0xdf, 0xd1, 0x04, 0xe8, 0x85, 0xff, + 0xff, 0xff, 0xf3, 0x0f, 0x6f, 0xf1, 0x66, 0x0f, 0x3a, 0xdf, 0xd1, 0x08, 0xe8, 0x76, 0xff, 0xff, + 0xff, 0xf3, 0x0f, 0x6f, 0xf9, 0x66, 0x0f, 0x3a, 0xdf, 0xd1, 0x10, 0xe8, 0x67, 0xff, 0xff, 0xff, + 0xf3, 0x44, 0x0f, 0x6f, 0xc1, 0x66, 0x0f, 0x3a, 0xdf, 0xd1, 0x20, 0xe8, 0x57, 0xff, 0xff, 0xff, + 0xf3, 0x44, 0x0f, 0x6f, 0xc9, 0x66, 0x0f, 0x3a, 0xdf, 0xd1, 0x40, 0xe8, 0x47, 0xff, 0xff, 0xff, + 0xf3, 0x44, 0x0f, 0x6f, 0xd1, 0x66, 0x0f, 0x3a, 0xdf, 0xd1, 0x80, 0xe8, 0x37, 0xff, 0xff, 0xff, + 0xf3, 0x44, 0x0f, 0x6f, 0xd9, 0x66, 0x0f, 0x3a, 0xdf, 0xd1, 0x1b, 0xe8, 0x27, 0xff, 0xff, 0xff, + 0xf3, 0x44, 0x0f, 0x6f, 0xe1, 0x66, 0x0f, 0x3a, 0xdf, 0xd1, 0x36, 0xe8, 0x17, 0xff, 0xff, 0xff, + 0xf3, 0x44, 0x0f, 0x6f, 0xe9, 0x66, 0x0f, 0x38, 0xdb, 0xe4, 0x66, 0x0f, 0x38, 0xdb, 0xed, 0x66, + 0x0f, 0x38, 0xdb, 0xf6, 0x66, 0x0f, 0x38, 0xdb, 0xff, 0x66, 0x45, 0x0f, 0x38, 0xdb, 0xc0, 0x66, + 0x45, 0x0f, 0x38, 0xdb, 0xc9, 0x66, 0x45, 0x0f, 0x38, 0xdb, 0xd2, 0x66, 0x45, 0x0f, 0x38, 0xdb, + 0xdb, 0x66, 0x45, 0x0f, 0x38, 0xdb, 0xe4, 0x4d, 0x31, 0xc0, 0x48, 0x83, 0xea, 0x10, 0xf3, 0x46, + 0x0f, 0x6f, 0x3c, 0x00, 0x66, 0x45, 0x0f, 0xef, 0xfd, 0x66, 0x45, 0x0f, 0x38, 0xde, 0xfc, 0x66, + 0x45, 0x0f, 0x38, 0xde, 0xfb, 0x66, 0x45, 0x0f, 0x38, 0xde, 0xfa, 0x66, 0x45, 0x0f, 0x38, 0xde, + 0xf9, 0x66, 0x45, 0x0f, 0x38, 0xde, 0xf8, 0x66, 0x44, 0x0f, 0x38, 0xde, 0xff, 0x66, 0x44, 0x0f, + 0x38, 0xde, 0xfe, 0x66, 0x44, 0x0f, 0x38, 0xde, 0xfd, 0x66, 0x44, 0x0f, 0x38, 0xde, 0xfc, 0x66, + 0x44, 0x0f, 0x38, 0xdf, 0xf8, 0xf3, 0x46, 0x0f, 0x7f, 0x3c, 0x00, 0x49, 0x83, 0xc0, 0x10, 0x4c, + 0x39, 0xc2, 0x7e, 0x02, 0xeb, 0xa8, 0x59, 0x5a, 0x5c, 0x5e, 0x5f, 0x58, 0x9d, 0xe9, 0xfb, 0xff, + 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, + 0xbb, 0xbb, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, + 0xdd, 0xdd, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee, 0xee +}; +#endif //NO_PAYLOAD + +#endif //SILENT_PACKER_AMD64_AES_128_ECB_WIN_PE_LOADER_H + +``` + +`includes/STUB/amd64_xor_linux_elf_loader.h`: + +```h +// +// Created by silentvoid on 4/2/20. +// Copyright (c) 2020 SilentVoid. All rights reserved. +// + +#ifndef SILENT_PACKER_AMD64_XOR_LINUX_ELF_LOADER_H +#define SILENT_PACKER_AMD64_XOR_LINUX_ELF_LOADER_H + +#define AMD64_XOR_LINUX_ELF_LOADER_INFOS_SIZE 32 +#define AMD64_XOR_LINUX_ELF_LOADER_SIZE 146 + +#ifndef NO_PAYLOAD +unsigned char amd64_xor_linux_elf_loader_stub[] = { + 0x9c, 0x50, 0x57, 0x56, 0x54, 0x52, 0x51, 0xb8, 0x01, 0x00, 0x00, 0x00, 0x48, 0x89, 0xc7, 0x48, +0x8d, 0x35, 0x17, 0x00, 0x00, 0x00, 0xba, 0x10, 0x00, 0x00, 0x00, 0x0f, 0x05, 0x4c, 0x8d, 0x25, +0xdc, 0xff, 0xff, 0xff, 0x4c, 0x2b, 0x25, 0x5f, 0x00, 0x00, 0x00, 0xeb, 0x10, 0x5b, 0x55, 0x6e, +0x70, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x2e, 0x2e, 0x5d, 0x0a, 0x00, 0x48, 0x8b, 0x05, +0x36, 0x00, 0x00, 0x00, 0x48, 0x8b, 0x0d, 0x37, 0x00, 0x00, 0x00, 0x48, 0x8b, 0x15, 0x20, 0x00, +0x00, 0x00, 0x4c, 0x01, 0xe0, 0x48, 0x01, 0xc1, 0x30, 0x10, 0x48, 0xc1, 0xca, 0x08, 0x48, 0xff, +0xc0, 0x48, 0x39, 0xc8, 0x75, 0xf2, 0x59, 0x5a, 0x5c, 0x5e, 0x5f, 0x58, 0x9d, 0xe9, 0xfb, 0xff, +0xff, 0xff, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, +0xbb, 0xbb, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xcc, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, +0xdd, 0xdd +}; +#endif // NO_PAYLOAD + +#endif //SILENT_PACKER_AMD64_XOR_LINUX_ELF_LOADER_H + +``` + +`includes/STUB/amd64_xor_win_pe_loader.h`: + +```h +// +// Created by silentvoid on 4/2/20. +// Copyright (c) 2020 SilentVoid. All rights reserved. +// + +#ifndef SILENT_PACKER_AMD64_XOR_WIN_PE_LOADER_H +#define SILENT_PACKER_AMD64_XOR_WIN_PE_LOADER_H + +#define AMD64_XOR_WIN_PE_LOADER_INFOS_SIZE 32 +#define AMD64_XOR_WIN_PE_LOADER_SIZE 124 + +#ifndef NO_PAYLOAD +unsigned char amd64_xor_win_pe_loader_stub[] = { + 0x9c, 0x50, 0x57, 0x56, 0x54, 0x52, 0x51, 0x4c, 0x8d, 0x25, 0xf2, 0xff, 0xff, 0xff, 0x4c, 0x2b, + 0x25, 0x5f, 0x00, 0x00, 0x00, 0xeb, 0x10, 0x5b, 0x55, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x69, 0x6e, + 0x67, 0x2e, 0x2e, 0x2e, 0x5d, 0x0a, 0x00, 0x48, 0x8b, 0x05, 0x36, 0x00, 0x00, 0x00, 0x48, 0x8b, + 0x0d, 0x37, 0x00, 0x00, 0x00, 0x48, 0x8b, 0x15, 0x20, 0x00, 0x00, 0x00, 0x4c, 0x01, 0xe0, 0x48, + 0x01, 0xc1, 0x30, 0x10, 0x48, 0xc1, 0xca, 0x08, 0x48, 0xff, 0xc0, 0x48, 0x39, 0xc8, 0x75, 0xf2, + 0x59, 0x5a, 0x5c, 0x5e, 0x5f, 0x58, 0x9d, 0xe9, 0xfb, 0xff, 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0xaa, + 0xaa, 0xaa, 0xaa, 0xaa, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xbb, 0xcc, 0xcc, 0xcc, 0xcc, + 0xcc, 0xcc, 0xcc, 0xcc, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd, 0xdd +}; +#endif // NO_PAYLOAD + +#endif //SILENT_PACKER_AMD64_XOR_WIN_PE_LOADER_H + +``` + +`includes/STUB/i386_aes_128_ecb_linux_elf_loader.h`: + +```h +// +// Created by silentvoid on 4/10/20. +// Copyright (c) 2020 SilentVoid. All rights reserved. +// + +#ifndef SILENT_PACKER_I386_AES_128_ECB_LINUX_ELF_LOADER_H +#define SILENT_PACKER_I386_AES_128_ECB_LINUX_ELF_LOADER_H + +#define I386_AES_128_ECB_LINUX_ELF_LOADER_INFOS_SIZE 28 +#define I386_AES_128_ECB_LINUX_ELF_LOADER_SIZE 658 + +#ifndef NO_PAYLOAD +unsigned char i386_aes_128_ecb_linux_elf_loader_stub[] = { + 0x50, 0x57, 0x56, 0x54, 0x52, 0x51, 0x53, 0xe8, 0x54, 0x00, 0x00, 0x00, 0x83, 0xea, 0xfe, 0x89, +0xd1, 0xba, 0x10, 0x00, 0x00, 0x00, 0xbb, 0x01, 0x00, 0x00, 0x00, 0xb8, 0x04, 0x00, 0x00, 0x00, +0xcd, 0x80, 0xe8, 0x39, 0x00, 0x00, 0x00, 0x83, 0xea, 0x65, 0x89, 0xd3, 0xe8, 0x2f, 0x00, 0x00, +0x00, 0x81, 0xea, 0xd7, 0xfd, 0xff, 0xff, 0x2b, 0x1a, 0xeb, 0x3c, 0x66, 0x0f, 0x70, 0xd2, 0xff, +0xc5, 0xe1, 0x73, 0xf9, 0x04, 0x66, 0x0f, 0xef, 0xcb, 0xc5, 0xe1, 0x73, 0xf9, 0x04, 0x66, 0x0f, +0xef, 0xcb, 0xc5, 0xe1, 0x73, 0xf9, 0x04, 0x66, 0x0f, 0xef, 0xcb, 0x66, 0x0f, 0xef, 0xca, 0xc3, +0xe8, 0x00, 0x00, 0x00, 0x00, 0x5a, 0xc3, 0x5b, 0x55, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x69, 0x6e, +0x67, 0x2e, 0x2e, 0x2e, 0x5d, 0x0a, 0x00, 0xe8, 0xe4, 0xff, 0xff, 0xff, 0x81, 0xea, 0xdf, 0xfd, +0xff, 0xff, 0x8b, 0x02, 0x01, 0xd8, 0xe8, 0xd5, 0xff, 0xff, 0xff, 0x81, 0xea, 0xef, 0xfd, 0xff, +0xff, 0xf3, 0x0f, 0x6f, 0x0a, 0xe8, 0xc6, 0xff, 0xff, 0xff, 0x81, 0xea, 0xdb, 0xfd, 0xff, 0xff, +0x8b, 0x12, 0xf3, 0x0f, 0x6f, 0xc1, 0x66, 0x0f, 0x3a, 0xdf, 0xd1, 0x01, 0xe8, 0x8a, 0xff, 0xff, +0xff, 0xf3, 0x0f, 0x6f, 0xe1, 0x66, 0x0f, 0x38, 0xdb, 0xe4, 0x83, 0xec, 0x10, 0xf3, 0x0f, 0x7f, +0x24, 0x24, 0x66, 0x0f, 0x3a, 0xdf, 0xd1, 0x02, 0xe8, 0x6e, 0xff, 0xff, 0xff, 0xf3, 0x0f, 0x6f, +0xe1, 0x66, 0x0f, 0x38, 0xdb, 0xe4, 0x83, 0xec, 0x10, 0xf3, 0x0f, 0x7f, 0x24, 0x24, 0x66, 0x0f, +0x3a, 0xdf, 0xd1, 0x04, 0xe8, 0x52, 0xff, 0xff, 0xff, 0xf3, 0x0f, 0x6f, 0xe1, 0x66, 0x0f, 0x38, +0xdb, 0xe4, 0x83, 0xec, 0x10, 0xf3, 0x0f, 0x7f, 0x24, 0x24, 0x66, 0x0f, 0x3a, 0xdf, 0xd1, 0x08, +0xe8, 0x36, 0xff, 0xff, 0xff, 0xf3, 0x0f, 0x6f, 0xe1, 0x66, 0x0f, 0x38, 0xdb, 0xe4, 0x83, 0xec, +0x10, 0xf3, 0x0f, 0x7f, 0x24, 0x24, 0x66, 0x0f, 0x3a, 0xdf, 0xd1, 0x10, 0xe8, 0x1a, 0xff, 0xff, +0xff, 0xf3, 0x0f, 0x6f, 0xe1, 0x66, 0x0f, 0x38, 0xdb, 0xe4, 0x83, 0xec, 0x10, 0xf3, 0x0f, 0x7f, +0x24, 0x24, 0x66, 0x0f, 0x3a, 0xdf, 0xd1, 0x20, 0xe8, 0xfe, 0xfe, 0xff, 0xff, 0xf3, 0x0f, 0x6f, +0xe1, 0x66, 0x0f, 0x38, 0xdb, 0xe4, 0x83, 0xec, 0x10, 0xf3, 0x0f, 0x7f, 0x24, 0x24, 0x66, 0x0f, +0x3a, 0xdf, 0xd1, 0x40, 0xe8, 0xe2, 0xfe, 0xff, 0xff, 0xf3, 0x0f, 0x6f, 0xe1, 0x66, 0x0f, 0x38, +0xdb, 0xe4, 0x83, 0xec, 0x10, 0xf3, 0x0f, 0x7f, 0x24, 0x24, 0x66, 0x0f, 0x3a, 0xdf, 0xd1, 0x80, +0xe8, 0xc6, 0xfe, 0xff, 0xff, 0xf3, 0x0f, 0x6f, 0xe1, 0x66, 0x0f, 0x38, 0xdb, 0xe4, 0x83, 0xec, +0x10, 0xf3, 0x0f, 0x7f, 0x24, 0x24, 0x66, 0x0f, 0x3a, 0xdf, 0xd1, 0x1b, 0xe8, 0xaa, 0xfe, 0xff, +0xff, 0xf3, 0x0f, 0x6f, 0xe1, 0x66, 0x0f, 0x38, 0xdb, 0xe4, 0x83, 0xec, 0x10, 0xf3, 0x0f, 0x7f, +0x24, 0x24, 0x66, 0x0f, 0x3a, 0xdf, 0xd1, 0x36, 0xe8, 0x8e, 0xfe, 0xff, 0xff, 0xf3, 0x0f, 0x6f, +0xe1, 0x83, 0xec, 0x10, 0xf3, 0x0f, 0x7f, 0x24, 0x24, 0x31, 0xc9, 0x83, 0xea, 0x10, 0xf3, 0x0f, +0x6f, 0xc8, 0xf3, 0x0f, 0x6f, 0x3c, 0x08, 0xf3, 0x0f, 0x6f, 0x24, 0x24, 0x83, 0xc4, 0x10, 0x66, +0x0f, 0xef, 0xfc, 0xf3, 0x0f, 0x6f, 0x24, 0x24, 0x83, 0xc4, 0x10, 0x66, 0x0f, 0x38, 0xde, 0xfc, +0xf3, 0x0f, 0x6f, 0x24, 0x24, 0x83, 0xc4, 0x10, 0x66, 0x0f, 0x38, 0xde, 0xfc, 0xf3, 0x0f, 0x6f, +0x24, 0x24, 0x83, 0xc4, 0x10, 0x66, 0x0f, 0x38, 0xde, 0xfc, 0xf3, 0x0f, 0x6f, 0x24, 0x24, 0x83, +0xc4, 0x10, 0x66, 0x0f, 0x38, 0xde, 0xfc, 0xf3, 0x0f, 0x6f, 0x24, 0x24, 0x83, 0xc4, 0x10, 0x66, +0x0f, 0x38, 0xde, 0xfc, 0xf3, 0x0f, 0x6f, 0x24, 0x24, 0x83, 0xc4, 0x10, 0x66, 0x0f, 0x38, 0xde, +0xfc, 0xf3, 0x0f, 0x6f, 0x24, 0x24, 0x83, 0xc4, 0x10, 0x66, 0x0f, 0x38, 0xde, 0xfc, 0xf3, 0x0f, +0x6f, 0x24, 0x24, 0x83, 0xc4, 0x10, 0x66, 0x0f, 0x38, 0xde, 0xfc, 0xf3, 0x0f, 0x6f, 0x24, 0x24, +0x83, 0xc4, 0x10, 0x66, 0x0f, 0x38, 0xde, 0xfc, 0x66, 0x0f, 0x38, 0xdf, 0xf8, 0xf3, 0x0f, 0x7f, +0x3c, 0x08, 0x81, 0xec, 0xa0, 0x00, 0x00, 0x00, 0x83, 0xc1, 0x10, 0x39, 0xca, 0x7e, 0x05, 0xe9, +0x5a, 0xff, 0xff, 0xff, 0x81, 0xc4, 0xa0, 0x00, 0x00, 0x00, 0x5b, 0x59, 0x5a, 0x5c, 0x5e, 0x5f, +0x58, 0xe9, 0xfb, 0xff, 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, +0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xcc, 0xcc, 0xcc, 0xcc, 0xdd, 0xdd, 0xdd, 0xdd, 0xee, 0xee, +0xee, 0xee +}; +#endif //NO_PAYLOAD + +#endif //SILENT_PACKER_I386_AES_128_ECB_LINUX_ELF_LOADER_H + +``` + +`includes/STUB/i386_aes_128_ecb_win_pe_loader.h`: + +```h +// +// Created by silentvoid on 4/10/20. +// Copyright (c) 2020 SilentVoid. All rights reserved. +// + +#ifndef SILENT_PACKER_I386_AES_128_ECB_WIN_PE_LOADER_H +#define SILENT_PACKER_I386_AES_128_ECB_WIN_PE_LOADER_H + +#define I386_AES_128_ECB_WIN_PE_LOADER_INFOS_SIZE 28 +#define I386_AES_128_ECB_WIN_PE_LOADER_SIZE 631 + +#ifndef NO_PAYLOAD +unsigned char i386_aes_128_ecb_win_pe_loader_stub[] = { + 0x50, 0x57, 0x56, 0x54, 0x52, 0x51, 0x53, 0xe8, 0x39, 0x00, 0x00, 0x00, 0x83, 0xea, 0x4a, 0x89, + 0xd3, 0xe8, 0x2f, 0x00, 0x00, 0x00, 0x81, 0xea, 0xd7, 0xfd, 0xff, 0xff, 0x2b, 0x1a, 0xeb, 0x3c, + 0x66, 0x0f, 0x70, 0xd2, 0xff, 0xc5, 0xe1, 0x73, 0xf9, 0x04, 0x66, 0x0f, 0xef, 0xcb, 0xc5, 0xe1, + 0x73, 0xf9, 0x04, 0x66, 0x0f, 0xef, 0xcb, 0xc5, 0xe1, 0x73, 0xf9, 0x04, 0x66, 0x0f, 0xef, 0xcb, + 0x66, 0x0f, 0xef, 0xca, 0xc3, 0xe8, 0x00, 0x00, 0x00, 0x00, 0x5a, 0xc3, 0x5b, 0x55, 0x6e, 0x70, + 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x2e, 0x2e, 0x5d, 0x0a, 0x00, 0xe8, 0xe4, 0xff, 0xff, + 0xff, 0x81, 0xea, 0xdf, 0xfd, 0xff, 0xff, 0x8b, 0x02, 0x01, 0xd8, 0xe8, 0xd5, 0xff, 0xff, 0xff, + 0x81, 0xea, 0xef, 0xfd, 0xff, 0xff, 0xf3, 0x0f, 0x6f, 0x0a, 0xe8, 0xc6, 0xff, 0xff, 0xff, 0x81, + 0xea, 0xdb, 0xfd, 0xff, 0xff, 0x8b, 0x12, 0xf3, 0x0f, 0x6f, 0xc1, 0x66, 0x0f, 0x3a, 0xdf, 0xd1, + 0x01, 0xe8, 0x8a, 0xff, 0xff, 0xff, 0xf3, 0x0f, 0x6f, 0xe1, 0x66, 0x0f, 0x38, 0xdb, 0xe4, 0x83, + 0xec, 0x10, 0xf3, 0x0f, 0x7f, 0x24, 0x24, 0x66, 0x0f, 0x3a, 0xdf, 0xd1, 0x02, 0xe8, 0x6e, 0xff, + 0xff, 0xff, 0xf3, 0x0f, 0x6f, 0xe1, 0x66, 0x0f, 0x38, 0xdb, 0xe4, 0x83, 0xec, 0x10, 0xf3, 0x0f, + 0x7f, 0x24, 0x24, 0x66, 0x0f, 0x3a, 0xdf, 0xd1, 0x04, 0xe8, 0x52, 0xff, 0xff, 0xff, 0xf3, 0x0f, + 0x6f, 0xe1, 0x66, 0x0f, 0x38, 0xdb, 0xe4, 0x83, 0xec, 0x10, 0xf3, 0x0f, 0x7f, 0x24, 0x24, 0x66, + 0x0f, 0x3a, 0xdf, 0xd1, 0x08, 0xe8, 0x36, 0xff, 0xff, 0xff, 0xf3, 0x0f, 0x6f, 0xe1, 0x66, 0x0f, + 0x38, 0xdb, 0xe4, 0x83, 0xec, 0x10, 0xf3, 0x0f, 0x7f, 0x24, 0x24, 0x66, 0x0f, 0x3a, 0xdf, 0xd1, + 0x10, 0xe8, 0x1a, 0xff, 0xff, 0xff, 0xf3, 0x0f, 0x6f, 0xe1, 0x66, 0x0f, 0x38, 0xdb, 0xe4, 0x83, + 0xec, 0x10, 0xf3, 0x0f, 0x7f, 0x24, 0x24, 0x66, 0x0f, 0x3a, 0xdf, 0xd1, 0x20, 0xe8, 0xfe, 0xfe, + 0xff, 0xff, 0xf3, 0x0f, 0x6f, 0xe1, 0x66, 0x0f, 0x38, 0xdb, 0xe4, 0x83, 0xec, 0x10, 0xf3, 0x0f, + 0x7f, 0x24, 0x24, 0x66, 0x0f, 0x3a, 0xdf, 0xd1, 0x40, 0xe8, 0xe2, 0xfe, 0xff, 0xff, 0xf3, 0x0f, + 0x6f, 0xe1, 0x66, 0x0f, 0x38, 0xdb, 0xe4, 0x83, 0xec, 0x10, 0xf3, 0x0f, 0x7f, 0x24, 0x24, 0x66, + 0x0f, 0x3a, 0xdf, 0xd1, 0x80, 0xe8, 0xc6, 0xfe, 0xff, 0xff, 0xf3, 0x0f, 0x6f, 0xe1, 0x66, 0x0f, + 0x38, 0xdb, 0xe4, 0x83, 0xec, 0x10, 0xf3, 0x0f, 0x7f, 0x24, 0x24, 0x66, 0x0f, 0x3a, 0xdf, 0xd1, + 0x1b, 0xe8, 0xaa, 0xfe, 0xff, 0xff, 0xf3, 0x0f, 0x6f, 0xe1, 0x66, 0x0f, 0x38, 0xdb, 0xe4, 0x83, + 0xec, 0x10, 0xf3, 0x0f, 0x7f, 0x24, 0x24, 0x66, 0x0f, 0x3a, 0xdf, 0xd1, 0x36, 0xe8, 0x8e, 0xfe, + 0xff, 0xff, 0xf3, 0x0f, 0x6f, 0xe1, 0x83, 0xec, 0x10, 0xf3, 0x0f, 0x7f, 0x24, 0x24, 0x31, 0xc9, + 0x83, 0xea, 0x10, 0xf3, 0x0f, 0x6f, 0xc8, 0xf3, 0x0f, 0x6f, 0x3c, 0x08, 0xf3, 0x0f, 0x6f, 0x24, + 0x24, 0x83, 0xc4, 0x10, 0x66, 0x0f, 0xef, 0xfc, 0xf3, 0x0f, 0x6f, 0x24, 0x24, 0x83, 0xc4, 0x10, + 0x66, 0x0f, 0x38, 0xde, 0xfc, 0xf3, 0x0f, 0x6f, 0x24, 0x24, 0x83, 0xc4, 0x10, 0x66, 0x0f, 0x38, + 0xde, 0xfc, 0xf3, 0x0f, 0x6f, 0x24, 0x24, 0x83, 0xc4, 0x10, 0x66, 0x0f, 0x38, 0xde, 0xfc, 0xf3, + 0x0f, 0x6f, 0x24, 0x24, 0x83, 0xc4, 0x10, 0x66, 0x0f, 0x38, 0xde, 0xfc, 0xf3, 0x0f, 0x6f, 0x24, + 0x24, 0x83, 0xc4, 0x10, 0x66, 0x0f, 0x38, 0xde, 0xfc, 0xf3, 0x0f, 0x6f, 0x24, 0x24, 0x83, 0xc4, + 0x10, 0x66, 0x0f, 0x38, 0xde, 0xfc, 0xf3, 0x0f, 0x6f, 0x24, 0x24, 0x83, 0xc4, 0x10, 0x66, 0x0f, + 0x38, 0xde, 0xfc, 0xf3, 0x0f, 0x6f, 0x24, 0x24, 0x83, 0xc4, 0x10, 0x66, 0x0f, 0x38, 0xde, 0xfc, + 0xf3, 0x0f, 0x6f, 0x24, 0x24, 0x83, 0xc4, 0x10, 0x66, 0x0f, 0x38, 0xde, 0xfc, 0x66, 0x0f, 0x38, + 0xdf, 0xf8, 0xf3, 0x0f, 0x7f, 0x3c, 0x08, 0x81, 0xec, 0xa0, 0x00, 0x00, 0x00, 0x83, 0xc1, 0x10, + 0x39, 0xca, 0x7e, 0x05, 0xe9, 0x5a, 0xff, 0xff, 0xff, 0x81, 0xc4, 0xa0, 0x00, 0x00, 0x00, 0x5b, + 0x59, 0x5a, 0x5c, 0x5e, 0x5f, 0x58, 0xe9, 0xfb, 0xff, 0xff, 0xff, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, + 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xaa, 0xcc, 0xcc, 0xcc, 0xcc, 0xdd, + 0xdd, 0xdd, 0xdd, 0xee, 0xee, 0xee, 0xee +}; +#endif //NO_PAYLOAD + +#endif //SILENT_PACKER_I386_AES_128_ECB_WIN_PE_LOADER_H + +``` + +`includes/STUB/i386_xor_linux_elf_loader.h`: + +```h +// +// Created by silentvoid on 4/2/20. +// Copyright (c) 2020 SilentVoid. All rights reserved. +// + +#ifndef SILENT_PACKER_I386_XOR_LINUX_LOADER_H +#define SILENT_PACKER_I386_XOR_LINUX_LOADER_H + +#define I386_XOR_LINUX_ELF_LOADER_INFOS_SIZE 16 +#define I386_XOR_LINUX_ELF_LOADER_SIZE 151 + +#ifndef NO_PAYLOAD +unsigned char i386_xor_linux_elf_loader_stub[] = { + 0x50, 0x57, 0x56, 0x54, 0x52, 0x51, 0x53, 0xe8, 0x3c, 0x00, 0x00, 0x00, 0x83, 0xea, 0x15, 0x89, +0xd1, 0xba, 0x10, 0x00, 0x00, 0x00, 0xbb, 0x01, 0x00, 0x00, 0x00, 0xb8, 0x04, 0x00, 0x00, 0x00, +0xcd, 0x80, 0xe8, 0x21, 0x00, 0x00, 0x00, 0x83, 0xea, 0x4d, 0x89, 0xd3, 0xe8, 0x17, 0x00, 0x00, +0x00, 0x83, 0xea, 0xba, 0x2b, 0x1a, 0xeb, 0x17, 0x5b, 0x55, 0x6e, 0x70, 0x61, 0x63, 0x6b, 0x69, +0x6e, 0x67, 0x2e, 0x2e, 0x2e, 0x5d, 0x0a, 0x00, 0xe8, 0x00, 0x00, 0x00, 0x00, 0x5a, 0xc3, 0xe8, +0xf4, 0xff, 0xff, 0xff, 0x83, 0xea, 0xc2, 0x8b, 0x02, 0xe8, 0xea, 0xff, 0xff, 0xff, 0x83, 0xea, +0xbe, 0x8b, 0x0a, 0xe8, 0xe0, 0xff, 0xff, 0xff, 0x83, 0xea, 0xc6, 0x8b, 0x12, 0x01, 0xd8, 0x01, +0xc1, 0x30, 0x10, 0xc1, 0xca, 0x04, 0x40, 0x39, 0xc8, 0x75, 0xf6, 0x5b, 0x59, 0x5a, 0x5c, 0x5e, +0x5f, 0x58, 0xe9, 0xfb, 0xff, 0xff, 0x0f, 0xaa, 0xaa, 0xaa, 0xaa, 0xbb, 0xbb, 0xbb, 0xbb, 0xcc, +0xcc, 0xcc, 0xcc, 0xdd, 0xdd, 0xdd, 0xdd +}; +#endif // NO_PAYLOAD + +#endif //SILENT_PACKER_I386_XOR_LINUX_LOADER_H +``` + +`includes/STUB/i386_xor_win_pe_loader.h`: + +```h +// +// Created by silentvoid on 4/2/20. +// Copyright (c) 2020 SilentVoid. All rights reserved. +// + +#ifndef SILENT_PACKER_I386_XOR_WIN_PE_LOADER_H +#define SILENT_PACKER_I386_XOR_WIN_PE_LOADER_H + +#define I386_XOR_WIN_PE_LOADER_INFOS_SIZE 16 +#define I386_XOR_WIN_PE_LOADER_SIZE 124 + +#ifndef NO_PAYLOAD +unsigned char i386_xor_win_pe_loader_stub[] = { + 0x50, 0x57, 0x56, 0x54, 0x52, 0x51, 0x53, 0xe8, 0x21, 0x00, 0x00, 0x00, 0x83, 0xea, 0x32, 0x89, + 0xd3, 0xe8, 0x17, 0x00, 0x00, 0x00, 0x83, 0xea, 0xba, 0x2b, 0x1a, 0xeb, 0x17, 0x5b, 0x55, 0x6e, + 0x70, 0x61, 0x63, 0x6b, 0x69, 0x6e, 0x67, 0x2e, 0x2e, 0x2e, 0x5d, 0x0a, 0x00, 0xe8, 0x00, 0x00, + 0x00, 0x00, 0x5a, 0xc3, 0xe8, 0xf4, 0xff, 0xff, 0xff, 0x83, 0xea, 0xc2, 0x8b, 0x02, 0xe8, 0xea, + 0xff, 0xff, 0xff, 0x83, 0xea, 0xbe, 0x8b, 0x0a, 0xe8, 0xe0, 0xff, 0xff, 0xff, 0x83, 0xea, 0xc6, + 0x8b, 0x12, 0x01, 0xd8, 0x01, 0xc1, 0x30, 0x10, 0xc1, 0xca, 0x04, 0x40, 0x39, 0xc8, 0x75, 0xf6, + 0x5b, 0x59, 0x5a, 0x5c, 0x5e, 0x5f, 0x58, 0xe9, 0xfb, 0xff, 0xff, 0x0f, 0xaa, 0xaa, 0xaa, 0xaa, + 0xbb, 0xbb, 0xbb, 0xbb, 0xcc, 0xcc, 0xcc, 0xcc, 0xdd, 0xdd, 0xdd, 0xdd +}; +#endif // NO_PAYLOAD + +#endif //SILENT_PACKER_I386_XOR_WIN_PE_LOADER_H + +``` + +`includes/common/aes_128_ecb_encryption.h`: + +```h +// +// Created by silentvoid on 4/10/20. +// Copyright (c) 2020 SilentVoid. All rights reserved. +// + +#ifndef SILENT_PACKER_AES_128_ECB_ENCRYPTION_H +#define SILENT_PACKER_AES_128_ECB_ENCRYPTION_H + +void aes_128_ecb_encrypt(char *data, size_t data_size, unsigned char *key, size_t key_size); + +#endif //SILENT_PACKER_AES_128_ECB_ENCRYPTION_H + +``` + +`includes/common/cipher_functions.h`: + +```h +// +// Created by silentvoid on 2/25/20. +// Copyright (c) 2020 SilentVoid. All rights reserved. +// + +#ifndef SILENT_PACKER_CIPHER_FUNCTIONS_H +#define SILENT_PACKER_CIPHER_FUNCTIONS_H + +#include +#include +#include +#include + +#include + +extern uint32_t text_data_size32; +extern uint32_t text_entry_point32; +extern uint32_t cipher_key32; + +extern uint64_t text_data_size64; +extern uint64_t text_entry_point64; +extern uint64_t cipher_key64; + +extern unsigned char cipher_key128[17]; + +uint32_t generate_random_key32(); +uint64_t generate_random_key64(); +void generate_random_key128(); + +uint32_t rotate_right32(uint32_t value); +uint64_t rotate_right64(uint64_t value); + +int xor_encrypt32(char *data, size_t data_size, uint32_t key); +int xor_encrypt64(char *data, size_t data_size, uint64_t key); + +#endif //SILENT_PACKER_CIPHER_FUNCTIONS_H + +``` + +`includes/common/file_functions.h`: + +```h +// +// Created by silentvoid on 3/16/20. +// Copyright (c) 2020 SilentVoid. All rights reserved. +// + +#ifndef SILENT_PACKER_FILE_FUNCTIONS_H +#define SILENT_PACKER_FILE_FUNCTIONS_H + +#include +#include +#include + +#include +#include +#include +#include + +#define ELF_FILE 1 +#define PE_FILE 2 +#define UNKNOWN_FILE (-1) + +#define x32_ARCH 32 +#define x64_ARCH 64 +#define UNKNOWN_ARCH (-1) + +int allocate_file(char *file, void **file_data, size_t *file_data_size); +int write_to_file(int fd, void *data, size_t data_size); +int dump_to_file(char *filename, char *data, size_t data_size); +void add_zero_padding(int fd, size_t end_offset); +int check_magic_bytes(char *file_data, size_t file_data_size); +int get_elf_arch(const char *file_data, size_t file_data_size); +int get_pe_arch(const char *file_data, size_t file_data_size); + +#endif //SILENT_PACKER_FILE_FUNCTIONS_H + +``` + +`includes/common/loader_functions.h`: + +```h +// +// Created by silentvoid on 3/18/20. +// Copyright (c) 2020 SilentVoid. All rights reserved. +// + +#ifndef SILENT_PACKER_LOADER_FUNCTIONS_H +#define SILENT_PACKER_LOADER_FUNCTIONS_H + +#include +#include +#include +#include + +#define CIPHER_KEY_OFFSET32_AES 28 +#define CIPHER_KEY_OFFSET32 16 +#define TEXT_ENTRY_POINT_OFFSET32 12 +#define TEXT_DATA_SIZE_OFFSET32 8 +#define LOADER_OFFSET_OFFSET32 4 + +#define CIPHER_KEY_OFFSET64_AES 40 +#define CIPHER_KEY_OFFSET64 32 +#define TEXT_ENTRY_POINT_OFFSET64 24 +#define TEXT_DATA_SIZE_OFFSET64 16 +#define LOADER_OFFSET_OFFSET64 8 + + +extern uint32_t text_data_size32; +extern uint32_t text_entry_point32; +extern uint32_t cipher_key32; +extern uint32_t loader_offset32; + +extern uint64_t text_data_size64; +extern uint64_t text_entry_point64; +extern uint64_t cipher_key64; +extern uint64_t loader_offset64; + +char * patch_loader(); + +#endif //SILENT_PACKER_LOADER_FUNCTIONS_H + +``` + +`includes/common/packer_config.h`: + +```h +// +// Created by silentvoid on 4/10/20. +// Copyright (c) 2020 SilentVoid. All rights reserved. +// + +#ifndef SILENT_PACKER_PACKER_CONFIG_H +#define SILENT_PACKER_PACKER_CONFIG_H + +#include +#include +#include + + +#define MAX_CIPHER_LENGTH 20 +#define MAX_PACKING_METHOD_LENGTH 40 + +struct s_packer_config { + int arch; + char cipher[MAX_CIPHER_LENGTH]; + char packing_method[MAX_PACKING_METHOD_LENGTH]; + size_t cipher_key_offset; + size_t loader_size; + size_t loader_infos_size; + unsigned char *loader_stub; + int debug_mode; +}; + +extern struct s_packer_config packer_config; + +int fill_packer_config(char *packing_method, char *cipher, int arch, int file_type, int debug_mode); + +#endif //SILENT_PACKER_PACKER_CONFIG_H + +``` + +`includes/main.h`: + +```h +// +// Created by silentvoid on 2/25/20. +// Copyright (c) 2020 SilentVoid. All rights reserved. +// + +#ifndef SILENT_PACKER_MAIN_H +#define SILENT_PACKER_MAIN_H + +#include +#include +#include + +void display_argtable_help(char *progname, void **argtable); + +#endif //SILENT_PACKER_MAIN_H + +``` + +`includes/packing_method.h`: + +```h +// +// Created by silentvoid on 3/18/20. +// Copyright (c) 2020 SilentVoid. All rights reserved. +// + +#ifndef SILENT_PACKER_PACKING_METHOD_H +#define SILENT_PACKER_PACKING_METHOD_H + +#include +#include +#include + +#define SECTION_INSERTION_METHOD 1 +#define SILVIO_INFECTION_METHOD 2 +#define CODE_CAVE_METHOD 3 + +struct method_config { + int method_type; + int concerned_section; +}; + +extern struct method_config method_config; + +#endif //SILENT_PACKER_PACKING_METHOD_H + +``` + +`resources/elf_structure.svg`: + +```svg + + + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ... + .data + .rodata + .text + Program header table + ELF header + Section header table + + + + + + + + + + + + + + + + +``` + +`src/ELF/elf_allocation.c`: + +```c +// +// Created by silentvoid on 2/25/20. +// Copyright (c) 2020 SilentVoid. All rights reserved. +// + +#include "elf_allocation.h" +#include "elf_deallocation.h" +#include "file_functions.h" +#include "packer_config.h" + +#include "log.h" + +int allocate_elf_elf_header(t_elf *elf, void *file_data, size_t file_data_size) { + // http://www.openvirtualization.org/documentation/structElf64__Ehdr.html + + if(elf->s_type == ELF32) { + if (file_data_size < sizeof(Elf32_Ehdr)) { + log_error("Total file size is less than ELF Header size"); + return -1; + } + + ((t_elf32 *)elf)->elf_header = malloc(sizeof(Elf32_Ehdr)); + if (((t_elf32 *)elf)->elf_header == NULL) { + deallocate_elf_elf_header(elf); + log_error("malloc() failure"); + return -1; + } + memcpy(((t_elf32 *)elf)->elf_header, file_data, sizeof(Elf32_Ehdr)); + + // https://code.woboq.org/userspace/glibc/elf/elf.h.html + // "\177ELF" + if (strncmp((char *) ((t_elf32 *)elf)->elf_header->e_ident, ELFMAG, SELFMAG) != 0) { + deallocate_elf_elf_header(elf); + log_error("Magic bytes does not match ELF bytes"); + return -1; + } + + if (((t_elf32 *)elf)->elf_header->e_machine != EM_386) { + deallocate_elf_elf_header(elf); + log_error("File is not a x32 executable"); + return -1; + } + } + else { + if (file_data_size < sizeof(Elf64_Ehdr)) { + log_error("Total file size is less than ELF Header size"); + return -1; + } + + ((t_elf64 *)elf)->elf_header = malloc(sizeof(Elf64_Ehdr)); + if (((t_elf64 *)elf)->elf_header == NULL) { + deallocate_elf_elf_header(elf); + log_error("malloc() failure"); + return -1; + } + memcpy(((t_elf64 *)elf)->elf_header, file_data, sizeof(Elf64_Ehdr)); + + // https://code.woboq.org/userspace/glibc/elf/elf.h.html + // "\177ELF" + if (strncmp((char *) ((t_elf64 *)elf)->elf_header->e_ident, ELFMAG, SELFMAG) != 0) { + deallocate_elf_elf_header(elf); + log_error("Magic bytes does not match ELF bytes"); + return -1; + } + + if (((t_elf64 *)elf)->elf_header->e_machine != EM_X86_64) { + deallocate_elf_elf_header(elf); + log_error("File is not a x64 executable"); + return -1; + } + } + + return 1; +} + +int allocate_elf_program_header(t_elf *elf, void *file_data, size_t file_data_size) { + if(elf->s_type == ELF32) { + size_t elf_program_header_size = sizeof(Elf32_Phdr) * ((t_elf32 *)elf)->elf_header->e_phnum; + if (file_data_size < sizeof(Elf32_Ehdr) + elf_program_header_size) { + log_error("Total file size is inferior to ELF Header + Program Header size"); + return -1; + } + + ((t_elf32 *)elf)->prog_header = malloc(elf_program_header_size); + if (((t_elf32 *)elf)->prog_header == NULL) { + deallocate_elf_program_header(elf); + log_error("malloc() failure"); + return -1; + } + memcpy(((t_elf32 *)elf)->prog_header, file_data + ((t_elf32 *)elf)->elf_header->e_phoff, elf_program_header_size); + } + else { + size_t elf_program_header_size = sizeof(Elf64_Phdr) * ((t_elf64 *)elf)->elf_header->e_phnum; + if (file_data_size < sizeof(Elf64_Ehdr) + elf_program_header_size) { + log_error("Total file size is inferior to ELF Header + Program Header size"); + return -1; + } + + ((t_elf64 *)elf)->prog_header = malloc(elf_program_header_size); + if (((t_elf64 *)elf)->prog_header == NULL) { + deallocate_elf_program_header(elf); + log_error("malloc() failure"); + return -1; + } + memcpy(((t_elf64 *)elf)->prog_header, file_data + ((t_elf64 *)elf)->elf_header->e_phoff, elf_program_header_size); + } + + return 1; +} + +int allocate_elf_sections_header(t_elf *elf, void *file_data, size_t file_data_size) { + if(elf->s_type == ELF32) { + size_t elf_sections_header_size = sizeof(Elf32_Shdr) * ((t_elf32 *)elf)->elf_header->e_shnum; + + ((t_elf32 *)elf)->section_header = malloc(elf_sections_header_size); + if (((t_elf32 *)elf)->section_header == NULL) { + deallocate_elf_sections_header(elf); + log_error("malloc() failure"); + return -1; + } + memset(((t_elf32 *)elf)->section_header, 0, elf_sections_header_size); + + for (int i = 0; i < ((t_elf32 *)elf)->elf_header->e_shnum; i++) { + if (file_data_size < ((t_elf32 *)elf)->elf_header->e_shoff + (i * sizeof(Elf32_Shdr))) { + deallocate_elf_sections_header(elf); + log_error("Total file size is inferior to ELF section header size"); + return -1; + } + memcpy(&(((t_elf32 *)elf)->section_header[i]), file_data + ((t_elf32 *)elf)->elf_header->e_shoff + (i * sizeof(Elf32_Shdr)), + sizeof(Elf32_Shdr)); + } + } + else { + size_t elf_sections_header_size = sizeof(Elf64_Shdr) * ((t_elf64 *)elf)->elf_header->e_shnum; + + ((t_elf64 *)elf)->section_header = malloc(elf_sections_header_size); + if (((t_elf64 *)elf)->section_header == NULL) { + deallocate_elf_sections_header(elf); + log_error("malloc() failure"); + return -1; + } + memset(((t_elf64 *)elf)->section_header, 0, elf_sections_header_size); + + for (int i = 0; i < ((t_elf64 *)elf)->elf_header->e_shnum; i++) { + if (file_data_size < ((t_elf64 *)elf)->elf_header->e_shoff + (i * sizeof(Elf64_Shdr))) { + deallocate_elf_sections_header(elf); + log_error("Total file size is inferior to ELF section header size"); + return -1; + } + memcpy(&(((t_elf64 *)elf)->section_header[i]), file_data + ((t_elf64 *)elf)->elf_header->e_shoff + (i * sizeof(Elf64_Shdr)), + sizeof(Elf64_Shdr)); + } + } + + return 1; +} + +int allocate_elf_sections_data(t_elf *elf, void *file_data, size_t file_data_size) { + if(elf->s_type == ELF32) { + ((t_elf32 *)elf)->section_data = malloc(sizeof(char *) * ((t_elf32 *)elf)->elf_header->e_shnum); + if (((t_elf32 *)elf)->section_data == NULL) { + deallocate_elf_sections_data(elf); + log_error("malloc() failure"); + return -1; + } + memset(((t_elf32 *)elf)->section_data, 0, sizeof(char *) * ((t_elf32 *)elf)->elf_header->e_shnum); + + // TODO: Free all the malloc section_data_data up to i + size_t elf_section_data_size; + for (int i = 0; i < ((t_elf32 *)elf)->elf_header->e_shnum; i++) { + // Section that occupies no space in file + if (((t_elf32 *)elf)->section_header[i].sh_type == SHT_NOBITS) { + ((t_elf32 *)elf)->section_data[i] = NULL; + } else { + if (file_data_size < ((t_elf32 *)elf)->section_header[i].sh_offset) { + log_error("Total file size is less than section data offset"); + return -1; + } + + elf_section_data_size = ((t_elf32 *)elf)->section_header[i].sh_size; + + ((t_elf32 *)elf)->section_data[i] = malloc(elf_section_data_size); + if (((t_elf32 *)elf)->section_data[i] == NULL) { + free(((t_elf32 *)elf)->section_data[i]); + log_error("malloc() failure"); + return -1; + } + memset(((t_elf32 *)elf)->section_data[i], 0, elf_section_data_size); + memcpy(((t_elf32 *)elf)->section_data[i], file_data + ((t_elf32 *)elf)->section_header[i].sh_offset, elf_section_data_size); + } + } + } + else { + ((t_elf64 *)elf)->section_data = malloc(sizeof(char *) * ((t_elf64 *)elf)->elf_header->e_shnum); + if (((t_elf64 *)elf)->section_data == NULL) { + deallocate_elf_sections_data(elf); + log_error("malloc() failure"); + return -1; + } + memset(((t_elf64 *)elf)->section_data, 0, sizeof(char *) * ((t_elf64 *)elf)->elf_header->e_shnum); + + size_t elf_section_data_size; + for (int i = 0; i < ((t_elf64 *)elf)->elf_header->e_shnum; i++) { + // Section that occupies no space in file + if (((t_elf64 *)elf)->section_header[i].sh_type == SHT_NOBITS) { + ((t_elf64 *)elf)->section_data[i] = NULL; + } else { + if (file_data_size < ((t_elf64 *)elf)->section_header[i].sh_offset) { + log_error("Total file size is less than section data offset"); + return -1; + } + + elf_section_data_size = ((t_elf64 *)elf)->section_header[i].sh_size; + + ((t_elf64 *)elf)->section_data[i] = malloc(elf_section_data_size); + if (((t_elf64 *)elf)->section_data[i] == NULL) { + free(((t_elf64 *)elf)->section_data[i]); + log_error("malloc() failure"); + return -1; + } + memset(((t_elf64 *)elf)->section_data[i], 0, elf_section_data_size); + memcpy(((t_elf64 *)elf)->section_data[i], file_data + ((t_elf64 *)elf)->section_header[i].sh_offset, elf_section_data_size); + } + } + } + + return 1; +} + +int allocate_elf(t_elf **elf, void *file_data, size_t file_data_size) { + size_t t_elf_size; + + if(packer_config.arch == x32_ARCH) + t_elf_size = sizeof(t_elf32); + else + t_elf_size = sizeof(t_elf64); + + *elf = malloc(t_elf_size); + if(*elf == NULL) { + deallocate_elf_struct(*elf); + log_error("malloc() failure"); + return -1; + } + memset(*elf, 0, t_elf_size); + + t_elf type_pe; + if(packer_config.arch == 32) { + type_pe.s_type = ELF32; + ((t_elf32 *)(*elf))->type_header = type_pe; + } + else { + type_pe.s_type = ELF64; + ((t_elf64 *)(*elf))->type_header = type_pe; + } + + log_verbose("Allocating ELF Header ..."); + + if(allocate_elf_elf_header(*elf, file_data, file_data_size) == -1) { + log_error("Error during ELF Header allocation"); + return -1; + } + + log_verbose("Allocating Program Header ..."); + + if(allocate_elf_program_header(*elf, file_data, file_data_size) == -1) { + deallocate_elf_elf_header(*elf); + log_error("Error during Program Header allocation"); + return -1; + } + + log_verbose("Allocating Sections Headers ..."); + + if(allocate_elf_sections_header(*elf, file_data, file_data_size) == -1) { + deallocate_elf_elf_header(*elf); + deallocate_elf_program_header(*elf); + log_error("Error during Section Header allocation"); + return -1; + } + + log_verbose("Allocating Sections Data ..."); + + if(allocate_elf_sections_data(*elf, file_data, file_data_size) == -1) { + deallocate_elf_elf_header(*elf); + deallocate_elf_program_header(*elf); + deallocate_elf_sections_header(*elf); + log_error("Error during Section Data allocation"); + return -1; + } + + return 1; +} + +``` + +`src/ELF/elf_code_cave.c`: + +```c +// +// Created by silentvoid on 3/7/20. +// Copyright (c) 2020 SilentVoid. All rights reserved. +// + +#include "elf_code_cave.h" +#include "elf_functions.h" +#include "elf_allocation.h" +#include "elf_packing_method.h" +#include "loader_functions.h" +#include "file_functions.h" +#include "packer_config.h" +#include "all_elf_loaders_infos.h" + +#include "log.h" + +int find_elf_code_cave_index(t_elf *elf) { + if(elf->s_type == ELF32) { + for (int i = 0; i < ((t_elf32 *)elf)->elf_header->e_shnum; i++) { + if (((t_elf32 *)elf)->section_header[i].sh_type == SHT_NOBITS) { + continue; + } + unsigned int code_cave_size; + + // TODO: Maybe change that since it's relying on the fact that the section header is located after the section data (may not always be the case) + if (i == ((t_elf32 *)elf)->elf_header->e_shnum - 1) { + code_cave_size = + ((t_elf32 *)elf)->elf_header->e_shoff - (((t_elf32 *)elf)->section_header[i].sh_offset + ((t_elf32 *)elf)->section_header[i].sh_size); + } else { + code_cave_size = ((t_elf32 *)elf)->section_header[i + 1].sh_offset - + (((t_elf32 *)elf)->section_header[i].sh_offset + ((t_elf32 *)elf)->section_header[i].sh_size); + } + + if (code_cave_size > packer_config.loader_size) { + int segment_index = find_elf_segment_index_of_section(elf, i); + if (((t_elf32 *)elf)->prog_header[segment_index].p_type == PT_LOAD) { + log_verbose("Code Cave size : %d", code_cave_size); + return i; + } + } + } + } + else { + for (int i = 0; i < ((t_elf64 *)elf)->elf_header->e_shnum; i++) { + if (((t_elf64 *)elf)->section_header[i].sh_type == SHT_NOBITS) { + continue; + } + unsigned int code_cave_size; + + // TODO: Maybe change that since it's relying on the fact that the section header is located after the section data (may not always be the case) + if (i == ((t_elf64 *)elf)->elf_header->e_shnum - 1) { + code_cave_size = + ((t_elf64 *)elf)->elf_header->e_shoff - (((t_elf64 *)elf)->section_header[i].sh_offset + ((t_elf64 *)elf)->section_header[i].sh_size); + } else { + code_cave_size = ((t_elf64 *)elf)->section_header[i + 1].sh_offset - + (((t_elf64 *)elf)->section_header[i].sh_offset + ((t_elf64 *)elf)->section_header[i].sh_size); + } + + if (code_cave_size > packer_config.loader_size) { + int segment_index = find_elf_segment_index_of_section(elf, i); + if (((t_elf64 *)elf)->prog_header[segment_index].p_type == PT_LOAD) { + log_verbose("Code Cave size : %d", code_cave_size); + return i; + } + } + } + } + + return -1; +} + +int set_new_elf_cave_segment_values(t_elf *elf, int segment_index) { + if(elf->s_type == ELF32) { + ((t_elf32 *)elf)->prog_header[segment_index].p_memsz += packer_config.loader_size; + ((t_elf32 *)elf)->prog_header[segment_index].p_filesz += packer_config.loader_size; + } + else { + ((t_elf64 *)elf)->prog_header[segment_index].p_memsz += packer_config.loader_size; + ((t_elf64 *)elf)->prog_header[segment_index].p_filesz += packer_config.loader_size; + } + + add_elf_segment_permission(elf, segment_index, PF_W); // NOLINT(hicpp-signed-bitwise) + add_elf_segment_permission(elf, segment_index, PF_X); // NOLINT(hicpp-signed-bitwise) + + int text_segment_index = find_elf_text_segment(elf); + if(text_segment_index == -1) { + log_error("Couldn't find .text segment"); + return -1; + } + add_elf_segment_permission(elf, text_segment_index, PF_W); // NOLINT(hicpp-signed-bitwise) + + return 1; +} + +int elf_cave_insert_loader(t_elf *elf, int section_index, int old_section_size) { + char *new_section_data; + char *loader; + + if(elf->s_type == ELF32) { + new_section_data = realloc(((t_elf32 *)elf)->section_data[section_index], old_section_size + packer_config.loader_size); + if (new_section_data == NULL) { + log_error("realloc() failure"); + return -1; + } + ((t_elf32 *)elf)->section_data[section_index] = new_section_data; + // For ASM + loader_offset32 = ((t_elf32 *)elf)->section_header[section_index].sh_addr + old_section_size; + + loader = patch_loader(); + if(loader == NULL) { + free(loader); + log_error("Error during loader patching"); + return -1; + } + memcpy(new_section_data + old_section_size, loader, packer_config.loader_size); + } + else { + new_section_data = realloc(((t_elf64 *)elf)->section_data[section_index], old_section_size + packer_config.loader_size); + if (new_section_data == NULL) { + log_error("realloc() failure"); + return -1; + } + ((t_elf64 *)elf)->section_data[section_index] = new_section_data; + // For ASM + loader_offset64 = ((t_elf64 *)elf)->section_header[section_index].sh_addr + old_section_size; + + loader = patch_loader(); + if(loader == NULL) { + free(loader); + log_error("Error during loader patching"); + return -1; + } + memcpy(new_section_data + old_section_size, loader, packer_config.loader_size); + } + free(loader); + + return 1; +} + +int elf_code_cave_injection(t_elf *elf) { + + log_verbose("Finding the code cave ..."); + + int section_cave_index = find_elf_code_cave_index(elf); + if(section_cave_index == -1) { + log_error("Couldn't find any code cave in this ELF"); + return -1; + } + method_config.concerned_section = section_cave_index; + + int segment_index = find_elf_segment_index_of_section(elf, section_cave_index); + if(segment_index == -1) { + log_error("Couldn't find segment index"); + return -1; + } + + log_verbose("Setting new segment values ..."); + + if(set_new_elf_cave_segment_values(elf, segment_index) == -1) { + log_error("Error during segment values modification"); + return -1; + } + + log_verbose("Inserting the loader inside the code cave ..."); + + int old_section_size; + if(elf->s_type == ELF32) + old_section_size = ((t_elf32 *)elf)->section_header[section_cave_index].sh_size; + else + old_section_size = ((t_elf64 *)elf)->section_header[section_cave_index].sh_size; + + if(elf_cave_insert_loader(elf, section_cave_index, old_section_size) == -1) { + log_error("Error during Loader insertion"); + return -1; + } + + log_verbose("Setting new ELF entry point ..."); + + if(elf->s_type == ELF32) { + Elf32_Addr loader_addr; + loader_addr = ((t_elf32 *) elf)->section_header[section_cave_index].sh_addr + old_section_size; + set_new_elf_entry_to_addr32(elf, loader_addr, section_cave_index, old_section_size); + } + else { + Elf64_Addr loader_addr; + loader_addr = ((t_elf64 *) elf)->section_header[section_cave_index].sh_addr + old_section_size; + set_new_elf_entry_to_addr64(elf, loader_addr, section_cave_index, old_section_size); + } + + return 1; +} + +``` + +`src/ELF/elf_deallocation.c`: + +```c +// +// Created by silentvoid on 4/12/20. +// Copyright (c) 2020 SilentVoid. All rights reserved. +// + +#include "elf_deallocation.h" +#include "elf_allocation.h" + +void deallocate_elf_elf_header(t_elf *elf) { + if(elf->s_type == ELF32) { + free(((t_elf32 *)elf)->elf_header); + } + else { + free(((t_elf64 *)elf)->elf_header); + } +} + +void deallocate_elf_program_header(t_elf *elf) { + if(elf->s_type == ELF32) { + free(((t_elf32 *)elf)->prog_header); + } + else { + free(((t_elf64 *)elf)->prog_header); + } +} + +void deallocate_elf_sections_header(t_elf *elf) { + if(elf->s_type == ELF32) { + free(((t_elf32 *)elf)->section_header); + } + else { + free(((t_elf64 *)elf)->section_header); + } +} + + +void deallocate_elf_sections_data_data(t_elf *elf) { + if(elf->s_type == ELF32) { + for (int i = 0; i < ((t_elf32 *)elf)->elf_header->e_shnum; i++) { + free(((t_elf32 *)elf)->section_data[i]); + } + } + else { + for (int i = 0; i < ((t_elf64 *)elf)->elf_header->e_shnum; i++) { + free(((t_elf64 *)elf)->section_data[i]); + } + } +} + +void deallocate_elf_sections_data(t_elf *elf) { + if(elf->s_type == ELF32) { + free(((t_elf32 *)elf)->section_data); + } + else { + free(((t_elf64 *)elf)->section_data); + } +} + +void deallocate_elf_struct(t_elf *elf) { + free(elf); +} + +void deallocate_elf(t_elf *elf) { + deallocate_elf_elf_header(elf); + deallocate_elf_program_header(elf); + deallocate_elf_sections_header(elf); + deallocate_elf_sections_data_data(elf); + deallocate_elf_sections_data(elf); + deallocate_elf_struct(elf); +} + + +``` + +`src/ELF/elf_encryption.c`: + +```c +// +// Created by silentvoid on 3/16/20. +// Copyright (c) 2020 SilentVoid. All rights reserved. +// + +#include "elf_encryption.h" +#include "cipher_functions.h" +#include "elf_allocation.h" +#include "elf_functions.h" +#include "loader_functions.h" +#include "packer_config.h" +#include "file_functions.h" +#include "aes_128_ecb_encryption.h" + +#include "log.h" + +int encrypt_elf(t_elf *elf) { + int text_section_index = find_elf_section_index(elf, ".text"); + if(text_section_index == -1) { + log_error("Couldn't find .text section in the ELF binary"); + return -1; + } + + log_verbose("Got .text section index : %d", text_section_index); + + char *text_data; + if(elf->s_type == ELF32) { + text_data = ((t_elf32 *)elf)->section_data[text_section_index]; + + // Setting global variables + text_data_size32 = ((t_elf32 *)elf)->section_header[text_section_index].sh_size; + text_entry_point32 = ((t_elf32 *)elf)->section_header[text_section_index].sh_addr; + + if(packer_config.debug_mode) { + log_debug("Dumping .text ..."); + dump_to_file("text32.dmp", text_data, text_data_size32); + } + + log_verbose("Generating random key ..."); + + if(strcmp(packer_config.cipher, "xor") == 0) { + cipher_key32 = generate_random_key32(); + uint32_t temp_key = cipher_key32; + log_info("Random key : %x", cipher_key32); + xor_encrypt32(text_data, text_data_size32, temp_key); + } + else if(strcmp(packer_config.cipher, "aes128_ecb") == 0) { + generate_random_key128(); + + log_info("Random key : "); + for(int i = 0; i < 16; i++) + printf("%02x", cipher_key128[i]); + puts(""); + + aes_128_ecb_encrypt(text_data, text_data_size32, cipher_key128, 16); + } + + if(packer_config.debug_mode) { + log_debug("Dumping encrypted .text ..."); + dump_to_file("text32_encrypted.dmp", text_data, text_data_size32); + } + } + else { + text_data = ((t_elf64 *)elf)->section_data[text_section_index]; + + // Setting global variables + text_data_size64 = ((t_elf64 *)elf)->section_header[text_section_index].sh_size; + text_entry_point64 = ((t_elf64 *)elf)->section_header[text_section_index].sh_addr; + + if(packer_config.debug_mode) { + log_debug("Dumping .text ..."); + dump_to_file("text64.dmp", text_data, text_data_size64); + } + + log_verbose("Generating random key ..."); + + if(strcmp(packer_config.cipher, "xor") == 0) { + cipher_key64 = generate_random_key64(); + uint64_t temp_key = cipher_key64; + log_info("Random key : %lx", cipher_key64); + xor_encrypt64(text_data, text_data_size64, temp_key); + } + else if(strcmp(packer_config.cipher, "aes128_ecb") == 0) { + generate_random_key128(); + + log_info("Random key : "); + for(int i = 0; i < 16; i++) + printf("%02x", cipher_key128[i]); + puts(""); + + aes_128_ecb_encrypt(text_data, text_data_size64, cipher_key128, 16); + } + + if(packer_config.debug_mode) { + log_debug("Dumping encrypted .text ..."); + dump_to_file("text64_encrypted.dmp", text_data, text_data_size64); + } + } + + return 1; +} + +``` + +`src/ELF/elf_functions.c`: + +```c +// +// Created by silentvoid on 2/28/20. +// Copyright (c) 2020 SilentVoid. All rights reserved. +// + +#include "elf_functions.h" +#include "elf_allocation.h" +#include "loader_functions.h" +#include "packer_config.h" +#include "all_elf_loaders_infos.h" + +#include "log.h" + +int set_new_elf_entry_to_section(t_elf *elf, int section_index) { + if(elf->s_type == ELF32) { + Elf32_Addr last_entry = ((t_elf32 *)elf)->elf_header->e_entry; + ((t_elf32 *)elf)->elf_header->e_entry = ((t_elf32 *)elf)->section_header[section_index].sh_addr; + int32_t jump = last_entry - (((t_elf32 *)elf)->elf_header->e_entry + packer_config.loader_size - packer_config.loader_infos_size); + + memcpy(((t_elf32 *)elf)->section_data[section_index] + packer_config.loader_size - (packer_config.loader_infos_size + 4), &jump, 4); + } + else { + Elf64_Addr last_entry = ((t_elf64 *)elf)->elf_header->e_entry; + ((t_elf64 *)elf)->elf_header->e_entry = ((t_elf64 *)elf)->section_header[section_index].sh_addr; + int32_t jump = last_entry - (((t_elf64 *)elf)->elf_header->e_entry + packer_config.loader_size - packer_config.loader_infos_size); + + memcpy(((t_elf64 *)elf)->section_data[section_index] + packer_config.loader_size - (packer_config.loader_infos_size + 4), &jump, 4); + } + + return 1; +} + +int set_new_elf_entry_to_addr32(t_elf *elf, int32_t entry_address, int section_index, int section_size) { + Elf32_Addr last_entry = ((t_elf32 *)elf)->elf_header->e_entry; + ((t_elf32 *)elf)->elf_header->e_entry = entry_address; + int32_t jump = last_entry - (((t_elf32 *)elf)->elf_header->e_entry + packer_config.loader_size - packer_config.loader_infos_size); + + memcpy(((t_elf32 *)elf)->section_data[section_index] + section_size + packer_config.loader_size - (packer_config.loader_infos_size + 4), &jump, 4); + + return 1; +} + +int set_new_elf_entry_to_addr64(t_elf *elf, int64_t entry_address, int section_index, int section_size) { + Elf64_Addr last_entry = ((t_elf64 *)elf)->elf_header->e_entry; + ((t_elf64 *)elf)->elf_header->e_entry = entry_address; + int32_t jump = last_entry - (((t_elf64 *)elf)->elf_header->e_entry + packer_config.loader_size - packer_config.loader_infos_size); + + memcpy(((t_elf64 *)elf)->section_data[section_index] + section_size + packer_config.loader_size - (packer_config.loader_infos_size + 4), &jump, 4); + + return 1; +} + +int find_last_elf_segment_of_type(t_elf *elf, unsigned int p_type) { + int index = -1; + + if(elf->s_type == ELF32) { + for (int i = 0; i < ((t_elf32 *)elf)->elf_header->e_phnum; i++) { + if (((t_elf32 *)elf)->prog_header[i].p_type == p_type) { + index = i; + } + } + } + else { + for (int i = 0; i < ((t_elf64 *)elf)->elf_header->e_phnum; i++) { + if (((t_elf64 *)elf)->prog_header[i].p_type == p_type) { + index = i; + } + } + } + + return index; +} + +// Find last section from specified segment index +int find_last_elf_section_from_segment(t_elf *elf, int segment_index) { + int index = -1; + + if(elf->s_type == ELF32) { + Elf32_Phdr *program_header = ((t_elf32 *)elf)->prog_header + segment_index; + for (int i = 0; i < ((t_elf32 *)elf)->elf_header->e_shnum; i++) { + Elf32_Shdr *section_header = ((t_elf32 *)elf)->section_header + i; + + if (section_header->sh_addr >= program_header->p_vaddr + && section_header->sh_addr < program_header->p_vaddr + program_header->p_memsz + ) { + index = i; + } + } + } + else { + Elf64_Phdr *program_header = ((t_elf64 *)elf)->prog_header + segment_index; + for (int i = 0; i < ((t_elf64 *)elf)->elf_header->e_shnum; i++) { + Elf64_Shdr *section_header = ((t_elf64 *)elf)->section_header + i; + + if (section_header->sh_addr >= program_header->p_vaddr + && section_header->sh_addr < program_header->p_vaddr + program_header->p_memsz + ) { + index = i; + } + } + } + + return index; +} + +// Find the text segment based on the fact that the elf entry point is located at the start of the .text section +int find_elf_text_segment(t_elf *elf) { + int index = -1; + + if(elf->s_type == ELF32) { + for (int i = 0; i < ((t_elf32 *)elf)->elf_header->e_phnum; i++) { + if (((t_elf32 *)elf)->prog_header[i].p_type == PT_LOAD + && ((t_elf32 *)elf)->elf_header->e_entry < (((t_elf32 *)elf)->prog_header[i].p_vaddr + ((t_elf32 *)elf)->prog_header[i].p_filesz) + && ((t_elf32 *)elf)->elf_header->e_entry > ((t_elf32 *)elf)->prog_header[i].p_vaddr) { + index = i; + break; + } + } + } + else { + for (int i = 0; i < ((t_elf64 *)elf)->elf_header->e_phnum; i++) { + if (((t_elf64 *)elf)->prog_header[i].p_type == PT_LOAD + && ((t_elf64 *)elf)->elf_header->e_entry < (((t_elf64 *)elf)->prog_header[i].p_vaddr + ((t_elf64 *)elf)->prog_header[i].p_filesz) + && ((t_elf64 *)elf)->elf_header->e_entry > ((t_elf64 *)elf)->prog_header[i].p_vaddr) { + index = i; + break; + } + } + } + + return index; +} + +int find_elf_segment_index_of_section(t_elf *elf, int section_index) { + int index = -1; + + if(elf->s_type == ELF32) { + for (int i = 0; i < ((t_elf32 *)elf)->elf_header->e_phnum; i++) { + if (((t_elf32 *)elf)->prog_header[i].p_offset <= ((t_elf32 *)elf)->section_header[section_index].sh_offset) { + index = i; + } else { + if (index == -1) + index = 0; + break; + } + } + } + else { + for (int i = 0; i < ((t_elf64 *)elf)->elf_header->e_phnum; i++) { + if (((t_elf64 *)elf)->prog_header[i].p_offset <= ((t_elf64 *)elf)->section_header[section_index].sh_offset) { + index = i; + } else { + if (index == -1) + index = 0; + break; + } + } + } + + return index; +} + +char* find_elf_section_name(t_elf *elf, int index) { + // sh_name contains the index into the section string table of the section name string + if(elf->s_type == ELF32) { + int section_string_table_index = ((t_elf32 *)elf)->elf_header->e_shstrndx; + return ((char *) (((t_elf32 *)elf)->section_data[section_string_table_index] + ((t_elf32 *)elf)->section_header[index].sh_name)); + } + else { + int section_string_table_index = ((t_elf64 *)elf)->elf_header->e_shstrndx; + return ((char *) (((t_elf64 *)elf)->section_data[section_string_table_index] + ((t_elf64 *)elf)->section_header[index].sh_name)); + } +} + +int find_elf_section_index(t_elf *elf, char *section_name) { + if(elf->s_type == ELF32) { + for (int i = 0; i < ((t_elf32 *)elf)->elf_header->e_shnum; i++) { + char *s_name = find_elf_section_name(elf, i); + if (strcmp(section_name, s_name) == 0) { + return i; + } + } + } + else { + for (int i = 0; i < ((t_elf64 *)elf)->elf_header->e_shnum; i++) { + char *s_name = find_elf_section_name(elf, i); + if (strcmp(section_name, s_name) == 0) { + return i; + } + } + } + + return -1; +} + +void add_elf_segment_permission(t_elf *elf, int segment_index, int permission) { + if(elf->s_type == ELF32) + ((t_elf32 *)elf)->prog_header[segment_index].p_flags |= permission; // NOLINT(hicpp-signed-bitwise) + else + ((t_elf64 *)elf)->prog_header[segment_index].p_flags |= permission; // NOLINT(hicpp-signed-bitwise) +} + +``` + +`src/ELF/elf_packing.c`: + +```c +// +// Created by silentvoid on 2/25/20. +// Copyright (c) 2020 SilentVoid. All rights reserved. +// + +#include "elf_packing.h" +#include "elf_allocation.h" +#include "elf_deallocation.h" +#include "file_functions.h" +#include "elf_encryption.h" +#include "elf_writing.h" +#include "elf_packing_method.h" +#include "packer_config.h" + +#include "log.h" + +/* + * Basic ELF structure + * + * ----------- + * ELF Header + * ----------- + * Program header table + * ----------- + * [section_data] + * .text + * .rodata + * .shstrtab (string table section names) + * [...] + * ----------- + * Section header table containing multiple section headers + * .text header + * ----------- + * +*/ + +int pack_elf(char *file, char *file_data, size_t file_data_size, char *output) { + log_verbose("Detected arch : x%d", packer_config.arch); + log_info("Allocating ELF in memory ..."); + + t_elf *elf = NULL; + if(allocate_elf(&elf, file_data, file_data_size) == -1) { + munmap(file_data, file_data_size); + log_error("Error during ELF allocation"); + return -1; + } + + // De-allocate mapped file as we don't need it anymore + munmap(file_data, file_data_size); + + log_info("Encrypting .text section ..."); + if(encrypt_elf(elf) == -1) { + deallocate_elf(elf); + log_error("Error during ELF encryption"); + return -1; + } + + log_info("Packing using specified method ..."); + if(elf_pack_using_method(elf) == -1) { + deallocate_elf(elf); + log_error("Error during ELF packing"); + return -1; + } + + char *filename; + if(output != NULL) + filename = output; + else + filename = "packed.elf"; + + log_info("Writing Packed ELF to file ..."); + if(write_elf(elf, filename) == -1) { + deallocate_elf(elf); + log_error("Error during new ELF writing"); + return -1; + } + + log_success("File %s packed into %s !", file, filename); + deallocate_elf(elf); + + return 1; +} + +``` + +`src/ELF/elf_packing_method.c`: + +```c +// +// Created by silentvoid on 2/28/20. +// Copyright (c) 2020 SilentVoid. All rights reserved. +// + +#include "elf_packing_method.h" +#include "elf_allocation.h" +#include "packer_config.h" +#include "elf_packing.h" +#include "elf_section_insertion.h" +#include "elf_silvio_infection.h" +#include "elf_code_cave.h" + +#include "log.h" + +int elf_pack_using_method(t_elf *elf) { + if(strcmp(packer_config.packing_method, "section_insertion") == 0) { + method_config.method_type = SECTION_INSERTION_METHOD; + if (elf_insert_section(elf) == -1) { + log_error("Error during Section insertion"); + return -1; + } + } + else if(strcmp(packer_config.packing_method, "code_cave") == 0) { + method_config.method_type = CODE_CAVE_METHOD; + if(elf_code_cave_injection(elf) == -1) { + log_error("Error during Code Cave Injection"); + return -1; + } + } + else if(strcmp(packer_config.packing_method, "silvio_infection") == 0) { + method_config.method_type = SILVIO_INFECTION_METHOD; + if(elf_silvio_infect(elf) == -1) { + log_error("Error during Silvio infection"); + return -1; + } + } + + return 1; +} + +``` + +`src/ELF/elf_section_insertion.c`: + +```c +// +// Created by silentvoid on 2/26/20. +// Copyright (c) 2020 SilentVoid. All rights reserved. +// + +#include "elf_section_insertion.h" +#include "elf_packing_method.h" +#include "elf_functions.h" +#include "loader_functions.h" +#include "packer_config.h" +#include "file_functions.h" +#include "all_elf_loaders_infos.h" + +#include "log.h" + + +Elf64_Shdr new_section64 = { + .sh_name = 0, + .sh_type = SHT_PROGBITS, + .sh_flags = SHF_EXECINSTR | SHF_ALLOC, // NOLINT(hicpp-signed-bitwise) + .sh_addr = 0, + .sh_offset = 0, + .sh_size = 0, + .sh_link = 0, + .sh_info = 0, + .sh_addralign = 16, + .sh_entsize = 0, +}; + +Elf32_Shdr new_section32 = { + .sh_name = 0, + .sh_type = SHT_PROGBITS, + .sh_flags = SHF_EXECINSTR | SHF_ALLOC, // NOLINT(hicpp-signed-bitwise) + .sh_addr = 0, + .sh_offset = 0, + .sh_size = 0, + .sh_link = 0, + .sh_info = 0, + .sh_addralign = 16, + .sh_entsize = 0, +}; + +int set_new_elf_section_string_table(t_elf *elf) { + char *new_string_table; + + char *section_name = ".dec"; + size_t section_name_length = strlen(section_name); + + if(elf->s_type == ELF32) { + int section_string_table_index = ((t_elf32 *)elf)->elf_header->e_shstrndx; + + int old_size = ((t_elf32 *)elf)->section_header[section_string_table_index].sh_size; + + size_t new_string_table_size = ((t_elf32 *)elf)->section_header[section_string_table_index].sh_size + section_name_length + 1; + new_string_table = realloc(((t_elf32 *)elf)->section_data[section_string_table_index], new_string_table_size); + if (new_string_table == NULL) { + log_error("realloc() failure"); + return -1; + } + memcpy(new_string_table + old_size, section_name,section_name_length+1); + + // We set it to the end of the old section_string_table + new_section32.sh_name = old_size; + + ((t_elf32 *)elf)->section_data[section_string_table_index] = new_string_table; + ((t_elf32 *)elf)->section_header[section_string_table_index].sh_size = new_string_table_size; + } + else { + int section_string_table_index = ((t_elf64 *)elf)->elf_header->e_shstrndx; + + int old_size = ((t_elf64 *)elf)->section_header[section_string_table_index].sh_size; + + size_t new_string_table_size = ((t_elf64 *)elf)->section_header[section_string_table_index].sh_size + section_name_length + 1; + new_string_table = realloc(((t_elf64 *)elf)->section_data[section_string_table_index], new_string_table_size); + if (new_string_table == NULL) { + log_error("realloc() failure"); + return -1; + } + memcpy(new_string_table + old_size, section_name,section_name_length+1); + + // We set it to the end of the old section_string_table + new_section64.sh_name = old_size; + + ((t_elf64 *)elf)->section_data[section_string_table_index] = new_string_table; + ((t_elf64 *)elf)->section_header[section_string_table_index].sh_size = new_string_table_size; + } + + return 1; +} + +int set_new_elf_section_symtab_sh_link_value(t_elf *elf) { + if(elf->s_type == ELF32) { + for (int i = 0; i < ((t_elf32 *)elf)->elf_header->e_shnum; i++) { + char *section_name = find_elf_section_name(elf, i); + if (strcmp(section_name, ".symtab") == 0) { + ((t_elf32 *)elf)->section_header[i].sh_link += 1; + } + } + } + else { + for (int i = 0; i < ((t_elf64 *)elf)->elf_header->e_shnum; i++) { + char *section_name = find_elf_section_name(elf, i); + if (strcmp(section_name, ".symtab") == 0) { + ((t_elf64 *)elf)->section_header[i].sh_link += 1; + } + } + } + + return 1; +} + +/* Map example + * + * -------- + * loadable1 + * -------- + * loadable2 + * -------- + * loadable3 --> last_loadable_section_index + * -------- + * non_loadable1 + * -------- + * non_loadable2 + * -------- + * new_created_empty_section + * -------- + * + * We change it to this : + * + * -------- + * loadable1 + * -------- + * loadable2 + * -------- + * loadable3 --> last_loadable_section_index + * -------- + * new_section_loadable4 + * -------- + * non_loadable1 + * -------- + * non_loadable2 + * -------- + * +*/ +int elf_section_create_new_section(t_elf *elf, int last_pt_load_index, int last_loadable_section_index) { + char **new_section_data; + char *loader; + + if(elf->s_type == ELF32) { + Elf32_Shdr *new_section_headers; + ((t_elf32 *)elf)->elf_header->e_shnum += 1; + + // We realloc to add the new section header + size_t new_section_headers_size = sizeof(Elf32_Shdr) * ((t_elf32 *)elf)->elf_header->e_shnum; + new_section_headers = realloc(((t_elf32 *)elf)->section_header, new_section_headers_size); + if (new_section_headers == NULL) { + log_error("realloc() failure"); + return -1; + } + + // We realloc to add the new section data + size_t new_section_data_size = sizeof(char *) * ((t_elf32 *)elf)->elf_header->e_shnum; + new_section_data = realloc(((t_elf32 *)elf)->section_data, new_section_data_size); + if (new_section_data == NULL) { + log_error("realloc() failure"); + return -1; + } + + // Re-map to new memory location + ((t_elf32 *)elf)->section_header = new_section_headers; + ((t_elf32 *)elf)->section_data = new_section_data; + + // Set new section values + // sh_offset and sh_addr == end of last loadable segment since we know we will add it there + new_section32.sh_offset = + ((t_elf32 *)elf)->prog_header[last_pt_load_index].p_offset + ((t_elf32 *)elf)->prog_header[last_pt_load_index].p_memsz; + new_section32.sh_addr = + ((t_elf32 *)elf)->prog_header[last_pt_load_index].p_vaddr + ((t_elf32 *)elf)->prog_header[last_pt_load_index].p_memsz; + + new_section32.sh_size = packer_config.loader_size; + + // For ASM + loader_offset32 = new_section32.sh_addr; + + loader = patch_loader(x32_ARCH, ELF32, packer_config.cipher); + if (loader == NULL) { + free(loader); + log_error("Error during loader patching"); + return -1; + } + + // -1 because e_shnum starts at 1 / -1 because we created an empty section which doesn't count + size_t remaining_after_section_headers_data_size = + sizeof(Elf32_Shdr) * (((t_elf32 *)elf)->elf_header->e_shnum - last_loadable_section_index - 1 - 1); + size_t remaining_after_section_headers_count = + sizeof(char *) * (((t_elf32 *)elf)->elf_header->e_shnum - last_loadable_section_index - 1 - 1); + + // We move all sections after the last loadable section to + 1 + memmove(new_section_headers + last_loadable_section_index + 2, + new_section_headers + last_loadable_section_index + 1, remaining_after_section_headers_data_size); + // Shift all char * pointer after the last loadable section to + 1 + memmove(new_section_data + last_loadable_section_index + 2, new_section_data + last_loadable_section_index + 1, + remaining_after_section_headers_count); + + // Since we append a new section + last_loadable_section_index += 1; + + // If the section header string table is after our inserted section, we add + 1 to e_shstrndx to correct its index + if (((t_elf32 *)elf)->elf_header->e_shstrndx >= last_loadable_section_index) { + ((t_elf32 *)elf)->elf_header->e_shstrndx += 1; + } + + // We set a new proper section name + if (set_new_elf_section_string_table(elf) == -1) { + free(loader); + log_error("Error setting new string table"); + return -1; + } + + // Inserting our new loadable section after the last loadable section + memcpy(new_section_headers + last_loadable_section_index, &new_section32, sizeof(Elf32_Shdr)); + char *new_section_d = malloc(new_section32.sh_size); + if(new_section_d == NULL) { + free(loader); + free(new_section_d); + log_error("malloc() failure"); + return -1; + } + memcpy(new_section_d, loader, packer_config.loader_size); + ((t_elf32 *)elf)->section_data[last_loadable_section_index] = new_section_d; + } + else { + Elf64_Shdr *new_section_headers; + ((t_elf64 *)elf)->elf_header->e_shnum += 1; + + size_t new_section_headers_size = sizeof(Elf64_Shdr) * ((t_elf64 *)elf)->elf_header->e_shnum; + new_section_headers = realloc(((t_elf64 *)elf)->section_header, new_section_headers_size); + if (new_section_headers == NULL) { + log_error("realloc() failure"); + return -1; + } + + size_t new_section_data_size = sizeof(char *) * ((t_elf64 *)elf)->elf_header->e_shnum; + new_section_data = realloc(((t_elf64 *)elf)->section_data, new_section_data_size); + if (new_section_data == NULL) { + log_error("realloc() failure"); + return -1; + } + + ((t_elf64 *)elf)->section_header = new_section_headers; + ((t_elf64 *)elf)->section_data = new_section_data; + + new_section64.sh_offset = + ((t_elf64 *)elf)->prog_header[last_pt_load_index].p_offset + ((t_elf64 *)elf)->prog_header[last_pt_load_index].p_memsz; + new_section64.sh_addr = + ((t_elf64 *)elf)->prog_header[last_pt_load_index].p_vaddr + ((t_elf64 *)elf)->prog_header[last_pt_load_index].p_memsz; + + new_section64.sh_size = packer_config.loader_size; + + // For ASM + loader_offset64 = new_section64.sh_addr; + + loader = patch_loader(); + if (loader == NULL) { + free(loader); + log_error("Error during loader patching"); + return -1; + } + + size_t remaining_after_section_headers_data_size = + sizeof(Elf64_Shdr) * (((t_elf64 *)elf)->elf_header->e_shnum - last_loadable_section_index - 1 - 1); + size_t remaining_after_section_headers_count = + sizeof(char *) * (((t_elf64 *)elf)->elf_header->e_shnum - last_loadable_section_index - 1 - 1); + + memmove(new_section_headers + last_loadable_section_index + 2, + new_section_headers + last_loadable_section_index + 1, remaining_after_section_headers_data_size); + memmove(new_section_data + last_loadable_section_index + 2, new_section_data + last_loadable_section_index + 1, + remaining_after_section_headers_count); + + last_loadable_section_index += 1; + + if (((t_elf64 *)elf)->elf_header->e_shstrndx >= last_loadable_section_index) { + ((t_elf64 *)elf)->elf_header->e_shstrndx += 1; + } + + // We set a new proper section name + if (set_new_elf_section_string_table(elf) == -1) { + free(loader); + log_error("Error setting new string table"); + return -1; + } + + memcpy(new_section_headers + last_loadable_section_index, &new_section64, sizeof(Elf64_Shdr)); + char *new_section_d = malloc(new_section64.sh_size); + if(new_section_d == NULL) { + free(loader); + free(new_section_d); + log_error("malloc() failure"); + return -1; + } + memcpy(new_section_d, loader, packer_config.loader_size); + ((t_elf64 *)elf)->section_data[last_loadable_section_index] = new_section_d; + } + free(loader); + + // Fixing sh_link symbol_table index value + // https://docs.oracle.com/cd/E19683-01/816-1386/6m7qcoblj/index.html#chapter6-47976 + if (set_new_elf_section_symtab_sh_link_value(elf) == -1) { + log_error("Error modifying symtab sh_link value"); + return -1; + } + + return 1; +} + +int elf_section_set_new_segment_values(t_elf *elf, int segment_index) { + if(elf->s_type == ELF32) { + // Set new segment size with our new section included + size_t new_segment_size = ((t_elf32 *)elf)->prog_header[segment_index].p_memsz + packer_config.loader_size; + ((t_elf32 *)elf)->prog_header[segment_index].p_memsz = new_segment_size; + ((t_elf32 *)elf)->prog_header[segment_index].p_filesz = new_segment_size; + } + else { + size_t new_segment_size = ((t_elf64 *)elf)->prog_header[segment_index].p_memsz + packer_config.loader_size; + ((t_elf64 *)elf)->prog_header[segment_index].p_memsz = new_segment_size; + ((t_elf64 *)elf)->prog_header[segment_index].p_filesz = new_segment_size; + } + + // Set all pt_loader permissions on RWX (pretty ugly) + set_new_elf_section_pt_loader_permissions(elf); + + return 1; +} + +int elf_section_set_new_section_values(t_elf *elf, int section_index) { + if(elf->s_type == ELF32) { + // We shift each section offset to make it correct since we moved sections to leave space for our inserted section + for (int i = section_index; i < ((t_elf32 *)elf)->elf_header->e_shnum - 1; i++) { + ((t_elf32 *)elf)->section_header[i + 1].sh_offset = ((t_elf32 *)elf)->section_header[i].sh_offset + ((t_elf32 *)elf)->section_header[i].sh_size; + } + + // We change the offset of the start of the section header to be correct + // We set it at the end of the last section data == start of section headers (c.f elf structure) + int section_count = ((t_elf32 *)elf)->elf_header->e_shnum; + ((t_elf32 *)elf)->elf_header->e_shoff = ((t_elf32 *)elf)->section_header[section_count - 1].sh_offset + ((t_elf32 *)elf)->section_header[section_count - 1].sh_size; + } + else { + for (int i = section_index; i < ((t_elf64 *)elf)->elf_header->e_shnum - 1; i++) { + ((t_elf64 *)elf)->section_header[i + 1].sh_offset = ((t_elf64 *)elf)->section_header[i].sh_offset + ((t_elf64 *)elf)->section_header[i].sh_size; + } + + int section_count = ((t_elf64 *)elf)->elf_header->e_shnum; + ((t_elf64 *)elf)->elf_header->e_shoff = ((t_elf64 *)elf)->section_header[section_count - 1].sh_offset + ((t_elf64 *)elf)->section_header[section_count - 1].sh_size; + } + + return 1; +} + +void print_link_fields(t_elf *elf) { + if(elf->s_type == ELF32) { + for (int i = 0; i < ((t_elf32 *)elf)->elf_header->e_shnum; i++) { + printf("section_name : %s\n", find_elf_section_name(elf, i)); + printf("sh_type : %d\n", ((t_elf32 *)elf)->section_header[i].sh_type); + printf("sh_link : %d\n", ((t_elf32 *)elf)->section_header[i].sh_link); + printf("\n"); + } + } + else { + for (int i = 0; i < ((t_elf64 *)elf)->elf_header->e_shnum; i++) { + printf("section_name : %s\n", find_elf_section_name(elf, i)); + printf("sh_type : %d\n", ((t_elf64 *)elf)->section_header[i].sh_type); + printf("sh_link : %d\n", ((t_elf64 *)elf)->section_header[i].sh_link); + printf("\n"); + } + } +} + +int set_new_elf_section_pt_loader_permissions(t_elf *elf) { + if(elf->s_type == ELF32) { + for (int i = 0; i < ((t_elf32 *)elf)->elf_header->e_phnum; i++) { + if (((t_elf32 *)elf)->prog_header[i].p_type == PT_LOAD) { + ((t_elf32 *)elf)->prog_header[i].p_flags = PF_X | PF_W | PF_R; // NOLINT(hicpp-signed-bitwise) + } + } + } + else { + for (int i = 0; i < ((t_elf64 *)elf)->elf_header->e_phnum; i++) { + if (((t_elf64 *)elf)->prog_header[i].p_type == PT_LOAD) { + ((t_elf64 *)elf)->prog_header[i].p_flags = PF_X | PF_W | PF_R; // NOLINT(hicpp-signed-bitwise) + } + } + } + + return 1; +} + +int elf_insert_section(t_elf *elf) { + int last_pt_load_index = find_last_elf_segment_of_type(elf, PT_LOAD); + if(last_pt_load_index == -1) { + log_error("Couldn't find PT_LOAD segment"); + return -1; + } + + int last_loadable_section_index = find_last_elf_section_from_segment(elf, last_pt_load_index); + if(last_loadable_section_index == -1) { + log_error("Couldn't find the last Section index"); + return -1; + } + + log_verbose("Creating new section ..."); + + if(elf_section_create_new_section(elf, last_pt_load_index, last_loadable_section_index) == -1) { + log_error("Error during new Section creation"); + return -1; + } + + // Since we appended a new section + last_loadable_section_index += 1; + method_config.concerned_section = last_loadable_section_index; + + log_verbose("Setting new segment values ..."); + + if(elf_section_set_new_segment_values(elf, last_pt_load_index) == -1) { + log_error("Couldn't set new segment values"); + return -1; + } + + log_verbose("Setting new section values ..."); + + if(elf_section_set_new_section_values(elf, last_loadable_section_index) == -1) { + log_error("Couldn't set new section values"); + return -1; + } + + log_verbose("Setting new ELF entry point ..."); + + // Add our new section as the new elf entry point + set_new_elf_entry_to_section(elf, last_loadable_section_index); + + return 1; +} +``` + +`src/ELF/elf_silvio_infection.c`: + +```c +// +// Created by silentvoid on 2/28/20. +// Copyright (c) 2020 SilentVoid. All rights reserved. +// + +#include "elf_silvio_infection.h" +#include "elf_functions.h" +#include "elf_allocation.h" +#include "loader_functions.h" +#include "elf_packing_method.h" +#include "file_functions.h" +#include "packer_config.h" +#include "all_elf_loaders_infos.h" + +#include "log.h" + +Elf32_Addr loader_addr32; +Elf64_Addr loader_addr64; + +int set_new_elf_silvio_segment_values(t_elf *elf, int text_segment_index) { + if(elf->s_type == ELF32) { + loader_addr32 = ((t_elf32 *)elf)->prog_header[text_segment_index].p_vaddr + ((t_elf32 *)elf)->prog_header[text_segment_index].p_filesz; + + ((t_elf32 *)elf)->prog_header[text_segment_index].p_filesz += packer_config.loader_size; + ((t_elf32 *)elf)->prog_header[text_segment_index].p_memsz += packer_config.loader_size; + + for (int i = text_segment_index + 1; i < ((t_elf32 *)elf)->elf_header->e_phnum; i++) { + ((t_elf32 *)elf)->prog_header[i].p_offset += PAGE_SIZE32; + } + } + else { + loader_addr64 = ((t_elf64 *)elf)->prog_header[text_segment_index].p_vaddr + ((t_elf64 *)elf)->prog_header[text_segment_index].p_filesz; + + ((t_elf64 *)elf)->prog_header[text_segment_index].p_filesz += packer_config.loader_size; + ((t_elf64 *)elf)->prog_header[text_segment_index].p_memsz += packer_config.loader_size; + + for (int i = text_segment_index + 1; i < ((t_elf64 *)elf)->elf_header->e_phnum; i++) { + ((t_elf64 *)elf)->prog_header[i].p_offset += PAGE_SIZE64; + } + } + + return 1; +} + +int set_new_elf_silvio_section_values(t_elf *elf, int last_section_index) { + if(elf->s_type == ELF32) { + ((t_elf32 *)elf)->elf_header->e_shoff += PAGE_SIZE32; + + ((t_elf32 *)elf)->section_header[last_section_index].sh_size += packer_config.loader_size; + + for (int i = last_section_index + 1; i < ((t_elf32 *)elf)->elf_header->e_shnum; i++) { + ((t_elf32 *)elf)->section_header[i].sh_offset += PAGE_SIZE32; + } + } + else { + ((t_elf64 *)elf)->elf_header->e_shoff += PAGE_SIZE64; + + ((t_elf64 *)elf)->section_header[last_section_index].sh_size += packer_config.loader_size; + + for (int i = last_section_index + 1; i < ((t_elf64 *)elf)->elf_header->e_shnum; i++) { + ((t_elf64 *)elf)->section_header[i].sh_offset += PAGE_SIZE64; + } + } + + return 1; +} + +int elf_silvio_insert_loader(t_elf *elf, int section_index, int old_section_size) { + char *new_section_data; + char *loader; + if(elf->s_type == ELF32) { + size_t new_section_data_size = ((t_elf32 *)elf)->section_header[section_index].sh_size; + new_section_data = realloc(((t_elf32 *)elf)->section_data[section_index], new_section_data_size); + if (new_section_data == NULL) { + log_error("realloc() failure"); + return -1; + } + ((t_elf32 *)elf)->section_data[section_index] = new_section_data; + + // For ASM + loader_offset32 = loader_addr32; + + loader = patch_loader(); + if(loader == NULL) { + free(loader); + log_error("Error during loader patching"); + return -1; + } + memcpy(new_section_data + old_section_size, loader, packer_config.loader_size); + } + else { + size_t new_section_data_size = ((t_elf64 *)elf)->section_header[section_index].sh_size; + new_section_data = realloc(((t_elf64 *)elf)->section_data[section_index], new_section_data_size); + if (new_section_data == NULL) { + log_error("realloc() failure"); + return -1; + } + ((t_elf64 *)elf)->section_data[section_index] = new_section_data; + + // For ASM + loader_offset64 = loader_addr64; + + loader = patch_loader(); + if(loader == NULL) { + free(loader); + log_error("Error during loader patching"); + return -1; + + } + memcpy(new_section_data + old_section_size, loader, packer_config.loader_size); + } + free(loader); + + return 1; +} + +int elf_silvio_infect(t_elf *elf) { + int text_segment_index = find_elf_text_segment(elf); + if(text_segment_index == -1) { + log_error("Couldn't find .text segment"); + return -1; + } + + int last_section_index = find_last_elf_section_from_segment(elf, text_segment_index); + if(last_section_index == -1) { + log_error("Couldn't find last section from .text segment"); + return -1; + } + method_config.concerned_section = last_section_index; + + + int old_section_size; + if(elf->s_type == ELF32) + old_section_size = ((t_elf32 *)elf)->section_header[last_section_index].sh_size; + else + old_section_size = ((t_elf64 *)elf)->section_header[last_section_index].sh_size; + + + log_verbose("Setting new section values ..."); + + set_new_elf_silvio_section_values(elf, last_section_index); + + log_verbose("Setting new segment values ..."); + + set_new_elf_silvio_segment_values(elf, text_segment_index); + + log_verbose("Inserting the loader ..."); + + if(elf_silvio_insert_loader(elf, last_section_index, old_section_size) == -1) { + log_error("Loader insertion failed"); + return -1; + } + + // Add write permission to be able to decrypt it + add_elf_segment_permission(elf, text_segment_index, PF_W); // NOLINT(hicpp-signed-bitwise) + + log_verbose("Setting new ELF entry point ..."); + + if(elf->s_type == ELF32) { + set_new_elf_entry_to_addr32(elf, loader_addr32, last_section_index, old_section_size); + } + else { + set_new_elf_entry_to_addr64(elf, loader_addr64, last_section_index, old_section_size); + } + + return 1; +} +``` + +`src/ELF/elf_writing.c`: + +```c +// +// Created by silentvoid on 2/26/20. +// Copyright (c) 2020 SilentVoid. All rights reserved. +// + +#include "elf_writing.h" +#include "elf_allocation.h" +#include "file_functions.h" +#include "elf_packing_method.h" +#include "loader_functions.h" +#include "packer_config.h" +#include "all_elf_loaders_infos.h" + +#include "log.h" + + + +int write_elf(t_elf *elf, char *filename) { + int fd = open(filename, O_CREAT | O_WRONLY | O_TRUNC, 0755); // NOLINT(hicpp-signed-bitwise) + if(fd < 0) { + log_error("open() failure"); + return -1; + } + + if(elf->s_type == ELF32) { + log_verbose("Writing ELF header ..."); + write_to_file(fd, ((t_elf32 *)elf)->elf_header, sizeof(Elf32_Ehdr)); + add_zero_padding(fd, ((t_elf32 *)elf)->elf_header->e_phoff); + + log_verbose("Writing Program header ..."); + write_to_file(fd, ((t_elf32 *)elf)->prog_header, sizeof(Elf32_Phdr) * ((t_elf32 *)elf)->elf_header->e_phnum); + + log_verbose("Writing Sections data ..."); + for (int i = 0; i < ((t_elf32 *)elf)->elf_header->e_shnum; i++) { + if (((t_elf32 *)elf)->section_header[i].sh_type != SHT_NOBITS) { + add_zero_padding(fd, ((t_elf32 *)elf)->section_header[i].sh_offset); + + // If we find the section with the code cave + if (method_config.method_type == CODE_CAVE_METHOD && i == method_config.concerned_section) { + write_to_file(fd, ((t_elf32 *)elf)->section_data[i], ((t_elf32 *)elf)->section_header[i].sh_size + packer_config.loader_size); + } else { + write_to_file(fd, ((t_elf32 *)elf)->section_data[i], ((t_elf32 *)elf)->section_header[i].sh_size); + } + } + } + add_zero_padding(fd, ((t_elf32 *)elf)->elf_header->e_shoff); + + log_verbose("Writing Sections headers ..."); + for (int i = 0; i < ((t_elf32 *)elf)->elf_header->e_shnum; i++) { + write_to_file(fd, &(((t_elf32 *)elf)->section_header[i]), sizeof(Elf32_Shdr)); + } + } + else { + log_verbose("Writing ELF header ..."); + write_to_file(fd, ((t_elf64 *)elf)->elf_header, sizeof(Elf64_Ehdr)); + add_zero_padding(fd, ((t_elf64 *)elf)->elf_header->e_phoff); + + log_verbose("Writing Program header ..."); + write_to_file(fd, ((t_elf64 *)elf)->prog_header, sizeof(Elf64_Phdr) * ((t_elf64 *)elf)->elf_header->e_phnum); + + log_verbose("Writing Sections data ..."); + for (int i = 0; i < ((t_elf64 *)elf)->elf_header->e_shnum; i++) { + if (((t_elf64 *)elf)->section_header[i].sh_type != SHT_NOBITS) { + add_zero_padding(fd, ((t_elf64 *)elf)->section_header[i].sh_offset); + + // If we find the section with the code cave + if (method_config.method_type == CODE_CAVE_METHOD && i == method_config.concerned_section) { + write_to_file(fd, ((t_elf64 *)elf)->section_data[i], ((t_elf64 *)elf)->section_header[i].sh_size + packer_config.loader_size); + } else { + write_to_file(fd, ((t_elf64 *)elf)->section_data[i], ((t_elf64 *)elf)->section_header[i].sh_size); + } + } + } + add_zero_padding(fd, ((t_elf64 *)elf)->elf_header->e_shoff); + + log_verbose("Writing Sections headers ..."); + for (int i = 0; i < ((t_elf64 *)elf)->elf_header->e_shnum; i++) { + write_to_file(fd, &(((t_elf64 *) elf)->section_header[i]), sizeof(Elf64_Shdr)); + } + } + + close(fd); + + return 1; +} +``` + +`src/PE/pe_allocation.c`: + +```c +// +// Created by silentvoid on 3/16/20. +// Copyright (c) 2020 SilentVoid. All rights reserved. +// + +#include "pe_allocation.h" +#include "pe_deallocation.h" +#include "file_functions.h" + +#include "log.h" + +int allocate_pe_dos_header(t_pe *pe, void *file_data, size_t file_data_size) { + if(file_data_size < sizeof(IMAGE_DOS_HEADER)) { + log_error("Total file size is less than DOS Header size"); + return -1; + } + + // PE32 and PE32+ have the same DOS Header + + ((t_pe32 *)pe)->dos_header = malloc(sizeof(IMAGE_DOS_HEADER)); + if (((t_pe32 *)pe)->dos_header == NULL) { + deallocate_pe_dos_header(pe); + log_error("malloc() failure"); + return -1; + } + memcpy(((t_pe32 *)pe)->dos_header, file_data, sizeof(IMAGE_DOS_HEADER)); + + // 0x5a4d + if (((t_pe32 *)pe)->dos_header->e_magic != DOSMAG) { + deallocate_pe_dos_header(pe); + log_error("Magic bytes do not match PE file"); + return -1; + } + + // TODO : check architecture like in ELF + + return 1; +} + +int allocate_pe_dos_stub(t_pe *pe, void *file_data) { + size_t dos_stub_size = ((t_pe32 *)pe)->dos_header->e_lfanew - sizeof(IMAGE_DOS_HEADER); + + // PE32 and PE32+ have the same DOS Stub + + ((t_pe32 *)pe)->dos_stub = malloc(dos_stub_size); + if(((t_pe32 *)pe)->dos_stub == NULL) { + deallocate_pe_dos_stub(pe); + log_error("malloc() failure"); + return -1; + } + memcpy(((t_pe32 *)pe)->dos_stub, file_data + sizeof(IMAGE_DOS_HEADER), dos_stub_size); + + return 1; +} + +int allocate_pe_pe_header(t_pe *pe, void *file_data, size_t file_data_size) { + if(pe->s_type == PE32) { + if (file_data_size < sizeof(IMAGE_NT_HEADERS32)) { + log_error("Total file size is less than PE Header size"); + return -1; + } + + ((t_pe32 *)pe)->pe_header = malloc(sizeof(IMAGE_NT_HEADERS32)); + if (((t_pe32 *)pe)->pe_header == NULL) { + deallocate_pe_pe_header(pe); + log_error("malloc() failure"); + return -1; + } + memcpy(((t_pe32 *)pe)->pe_header, file_data + ((t_pe32 *)pe)->dos_header->e_lfanew, sizeof(IMAGE_NT_HEADERS32)); + + if ((((t_pe32 *)pe)->pe_header->FileHeader.Characteristics & IMAGE_FILE_EXECUTABLE_IMAGE) == 0) { // NOLINT(hicpp-signed-bitwise) + deallocate_pe_pe_header(pe); + log_error("The file is not an executable"); + return -1; + } + + if (((t_pe32 *)pe)->pe_header->FileHeader.SizeOfOptionalHeader == 0) { + deallocate_pe_pe_header(pe); + log_error("The file is an OBJ file"); + return -1; + } + + if (((t_pe32 *)pe)->pe_header->OptionalHeader.Magic != IMAGE_NT_OPTIONAL_HDR32_MAGIC) { + deallocate_pe_pe_header(pe); + log_error("File is not an executable image"); + return -1; + } + } + else { + if (file_data_size < sizeof(IMAGE_NT_HEADERS64)) { + log_error("Total file size is less than PE Header size"); + return -1; + } + + ((t_pe64 *)pe)->pe_header = malloc(sizeof(IMAGE_NT_HEADERS64)); + if (((t_pe64 *)pe)->pe_header == NULL) { + deallocate_pe_pe_header(pe); + log_error("malloc() failure"); + return -1; + } + memcpy(((t_pe64 *)pe)->pe_header, file_data + ((t_pe64 *)pe)->dos_header->e_lfanew, sizeof(IMAGE_NT_HEADERS64)); + + if ((((t_pe64 *)pe)->pe_header->FileHeader.Characteristics & IMAGE_FILE_EXECUTABLE_IMAGE) == 0) { // NOLINT(hicpp-signed-bitwise) + deallocate_pe_pe_header(pe); + log_error("The file is not an executable"); + return -1; + } + + if (((t_pe64 *)pe)->pe_header->FileHeader.SizeOfOptionalHeader == 0) { + deallocate_pe_pe_header(pe); + log_error("The file is an OBJ file"); + return -1; + } + + if (((t_pe64 *)pe)->pe_header->OptionalHeader.Magic != IMAGE_NT_OPTIONAL_HDR64_MAGIC) { + deallocate_pe_pe_header(pe); + log_error("File is not an executable image"); + return -1; + } + } + + return 1; +} + +int allocate_pe_sections_headers(t_pe *pe, void *file_data, size_t file_data_size) { + if(pe->s_type == PE32) { + size_t pe_sections_header_size = sizeof(IMAGE_SECTION_HEADER) * ((t_pe32 *)pe)->pe_header->FileHeader.NumberOfSections; + + ((t_pe32 *)pe)->section_header = malloc(pe_sections_header_size); + if (((t_pe32 *)pe)->section_header == NULL) { + deallocate_pe_sections_headers(pe); + log_error("malloc() failure"); + return -1; + } + memset(((t_pe32 *)pe)->section_header, 0, pe_sections_header_size); + + // TODO: Check for IMAGE_SCN_CNT_UNINITIALIZED_DATA type like in elf_allocation + for (int i = 0; i < ((t_pe32 *)pe)->pe_header->FileHeader.NumberOfSections; i++) { + if (file_data_size < + ((t_pe32 *)pe)->dos_header->e_lfanew + sizeof(IMAGE_NT_HEADERS32) + (i * sizeof(IMAGE_SECTION_HEADER))) { + deallocate_pe_sections_headers(pe); + log_error("Total file size is inferior to PE section header size"); + return -1; + } + memcpy(&(((t_pe32 *)pe)->section_header[i]), file_data + ((t_pe32 *)pe)->dos_header->e_lfanew + sizeof(IMAGE_NT_HEADERS32) + + (i * sizeof(IMAGE_SECTION_HEADER)), sizeof(IMAGE_SECTION_HEADER)); + } + } + else { + size_t pe_sections_header_size = sizeof(IMAGE_SECTION_HEADER) * ((t_pe64 *)pe)->pe_header->FileHeader.NumberOfSections; + + ((t_pe64 *)pe)->section_header = malloc(pe_sections_header_size); + if (((t_pe64 *)pe)->section_header == NULL) { + deallocate_pe_sections_headers(pe); + log_error("malloc() failure"); + return -1; + } + memset(((t_pe64 *)pe)->section_header, 0, pe_sections_header_size); + + // TODO: Check for IMAGE_SCN_CNT_UNINITIALIZED_DATA type like in elf_allocation + for (int i = 0; i < ((t_pe64 *)pe)->pe_header->FileHeader.NumberOfSections; i++) { + if (file_data_size < + ((t_pe64 *)pe)->dos_header->e_lfanew + sizeof(IMAGE_NT_HEADERS64) + (i * sizeof(IMAGE_SECTION_HEADER))) { + deallocate_pe_sections_headers(pe); + log_error("Total file size is inferior to PE section header size"); + return -1; + } + memcpy(&(((t_pe64 *)pe)->section_header[i]), file_data + ((t_pe64 *)pe)->dos_header->e_lfanew + sizeof(IMAGE_NT_HEADERS64) + + (i * sizeof(IMAGE_SECTION_HEADER)), sizeof(IMAGE_SECTION_HEADER)); + } + } + + return 1; +} + +int allocate_pe_sections_data(t_pe *pe, void *file_data, size_t file_data_size) { + if(pe->s_type == PE32) { + size_t section_data_size = sizeof(char *) * ((t_pe32 *)pe)->pe_header->FileHeader.NumberOfSections; + + ((t_pe32 *)pe)->section_data = malloc(section_data_size); + if (((t_pe32 *)pe)->section_data == NULL) { + deallocate_pe_sections_data(pe); + log_error("malloc() failure"); + return -1; + } + memset(((t_pe32 *)pe)->section_data, 0, section_data_size); + + // TODO: Free all the malloc section_data_data up to i + size_t pe_section_data_size; + for (int i = 0; i < ((t_pe32 *)pe)->pe_header->FileHeader.NumberOfSections; i++) { + if (file_data_size < ((t_pe32 *)pe)->section_header[i].PointerToRawData) { + log_error("Total file size is less than section data offset"); + return -1; + } + pe_section_data_size = ((t_pe32 *)pe)->section_header[i].SizeOfRawData; + + ((t_pe32 *)pe)->section_data[i] = malloc(pe_section_data_size); + if (((t_pe32 *)pe)->section_data[i] == NULL) { + free(((t_pe32 *)pe)->section_data[i]); + log_error("malloc() error"); + return -1; + } + memset(((t_pe32 *)pe)->section_data[i], 0, pe_section_data_size); + memcpy(((t_pe32 *)pe)->section_data[i], file_data + ((t_pe32 *)pe)->section_header[i].PointerToRawData, pe_section_data_size); + } + } + else { + size_t section_data_size = sizeof(char *) * ((t_pe64 *)pe)->pe_header->FileHeader.NumberOfSections; + + ((t_pe64 *)pe)->section_data = malloc(section_data_size); + if (((t_pe64 *)pe)->section_data == NULL) { + deallocate_pe_sections_data(pe); + log_error("malloc() failure"); + return -1; + } + memset(((t_pe64 *)pe)->section_data, 0, section_data_size); + + size_t pe_section_data_size; + for (int i = 0; i < ((t_pe64 *)pe)->pe_header->FileHeader.NumberOfSections; i++) { + if (file_data_size < ((t_pe64 *)pe)->section_header[i].PointerToRawData) { + log_error("Total file size is less than section data offset"); + return -1; + } + pe_section_data_size = ((t_pe64 *)pe)->section_header[i].SizeOfRawData; + + ((t_pe64 *)pe)->section_data[i] = malloc(pe_section_data_size); + if (((t_pe64 *)pe)->section_data[i] == NULL) { + free(((t_pe64 *)pe)->section_data[i]); + log_error("malloc() error"); + return -1; + } + memset(((t_pe64 *)pe)->section_data[i], 0, pe_section_data_size); + memcpy(((t_pe64 *)pe)->section_data[i], file_data + ((t_pe64 *)pe)->section_header[i].PointerToRawData, pe_section_data_size); + } + } + + return 1; +} + +void print_pe_info(t_pe *pe) { + if(pe->s_type == PE32) { + printf("e_lfanew : %d\n", ((t_pe32 *)pe)->dos_header->e_lfanew); + printf("section_header size : %ld\n", + sizeof(IMAGE_SECTION_HEADER) * ((t_pe32 *)pe)->pe_header->FileHeader.NumberOfSections); + + for (int i = 0; i < ((t_pe32 *)pe)->pe_header->FileHeader.NumberOfSections; i++) { + printf("section_offset: %d\n", ((t_pe32 *)pe)->section_header[i].PointerToRawData); + printf("section_size : %d\n", ((t_pe32 *)pe)->section_header[i].SizeOfRawData); + if (i != ((t_pe32 *)pe)->pe_header->FileHeader.NumberOfSections - 1) { + printf("next_section_offset : %d\n", ((t_pe32 *)pe)->section_header[i + 1].PointerToRawData); + } + printf("\n"); + } + } + else { + printf("e_lfanew : %d\n", ((t_pe64 *)pe)->dos_header->e_lfanew); + printf("section_header size : %ld\n", + sizeof(IMAGE_SECTION_HEADER) * ((t_pe64 *)pe)->pe_header->FileHeader.NumberOfSections); + + for (int i = 0; i < ((t_pe64 *)pe)->pe_header->FileHeader.NumberOfSections; i++) { + printf("section_offset: %d\n", ((t_pe64 *)pe)->section_header[i].PointerToRawData); + printf("section_size : %d\n", ((t_pe64 *)pe)->section_header[i].SizeOfRawData); + if (i != ((t_pe64 *)pe)->pe_header->FileHeader.NumberOfSections - 1) { + printf("next_section_offset : %d\n", ((t_pe64 *)pe)->section_header[i + 1].PointerToRawData); + } + printf("\n"); + } + } +} + +int allocate_pe(t_pe **pe, void *file_data, size_t file_data_size, int arch) { + size_t t_pe_size; + if(arch == x32_ARCH) { + t_pe_size = sizeof(t_pe32); + } + else { + t_pe_size = sizeof(t_pe64); + } + + *pe = malloc(t_pe_size); + if(*pe == NULL) { + deallocate_pe_struct(*pe); + log_error("malloc() failure"); + return -1; + } + memset(*pe, 0, t_pe_size); + + t_pe type_pe; + if(arch == 32) { + type_pe.s_type = PE32; + ((t_pe32 *)(*pe))->type_header = type_pe; + } + else { + type_pe.s_type = PE64; + ((t_pe32 *)(*pe))->type_header = type_pe; + } + + log_verbose("Allocating DOS Header ..."); + if(allocate_pe_dos_header(*pe, file_data, file_data_size) == -1) { + deallocate_pe_struct(*pe); + log_error("Error during DOS Header allocation"); + return -1; + } + + log_verbose("Allocating DOS Stub ..."); + if(allocate_pe_dos_stub(*pe, file_data) == -1) { + deallocate_pe_dos_header(*pe); + deallocate_pe_struct(*pe); + log_error("Error during DOS Stub allocation"); + return -1; + } + + log_verbose("Allocating PE Header ..."); + if(allocate_pe_pe_header(*pe, file_data, file_data_size) == -1) { + deallocate_pe_dos_header(*pe); + deallocate_pe_dos_stub(*pe); + deallocate_pe_struct(*pe); + log_error("Error during PE Header allocation"); + return -1; + } + + log_verbose("Allocating Sections Headers ..."); + if(allocate_pe_sections_headers(*pe, file_data, file_data_size) == -1) { + deallocate_pe_dos_header(*pe); + deallocate_pe_dos_stub(*pe); + deallocate_pe_pe_header(*pe); + deallocate_pe_struct(*pe); + log_error("Error during Section Headers allocation"); + return -1; + } + + log_verbose("Allocating Sections Data ..."); + if(allocate_pe_sections_data(*pe, file_data, file_data_size) == -1) { + deallocate_pe_dos_header(*pe); + deallocate_pe_dos_stub(*pe); + deallocate_pe_pe_header(*pe); + deallocate_pe_sections_headers(*pe); + deallocate_pe_struct(*pe); + log_error("Error during Section Data allocation"); + return -1; + } + + //print_pe_info(*pe); + + return 1; +} +``` + +`src/PE/pe_code_cave.c`: + +```c +// +// Created by silentvoid on 3/18/20. +// Copyright (c) 2020 SilentVoid. All rights reserved. +// + +#include "pe_code_cave.h" +#include "pe_struct.h" +#include "pe_allocation.h" +#include "pe_functions.h" +#include "loader_functions.h" +#include "file_functions.h" +#include "packer_config.h" +#include "all_pe_loaders_infos.h" + +#include "log.h" + +int find_pe_code_cave_index(t_pe *pe) { + size_t code_cave_size; + + if(pe->s_type == PE32) { + for (int i = 0; i < ((t_pe32 *)pe)->pe_header->FileHeader.NumberOfSections - 1; i++) { + if (((t_pe32 *)pe)->section_header[i].SizeOfRawData > ((t_pe32 *)pe)->section_header[i].Misc.VirtualSize) { + code_cave_size = ((t_pe32 *)pe)->section_header[i].SizeOfRawData - ((t_pe32 *)pe)->section_header[i].Misc.VirtualSize; + + //print_pe_section_info(pe, i); + + if (code_cave_size > packer_config.loader_size) { + return i; + } + } + } + } + else { + for (int i = 0; i < ((t_pe64 *)pe)->pe_header->FileHeader.NumberOfSections - 1; i++) { + if (((t_pe64 *)pe)->section_header[i].SizeOfRawData > ((t_pe64 *)pe)->section_header[i].Misc.VirtualSize) { + code_cave_size = ((t_pe64 *)pe)->section_header[i].SizeOfRawData - ((t_pe64 *)pe)->section_header[i].Misc.VirtualSize; + + //print_pe_section_info(pe, i); + + if (code_cave_size > packer_config.loader_size) { + return i; + } + } + } + } + + return -1; +} + +int set_new_pe_cave_section_values(t_pe *pe, int section_index) { + if(pe->s_type == PE32) + ((t_pe32 *)pe)->section_header[section_index].Misc.VirtualSize += packer_config.loader_size; + else + ((t_pe64 *)pe)->section_header[section_index].Misc.VirtualSize += packer_config.loader_size; + + // TODO: Change this to use mprotect in the loader + + int text_section_index = find_pe_text_section(pe); + if(text_section_index == -1) { + log_error("Couldn't find .text segment"); + return -1; + } + add_pe_section_permission(pe, text_section_index, IMAGE_SCN_MEM_WRITE); // NOLINT(hicpp-signed-bitwise) + + add_pe_section_permission(pe, section_index, IMAGE_SCN_MEM_WRITE); // NOLINT(hicpp-signed-bitwise) + add_pe_section_permission(pe, section_index, IMAGE_SCN_MEM_READ); // NOLINT(hicpp-signed-bitwise) + add_pe_section_permission(pe, section_index, IMAGE_SCN_MEM_EXECUTE); // NOLINT(hicpp-signed-bitwise) + + return 1; +} + +int pe_cave_insert_loader(t_pe *pe, int section_index, int old_section_size) { + char *new_section_data; + char *loader; + + if(pe->s_type == PE32) { + new_section_data = realloc(((t_pe32 *)pe)->section_data[section_index], old_section_size + packer_config.loader_size); + if (new_section_data == NULL) { + log_error("realloc() failure"); + return -1; + } + ((t_pe32 *)pe)->section_data[section_index] = new_section_data; + + // For ASM + loader_offset32 = ((t_pe32 *)pe)->section_header[section_index].VirtualAddress + old_section_size; + + loader = patch_loader(); + if(loader == NULL) { + free(loader); + log_error("Error during loader patching"); + return -1; + } + memcpy(new_section_data + old_section_size, loader, packer_config.loader_size); + } + else { + new_section_data = realloc(((t_pe64 *)pe)->section_data[section_index], old_section_size + packer_config.loader_size); + if (new_section_data == NULL) { + log_error("realloc() failure"); + return -1; + } + ((t_pe64 *)pe)->section_data[section_index] = new_section_data; + + // For ASM + loader_offset64 = ((t_pe64 *)pe)->section_header[section_index].VirtualAddress + old_section_size; + + loader = patch_loader(); + if(loader == NULL) { + free(loader); + log_error("Error during loader patching"); + return -1; + } + memcpy(new_section_data + old_section_size, loader, packer_config.loader_size); + } + free(loader); + + return 1; +} + +int pe_code_cave_injection(t_pe *pe) { + + log_verbose("Finding a code cave ..."); + + int section_cave_index = find_pe_code_cave_index(pe); + if(section_cave_index == -1) { + log_error("Couldn't find any code cave in this PE file"); + return -1; + } + + log_verbose("Setting new section values ..."); + + + int old_section_size; + if(pe->s_type == PE32) + old_section_size = ((t_pe32 *)pe)->section_header[section_cave_index].Misc.VirtualSize; + else + old_section_size = ((t_pe64 *)pe)->section_header[section_cave_index].Misc.VirtualSize; + + if(set_new_pe_cave_section_values(pe, section_cave_index) == -1) { + log_error("Error during section values modification"); + return -1; + } + + log_verbose("Inserting the loader inside the code cave ..."); + + if(pe_cave_insert_loader(pe, section_cave_index, old_section_size) == -1) { + log_error("Error during Loader insertion"); + return -1; + } + + log_verbose("Setting new PE entry point ..."); + + uint32_t loader_addr; + if(pe->s_type == PE32) + loader_addr = ((t_pe32 *)pe)->section_header[section_cave_index].VirtualAddress + old_section_size; + else + loader_addr = ((t_pe64 *)pe)->section_header[section_cave_index].VirtualAddress + old_section_size; + + set_new_pe_entry_to_addr(pe, loader_addr, section_cave_index, old_section_size); + + return 1; +} +``` + +`src/PE/pe_deallocation.c`: + +```c +// +// Created by silentvoid on 4/12/20. +// Copyright (c) 2020 SilentVoid. All rights reserved. +// + +#include "pe_deallocation.h" +#include "pe_allocation.h" + +void deallocate_pe_dos_header(t_pe *pe) { + if(pe->s_type == PE32) { + free(((t_pe32 *)pe)->dos_header); + } + else { + free(((t_pe64 *)pe)->dos_header); + } +} +void deallocate_pe_dos_stub(t_pe *pe) { + if(pe->s_type == PE32) { + free(((t_pe32 *)pe)->dos_stub); + } + else { + free(((t_pe64 *)pe)->dos_stub); + } +} + +void deallocate_pe_pe_header(t_pe *pe) { + if(pe->s_type == PE32) { + free(((t_pe32 *)pe)->pe_header); + } + else { + free(((t_pe64 *)pe)->pe_header); + } +} + +void deallocate_pe_sections_headers(t_pe *pe) { + if(pe->s_type == PE32) { + free(((t_pe32 *)pe)->section_header); + } + else { + free(((t_pe64 *)pe)->section_header); + } +} + +void deallocate_pe_sections_data(t_pe *pe) { + if(pe->s_type == PE32) { + free(((t_pe32 *)pe)->section_data); + } + else { + free(((t_pe64 *)pe)->section_data); + } +} + +void deallocate_pe_sections_data_data(t_pe *pe) { + if(pe->s_type == PE32) { + for (int i = 0; i < ((t_pe32 *)pe)->pe_header->FileHeader.NumberOfSections; i++) { + free(((t_pe32 *)pe)->section_data[i]); + } + } + else { + for (int i = 0; i < ((t_pe64 *)pe)->pe_header->FileHeader.NumberOfSections; i++) { + free(((t_pe64 *)pe)->section_data[i]); + } + } +} + +void deallocate_pe_struct(t_pe *pe) { + free(pe); +} + +void deallocate_pe(t_pe *pe) { + deallocate_pe_dos_header(pe); + deallocate_pe_dos_stub(pe); + deallocate_pe_pe_header(pe); + deallocate_pe_sections_headers(pe); + deallocate_pe_sections_data(pe); + deallocate_pe_sections_data_data(pe); + deallocate_pe_struct(pe); +} + +``` + +`src/PE/pe_encryption.c`: + +```c +// +// Created by silentvoid on 3/19/20. +// Copyright (c) 2020 SilentVoid. All rights reserved. +// + +#include "pe_encryption.h" +#include "pe_struct.h" +#include "cipher_functions.h" +#include "file_functions.h" +#include "packer_config.h" +#include "pe_allocation.h" +#include "pe_functions.h" +#include "aes_128_ecb_encryption.h" + +#include "log.h" + +int encrypt_pe(t_pe *pe) { + int text_section_index = find_pe_text_section(pe); + if(text_section_index == -1) { + log_error("Couldn't find .text section"); + return -1; + } + + log_verbose("Got .text section index : %d", text_section_index); + + char *text_data; + + if(pe->s_type == PE32) { + // Setting global variables + text_entry_point32 = ((t_pe32 *)pe)->section_header[text_section_index].VirtualAddress; + text_data_size32 = ((t_pe32 *)pe)->section_header[text_section_index].Misc.VirtualSize; + + text_data = ((t_pe32 *)pe)->section_data[text_section_index]; + + if(packer_config.debug_mode) { + log_debug("Dumping .text ..."); + dump_to_file("text32.dmp", text_data, text_data_size32); + } + + log_verbose("Generating random key ..."); + cipher_key32 = generate_random_key32(); + uint64_t temp_key = cipher_key32; + log_info("Random key : %d", cipher_key32); + + if(strcmp(packer_config.cipher, "xor") == 0) { + xor_encrypt32(text_data, text_data_size32, temp_key); + } + else if(strcmp(packer_config.cipher, "aes128_ecb") == 0) { + generate_random_key128(); + + log_info("Random key : "); + for(int i = 0; i < 16; i++) + printf("%02x", cipher_key128[i]); + puts(""); + + aes_128_ecb_encrypt(text_data, text_data_size32, cipher_key128, 16); + } + + if(packer_config.debug_mode) { + log_debug("Dumping encrypted .text ..."); + dump_to_file("text32_encrypted.dmp", text_data, text_data_size32); + } + } + else { + // Setting global variables + text_entry_point64 = ((t_pe64 *)pe)->section_header[text_section_index].VirtualAddress; + text_data_size64 = ((t_pe64 *)pe)->section_header[text_section_index].Misc.VirtualSize; + + text_data = ((t_pe64 *)pe)->section_data[text_section_index]; + + if(packer_config.debug_mode) { + log_debug("Dumping .text ..."); + dump_to_file("text64.dmp", text_data, text_data_size64); + } + + log_verbose("Generating random key ..."); + cipher_key64 = generate_random_key64(); + uint64_t temp_key = cipher_key64; + log_info("Random key : %d", cipher_key64); + + if(strcmp(packer_config.cipher, "xor") == 0) { + xor_encrypt64(text_data, text_data_size64, temp_key); + } + else if(strcmp(packer_config.cipher, "aes128_ecb") == 0) { + generate_random_key128(); + + log_info("Random key : "); + for(int i = 0; i < 16; i++) + printf("%02x", cipher_key128[i]); + puts(""); + + aes_128_ecb_encrypt(text_data, text_data_size64, cipher_key128, 16); + } + + if(packer_config.debug_mode) { + log_debug("Dumping encrypted .text ..."); + dump_to_file("text64_encrypted.dmp", text_data, text_data_size64); + } + } + + return 1; +} + +``` + +`src/PE/pe_functions.c`: + +```c +// +// Created by silentvoid on 3/16/20. +// Copyright (c) 2020 SilentVoid. All rights reserved. +// + +#include "pe_functions.h" +#include "pe_struct.h" +#include "pe_allocation.h" +#include "loader_functions.h" +#include "packer_config.h" +#include "all_pe_loaders_infos.h" + +#include "log.h" + +int set_new_pe_entry_to_addr(t_pe *pe, uint32_t entry_addr, int section_index, int section_size) { + if(pe->s_type == PE32) { + uint32_t last_entry = ((t_pe32 *)pe)->pe_header->OptionalHeader.AddressOfEntryPoint; + ((t_pe32 *)pe)->pe_header->OptionalHeader.AddressOfEntryPoint = entry_addr; + int32_t jump = last_entry - (((t_pe32 *)pe)->pe_header->OptionalHeader.AddressOfEntryPoint + packer_config.loader_size - packer_config.loader_infos_size); + + memcpy(((t_pe32 *)pe)->section_data[section_index] + section_size + packer_config.loader_size - (packer_config.loader_infos_size + 4), &jump, 4); + } + else { + uint32_t last_entry = ((t_pe64 *)pe)->pe_header->OptionalHeader.AddressOfEntryPoint; + ((t_pe64 *)pe)->pe_header->OptionalHeader.AddressOfEntryPoint = entry_addr; + int32_t jump = last_entry - (((t_pe64 *)pe)->pe_header->OptionalHeader.AddressOfEntryPoint + packer_config.loader_size - packer_config.loader_infos_size); + + memcpy(((t_pe64 *)pe)->section_data[section_index] + section_size + packer_config.loader_size - (packer_config.loader_infos_size + 4), &jump, 4); + } + + return 1; +} + +int set_new_pe_entry_to_section(t_pe *pe, int section_index) { + if(pe->s_type == PE32) { + uint32_t last_entry = ((t_pe32 *)pe)->pe_header->OptionalHeader.AddressOfEntryPoint; + ((t_pe32 *)pe)->pe_header->OptionalHeader.AddressOfEntryPoint = ((t_pe32 *)pe)->section_header[section_index].VirtualAddress; + int32_t jump = last_entry - (((t_pe32 *)pe)->pe_header->OptionalHeader.AddressOfEntryPoint + packer_config.loader_size - packer_config.loader_infos_size); + + memcpy(((t_pe32 *)pe)->section_data[section_index] + packer_config.loader_size - (packer_config.loader_infos_size + 4), &jump, 4); + } + else { + uint32_t last_entry = ((t_pe64 *)pe)->pe_header->OptionalHeader.AddressOfEntryPoint; + ((t_pe32 *)pe)->pe_header->OptionalHeader.AddressOfEntryPoint = ((t_pe64 *)pe)->section_header[section_index].VirtualAddress; + int32_t jump = last_entry - (((t_pe64 *)pe)->pe_header->OptionalHeader.AddressOfEntryPoint + packer_config.loader_size - packer_config.loader_infos_size); + + memcpy(((t_pe64 *)pe)->section_data[section_index] + packer_config.loader_size - (packer_config.loader_infos_size + 4), &jump, 4); + } + + return 1; +} + +int find_pe_text_section(t_pe *pe) { + int index = -1; + if(pe->s_type == PE32) { + for (int i = 0; i < ((t_pe32 *)pe)->pe_header->FileHeader.NumberOfSections; i++) { + if (((t_pe32 *)pe)->section_header[i].Characteristics & IMAGE_SCN_MEM_EXECUTE) { // NOLINT(hicpp-signed-bitwise) + index = i; + } + } + } + else { + for (int i = 0; i < ((t_pe64 *)pe)->pe_header->FileHeader.NumberOfSections; i++) { + if (((t_pe64 *)pe)->section_header[i].Characteristics & IMAGE_SCN_MEM_EXECUTE) { // NOLINT(hicpp-signed-bitwise) + index = i; + } + } + } + return index; +} + +void add_pe_section_permission(t_pe *pe, int segment_index, int permission) { + if(pe->s_type == PE32) { + ((t_pe32 *)pe)->section_header[segment_index].Characteristics |= permission; // NOLINT(hicpp-signed-bitwise) + } + else { + ((t_pe64 *)pe)->section_header[segment_index].Characteristics |= permission; // NOLINT(hicpp-signed-bitwise) + } +} + +void print_pe_section_info(t_pe *pe, int section_index) { + puts(""); + + if(pe->s_type == PE32) { + printf("Section name : %s\n", ((t_pe32 *)pe)->section_header[section_index].Name); + printf("VirtualSize : %d\n", ((t_pe32 *)pe)->section_header[section_index].Misc.VirtualSize); + printf("SizeofRawData : %d\n", ((t_pe32 *)pe)->section_header[section_index].SizeOfRawData); + printf("PointerToRawData : %x\n", ((t_pe32 *)pe)->section_header[section_index].PointerToRawData); + printf("VirtualAddress : %x\n", ((t_pe32 *)pe)->section_header[section_index].VirtualAddress); + } + else { + printf("Section name : %s\n", ((t_pe64 *)pe)->section_header[section_index].Name); + printf("VirtualSize : %d\n", ((t_pe64 *)pe)->section_header[section_index].Misc.VirtualSize); + printf("SizeofRawData : %d\n", ((t_pe64 *)pe)->section_header[section_index].SizeOfRawData); + printf("PointerToRawData : %x\n", ((t_pe64 *)pe)->section_header[section_index].PointerToRawData); + printf("VirtualAddress : %x\n", ((t_pe64 *)pe)->section_header[section_index].VirtualAddress); + } +} + +``` + +`src/PE/pe_packing.c`: + +```c +// +// Created by silentvoid on 3/16/20. +// Copyright (c) 2020 SilentVoid. All rights reserved. +// + +#include "pe_packing.h" +#include "pe_allocation.h" +#include "pe_deallocation.h" +#include "file_functions.h" +#include "packer_config.h" +#include "pe_writing.h" +#include "pe_packing_method.h" +#include "pe_encryption.h" + +#include "log.h" + +int pack_pe(char *file, char *file_data, size_t file_data_size, char *output) { + log_verbose("Detected arch : x%d", packer_config.arch); + log_info("Allocating PE in memory ..."); + + t_pe *pe = NULL; + if (allocate_pe(&pe, file_data, file_data_size, packer_config.arch) == -1) { + munmap(file_data, file_data_size); + log_error("Error during PE allocation"); + return -1; + } + + // De-allocate mapped file as we don't need it anymore + munmap(file_data, file_data_size); + + log_info("Encrypting .text section ..."); + if(encrypt_pe(pe) == -1) { + deallocate_pe(pe); + log_error("Error during PE encryption"); + return -1; + } + + log_info("Packing using specified method ..."); + if(pe_pack_using_method(pe) == -1) { + deallocate_pe(pe); + log_error("Error during PE packing"); + return -1; + } + + char *filename; + if(output != NULL) + filename = output; + else + filename = "packed.exe"; + + log_info("Writing Packed PE to file ..."); + if(write_pe(pe, filename) == -1) { + deallocate_pe(pe); + log_error("Error during new PE writing"); + return -1; + } + + log_success("File %s packed into %s !", file, filename); + deallocate_pe(pe); + + return 1; +} + + +``` + +`src/PE/pe_packing_method.c`: + +```c +// +// Created by silentvoid on 2/28/20. +// Copyright (c) 2020 SilentVoid. All rights reserved. +// + +#include "pe_packing_method.h" +#include "pe_allocation.h" +#include "packer_config.h" +#include "pe_code_cave.h" +#include "pe_section_insertion.h" + +#include "log.h" + +int pe_pack_using_method(t_pe *pe) { + if(strcmp(packer_config.packing_method, "section_insertion") == 0) { + method_config.method_type = SECTION_INSERTION_METHOD; + if (pe_insert_section(pe) == -1) { + log_error("Error during Section insertion"); + return -1; + } + } + else if(strcmp(packer_config.packing_method, "code_cave") == 0) { + method_config.method_type = CODE_CAVE_METHOD; + if(pe_code_cave_injection(pe) == -1) { + log_error("Error during Code Cave Injection"); + return -1; + } + } + + return 1; +} + +``` + +`src/PE/pe_section_insertion.c`: + +```c +#pragma clang diagnostic push +#pragma ide diagnostic ignored "hicpp-signed-bitwise" +// +// Created by silentvoid on 3/26/20. +// Copyright (c) 2020 SilentVoid. All rights reserved. +// + +#include "pe_section_insertion.h" +#include "pe_struct.h" +#include "pe_allocation.h" +#include "pe_functions.h" +#include "loader_functions.h" +#include "file_functions.h" +#include "packer_config.h" +#include "all_pe_loaders_infos.h" + +#include "log.h" + +void print_new_section_header_info(IMAGE_SECTION_HEADER *section_header) { + printf("VirtualAddress : %d\n", section_header->VirtualAddress); + printf("VirtualSize : %d\n", section_header->Misc.VirtualSize); + printf("SizeOfRawData : %d\n", section_header->SizeOfRawData); +} + +int add_new_pe_section_header(t_pe *pe) { + int sections_count; + if(pe->s_type == PE32) { + sections_count = ((t_pe32 *)pe)->pe_header->FileHeader.NumberOfSections; + size_t new_section_header_size = sections_count * sizeof(IMAGE_SECTION_HEADER) + sizeof(IMAGE_SECTION_HEADER); + IMAGE_SECTION_HEADER *new_section_header = realloc(((t_pe32 *)pe)->section_header, new_section_header_size); + if (new_section_header == NULL) { + log_error("realloc() failure\n"); + return -1; + } + ((t_pe32 *)pe)->section_header = new_section_header; + } + else { + sections_count = ((t_pe64 *)pe)->pe_header->FileHeader.NumberOfSections; + size_t new_section_header_size = sections_count * sizeof(IMAGE_SECTION_HEADER) + sizeof(IMAGE_SECTION_HEADER); + IMAGE_SECTION_HEADER *new_section_header = realloc(((t_pe64 *)pe)->section_header, new_section_header_size); + if (new_section_header == NULL) { + log_error("realloc() failure\n"); + return -1; + } + ((t_pe64 *)pe)->section_header = new_section_header; + } + + IMAGE_SECTION_HEADER new_header; + memset(&new_header, 0, sizeof(IMAGE_SECTION_HEADER)); + + char *section_name = ".dec"; + memset(new_header.Name, 0, sizeof(new_header.Name)); + memcpy(new_header.Name, section_name, strlen(section_name)); + + if(pe->s_type == PE32) { + new_header.VirtualAddress = ((t_pe32 *)pe)->pe_header->OptionalHeader.SizeOfImage; + new_header.PointerToRawData = ((t_pe32 *)pe)->section_header[sections_count - 1].PointerToRawData + + ((t_pe32 *)pe)->section_header[sections_count - 1].SizeOfRawData; + + new_header.Misc.VirtualSize = packer_config.loader_size; + // TO SEE + size_t raw_data_size = 0; + while(raw_data_size < packer_config.loader_size) { + raw_data_size += ((t_pe32 *)pe)->pe_header->OptionalHeader.FileAlignment; + } + new_header.SizeOfRawData = raw_data_size; + + new_header.Characteristics = IMAGE_SCN_MEM_EXECUTE | IMAGE_SCN_MEM_READ | IMAGE_SCN_MEM_WRITE | IMAGE_SCN_CNT_CODE; // NOLINT(hicpp-signed-bitwise) + + //print_new_section_header_info(&new_header); + + memcpy(&(((t_pe32 *)pe)->section_header[sections_count]), &new_header, sizeof(IMAGE_SECTION_HEADER)); + } + else { + new_header.VirtualAddress = ((t_pe64 *)pe)->pe_header->OptionalHeader.SizeOfImage; + new_header.PointerToRawData = ((t_pe64 *)pe)->section_header[sections_count - 1].PointerToRawData + + ((t_pe64 *)pe)->section_header[sections_count - 1].SizeOfRawData; + + new_header.Misc.VirtualSize = packer_config.loader_size; + + // TO SEE + size_t raw_data_size = 0; + while(raw_data_size < packer_config.loader_size) { + raw_data_size += ((t_pe64 *)pe)->pe_header->OptionalHeader.FileAlignment; + } + new_header.SizeOfRawData = raw_data_size; + + new_header.Characteristics = IMAGE_SCN_MEM_EXECUTE | IMAGE_SCN_MEM_READ | IMAGE_SCN_MEM_WRITE | IMAGE_SCN_CNT_CODE; // NOLINT(hicpp-signed-bitwise) + + //print_new_section_header_info(&new_header); + + memcpy(&(((t_pe64 *)pe)->section_header[sections_count]), &new_header, sizeof(IMAGE_SECTION_HEADER)); + } + + return 1; +} + +int set_new_pe_header_values(t_pe *pe) { + if(pe->s_type == PE32) { + int old_sections_count = ((t_pe32 *)pe)->pe_header->FileHeader.NumberOfSections; + ((t_pe32 *)pe)->pe_header->FileHeader.NumberOfSections += 1; + + ((t_pe32 *)pe)->pe_header->OptionalHeader.SizeOfCode += ((t_pe32 *)pe)->section_header[old_sections_count - 1].SizeOfRawData; + ((t_pe32 *)pe)->pe_header->OptionalHeader.SizeOfHeaders += sizeof(IMAGE_SECTION_HEADER); + ((t_pe32 *)pe)->pe_header->OptionalHeader.SizeOfImage += packer_config.loader_size; + } + else { + int old_sections_count = ((t_pe64 *)pe)->pe_header->FileHeader.NumberOfSections; + ((t_pe64 *)pe)->pe_header->FileHeader.NumberOfSections += 1; + + ((t_pe64 *)pe)->pe_header->OptionalHeader.SizeOfCode += ((t_pe64 *)pe)->section_header[old_sections_count - 1].SizeOfRawData; + ((t_pe64 *)pe)->pe_header->OptionalHeader.SizeOfHeaders += sizeof(IMAGE_SECTION_HEADER); + ((t_pe64 *)pe)->pe_header->OptionalHeader.SizeOfImage += packer_config.loader_size; + } + + return 1; +} + +int add_new_pe_section_data(t_pe *pe) { + char *loader; + + if(pe->s_type == PE32) { + int sections_count = ((t_pe32 *)pe)->pe_header->FileHeader.NumberOfSections; + char **new_section_data = realloc(((t_pe32 *)pe)->section_data, sizeof(char *) * sections_count); + if (new_section_data == NULL) { + log_error("realloc() failure"); + return -1; + } + ((t_pe32 *)pe)->section_data = new_section_data; + + // For ASM + loader_offset32 = ((t_pe32 *)pe)->section_header[sections_count - 1].VirtualAddress; + + loader = patch_loader(); + if (loader == NULL) { + free(loader); + log_error("Error during loader patching"); + return -1; + } + char *new_section = malloc(((t_pe32 *)pe)->section_header[sections_count - 1].SizeOfRawData); + if(new_section == NULL) { + free(loader); + free(new_section); + log_error("malloc() failure"); + return -1; + } + memset(new_section, 0, ((t_pe32 *)pe)->section_header[sections_count - 1].SizeOfRawData); + memcpy(new_section, loader, packer_config.loader_size); + ((t_pe32 *)pe)->section_data[sections_count - 1] = new_section; + } + else { + int sections_count = ((t_pe64 *)pe)->pe_header->FileHeader.NumberOfSections; + char **new_section_data = realloc(((t_pe64 *)pe)->section_data, sizeof(char *) * sections_count); + if (new_section_data == NULL) { + log_error("realloc() failure"); + return -1; + } + ((t_pe64 *)pe)->section_data = new_section_data; + + // For ASM + loader_offset64 = ((t_pe64 *)pe)->section_header[sections_count - 1].VirtualAddress; + + loader = patch_loader(); + if (loader == NULL) { + free(loader); + log_error("Error during loader patching"); + return -1; + } + char *new_section = malloc(((t_pe64 *)pe)->section_header[sections_count - 1].SizeOfRawData); + if(new_section == NULL) { + free(loader); + free(new_section); + log_error("malloc() failure"); + return -1; + } + memset(new_section, 0, ((t_pe64 *)pe)->section_header[sections_count - 1].SizeOfRawData); + memcpy(new_section, loader, packer_config.loader_size); + ((t_pe64 *)pe)->section_data[sections_count - 1] = new_section; + } + free(loader); + + return 1; +} + +int pe_insert_section(t_pe *pe) { + int text_section_index = find_pe_text_section(pe); + if(text_section_index == -1) { + log_error("Couldn't find .text section"); + return -1; + } + add_pe_section_permission(pe, text_section_index, IMAGE_SCN_MEM_WRITE); + + log_verbose("Creating new section ..."); + + if(add_new_pe_section_header(pe) == -1) { + log_error("Error during new Section Header insertion"); + return -1; + } + + log_verbose("Setting new sections headers values ..."); + + if(set_new_pe_header_values(pe) == -1) { + log_error("Couldn't set new PE Header values"); + return -1; + } + + log_verbose("Inserting the section data ..."); + + if(add_new_pe_section_data(pe) == -1) { + log_error("Error during new Section Data insertion"); + return -1; + } + + log_verbose("Setting new PE entry point ..."); + + if(pe->s_type == PE32) + set_new_pe_entry_to_section(pe, ((t_pe32 *)pe)->pe_header->FileHeader.NumberOfSections-1); + else + set_new_pe_entry_to_section(pe, ((t_pe64 *)pe)->pe_header->FileHeader.NumberOfSections-1); + + return 1; +} +#pragma clang diagnostic pop +``` + +`src/PE/pe_writing.c`: + +```c +// +// Created by silentvoid on 3/16/20. +// Copyright (c) 2020 SilentVoid. All rights reserved. +// + +#include "pe_writing.h" +#include "pe_allocation.h" +#include "file_functions.h" + +#include "log.h" + +int write_pe(t_pe *pe, char *filename) { + int fd = open(filename, O_CREAT | O_WRONLY | O_TRUNC, 0755); // NOLINT(hicpp-signed-bitwise) + if(fd < 0) { + log_error("open() failure"); + return -1; + } + + if(pe->s_type == PE32) { + log_verbose("Writing DOS header ..."); + write_to_file(fd, ((t_pe32 *)pe)->dos_header, sizeof(IMAGE_DOS_HEADER)); + + log_verbose("Writing DOS Stub ..."); + write_to_file(fd, ((t_pe32 *)pe)->dos_stub, ((t_pe32 *)pe)->dos_header->e_lfanew - sizeof(IMAGE_DOS_HEADER)); + + log_verbose("Writing PE header ..."); + write_to_file(fd, ((t_pe32 *)pe)->pe_header, sizeof(IMAGE_NT_HEADERS32)); + + log_verbose("Writing Sections headers ..."); + for (int i = 0; i < ((t_pe32 *)pe)->pe_header->FileHeader.NumberOfSections; i++) { + write_to_file(fd, &(((t_pe32 *)pe)->section_header[i]), sizeof(IMAGE_SECTION_HEADER)); + } + add_zero_padding(fd, ((t_pe32 *)pe)->section_header[0].PointerToRawData); + + log_verbose("Writing Sections data ..."); + for (int i = 0; i < ((t_pe32 *)pe)->pe_header->FileHeader.NumberOfSections; i++) { + write_to_file(fd, ((t_pe32 *)pe)->section_data[i], ((t_pe32 *)pe)->section_header[i].SizeOfRawData); + } + } + else { + log_verbose("Writing DOS header ..."); + write_to_file(fd, ((t_pe64 *)pe)->dos_header, sizeof(IMAGE_DOS_HEADER)); + + log_verbose("Writing DOS Stub ..."); + write_to_file(fd, ((t_pe64 *)pe)->dos_stub, ((t_pe64 *)pe)->dos_header->e_lfanew - sizeof(IMAGE_DOS_HEADER)); + + log_verbose("Writing PE header ..."); + write_to_file(fd, ((t_pe64 *)pe)->pe_header, sizeof(IMAGE_NT_HEADERS64)); + + log_verbose("Writing Sections headers ..."); + for (int i = 0; i < ((t_pe64 *)pe)->pe_header->FileHeader.NumberOfSections; i++) { + write_to_file(fd, &(((t_pe64 *)pe)->section_header[i]), sizeof(IMAGE_SECTION_HEADER)); + } + add_zero_padding(fd, ((t_pe64 *)pe)->section_header[0].PointerToRawData); + + log_verbose("Writing Sections data ..."); + for (int i = 0; i < ((t_pe64 *)pe)->pe_header->FileHeader.NumberOfSections; i++) { + write_to_file(fd, ((t_pe64 *)pe)->section_data[i], ((t_pe64 *)pe)->section_header[i].SizeOfRawData); + } + } + + close(fd); + + return 1; +} + +``` + +`src/STUB/amd64_aes_128_ecb_linux_elf_loader.asm`: + +```asm +%macro pushx 1-* + %rep %0 + push %1 + %rotate 1 + %endrep +%endmacro + +%macro popx 1-* + %rep %0 + %rotate -1 + pop %1 + %endrep +%endmacro + +%macro aes_128_keygenassist 1-2 + aeskeygenassist xmm2, xmm1, %1 + call key_expansion_128 + movdqu %2, xmm1 +%endmacro + +[BITS 64] + +aes_128_ecb_decrypt: + pushfq + pushx rax, rdi, rsi, rsp, rdx, rcx + + ; sys_write + mov rax, 1 + mov rdi, rax + lea rsi, [rel msg] + mov rdx, msg_len + syscall + + ; We save pie offset + lea r12, [rel aes_128_ecb_decrypt] + sub r12, [rel info_offset] + + jmp start_unpacking + +key_expansion_128: + pshufd xmm2, xmm2, 0xff + vpslldq xmm3, xmm1, 0x4 + pxor xmm1, xmm3 + vpslldq xmm3, xmm1, 0x4 + pxor xmm1, xmm3 + vpslldq xmm3, xmm1, 0x4 + pxor xmm1, xmm3 + pxor xmm1, xmm2 + ret + +msg db "[Unpacking...]", 10, 0 +msg_len equ $ - msg + +start_unpacking: + movdqu xmm1, [rel info_key] + + ; Load .text address in rax + mov rax, [rel info_addr] + add rax, r12 + + ; For later + mov rdx, [rel info_size] + + ; Move the key in xmm0 to backup + movdqu xmm0, xmm1 + + ; Generating round keys + + ; 10 times + aes_128_keygenassist 0x1, xmm4 + aes_128_keygenassist 0x2, xmm5 + aes_128_keygenassist 0x4, xmm6 + aes_128_keygenassist 0x8, xmm7 + aes_128_keygenassist 0x10, xmm8 + aes_128_keygenassist 0x20, xmm9 + aes_128_keygenassist 0x40, xmm10 + aes_128_keygenassist 0x80, xmm11 + aes_128_keygenassist 0x1b, xmm12 + aes_128_keygenassist 0x36, xmm13 + + ; Getting ready to use with the Equivalent Inverse Cipher + ; 9 times - Not on the last one + aesimc xmm4, xmm4 + aesimc xmm5, xmm5 + aesimc xmm6, xmm6 + aesimc xmm7, xmm7 + aesimc xmm8, xmm8 + aesimc xmm9, xmm9 + aesimc xmm10, xmm10 + aesimc xmm11, xmm11 + aesimc xmm12, xmm12 + + xor r8, r8 + +; Because we can't fully encrypt the .text data when it's not a 16bytes multiple - TOFIX + sub rdx, 16 +aes_loop: + ; Load .text encrypted section block in xmm15 + movdqu xmm15, [rax + r8] + + pxor xmm15, xmm13 ; First xor + aesdec xmm15, xmm12 ; Round 1 + aesdec xmm15, xmm11 ; Round 2 + aesdec xmm15, xmm10 ; Round 3 + aesdec xmm15, xmm9 ; Round 4 + aesdec xmm15, xmm8 ; Round 5 + aesdec xmm15, xmm7 ; Round 6 + aesdec xmm15, xmm6 ; Round 7 + aesdec xmm15, xmm5 ; Round 8 + aesdec xmm15, xmm4 ; Round 9 + aesdeclast xmm15, xmm0 ; Round 10 + + ; Load the encrypted .text section block + movdqu [rax + r8], xmm15 + + add r8, 16 + cmp rdx, r8 + jle clean + jmp aes_loop + +clean: + popx rax, rdi, rsi, rsp, rdx, rcx + popfq + jmp 0xFFFFFFFF + +; random values here, to be patched +info_start: +info_key: dq 0xaaaaaaaaaaaaaaaa +info_key1: dq 0xbbbbbbbbbbbbbbbb +info_addr: dq 0xcccccccccccccccc +info_size: dq 0xdddddddddddddddd +info_offset: dq 0xeeeeeeeeeeeeeeee + + +``` + +`src/STUB/amd64_aes_128_ecb_win_pe_loader.asm`: + +```asm +%macro pushx 1-* + %rep %0 + push %1 + %rotate 1 + %endrep +%endmacro + +%macro popx 1-* + %rep %0 + %rotate -1 + pop %1 + %endrep +%endmacro + +%macro aes_128_keygenassist 1-2 + aeskeygenassist xmm2, xmm1, %1 + call key_expansion_128 + movdqu %2, xmm1 +%endmacro + +[BITS 64] + +aes_128_ecb_decrypt: + pushfq + pushx rax, rdi, rsi, rsp, rdx, rcx + + ; syscall on windows seems like a pain + ;mov rax, 1 + ;mov rdi, rax + ;lea rsi, [rel msg] + ;mov rdx, msg_len + ;syscall + + ; We save pie offset + lea r12, [rel aes_128_ecb_decrypt] + sub r12, [rel info_offset] + + jmp start_unpacking + +key_expansion_128: + pshufd xmm2, xmm2, 0xff + vpslldq xmm3, xmm1, 0x4 + pxor xmm1, xmm3 + vpslldq xmm3, xmm1, 0x4 + pxor xmm1, xmm3 + vpslldq xmm3, xmm1, 0x4 + pxor xmm1, xmm3 + pxor xmm1, xmm2 + ret + +msg db "[Unpacking...]", 10, 0 +msg_len equ $ - msg + +start_unpacking: + movdqu xmm1, [rel info_key] + + ; Load .text address in rax + mov rax, [rel info_addr] + add rax, r12 + + ; For later + mov rdx, [rel info_size] + + ; Move the key in xmm0 to backup + movdqu xmm0, xmm1 + + ; Generating round keys + + ; 10 times + aes_128_keygenassist 0x1, xmm4 + aes_128_keygenassist 0x2, xmm5 + aes_128_keygenassist 0x4, xmm6 + aes_128_keygenassist 0x8, xmm7 + aes_128_keygenassist 0x10, xmm8 + aes_128_keygenassist 0x20, xmm9 + aes_128_keygenassist 0x40, xmm10 + aes_128_keygenassist 0x80, xmm11 + aes_128_keygenassist 0x1b, xmm12 + aes_128_keygenassist 0x36, xmm13 + + ; Getting ready to use with the Equivalent Inverse Cipher + ; 9 times - Not on the last one + aesimc xmm4, xmm4 + aesimc xmm5, xmm5 + aesimc xmm6, xmm6 + aesimc xmm7, xmm7 + aesimc xmm8, xmm8 + aesimc xmm9, xmm9 + aesimc xmm10, xmm10 + aesimc xmm11, xmm11 + aesimc xmm12, xmm12 + + xor r8, r8 + +; Because we can't fully encrypt the .text data when it's not a 16bytes multiple - TOFIX + sub rdx, 16 +aes_loop: + ; Load .text encrypted section block in xmm15 + movdqu xmm15, [rax + r8] + + pxor xmm15, xmm13 ; First xor + aesdec xmm15, xmm12 ; Round 1 + aesdec xmm15, xmm11 ; Round 2 + aesdec xmm15, xmm10 ; Round 3 + aesdec xmm15, xmm9 ; Round 4 + aesdec xmm15, xmm8 ; Round 5 + aesdec xmm15, xmm7 ; Round 6 + aesdec xmm15, xmm6 ; Round 7 + aesdec xmm15, xmm5 ; Round 8 + aesdec xmm15, xmm4 ; Round 9 + aesdeclast xmm15, xmm0 ; Round 10 + + ; Load the encrypted .text section block + movdqu [rax + r8], xmm15 + + add r8, 16 + cmp rdx, r8 + jle clean + jmp aes_loop + +clean: + popx rax, rdi, rsi, rsp, rdx, rcx + popfq + jmp 0xFFFFFFFF + +; random values here, to be patched +info_start: +info_key: dq 0xaaaaaaaaaaaaaaaa +info_key1: dq 0xbbbbbbbbbbbbbbbb +info_addr: dq 0xcccccccccccccccc +info_size: dq 0xdddddddddddddddd +info_offset: dq 0xeeeeeeeeeeeeeeee + + +``` + +`src/STUB/amd64_xor_linux_elf_loader.asm`: + +```asm +%macro pushx 1-* + %rep %0 + push %1 + %rotate 1 + %endrep +%endmacro + +%macro popx 1-* + %rep %0 + %rotate -1 + pop %1 + %endrep +%endmacro + +section .text + +loader_entry_point: + pushfq + pushx rax, rdi, rsi, rsp, rdx, rcx + + ; syscall : rax + ; parameter order : rdi, rsi, rdx, r10, r8, r9 + ; sys_write + mov rax, 1 + mov rdi, rax + lea rsi, [rel msg] + mov rdx, msg_len + syscall + + ; We save pie offset + lea r12, [rel loader_entry_point] + sub r12, [rel info_offset] + + jmp start_unpacking + +msg db "[Unpacking...]", 10, 0 +msg_len equ $ - msg + +start_unpacking: + mov rax, [rel info_addr] + mov rcx, [rel info_size] + mov rdx, [rel info_key] + + ; We add PIE offset + add rax, r12 + add rcx, rax + +.loop: + xor byte [rax], dl + ror rdx, 8 + inc rax + cmp rax, rcx + jnz .loop + + popx rax, rdi, rsi, rsp, rdx, rcx + popfq + jmp 0xFFFFFFFF + +; random values here, to be patched +info_start: +info_key: dq 0xaaaaaaaaaaaaaaaa +info_addr: dq 0xbbbbbbbbbbbbbbbb +info_size: dq 0xcccccccccccccccc +info_offset: dq 0xdddddddddddddddd + +``` + +`src/STUB/amd64_xor_win_pe_loader.asm`: + +```asm +%macro pushx 1-* + %rep %0 + push %1 + %rotate 1 + %endrep +%endmacro + +%macro popx 1-* + %rep %0 + %rotate -1 + pop %1 + %endrep +%endmacro + +section .text + +loader_entry_point: + pushfq + pushx rax, rdi, rsi, rsp, rdx, rcx + + ; syscall on windows seems like a pain + ;mov rax, 1 + ;mov rdi, rax + ;lea rsi, [rel msg] + ;mov rdx, msg_len + ;syscall + + ; We save pie offset + lea r12, [rel loader_entry_point] + sub r12, [rel info_offset] + + jmp start_unpacking + +msg db "[Unpacking...]", 10, 0 +msg_len equ $ - msg + +start_unpacking: + mov rax, [rel info_addr] + mov rcx, [rel info_size] + mov rdx, [rel info_key] + + ; We add PIE offset + add rax, r12 + add rcx, rax + +.loop: + xor byte [rax], dl + ror rdx, 8 + inc rax + cmp rax, rcx + jnz .loop + + popx rax, rdi, rsi, rsp, rdx, rcx + popfq + jmp 0xFFFFFFFF + +; random values here, to be patched +info_start: +info_key: dq 0xaaaaaaaaaaaaaaaa +info_addr: dq 0xbbbbbbbbbbbbbbbb +info_size: dq 0xcccccccccccccccc +info_offset: dq 0xdddddddddddddddd + +``` + +`src/STUB/i386_aes_128_ecb_linux_elf_loader.asm`: + +```asm +%macro pushx 1-* + %rep %0 + push %1 + %rotate 1 + %endrep +%endmacro + +%macro popx 1-* + %rep %0 + %rotate -1 + pop %1 + %endrep +%endmacro + +%macro aes_128_keygenassist 1-2 + aeskeygenassist xmm2, xmm1, %1 + call key_expansion_128 + movdqu %2, xmm1 +%endmacro + +[BITS 32] + +aes_128_ecb_decrypt: + pushx eax, edi, esi, esp, edx, ecx, ebx + + ; sys_write + call get_my_loc + sub edx, next_i - msg + mov ecx, edx + mov edx, msg_len + mov ebx, 1 + mov eax, 4 + int 0x80 + + ; We save pie offset + call get_my_loc + sub edx, next_i - aes_128_ecb_decrypt + mov ebx, edx + call get_my_loc + sub edx, next_i - info_offset + sub ebx, [edx] + + jmp start_unpacking + +; Uses xmm1, xmm2 and xmm3 +key_expansion_128: + pshufd xmm2, xmm2, 0xff + vpslldq xmm3, xmm1, 0x4 + pxor xmm1, xmm3 + vpslldq xmm3, xmm1, 0x4 + pxor xmm1, xmm3 + vpslldq xmm3, xmm1, 0x4 + pxor xmm1, xmm3 + pxor xmm1, xmm2 + ret + +get_my_loc: + call next_i + +next_i: + pop edx + ret + +msg db "[Unpacking...]", 10, 0 +msg_len equ $ - msg + +start_unpacking: + call get_my_loc + sub edx, next_i - info_addr + mov eax, [edx] + ; We add PIE offset + add eax, ebx + call get_my_loc + sub edx, next_i - info_key + movdqu xmm1, [edx] + call get_my_loc + sub edx, next_i - info_size + mov edx, [edx] + + ; Move the key in xmm0 to backup + movdqu xmm0, xmm1 + + ; We don't have enough xmm registers in x86 to store every round keys, so we push them to the stack + + ; Generating round keys + + ; 10 times + aes_128_keygenassist 0x1, xmm4 + aesimc xmm4, xmm4 + sub esp, 16 + movdqu oword [esp], xmm4 + aes_128_keygenassist 0x2, xmm4 + aesimc xmm4, xmm4 + sub esp, 16 + movdqu oword [esp], xmm4 + aes_128_keygenassist 0x4, xmm4 + aesimc xmm4, xmm4 + sub esp, 16 + movdqu oword [esp], xmm4 + aes_128_keygenassist 0x8, xmm4 + aesimc xmm4, xmm4 + sub esp, 16 + movdqu oword [esp], xmm4 + aes_128_keygenassist 0x10, xmm4 + aesimc xmm4, xmm4 + sub esp, 16 + movdqu oword [esp], xmm4 + aes_128_keygenassist 0x20, xmm4 + aesimc xmm4, xmm4 + sub esp, 16 + movdqu oword [esp], xmm4 + aes_128_keygenassist 0x40, xmm4 + aesimc xmm4, xmm4 + sub esp, 16 + movdqu oword [esp], xmm4 + aes_128_keygenassist 0x80, xmm4 + aesimc xmm4, xmm4 + sub esp, 16 + movdqu oword [esp], xmm4 + aes_128_keygenassist 0x1b, xmm4 + aesimc xmm4, xmm4 + sub esp, 16 + movdqu oword [esp], xmm4 + aes_128_keygenassist 0x36, xmm4 + sub esp, 16 + movdqu oword [esp], xmm4 + + xor ecx, ecx + +; Because we can't fully encrypt the .text data when it's not a 16bytes multiple - TOFIX + sub edx, 16 +aes_loop: + movdqu xmm1, xmm0 + + ; Load .text encrypted section block in xmm15 + movdqu xmm7, [eax + ecx] + + movdqu xmm4, oword [esp] + add esp, 16 + pxor xmm7, xmm4 ; First xor + movdqu xmm4, oword [esp] + add esp, 16 + aesdec xmm7, xmm4 ; Round 1 + movdqu xmm4, oword [esp] + add esp, 16 + aesdec xmm7, xmm4 ; Round 2 + movdqu xmm4, oword [esp] + add esp, 16 + aesdec xmm7, xmm4 ; Round 3 + movdqu xmm4, oword [esp] + add esp, 16 + aesdec xmm7, xmm4 ; Round 4 + movdqu xmm4, oword [esp] + add esp, 16 + aesdec xmm7, xmm4 ; Round 5 + movdqu xmm4, oword [esp] + add esp, 16 + aesdec xmm7, xmm4 ; Round 6 + movdqu xmm4, oword [esp] + add esp, 16 + aesdec xmm7, xmm4 ; Round 7 + movdqu xmm4, oword [esp] + add esp, 16 + aesdec xmm7, xmm4 ; Round 8 + movdqu xmm4, oword [esp] + add esp, 16 + aesdec xmm7, xmm4 ; Round 9 + aesdeclast xmm7, xmm0 ; Round 10 + + ; Load the encrypted .text section block + movdqu [eax + ecx], xmm7 + + ; Restore the stack for another loop + sub esp, 160 + + add ecx, 16 + cmp edx, ecx + jle clean + jmp aes_loop + +clean: + ; Reset the stack + add esp, 160 + popx eax, edi, esi, esp, edx, ecx, ebx + jmp 0xFFFFFFFF + +; random values here, to be patched +info_start: +info_key: dd 0xaaaaaaaa +info_key1: dd 0xaaaaaaaa +info_key2: dd 0xaaaaaaaa +info_key3: dd 0xaaaaaaaa +info_addr: dd 0xcccccccc +info_size: dd 0xdddddddd +info_offset: dd 0xeeeeeeee + + +``` + +`src/STUB/i386_aes_128_ecb_win_pe_loader.asm`: + +```asm +%macro pushx 1-* + %rep %0 + push %1 + %rotate 1 + %endrep +%endmacro + +%macro popx 1-* + %rep %0 + %rotate -1 + pop %1 + %endrep +%endmacro + +%macro aes_128_keygenassist 1-2 + aeskeygenassist xmm2, xmm1, %1 + call key_expansion_128 + movdqu %2, xmm1 +%endmacro + +[BITS 32] + +aes_128_ecb_decrypt: + pushx eax, edi, esi, esp, edx, ecx, ebx + + ; syscall on windows seems like a pain + ;call get_my_loc + ;sub edx, next_i - msg + ;mov ecx, edx + ;mov edx, msg_len + ;mov ebx, 1 + ;mov eax, 4 + ;int 0x80 + + ; We save pie offset + call get_my_loc + sub edx, next_i - aes_128_ecb_decrypt + mov ebx, edx + call get_my_loc + sub edx, next_i - info_offset + sub ebx, [edx] + + jmp start_unpacking + +; Uses xmm1, xmm2 and xmm3 +key_expansion_128: + pshufd xmm2, xmm2, 0xff + vpslldq xmm3, xmm1, 0x4 + pxor xmm1, xmm3 + vpslldq xmm3, xmm1, 0x4 + pxor xmm1, xmm3 + vpslldq xmm3, xmm1, 0x4 + pxor xmm1, xmm3 + pxor xmm1, xmm2 + ret + +get_my_loc: + call next_i + +next_i: + pop edx + ret + +msg db "[Unpacking...]", 10, 0 +msg_len equ $ - msg + +start_unpacking: + call get_my_loc + sub edx, next_i - info_addr + mov eax, [edx] + ; We add PIE offset + add eax, ebx + call get_my_loc + sub edx, next_i - info_key + movdqu xmm1, [edx] + call get_my_loc + sub edx, next_i - info_size + mov edx, [edx] + + ; Move the key in xmm0 to backup + movdqu xmm0, xmm1 + + ; We don't have enough xmm registers in x86 to store every round keys, so we push them to the stack + + ; Generating round keys + + ; 10 times + aes_128_keygenassist 0x1, xmm4 + aesimc xmm4, xmm4 + sub esp, 16 + movdqu oword [esp], xmm4 + aes_128_keygenassist 0x2, xmm4 + aesimc xmm4, xmm4 + sub esp, 16 + movdqu oword [esp], xmm4 + aes_128_keygenassist 0x4, xmm4 + aesimc xmm4, xmm4 + sub esp, 16 + movdqu oword [esp], xmm4 + aes_128_keygenassist 0x8, xmm4 + aesimc xmm4, xmm4 + sub esp, 16 + movdqu oword [esp], xmm4 + aes_128_keygenassist 0x10, xmm4 + aesimc xmm4, xmm4 + sub esp, 16 + movdqu oword [esp], xmm4 + aes_128_keygenassist 0x20, xmm4 + aesimc xmm4, xmm4 + sub esp, 16 + movdqu oword [esp], xmm4 + aes_128_keygenassist 0x40, xmm4 + aesimc xmm4, xmm4 + sub esp, 16 + movdqu oword [esp], xmm4 + aes_128_keygenassist 0x80, xmm4 + aesimc xmm4, xmm4 + sub esp, 16 + movdqu oword [esp], xmm4 + aes_128_keygenassist 0x1b, xmm4 + aesimc xmm4, xmm4 + sub esp, 16 + movdqu oword [esp], xmm4 + aes_128_keygenassist 0x36, xmm4 + sub esp, 16 + movdqu oword [esp], xmm4 + + xor ecx, ecx + +; Because we can't fully encrypt the .text data when it's not a 16bytes multiple - TOFIX + sub edx, 16 +aes_loop: + movdqu xmm1, xmm0 + + ; Load .text encrypted section block in xmm15 + movdqu xmm7, [eax + ecx] + + movdqu xmm4, oword [esp] + add esp, 16 + pxor xmm7, xmm4 ; First xor + movdqu xmm4, oword [esp] + add esp, 16 + aesdec xmm7, xmm4 ; Round 1 + movdqu xmm4, oword [esp] + add esp, 16 + aesdec xmm7, xmm4 ; Round 2 + movdqu xmm4, oword [esp] + add esp, 16 + aesdec xmm7, xmm4 ; Round 3 + movdqu xmm4, oword [esp] + add esp, 16 + aesdec xmm7, xmm4 ; Round 4 + movdqu xmm4, oword [esp] + add esp, 16 + aesdec xmm7, xmm4 ; Round 5 + movdqu xmm4, oword [esp] + add esp, 16 + aesdec xmm7, xmm4 ; Round 6 + movdqu xmm4, oword [esp] + add esp, 16 + aesdec xmm7, xmm4 ; Round 7 + movdqu xmm4, oword [esp] + add esp, 16 + aesdec xmm7, xmm4 ; Round 8 + movdqu xmm4, oword [esp] + add esp, 16 + aesdec xmm7, xmm4 ; Round 9 + aesdeclast xmm7, xmm0 ; Round 10 + + ; Load the encrypted .text section block + movdqu [eax + ecx], xmm7 + + ; Restore the stack for another loop + sub esp, 160 + + add ecx, 16 + cmp edx, ecx + jle clean + jmp aes_loop + +clean: + ; Reset the stack + add esp, 160 + popx eax, edi, esi, esp, edx, ecx, ebx + jmp 0xFFFFFFFF + +; random values here, to be patched +info_start: +info_key: dd 0xaaaaaaaa +info_key1: dd 0xaaaaaaaa +info_key2: dd 0xaaaaaaaa +info_key3: dd 0xaaaaaaaa +info_addr: dd 0xcccccccc +info_size: dd 0xdddddddd +info_offset: dd 0xeeeeeeee + + +``` + +`src/STUB/i386_xor_linux_elf_loader.asm`: + +```asm +%macro pushx 1-* + %rep %0 + push %1 + %rotate 1 + %endrep +%endmacro + +%macro popx 1-* + %rep %0 + %rotate -1 + pop %1 + %endrep +%endmacro + +section .text + +loader_entry_point32: + pushx eax, edi, esi, esp, edx, ecx, ebx + + ; syscall : eax + ; parameters order : ebx, ecx, edx, esi, edi, ebp + ; sys_write + call get_my_loc + sub edx, next_i - msg + mov ecx, edx + mov edx, msg_len + mov ebx, 1 + mov eax, 4 + int 0x80 + + ; We save pie offset + call get_my_loc + sub edx, next_i - loader_entry_point32 + mov ebx, edx + call get_my_loc + sub edx, next_i - info_offset + sub ebx, [edx] + + jmp start_unpacking + +msg db "[Unpacking...]", 10, 0 +msg_len equ $ - msg + +get_my_loc: + call next_i + +next_i: + pop edx + ret + +start_unpacking: + call get_my_loc + sub edx, next_i - info_addr + mov eax, [edx] + call get_my_loc + sub edx, next_i - info_size + mov ecx, [edx] + call get_my_loc + sub edx, next_i - info_key + mov edx, [edx] + + ; We add PIE offset + add eax, ebx + add ecx, eax + +.loop: + xor byte [eax], dl + ror edx, 4 + inc eax + cmp eax, ecx + jnz .loop + + popx eax, edi, esi, esp, edx, ecx, ebx + + jmp 0xFFFFFFF + +; Random values here, to be patched +info_key: dd 0xaaaaaaaa +info_addr: dd 0xbbbbbbbb +info_size: dd 0xcccccccc +info_offset: dd 0xdddddddd + +``` + +`src/STUB/i386_xor_win_pe_loader.asm`: + +```asm +%macro pushx 1-* + %rep %0 + push %1 + %rotate 1 + %endrep +%endmacro + +%macro popx 1-* + %rep %0 + %rotate -1 + pop %1 + %endrep +%endmacro + +section .text + +loader_entry_point32: + pushx eax, edi, esi, esp, edx, ecx, ebx + + ; syscall on windows seems like a pain + ;call get_my_loc + ;sub edx, next_i - msg + ;mov ecx, edx + ;mov edx, msg_len + ;mov ebx, 1 + ;mov eax, 4 + ;int 0x80 + + ; We save pie offset + call get_my_loc + sub edx, next_i - loader_entry_point32 + mov ebx, edx + call get_my_loc + sub edx, next_i - info_offset + sub ebx, [edx] + + jmp start_unpacking + +msg db "[Unpacking...]", 10, 0 +msg_len equ $ - msg + +get_my_loc: + call next_i + +next_i: + pop edx + ret + +start_unpacking: + call get_my_loc + sub edx, next_i - info_addr + mov eax, [edx] + call get_my_loc + sub edx, next_i - info_size + mov ecx, [edx] + call get_my_loc + sub edx, next_i - info_key + mov edx, [edx] + + ; We add PIE offset + add eax, ebx + add ecx, eax + +.loop: + xor byte [eax], dl + ror edx, 4 + inc eax + cmp eax, ecx + jnz .loop + + popx eax, edi, esi, esp, edx, ecx, ebx + + jmp 0xFFFFFFF + +; Random values here, to be patched +info_key: dd 0xaaaaaaaa +info_addr: dd 0xbbbbbbbb +info_size: dd 0xcccccccc +info_offset: dd 0xdddddddd + +``` + +`src/common/aes_128_ecb_encryption.asm`: + +```asm +%macro pushx 1-* + %rep %0 + push %1 + %rotate 1 + %endrep +%endmacro + +%macro popx 1-* + %rep %0 + %rotate -1 + pop %1 + %endrep +%endmacro + +%macro aes_128_keygenassist 1-2 + aeskeygenassist xmm2, xmm1, %1 + call key_expansion_128 + movdqu %2, xmm1 +%endmacro + +[BITS 64] + +global aes_128_ecb_encrypt:function + +key_expansion_128: + pshufd xmm2, xmm2, 0xff + vpslldq xmm3, xmm1, 0x4 + pxor xmm1, xmm3 + vpslldq xmm3, xmm1, 0x4 + pxor xmm1, xmm3 + vpslldq xmm3, xmm1, 0x4 + pxor xmm1, xmm3 + pxor xmm1, xmm2 + ret + +; Used for padding +; PKCS PADDING +;aes_pkcs_padding: +; sub r9, rsi +; mov rcx, 16 +; sub rcx, r9 +; +; ; push +; sub rsp, 16 +; movdqu oword [rsp], xmm15 +;.aes_pkcs_pad_loop: +; mov [rsp+rcx], r9b +; inc rcx +; cmp rcx, 16 +; jnz .aes_pkcs_pad_loop +; +; ; pop +; movdqu xmm15, oword [rsp] +; add rsp, 16 +; +; jmp after_padding + + +; void aes_128_ecb_encrypt(char *data, size_t data_size, char *key, size_t key_size) +; rdi rsi rdx r10 +aes_128_ecb_encrypt: + pushfq + pushx rax, rdi, rsi, rsp, rdx, rcx + + ; TODO + ; cmp r10, 128 + ; cmp data_size, ? + + ; 128 bit key + movdqu xmm1, [rdx] + + ; Move the key in xmm0 + movdqu xmm0, xmm1 + + ; Generating round keys + ; 10 times + aes_128_keygenassist 0x1, xmm4 + aes_128_keygenassist 0x2, xmm5 + aes_128_keygenassist 0x4, xmm6 + aes_128_keygenassist 0x8, xmm7 + aes_128_keygenassist 0x10, xmm8 + aes_128_keygenassist 0x20, xmm9 + aes_128_keygenassist 0x40, xmm10 + aes_128_keygenassist 0x80, xmm11 + aes_128_keygenassist 0x1b, xmm12 + aes_128_keygenassist 0x36, xmm13 + + xor r8, r8 + +; We can't fully encrypt the .text data when it's not a 16bytes multiple - TOFIX + sub rsi, 16 +aes_loop: + ; Load .text plaintext section block in xmm15 + movdqu xmm15, [rdi + r8] + +; Used for padding +; +; mov r9, r8 +; add r9, 16 +; cmp r9, rsi +; jg aes_pkcs_padding +;after_padding: + + ; Whitening step - Round 0 + pxor xmm15, xmm0 ; First xor + + aesenc xmm15, xmm4 ; Round 1 + aesenc xmm15, xmm5 ; Round 2 + aesenc xmm15, xmm6 ; Round 3 + aesenc xmm15, xmm7 ; Round 4 + aesenc xmm15, xmm8 ; Round 5 + aesenc xmm15, xmm9 ; Round 6 + aesenc xmm15, xmm10 ; Round 7 + aesenc xmm15, xmm11 ; Round 8 + aesenc xmm15, xmm12 ; Round 9 + aesenclast xmm15, xmm13 ; Round 10 + + ; Load the encrypted .text section block + movdqu [rdi + r8], xmm15 + + add r8, 16 + cmp rsi, r8 + jle clean + jmp aes_loop + +; Used for padding +; mov r9, r8 +; add r9, 16 +; cmp r9, rsi +; jg padded_block +; ; Load the encrypted .text section block +; movdqu [rdi + r8], xmm15 +; jmp end_aes_loop +;padded_block: +; mov rcx, rsi +; sub rcx, r8 +; ; push +; sub rsp, 16 +; movdqu oword [rsp], xmm15 +;padded_block_loop: +; mov rdx, [rdi+r8] +; add rsp, 1 +; mov [rdx+rcx], spl +; inc rcx +; cmp rcx,16 +; jnz padded_block_loop +; add rsp, 16 +;end_aes_loop: +; add r8, 16 +; jmp aes_loop + +clean: + popx rax, rdi, rsi, rsp, rdx, rcx + popfq + ret + + +``` + +`src/common/cipher_functions.c`: + +```c +#pragma clang diagnostic push +#pragma ide diagnostic ignored "hicpp-signed-bitwise" +// +// Created by silentvoid on 2/25/20. +// Copyright (c) 2020 SilentVoid. All rights reserved. +// + +#include "cipher_functions.h" + +#include "log.h" + +uint32_t generate_random_key32() { + // Note: rand() is not a really good pRNG generator but that should be ok in our case + srand(time(NULL)); // NOLINT(cert-msc32-c,cert-msc51-cpp) + uint32_t key = rand(); // NOLINT(cert-msc30-c,cert-msc50-cpp) + return key; +} + +uint64_t generate_random_key64() { + // Note: rand() is not a really good pRNG generator but that should be ok in our case + srand(time(NULL)); // NOLINT(cert-msc32-c,cert-msc51-cpp) + uint64_t key = rand(); // NOLINT(cert-msc30-c,cert-msc50-cpp) + return key; +} + +void generate_random_key128() { + srand(time(NULL)); // NOLINT(cert-msc32-c,cert-msc51-cpp) + + uint32_t first = rand();// NOLINT(cert-msc30-c,cert-msc50-cpp) + uint32_t second = rand();// NOLINT(cert-msc30-c,cert-msc50-cpp) + uint32_t third = rand();// NOLINT(cert-msc30-c,cert-msc50-cpp) + uint32_t fourth = rand();// NOLINT(cert-msc30-c,cert-msc50-cpp) + + memcpy(cipher_key128, &first, sizeof(uint32_t)); + memcpy(cipher_key128+4, &second, sizeof(uint32_t)); + memcpy(cipher_key128+8, &third, sizeof(uint32_t)); + memcpy(cipher_key128+12, &fourth, sizeof(uint32_t)); + + //uint32_t test = 0x41414141; + //memcpy(key, &test, sizeof(uint32_t)); + //memcpy(key+4, &test, sizeof(uint32_t)); + //memcpy(key+8, &test, sizeof(uint32_t)); + //memcpy(key+12, &test, sizeof(uint32_t)); +} + +uint32_t rotate_right32(uint32_t value) { + // https://www.geeksforgeeks.org/rotate-bits-of-an-integer/ + // https://blog.regehr.org/archives/1063 + uint32_t n_rotations = sizeof(uint32_t); + uint32_t int_bits = sizeof(uint32_t) * 8; + return (value >> n_rotations) | (value << (int_bits - n_rotations)); +} + +uint64_t rotate_right64(uint64_t value) { + // https://www.geeksforgeeks.org/rotate-bits-of-an-integer/ + // https://blog.regehr.org/archives/1063 + uint64_t n_rotations = sizeof(uint64_t); + uint64_t int_bits = sizeof(uint64_t) * 8; + return (value >> n_rotations) | (value << (int_bits - n_rotations)); +} + + +int xor_encrypt32(char *data, size_t data_size, uint32_t key) { + for(int i = 0; i < (int)data_size; i++) { + data[i] = (char)(data[i] ^ key); + key = rotate_right32(key); + } + + return 1; +} + +int xor_encrypt64(char *data, size_t data_size, uint64_t key) { + for(int i = 0; i < (int)data_size; i++) { + data[i] = (char)(data[i] ^ key); + key = rotate_right64(key); + } + + return 1; +} + +#pragma clang diagnostic pop +``` + +`src/common/file_functions.c`: + +```c +// +// Created by silentvoid on 3/16/20. +// Copyright (c) 2020 SilentVoid. All rights reserved. +// + +#include "file_functions.h" +#include "elf_allocation.h" +#include "pe_struct.h" + +#include "log.h" + +// To keep track of the bytes written for the padding +size_t offset = 0; + +/* + * Mapping file in memory using mmap + * + */ +int allocate_file(char *file, void **file_data, size_t *file_data_size) { + int fd = open(file, O_RDONLY); + if(fd < 0) { + log_error("open() failure"); + return -1; + } + + int size = lseek(fd, 0, SEEK_END); + if(size < 0) { + close(fd); + log_error("lseek() failure"); + return -1; + } + *file_data_size = size; + + *file_data = mmap(NULL, *file_data_size, PROT_READ | PROT_WRITE, MAP_PRIVATE, fd, 0); // NOLINT(hicpp-signed-bitwise) + if(*file_data == MAP_FAILED) { + close(fd); + log_error("mmap() failure"); + return -1; + } + close(fd); + + return 1; +} + +int write_to_file(int fd, void *data, size_t data_size) { + size_t n_bytes; + if((n_bytes = write(fd, data, data_size)) != data_size) { + log_error("write() failure"); + return -1; + } + offset += n_bytes; + + return 1; +} + +int dump_to_file(char *filename, char *data, size_t data_size) { + FILE *dump; + dump = fopen(filename, "w"); + if(dump == NULL) { + log_error("Error dumping file"); + return -1; + } + fwrite(data, data_size, 1, dump); + fclose(dump); + + return 1; +} + +void add_zero_padding(int fd, size_t end_offset) { + char c = 0; + while(offset < end_offset) { + write_to_file(fd, &c, sizeof(c)); + } +} + +int check_magic_bytes(char *file_data, size_t file_data_size) { + // TODO: Random value - See for a coherent value + if(file_data_size < 50) { + log_error("Invalid file size"); + return UNKNOWN_FILE; + } + + if(strncmp(file_data, ELFMAG, SELFMAG) == 0) { + return ELF_FILE; + } + else if(strncmp(file_data, STR_DOSMAG, SSTR_DOSMAG) == 0) { + return PE_FILE; + } + else { + return UNKNOWN_FILE; + } +} + +int get_elf_arch(const char *file_data, size_t file_data_size) { + // TODO: Maybe improve this + if(file_data_size < sizeof(Elf32_Ehdr)) { + log_error("Invalid file size"); + return UNKNOWN_ARCH; + } + + if(file_data[EI_CLASS] == ELFCLASS32) { + return x32_ARCH; + } + else if(file_data[EI_CLASS] == ELFCLASS64) { + return x64_ARCH; + } + else { + return UNKNOWN_ARCH; + } +} + +int get_pe_arch(const char *file_data, size_t file_data_size) { + // TODO: Maybe improve this + if(file_data_size < sizeof(IMAGE_DOS_HEADER) + DOS_STUB_SIZE + sizeof(IMAGE_NT_HEADERS32)) { + log_error("Invalid file size"); + return UNKNOWN_ARCH; + } + + size_t machine_type_offset = sizeof(IMAGE_DOS_HEADER) + DOS_STUB_SIZE + sizeof(uint32_t) + sizeof(IMAGE_FILE_HEADER); + uint16_t arch_value = *((uint16_t *)(file_data+machine_type_offset)); + + if(arch_value == PE32MAG) { + return x32_ARCH; + } + else if(arch_value == PE64MAG) { + return x64_ARCH; + } + else { + return UNKNOWN_ARCH; + } +} +``` + +`src/common/loader_functions.c`: + +```c +// +// Created by silentvoid on 3/18/20. +// Copyright (c) 2020 SilentVoid. All rights reserved. +// + +#include "loader_functions.h" +#include "cipher_functions.h" +#include "file_functions.h" +#include "elf_allocation.h" +#include "pe_allocation.h" +#include "packer_config.h" + +#include "log.h" + +uint64_t text_data_size64; +uint64_t text_entry_point64; +uint64_t cipher_key64; +uint64_t loader_offset64; + +uint32_t text_data_size32; +uint32_t text_entry_point32; +uint32_t cipher_key32; +uint32_t loader_offset32; + +unsigned char cipher_key128[17]; + +// Set globals variables for nasm code +char * patch_loader() { + char *loader; + + if(packer_config.arch == x32_ARCH) { + loader = malloc(packer_config.loader_size); + if(loader == NULL) { + log_error("malloc() failure"); + return NULL; + } + memset(loader, 0x0, packer_config.loader_size); + + // Copy the loader asm entry point + memcpy(loader, packer_config.loader_stub, packer_config.loader_size); + + if(strcmp(packer_config.cipher, "aes128_ecb") == 0) { + memcpy(loader + packer_config.loader_size - CIPHER_KEY_OFFSET32_AES, cipher_key128, 16); + } + else { + memcpy(loader + packer_config.loader_size - CIPHER_KEY_OFFSET32, &cipher_key32, sizeof(uint32_t)); + } + memcpy(loader + packer_config.loader_size - TEXT_ENTRY_POINT_OFFSET32, &text_entry_point32, sizeof(uint32_t)); + memcpy(loader + packer_config.loader_size - TEXT_DATA_SIZE_OFFSET32, &text_data_size32, sizeof(uint32_t)); + memcpy(loader + packer_config.loader_size - LOADER_OFFSET_OFFSET32, &loader_offset32, sizeof(uint32_t)); + } + else { + loader = malloc(packer_config.loader_size); + if(loader == NULL) { + log_error("malloc() failure"); + return NULL; + } + memset(loader, 0x0, packer_config.loader_size); + + // Copy the loader asm entry point + memcpy(loader, packer_config.loader_stub, packer_config.loader_size); + + if(strcmp(packer_config.cipher, "aes128_ecb") == 0) { + memcpy(loader + packer_config.loader_size - CIPHER_KEY_OFFSET64_AES, cipher_key128, 16); + } + else { + memcpy(loader + packer_config.loader_size - CIPHER_KEY_OFFSET64, &cipher_key64, sizeof(uint64_t)); + } + memcpy(loader + packer_config.loader_size - TEXT_ENTRY_POINT_OFFSET64, &text_entry_point64, sizeof(uint64_t)); + memcpy(loader + packer_config.loader_size - TEXT_DATA_SIZE_OFFSET64, &text_data_size64, sizeof(uint64_t)); + memcpy(loader + packer_config.loader_size - LOADER_OFFSET_OFFSET64, &loader_offset64, sizeof(uint64_t)); + } + + if(packer_config.debug_mode) { + log_debug("Dumping loader ..."); + dump_to_file("loader.dmp", loader, packer_config.loader_size); + } + + return loader; +} + +``` + +`src/common/packer_config.c`: + +```c +// +// Created by silentvoid on 4/10/20. +// Copyright (c) 2020 SilentVoid. All rights reserved. +// + +#include "packer_config.h" +#include "all_loaders.h" +#include "cipher_functions.h" +#include "file_functions.h" +#include "elf_allocation.h" +#include "pe_allocation.h" + +#include "log.h" + +struct s_packer_config packer_config; + +int fill_packer_config(char *packing_method, char *cipher, int arch, int file_type, int debug_mode) { + strncpy(packer_config.packing_method, packing_method, MAX_PACKING_METHOD_LENGTH); + strncpy(packer_config.cipher, cipher, MAX_CIPHER_LENGTH); + packer_config.arch = arch; + packer_config.debug_mode = debug_mode; + + if(arch == x32_ARCH) { + if (file_type == ELF_FILE) { + if (strcmp(cipher, "aes128_ecb") == 0) { + packer_config.loader_infos_size = I386_AES_128_ECB_LINUX_ELF_LOADER_INFOS_SIZE; + packer_config.loader_size = I386_AES_128_ECB_LINUX_ELF_LOADER_SIZE; + packer_config.loader_stub = &(i386_aes_128_ecb_linux_elf_loader_stub[0]); + } else if (strcmp(cipher, "xor") == 0) { + packer_config.loader_infos_size = I386_XOR_LINUX_ELF_LOADER_INFOS_SIZE; + packer_config.loader_size = I386_XOR_LINUX_ELF_LOADER_SIZE; + packer_config.loader_stub = &(i386_xor_linux_elf_loader_stub[0]); + } + else { + log_error("Unknown cipher"); + return -1; + } + } else if (file_type == PE_FILE) { + if (strcmp(cipher, "aes128_ecb") == 0) { + packer_config.loader_infos_size = I386_AES_128_ECB_WIN_PE_LOADER_INFOS_SIZE; + packer_config.loader_size = I386_AES_128_ECB_WIN_PE_LOADER_SIZE; + packer_config.loader_stub = &(i386_aes_128_ecb_win_pe_loader_stub[0]); + } else if (strcmp(cipher, "xor") == 0) { + packer_config.loader_infos_size = I386_XOR_WIN_PE_LOADER_INFOS_SIZE; + packer_config.loader_size = I386_XOR_WIN_PE_LOADER_SIZE; + packer_config.loader_stub = &(i386_xor_win_pe_loader_stub[0]); + } + else { + log_error("Unknown cipher"); + return -1; + } + } else { + log_error("Unknown file type"); + return -1; + } + return 1; + } + else if(arch == x64_ARCH) { + if(file_type == ELF_FILE) { + if(strcmp(cipher, "aes128_ecb") == 0) { + packer_config.loader_infos_size = AMD64_AES_128_ECB_LINUX_ELF_LOADER_INFOS_SIZE; + packer_config.loader_size = AMD64_AES_128_ECB_LINUX_ELF_LOADER_SIZE; + packer_config.loader_stub = &(amd64_aes_128_ecb_linux_elf_loader_stub[0]); + } + else if(strcmp(cipher, "xor") == 0) { + packer_config.loader_infos_size = AMD64_XOR_LINUX_ELF_LOADER_INFOS_SIZE; + packer_config.loader_size = AMD64_XOR_LINUX_ELF_LOADER_SIZE; + packer_config.loader_stub = &(amd64_xor_linux_elf_loader_stub[0]); + } + else { + log_error("Unknown cipher"); + return -1; + } + } + else if(file_type == PE_FILE) { + if(strcmp(cipher, "aes128_ecb") == 0) { + packer_config.loader_infos_size = AMD64_AES_128_ECB_WIN_PE_LOADER_INFOS_SIZE; + packer_config.loader_size = AMD64_AES_128_ECB_WIN_PE_LOADER_SIZE; + packer_config.loader_stub = amd64_aes_128_ecb_win_pe_loader_stub; + } + else if(strcmp(cipher, "xor") == 0) { + packer_config.loader_infos_size = AMD64_XOR_WIN_PE_LOADER_INFOS_SIZE; + packer_config.loader_size = AMD64_XOR_WIN_PE_LOADER_SIZE; + packer_config.loader_stub = &(amd64_xor_win_pe_loader_stub[0]); + } + else { + log_error("Unknown cipher"); + return -1; + } + } + else { + log_error("Unknown file type"); + return -1; + } + } + + return 1; +} + + +``` + +`src/main.c`: + +```c +#include +#include + +#include "main.h" +#include "packing_method.h" +#include "elf_packing.h" +#include "pe_packing.h" +#include "file_functions.h" +#include "packer_config.h" + +#include "argtable3.h" +#include "log.h" + +struct method_config method_config; + +struct arg_lit *verb, *help, *version, *debug; +struct arg_str *cipher, *packing_method; +struct arg_file *output, *file; +struct arg_end *end; + +void display_argtable_help(char *progname, void **argtable) { + printf("Usage: %s", progname); + arg_print_syntax(stdout, argtable, "\n"); + arg_print_glossary(stdout, argtable, " %-25s %s\n"); + exit(0); +} + +int main(int argc, char** argv) { + void *argtable[] = { + help = arg_litn("h", "help", 0, 1, "Display this help and exit"), + version = arg_litn("V", "version", 0, 1, "Display version info and exit"), + verb = arg_litn("v", "verbose", 0, 1, "Verbose output"), + debug = arg_litn("d", "debug", 0, 1, "Debug mode"), + file = arg_filen("f", "file", "file", 0, 1, "File to pack"), + cipher = arg_strn("c", "cipher", "", 0, 1, "Cipher method to use"), + packing_method = arg_strn("m", "method", "", 0, 1, "Method to pack the binary"), + output = arg_filen("o", "output", "file", 0, 1, "Output file"), + end = arg_end(20), + }; + + char *progname = "Silent_Packer"; + char *progversion = "0.1"; + char *progdate = "2020"; + char *author_name = "SilentVoid"; + + output->filename[0] = NULL; + file->filename[0] = NULL; + cipher->sval[0] = NULL; + packing_method->sval[0] = NULL; + + int nerrors; + nerrors = arg_parse(argc, argv, argtable); + + verbose = verb->count; + + if(help->count > 0) { + display_argtable_help(progname, argtable); + } + + if(version->count > 0) { + printf("%s %s\n", progname, progversion); + printf("Copyright (C) %s %s\n", progdate, author_name); + exit(0); + } + + if(nerrors > 0) { + arg_print_errors(stdout, end, progname); + printf("Try '%s --help' for more informations.\n", progname); + exit(1); + } + + if(file->count > 0 && cipher->count > 0 && packing_method->count > 0) { + if( + (strcmp(cipher->sval[0], "xor") != 0) && + (strcmp(cipher->sval[0], "aes128_ecb") != 0) + ) { + log_error("Wrong cipher method"); + display_argtable_help(progname, argtable); + } + + if( + (strcmp(packing_method->sval[0], "silvio_infection") != 0) && + (strcmp(packing_method->sval[0], "code_cave") != 0) && + (strcmp(packing_method->sval[0], "section_insertion") != 0) + ) { + log_error("Wrong packing method"); + display_argtable_help(progname, argtable); + } + + void *file_data; + size_t file_data_size; + + log_info("Allocating file in memory ..."); + if(allocate_file((char *) file->filename[0], &file_data, &file_data_size) == -1) { + log_error("Error during file allocation"); + return -1; + } + + int file_type = check_magic_bytes(file_data, file_data_size); + if(file_type == ELF_FILE) { + int arch = get_elf_arch(file_data, file_data_size); + if(arch == UNKNOWN_ARCH) { + munmap(file_data, file_data_size); + log_error("Couldn't detect the architecture of the file"); + return -1; + } + + if(fill_packer_config((char *) packing_method->sval[0], (char *) cipher->sval[0], arch, file_type, debug->count) == -1) { + munmap(file_data, file_data_size); + log_error("Error during packer configuration"); + return -1; + } + + int p_status = pack_elf((char *) file->filename[0], file_data, file_data_size, (char *) output->filename[0]); + if(p_status == -1) { + log_error("An error occured during the ELF packing"); + } + } + else if(file_type == PE_FILE) { + int arch = get_pe_arch(file_data, file_data_size); + if(arch == UNKNOWN_ARCH) { + munmap(file_data, file_data_size); + log_error("Couldn't detect the architecture of the file"); + return -1; + } + + if(strcmp(packing_method->sval[0], "silvio_infection") == 0) { + munmap(file_data, file_data_size); + log_error("Silvio infection is not available for PE files"); + return -1; + } + + if(fill_packer_config((char *) packing_method->sval[0], (char *) cipher->sval[0], arch, file_type, debug->count) == -1) { + munmap(file_data, file_data_size); + log_error("Error during packer configuration"); + return -1; + } + + int p_status = pack_pe((char *) file->filename[0], file_data, file_data_size, (char *) output->filename[0]); + if(p_status == -1) { + log_error("An error occured during the PE packing"); + } + } + else { + log_error("Invalid file type"); + } + } + else { + display_argtable_help(progname, argtable); + } + + arg_freetable(argtable, sizeof(argtable) / sizeof(argtable[0])); + return 0; +} + +``` \ No newline at end of file diff --git a/archive/r0ngwe1/petoy.txt b/archive/r0ngwe1/petoy.txt new file mode 100644 index 00000000..588a94f7 --- /dev/null +++ b/archive/r0ngwe1/petoy.txt @@ -0,0 +1,71734 @@ +Project Path: arc_r0ngwe1_petoy_vofwt1cj + +Source Tree: + +```txt +arc_r0ngwe1_petoy_vofwt1cj +├── LICENSE +├── README.md +├── aPLib +│ ├── contrib +│ │ ├── 16bit +│ │ │ ├── deppack.nas +│ │ │ ├── depptiny.nas +│ │ │ ├── history.txt +│ │ │ └── makeit.bat +│ │ ├── AppleII +│ │ │ ├── apdstsrc.s +│ │ │ ├── apsrcdst.s +│ │ │ └── readme.txt +│ │ ├── PowerBASIC +│ │ │ ├── aplib.bas +│ │ │ └── aplib.inc +│ │ ├── PowerBuilder +│ │ │ ├── example.txt +│ │ │ ├── str_filetime.srs +│ │ │ ├── str_netresource.srs +│ │ │ ├── str_ofstruct.srs +│ │ │ ├── str_overlapped.srs +│ │ │ ├── str_security_attibutes.srs +│ │ │ ├── uo_external_function_compression.sru +│ │ │ └── uo_external_function_winapi.sru +│ │ ├── VB6 +│ │ │ └── maPLib.bas +│ │ ├── ada +│ │ │ ├── ACU_Dos +│ │ │ │ ├── apacdemo.ali +│ │ │ │ └── aplib.ali +│ │ │ ├── ACU_Win +│ │ │ │ ├── apacdemo.ali +│ │ │ │ └── aplib.ali +│ │ │ ├── aPLibAda.txt +│ │ │ ├── apacdemo.adb +│ │ │ ├── aplib.adb +│ │ │ ├── aplib.ads +│ │ │ ├── gnat.ago +│ │ │ ├── mk_aonix.bat +│ │ │ ├── mk_gndos.bat +│ │ │ └── mk_gnwin.bat +│ │ ├── bcb +│ │ │ ├── MainFormUnit.cpp +│ │ │ ├── MainFormUnit.ddp +│ │ │ ├── MainFormUnit.dfm +│ │ │ ├── MainFormUnit.h +│ │ │ ├── README_ABOUT_APLIB_DLL.txt +│ │ │ ├── apacksamplec.cpp +│ │ │ ├── apacksamplec.h +│ │ │ ├── aptest.bpr +│ │ │ ├── aptest.cpp +│ │ │ └── aptest.res +│ │ ├── delphi +│ │ │ ├── aplib.pas +│ │ │ ├── aplibu.pas +│ │ │ ├── aplibud.pas +│ │ │ ├── aptest.dof +│ │ │ ├── aptest.dpr +│ │ │ ├── aptest.res +│ │ │ ├── makefile +│ │ │ ├── t_main.dfm +│ │ │ └── t_main.pas +│ │ ├── dotnet +│ │ │ ├── IbsenSoftware +│ │ │ │ └── aPLib +│ │ │ │ ├── AssemblyInfo.cs +│ │ │ │ └── DllInterface.cs +│ │ │ ├── appack.cs +│ │ │ └── mk.bat +│ │ ├── masm32 +│ │ │ ├── ap.ico +│ │ │ ├── aplib.inc +│ │ │ ├── appack.asm +│ │ │ ├── appack.inc +│ │ │ ├── ctrls.asm +│ │ │ ├── file0750.bmp +│ │ │ ├── filedlgs.asm +│ │ │ ├── makeit.bat +│ │ │ ├── rsrc.rc +│ │ │ ├── tbmacros.asm +│ │ │ └── toolbar.asm +│ │ ├── python +│ │ │ └── aplib.py +│ │ ├── tmt +│ │ │ ├── aplibu.pas +│ │ │ ├── appack.pas +│ │ │ ├── apunpack.pas +│ │ │ └── makeit.bat +│ │ └── vpascal +│ │ ├── aplib.def +│ │ ├── aplibu.pas +│ │ ├── aplibud.pas +│ │ ├── appack.pas +│ │ ├── apunpack.pas +│ │ ├── descript.ion +│ │ ├── make_exe.cmd +│ │ ├── test_exe.cmd +│ │ └── vpc.cfg +│ ├── doc +│ │ ├── aPLib.chm +│ │ └── html +│ │ ├── _sources +│ │ │ ├── acknowledgements.txt +│ │ │ ├── changes.txt +│ │ │ ├── compression.txt +│ │ │ ├── decompression.txt +│ │ │ ├── general.txt +│ │ │ ├── index.txt +│ │ │ └── license.txt +│ │ ├── _static +│ │ │ ├── ajax-loader.gif +│ │ │ ├── basic.css +│ │ │ ├── comment-bright.png +│ │ │ ├── comment-close.png +│ │ │ ├── comment.png +│ │ │ ├── default.css +│ │ │ ├── doctools.js +│ │ │ ├── down-pressed.png +│ │ │ ├── down.png +│ │ │ ├── file.png +│ │ │ ├── grey.css +│ │ │ ├── jquery.js +│ │ │ ├── minus.png +│ │ │ ├── plus.png +│ │ │ ├── pygments.css +│ │ │ ├── searchtools.js +│ │ │ ├── sidebar.js +│ │ │ ├── underscore.js +│ │ │ ├── up-pressed.png +│ │ │ ├── up.png +│ │ │ └── websupport.js +│ │ ├── acknowledgements.html +│ │ ├── changes.html +│ │ ├── compression.html +│ │ ├── decompression.html +│ │ ├── general.html +│ │ ├── genindex.html +│ │ ├── index.html +│ │ ├── license.html +│ │ ├── objects.inv +│ │ ├── search.html +│ │ └── searchindex.js +│ ├── example +│ │ ├── appack.c +│ │ ├── appack.exe +│ │ ├── make_bcc.bat +│ │ ├── make_dll.bat +│ │ ├── make_pc.bat +│ │ ├── make_vc.bat +│ │ ├── make_wat.bat +│ │ ├── makefile.cyg +│ │ ├── makefile.elf +│ │ └── makefile.mgw +│ ├── lib +│ │ ├── coff +│ │ │ └── aplib.h +│ │ ├── coff64 +│ │ │ └── aplib.h +│ │ ├── dll +│ │ │ └── aplib.h +│ │ ├── dll64 +│ │ │ └── aplib.h +│ │ ├── elf +│ │ │ └── aplib.h +│ │ ├── elf64 +│ │ │ └── aplib.h +│ │ └── omf +│ │ └── aplib.h +│ ├── readme.txt +│ └── src +│ ├── 32bit +│ │ ├── crc32.asm +│ │ ├── depack.asm +│ │ ├── depackf.asm +│ │ ├── depacks.asm +│ │ ├── scheck.asm +│ │ ├── sdepack.asm +│ │ ├── sgetsize.asm +│ │ └── spack.asm +│ ├── 64bit +│ │ ├── crc32.asm +│ │ ├── depack.asm +│ │ ├── depackf.asm +│ │ ├── depacks.asm +│ │ ├── scheck.asm +│ │ ├── sdepack.asm +│ │ ├── sgetsize.asm +│ │ └── spack.asm +│ ├── depack.c +│ ├── depack.h +│ ├── depacks.c +│ └── depacks.h +├── common.h +├── main.cpp +├── masm32 +│ ├── ml.err +│ ├── ml.exe +│ ├── windows.inc +│ └── winextra.inc +├── packer.cpp +├── packer.h +├── petoy.sln +├── petoy.vcxproj +├── petoy.vcxproj.filters +├── shell.asm +└── shell.h + +``` + +`LICENSE`: + +``` +MIT License + +Copyright (c) 2016 elemeta + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + +``` + +`README.md`: + +```md +# PE Toy + +## 程序目录 + +| 名称 | 用途 | +|----------------|-------------------| +| common.h | 一些工具函数 | +| main.cpp | main函数 | +| packer.{h,cpp} | 处理加壳的主要代码 | +| shell.h | 外壳的数据接口的定义 | +| shell.asm | 外壳的代码(MASM汇编) | +| masm32 | MASM编译器 | + + + + +## 外壳部分的布局 + + +| .petoy段 | +|------------| +| OEP | +| 壳的输入表 | +| 壳的代码部分 | +| 壳的数据部分 | + + +elemeta, elemeta47 at gmail dot com. + +``` + +`aPLib/contrib/16bit/deppack.nas`: + +```nas +;; +;; aPLib compression library - the smaller the better :) +;; +;; NASM 16bit assembler depacker example +;; +;; Copyright (c) 1998-2009 by Joergen Ibsen / Jibz +;; All Rights Reserved +;; +;; http://www.ibsensoftware.com/ +;; +;; -> 16bit by Metalbrain (metalbrain_coder@gmx.net) +;; + + org 256 + + cld ;Clear direction flag for safety + mov ah,4ah ;Modify memory block size (on start, + ; the .COM program is given all free + ; memory, but this could be less than + ; the needed amount (162K). As a nice + ; side effect, we are freeing unused + ; memory, but who cares under DOS? + mov bh,41 ;Number of needed paragraphs + ; (rounded up) + int 33 ;Resize + jnc not_error008 ;Continue if no error + call final ;Exit with message below + db "Not enough memory$" +not_error008 mov si,129 ;Arguments from PSP start here + pop cx ;CX=0 (useful later) + mov di,testitnow ;This will be called quite a few times + ; and later will be used to place + ; variables + mov bx,rub+1 +space1 mov dx,si ;Keep it start infile name in DX + call di ;Parse... + jz space1 ;Search for non-space +space2 call di ;Keep parsing + jnz space2 ;Till a space appears + mov [si-1],dh ;Make infile ASCIIZ +space3 push si ;Keep start outfile name in stack + call di ;Still parsing + jz space3 ;Now search a non-space again + mov [unitoutfile],al;Set unit for temporal outfile +space4 lodsb ;Final parse + cmp al,":" ;Is there's a unit in outfile name? + jnz nounit ;No-> skip next + sub byte [bx],bh ;Yes-> temporal outfile includes unit +nounit cmp al," " + ja space4 ;Space or below means end of filename + mov [si-1],dh ;Make ASCIIZ this one too + mov ax,3d00h ;Function to open infile + int 33 ;Open infile + jnc not_error001 ;Continue if no error + call final ;Exit with message below + db "Can't open infile$" +not_error001 stosw ;Store infile handle at handlein + + pushad + mov dx,header + mov cl,8 ;Header first part + mov bh,3fh + xchg ax,bx + int 33 ;Read 1st part header. No error check + cmp dword [header],'AP32' + jz not_error009 ;Test for bad infile #3: Header + call final +err004 db "Bad infile$" +not_error009 mov cx,[headersize] + sub cx,byte 8 + mov ah,3fh + int 33 ;Read 2nd part header + popad + mov dx,[bx] ;Get outfile name position + mov ah,3ch + int 33 ;Create temporal outfile: "ÿ" + jnc not_error007 ;Continue if no error + call final ;Exit with message below + db "Can't open temporal outfile$" +not_error007 stosw ;Store temporal outfile handle + xchg ax,dx ;And place it in DX + xor ebx,ebx ;EBX=0 + pop si ;Pop outfile name address from stack + mov bh,8 ;BX=inbuff + mov sp,bx ;Set stack before inbuff + mov ax,es ;Segment + add ax,bx ; +32K in AX + imul eax,eax,byte 16 ;32 bit start of segment address+32K + add eax,ebx ;EAX=freemem 32 bit address + push si ;Push again outfile name address + mov dl,128 ;Reset bit counter in DL, and DX=0080h + stosd ;Set EAX at freemem32 + stosd ; and limit32 + add [di-2],byte 2 ;Now limit32=freemem32+128K + xchg eax,edi ;Set freemem32 at EDI + mov esi,edi ;And ESI + ;Starting point for DEPACK16 + push edi ;Store freemem32 +literal call getesi ;Copy a byte from [esi] to [edi] +putedi_nexttag call putedi2 + mov dh,1 ;Set lastwasmatch marker in dh + call newtest ;Here EAX=0 + jmp short nexttag ;Decode next tag bits... + +normalcodepair xchg ax,cx ;High part of distance in AX + dec ax ;Subtract 1. Min value is 0 + shl eax,8 ;EAX=00dddd00h + call getesi ;Fill distance in AL + call getgamma ;Take gamma encoded ECX + cmp eax,32000 + jae domatch_with_2inc ;Above 31999: ECX+=2 + cmp ah,5 + jae domatch_with_inc ;1279 origin pointer + cmp esi,[freemem32] ;Test for bad infile #1: Limit crossed + jc near badinfile ;Exit if error +repmovsb call dontread ;getesi without checking limit + call putedi2 ;and with putedi completes the movsb + mov ah,128 ;Here EAX=32768 (in case of writing + call newtest ; data, update esi too) + loop repmovsb,ecx ;Do it ecx times + pop esi ;Recover read pointer +nexttag call getbit ;Get a bit + jnc literal ;0: literal, go for it + xor ecx,ecx ;Clear ECX + cbw ;and AX (AX was 0 or 32K) + call getbit ;Get another bit + jnc codepair ;10: codepair, go for it + call getbit ;Get yet another one + jnc shortmatch ;110: shortmatch + mov dh,1 ;Set lastwasmatch marker in dh + inc cx ;CX=1 + mov al,16 ;Set marker bit +getmorebits call getbit ;Get a bit + adc al,al ;Set it in AL + jnc getmorebits ;Do it till marker is out (4 times) + jnz domatch ;111xxxx: continue, AL has distance + jmp short putedi_nexttag ;1110000: Put a zero byte + +codepair call getgamma ;Get gamma encoded first part of + ; distance in CX. Min value is 2 + shr dh,1 ;Fix distance taking lastwasmatch + sbb cx,byte 1 ; marker in consideration + jnz normalcodepair ;If not zero, it's a normal codepair + + push word domatch_lastpos ;Get gamma encoded lenght in ECX + ; then jump to domatch_lastpos (use + ; last distance) + +getgamma inc cx ;First bit is always 1 +getgammaloop call getbit ;Get next bit + adc ecx,ecx ;Put it in ECX + call getbit ;Get gamma bit + jc getgammaloop ;If it's 1, continue growing ECX + ret + +shortmatch call getesi ;Get a byte + shr ax,1 ;Distance = AL/2, Lenght in carry flag + jz donedepacking ;If zero, end packing + adc cx,cx ;Lenght = 1 or 0 + jmp short domatch_with_2inc ; Decode with lenght 2 or 3 + +getbit add dl,dl ;Get a tag bit + jnz stillbitsleft ;If zero, that bit was the marker, so + ; we must read a new tag byte from + xchg ax,dx ;\ the infile buffer + call getesi ; >Emulate mov dl,[esi], inc esi + xchg ax,dx ;/ + stc ;Carry flag is end marker + adc dl,dl ;Get first bit and set marker +stillbitsleft ret ;Return with bit read in flag C + +donedepacking pop esi ;ESI=freemem32 + sub edi,esi ;And here finish DEPACK 16 + ;Now edi has the number of depacked + ; bytes left to be written + push ds ;Preserve data segment + mov ch,080h ;Write using 32K chunks to enable + ; the sign optimization + mov dx,freemem ;Flush everything from here to end +more cmp edi,ecx + ja notlast ;If EDI > 32K, write 32K bytes + mov cx,di ;If EDI <= 32K, write EDI bytes +notlast call writefile ;Write chunk + mov ax,ds + add ah,8 + mov ds,ax ;Advance 32K + sub edi,ecx ;Update number of bytes to be written + ja more ;Above zero, continue writing + pop ds ;Recover data segment + cmp dword [uncompsize],0 ; Test for bad infile #4: Is + jnz near badinfile ; number of decoded bytes the + ; specified in header? + push bx ;Keep handletmp + mov bx,[handlein] + mov ax,5700h + int 33 ;Get timestamp from infile + inc ax + pop bx ;Get handletmp + int 33 ;Set timestamp to temporal outfile + + push ds + pop es ;Set es=ds + pop dx ;Get nameout + call close_del ;Close temporal outfile and try to + ; delete the file named with our + ; outfile name, in case it exists + jnc renameit ;If that file existed and was deleted, + ; go ahead and rename the temporal one + cmp al,5 ;If it didn't exist, rename it too + jz error002b ;In case of Access denied, it must + ; be that outfile was protected, so + ; that's an error... +renameit mov ah,56h + mov di,dx + mov dx,[rub+1] + int 33 ;Rename temporal outfile to outfile + jc error002 ;Can't open outfile + push word noerr ;Final message +final push ss + pop ds ;Set a good data segment + pop dx ;Get message offset +final_dxok mov ah,9 + int 33 ;Show final message + int 20h ;Exit program +writefile mov bx,[ss:handletmp] ;Get temporal outfile handle + mov ah,40h + int 33 ;Write to temporal outfile + jc error005 ;Can't write + dec ax + js error006 ;Disk is full + ret +error002b push word err002b ;Set appropiate message + jmp short rub ;Exit erasing temporal file +error002 push word err002 ;Set appropiate message + jmp short rub ;Exit erasing temporal file +error005 push word err005 ;Set appropiate message + jmp short rub ;Exit erasing temporal file +error006 push word err006 ;Set appropiate message +rub mov dx,tmpname ;Temporal file name to be erased + push word final ;Return point to exit with error +close_del mov ah,3eh + int 33 ;Close temporal outfile + mov ah,41h + int 33 ;Delete it + ret + +getesi cmp esi,[freemem32] ; If esi is at freemem32, we must + jnz dontread ;load 32k of compressed data + mov bh,128 ;BL was 0, EBX=32K + pushad ;Keep all registers (32bit because + mov ah,3fh ; DOS function may modify EAX!!!) + mov cx,bx ;Number of bytes + mov bx,[handlein] ;Take infile handle + mov dx,inbuff ;Place to read + int 33 ;Read, AX=number of bytes read + jc error003 ;If error, go to exit +noerror003 dec ax ;Test for bad infile #2: 0 bytes read + ; (a good infile will finish and won't + ; ask for more data) + jns noerror004 ;No error, continue +badinfile push word err004 ;Set appropiate message + jmp short error004 +error003 push word err003 ;Set appropiate message +error004 mov bx,[handletmp] ;Get handle to close temporal file + jmp short rub ;Exit erasing temporal file +noerror004 popad ;Restore all registers + sub esi,ebx ;esi at beginning of buffer again +dontread push esi ;----->Emulates mov al,[esi] in 16 bit + pop bx ; / code (as mov al,[esi] gives + pop bx ; / a nasty fault) + ror bx,4 ; / + mov es,bx ; / + mov al,[es:si] ;/ + inc esi ;Update read pointer + ret + +newtest cmp edi,[limit32] ;Check if we've run out of memory + jc endtest ;NO: end test + pushad ;Keep registers + mov dx,freemem + mov ecx,32768+65536 ;CX=32K will be written first + ;ECX=96K data will be moved then + call writefile ;Write 32K of data + sub edi,ecx ;Set pointer to origin32=limit32-96K + mov esi,[freemem32] ;Output data will be moved 32K back + xchg edi,esi ;Swap source and destination pointers + +otherrepmovsb call getesi ; \ + call putedi ; >Emulates rep movsb + loop otherrepmovsb,ecx ;/ + popad ;Restore registers + sub esi,eax ;Update read pointer (sub 32K if + ; we are in the repmovsb loop) + mov ah,128 ;EAX=32K + sub edi,eax ;Update write pointer +endtest ret + +putedi2 dec dword [uncompsize] ;One less byte to be written +putedi push edi ;----->Emulate mov [edi],al in 16 bit + pop bx ; / code (as mov [edi],al gives + pop bx ; / a nasty fault) + ror bx,4 ; / + mov es,bx ; / + mov [es:di],al ;/ + inc edi ;Update write pointer + xor eax,eax ;Clear EAX +noerror000 ret +testitnow lodsb ;Parse one byte + cmp al,32 ;Is it space? + jnc noerror000 ;If valid char (above 31), return + call final ;Exit with message below + db "Usage: DEPPACK infile outfile",13,10,10 + db "infile must be an aPPACKed file",13,10 + db "wildcards are not allowed",13,10,10 + db "DEPPACK v1.1 Copyright (c) 1998-2005 by Metalbrain",13,10 + db "aPLib v0.36 Copyright (c) 1998-2005 by Jibz, All Rights Reserved$" +err005 db "Can't write temporal outfile$" +err002b db "Outfile is protected, so...",13,10 +err002 db "Can't open outfile$" +err003 db "Can't read from infile$" +err006 db "Disk full$" +noerr db "Deppackin" + db "g ok$" +unitoutfile db "c:" +tmpname db "ÿ",0 +handlein EQU testitnow +handletmp EQU testitnow+2 +freemem32 EQU testitnow+4 +limit32 EQU testitnow+8 +header EQU testitnow+12 +headersize EQU testitnow+16 +packedsize EQU testitnow+12 +packedcrc EQU testitnow+16 +uncompsize EQU testitnow+20 +uncompcrc EQU testitnow+24 + + ;Stack is between program and 2048 +inbuff EQU 2048 ;Place for 32K infile reading buffer +freemem EQU inbuff+32768 + +``` + +`aPLib/contrib/16bit/depptiny.nas`: + +```nas +;; +;; aPLib compression library - the smaller the better :) +;; +;; NASM 16bit assembler tiny depacker example +;; +;; Copyright (c) 1998-2009 by Joergen Ibsen / Jibz +;; All Rights Reserved +;; +;; http://www.ibsensoftware.com/ +;; +;; -> 16bit by Metalbrain (metalbrain_coder@gmx.net) +;; + +;;************************************************************************* +;; WARNING!!!! : New headers NOT supported. Cut 24 bytes from packed file +;; to make it work +;;************************************************************************* + + org 256 + + cld ;Clear direction flag for safety + mov ah,4ah ;Modify memory block size (on start, + ; the .COM program is given all free + ; memory, but this could be less than + ; the needed amount (162K). As a nice + ; side effect, we are freeing unused + ; memory, but who cares under DOS? + mov bh,41 ;Number of needed paragraphs + ; (rounded up) + call int_n_check ;Resize or exit if error + + pop cx ;CX=0 (useful later) + mov si,129 ;Arguments from PSP start here + mov di,testitnow ;This will be called quite a few times + ; and later will be used to place + ; variables + mov bx,tmpname+1 +space1 mov dx,si ;Keep start infile name in DX + call di ;Parse... + jz space1 ;Search for non-space +space2 call di ;Keep parsing + jnz space2 ;Till a space appears + mov [si-1],dh ;Make infile ASCIIZ +space3 push si ;Keep start outfile name in stack + call di ;Still parsing + jz space3 ;Now search a non-space again + mov [unitoutfile],al;Set unit for temporal outfile +space4 lodsb ;Final parse + cmp al,":" ;Is there's a unit in outfile name? + jnz nounit ;No-> skip next + sub byte [bx],bh ;Yes-> temporal outfile includes unit +nounit cmp al," " + ja space4 ;Space or below means end of filename + mov [si-1],dh ;Make ASCIIZ this one too + mov ax,3d00h ;Function to open infile + call int_n_check ;Try it + stosw ;Store infile handle at handlein + mov dx,[bx] ;Get outfile name position + mov ah,3ch + call int_n_check ;Create temporal outfile: "NOT OK$" + stosw ;Store temporal outfile handle + xchg ax,dx ;And place it in DX + xor ebx,ebx ;EBX=0 + pop si ;Pop outfile name address from stack + mov bh,8 ;BX=inbuff + mov sp,bx ;Set stack before inbuff + mov ax,es ;Segment + add ax,bx ; +32K in AX + imul eax,eax,byte 16 ;32 bit start of segment address+32K + add eax,ebx ;EAX=freemem 32 bit address + push si ;Push again outfile name address + mov dl,128 ;Reset bit counter in DL, and DX=0080h + stosd ;Set EAX at freemem32 + stosd ; and limit32 + add [di-2],byte 2 ;Now limit32=freemem32+128K + xchg eax,edi ;Set freemem32 at EDI + mov esi,edi ;And ESI + ;Starting point for DEPACK16 + push edi ;Store freemem32 +literal call getesi ;Copy a byte from [esi] to [edi] +putedi_nexttag call putedi + mov dh,1 ;Set lastwasmatch marker in dh + call newtest ;Here EAX=0 + jmp short nexttag ;Decode next tag bits... + +normalcodepair xchg ax,cx ;High part of distance in AX + dec ax ;Subtract 1. Min value is 0 + shl eax,8 ;EAX=00dddd00h + call getesi ;Fill distance in AL + call getgamma ;Take gamma encoded ECX + cmp eax,32000 + jae domatch_with_2inc ;Above 31999: ECX+=2 + cmp ah,5 + jae domatch_with_inc ;1279 origin pointer + cmp esi,[freemem32] ;Test for bad infile #1: Limit crossed + call finerr01 ;Exit if error +repmovsb call dontread ;getesi without checking limit + call putedi ;and with putedi completes the movsb + mov ah,128 ;Here EAX=32768 (in case of writing + call newtest ; data, update esi too) + loop repmovsb,ecx ;Do it ecx times + pop esi ;Recover read pointer +nexttag call getbit ;Get a bit + jnc literal ;0: literal, go for it + xor ecx,ecx ;Clear ECX + cbw ;and AX (AX was 0 or 32K) + call getbit ;Get another bit + jnc codepair ;10: codepair, go for it + call getbit ;Get yet another one + jnc shortmatch ;110: shortmatch + mov dh,1 ;Set lastwasmatch marker in dh + inc cx ;CX=1 + mov al,16 ;Set marker bit +getmorebits call getbit ;Get a bit + adc al,al ;Set it in AL + jnc getmorebits ;Do it till marker is out (4 times) + jnz domatch ;111xxxx: continue, AL has distance + jmp short putedi_nexttag ;1110000: Put a zero byte + +codepair call getgamma ;Get gamma encoded first part of + ; distance in CX. Min value is 2 + shr dh,1 ;Fix distance taking lastwasmatch + sbb cx,byte 1 ; marker in consideration + jnz normalcodepair ;If not zero, it's a normal codepair + + push word domatch_lastpos ;Get gamma encoded lenght in ECX + ; then jump to domatch_lastpos (use + ; last distance) + +getgamma inc cx ;First bit is always 1 +getgammaloop call getbit ;Get next bit + adc ecx,ecx ;Put it in ECX + call getbit ;Get gamma bit + jc getgammaloop ;If it's 1, continue growing ECX + ret + +shortmatch call getesi ;Get a byte + shr ax,1 ;Distance = AL/2, Lenght in carry flag + jz donedepacking ;If zero, end packing + adc cx,cx ;Lenght = 1 or 0 + jmp short domatch_with_2inc ; Decode with lenght 2 or 3 + +donedepacking pop esi ;ESI=freemem32 + sub edi,esi ;And here finish DEPACK 16 + ;Now edi has the number of depacked + ; bytes left to be written + push ds ;Preserve data segment + mov ch,080h ;Write using 32K chunks to enable + ; the sign optimization + mov dx,freemem ;Flush everything from here to end +more cmp edi,ecx + ja notlast ;If EDI > 32K, write 32K bytes + mov cx,di ;If EDI < 32K, write EDI bytes +notlast call writefile ;Write chunk + mov ax,ds + add ah,8 + mov ds,ax ;Advance 32K + + sub edi,ecx ;Update number of bytes to be written + ja more ;Above zero, continue writing + pop ds ;Recover data segment + push ds + pop es ;Set es=ds + pop dx ;Get pointer to outfile name + push dx ;store again + call close_del ;Close temporal outfile and try to + ; delete the file named with our + ; outfile name, in case it exists + jnc renameit ;If that file existed and was deleted, + ; go ahead and rename the temporal one + cmp al,5 ;If it didn't exist, rename it too + jz finerr ;But if error was for other reason, + ; exit with NOT OK +renameit mov ah,56h + pop di ;Outfile name +tmpname mov dx,notok + call int_n_check ;Rename temporal outfile to outfile + mov dl,noerr-512 ;Final message: OK +final_dxok mov ah,9 + int 33 ;Show final message + int 20h ;Exit program + +writefile mov bx,[ss:handletmp] ;Get temporal outfile handle + mov ah,40h + call int_n_check ;Write + dec ax + jns not_finerr ;If disk isn't full there's no error +finerr mov dx,[tmpname+1] ;Temporal outfile will be deleted + push word final_dxok +close_del mov ah,3eh + int 33 ;Close temporal outfile + mov ah,41h + int 33 ;Delete outfile (when called to + ; close_del) or temporal outfile + mov dl,notok-512 ;Error message: NOT OK +not_finerr ret ; return or go to final_dxok + +getesi cmp esi,[freemem32] ; If esi is at freemem32, we must + jnz dontread ;load 32k of compressed data + mov bh,128 ;BL was 0, EBX=32K + pushad ;Keep all registers (32bit because + mov ah,3fh ; DOS function may modify EAX!!!) + mov cx,bx ;Number of bytes + mov bx,[handlein] ;Take infile handle + mov dx,inbuff ;Place to read + call int_n_check ;Read and exit if error + dec ax ;---Test for bad infile #2: 0 bytes + popad ;\/ read (a good infile will finish + js finerr ;/\ and won't ask for more data) + ; >Restore registers + sub esi,ebx ;esi at beginning of buffer again +dontread push esi ;----->Emulates mov al,[esi] in 16 bit + pop bx ; / code (as mov al,[esi] gives + pop bx ; / a nasty fault) + ror bx,4 ; / + mov es,bx ; / + mov al,[es:si] ;/ + inc esi ;Update read pointer + ret + +int_n_check int 33 ;Perform operation (depends on AH) +finerr01 jc finerr ;If it failed, exit with NOT OK + ret + +getbit add dl,dl ;Get a tag bit + jnz stillbitsleft ;If zero, that bit was the marker, so + ; we must read a new tag byte from + xchg ax,dx ;\ the infile buffer + call getesi ; >Emulate mov dl,[esi], inc esi + xchg ax,dx ;/ + stc ;Carry flag is end marker + adc dl,dl ;Get first bit and set marker +stillbitsleft ret ;Return with bit read in flag C + +newtest cmp edi,[limit32] ;Check if we've run out of memory + jc endtest ;NO: end test + pushad ;Keep registers + mov dx,freemem + mov ecx,32768+65536 ;CX=32K will be written first + ;ECX=96K data will be moved then + call writefile ;Write 32K of data + sub edi,ecx ;Set pointer to origin32=limit32-96K + mov esi,[freemem32] ;Output data will be moved 32K back + xchg edi,esi ;Swap source and destination pointers + +otherrepmovsb call getesi ; \ + call putedi ; >Emulates rep movsb + loop otherrepmovsb,ecx ;/ + popad ;Restore registers + sub esi,eax ;Update read pointer (sub 32K if + ; we are in the repmovsb loop) + mov ah,128 ;EAX=32K + sub edi,eax ;Update write pointer +endtest ret + +putedi push edi ;----->Emulate mov [edi],al in 16 bit + pop bx ; / code (as mov [edi],al gives + pop bx ; / a nasty fault) + ror bx,4 ; / + mov es,bx ; / + mov [es:di],al ;/ + inc edi ;Update write pointer + xor eax,eax ;Clear EAX + ret +unitoutfile db "c:" +notok db "NOT " +noerr db "OK$",0 + +testitnow lodsb ;Parse one byte + cmp al,32 ;Is it space? + jc finerr01 ;Below space: bad arguments > exit + ret + +handlein EQU testitnow +handletmp EQU testitnow+2 +freemem32 EQU testitnow+4 +limit32 EQU testitnow+8 + ;Stack is between program and 2048 +inbuff EQU 2048 ;Place for 32K infile reading buffer +freemem EQU inbuff+32768 + +``` + +`aPLib/contrib/16bit/history.txt`: + +```txt +Porting aPLib decompresion routines by Jibz to 16 bits by METALBRAIN + + I haven't Internet conexion at home, so I can only connect from my + University from Monday to Friday (only a short while in the morning, except + Mondays, when I can also connect from 14:00 to 16:00), and some weekends + from a friend's house (in summer is much worse). + + +28-10-98 to 12-11-98 + I wanted to use aPLib v0.17b in my small game KOM, but all code is 32 + bit, and KOM is a 16 bit project, so after several failing tests, I started + writing 16 bit version of NASM assembly routines, cleaning all C connection + protocol code and replacing string instructions and those that accessed + memory through [esi] and [edi] with 16 bit emulation routines. I started + putting them in smalls programs with fixed names for infile and outfile. + After fixing a bug, they started to work. Then I got aPLib v0.18b, and + updated my routines, and kept improving my test programs. Then finally + came out aPlib v0.19b, so I updated my routines once again, and started to + work more seriously, in order to offer my 16 bit port to Jibz. + +14-11-98 Saturday + Finally wrote a depacker capable of reading filenames from arguments. + Infile can't be greater than 64Kb, and no test is made about memory, so if + outfile is too big, it could collapse memory. My deppacker broke a file, + and I couldn't find any bug on it. I made some tests and found out a bug in + aPPACK itself. Oops. It also happens to previous versions. Jibz must be + informed about it... + +15-11-98 Sunday + Cleaned the code a bit, eliminating some redundances. + +16-11-98 Monday > + I send Jibz first version of DEPACK and DEPPACK (948 bytes), and + also tell him about aPPACK bug. + +20-11-98 > Friday + I got response from Jibz. He has found a bug in my routines, and he + has optimized both DEPACK and DEPPACK a lot. I look at his code and feel + really dumb. Some optimizations are so obvious... + +22-11-98 Sunday + I make first version of DEPPTINY. It's the same that DEPPACK, but + without error nor usage messages. My first goal was to make it under 700 + bytes (that was the size of the tinyest decompressor I knew before mine + arrived), and as firstly I got it in 519, I played a bit to make it under + 512 bytes (just one diskette sector). It ends up being 507(?) bytes long. + +23-11-98 Monday > + I send Jibz first version of DEPPTINY (507). At home I start coding + next DEPPACK version, featuring use of all available memory to be able to + uncompress any file which fits in low memory. + +24-11-98 > Tuesday + Jibz sent me a very optimized version of DEPPTINY (437). I can't + believe my eyes. He wiped away 70 bytes!. I'm really amazed. And code is + also cleaner, as he removed my dirty self-modifying code trick. I study his + optimizations. Curious. He got rid of most variables. I look at the code + and I'm able to clean 6 bytes from it. Now I feel great, my spirit rises + and continue coding v0.2 of DEPPACK, but I can't get it working. + +25-11-98 Wednesday > + I send Jibz my optimization of DEPPTINY (431) and I asked him about + my problem (thought I wasn't too clear about it). In the evening I study + the code debugging it and fix my problem alone, with another dirty + self-modifying trick. + +26-11-98 > Thursday > + I recieve Jibz's last work on DEPPTINY. I send him the very first + version of DEPPACK v0.2 . At home, I look his DEPPTINY. Incredible!. He + did it again! He killed 32 more bytes, leaving it in 398. Now some + optimizations are really weird (such as order modification), but they work + perfectly. + +27-11-98 Friday to 29-11-98 Sunday + I port some optimizations from last DEPPTINY to DEPPACK. I think + he'll send me something next Monday, so I put NASM, aPACK, and some test + files in my diskette, together with last DEPPACK. + +30-11-98 > Monday > + As I expected, Jibz has played with DEPPACK v0.2, optimizing it (he + cleaned 3 bytes from DEPACK core) and has eliminated my self-modifying + part (he really seems to hate them), but he hasn't implemented + optimizations from last DEPPTINY, leaving them to me. Easy work, as it was + already done. I spent half an hour with it and apply his last optimizations + on my last version of DEPPACK (876), and send it back to him. + + 1-12-98 Tuesday + I apply the optimization of the core to DEPACK and DEPPTINY. Works + perfectly, and now it's only 395. + + 4-12-98 Friday + I haven't recieved nothing yet, but I can see in his page that he's + working in aPLib v0.20b. A long weekend awaits me, because there's no + class next Monday and Tuesday. + + 6-12-98 > Sunday > + I spent morning with a friend, and I could connect a little while. + The response was there, so I took it. He tells me he's porting my routines + to 16 bit C compilers, Borland ones are working and others are on the way. + In the afternoon I look carefully last optimizations applied to DEPPACK + (871): very instructive. They save a lot of bytes to uncompressed program, + but after compresion he only won 6 bytes. I feel inspired and remove 7 + bytes to uncompressed program, that become a gain of 16 bytes after aPACK + compression. I feel very proud because one of the bytes I've killed was + inside DEPACK core, so in the evening I send Jibz the whole pack from + other friend's home: DEPACK, DEPPACK (855) and DEPPTINY (394). I thought + they were going to be last optimizations before aPLib v0.20b release, but + I was completly wrong. + +14-12-98 Monday + I've finished classes today, and there's been no feedback from Jibz + yet, but I must go to University on Wednesday and Friday. Managed to cut + 2 bytes from DEPPTINY. + +15-12-98 Tuesday + Got an idea: Cleaned 4 bytes from DEPPTINY and 2 from DEPPACK. + +16-12-98 Wednesday > + Got another idea: Cleaned 2 bytes from DEPACK core, so I send him + again the whole package: DEPACK, DEPPACK (851), and DEPPTINY (386), not + knowing if it will be there in time or not... + +18-12-98 Friday + Went to University, but computer rooms where closed. AAAAAARGH! + +20-12-98 > Sunday + Finally could connect, and catch Jibz's response. A new smaller + version of aPACK leaves DEPPACK in 815 bytes. Great! I cut 4 more bytes + from DEPPTINY and 2 from DEPPACK. Start coding DEPPACK 0.3b, capable of + decompressing files of any size. I thought that "57300 bytes lookback" + meant that only 57300 previous bytes were needed to unpack, but it I tried + to use 64K and it didn't work at all. I spent the night trying to find + bugs, and was not sure if it was possible to do what I wanted to do. At + 5 a.m., tired and frustraded I leave it for impossible. + +21-12-98 Monday + I debug the depacking of some files to see the values it can take. + I set the limit in 128K and finally progressive-write got running! I make + progressive-read (much easier), and test the resultant DEPPACK v0.3 in + some extreme files. I fix some bugs and down the limit to 96K, and it + still works. I make the DEPPTINY v0.3 from this, but it's too big, and + can't get it under 512 bytes, so I'm leaving it with 582 bytes. + +22-12-98 Tuesday + I clean the code a little, eliminate all self-modifying parts and + optimize a bit. As DEPPTINY v0.3 can't fit a diskette sector, I make + DEPPTINY v0.2, and it's 439 bytes long (the old 382 bytes long DEPPTINY + was still first version, with 64K infile limit). + +23-12-98 Wednesday > + Fixed one small bug. I'll send him new versions of DEPPACK v0.3 + and DEPPTINY v0.2 and v0.3 + + 7-01-99 Thursday + Back to classes, computer rooms closed due to remote-boot server + is down. I wanna check mail! + +12-01-99 > Tuesday + I see a quite old message, he has managed to cut the size of + DEPPTINY v0.3 down to 550 bytes. Maybe it's possible to fit under 513 + bytes, but still I doubt it. He also sent me a pre-release BETA of + aPACK. + +13-01-99 Wednesday > + As I found a bug on tested aPACK, I wrote Jibz about it and telling + him I'm about to start my exams, so he shouldn't wait for my new DEPPTINY + version to release aPLib. + +15-01-99 > Friday > + aPLib 0.20b has finally been released. Jibz has adapted my code to + his syntax, and re-added the C conexion parts. No problem about it, after + all, aPLib is HIS product, and this way the format is more regular. + There's also a TASM version which work with BC. Examples still almost + unchanged, he just updated the date from 1998 to 1998-99 + But to my nasty surprise, the adapted routines are outdated, and my + last core optimizations (3 bytes) were not added. I add them and also short + some jumps in TASM version. I send corrections to him, but I'm not sure if + he'll update it in v0.20b or in next release... + +17-01-99 Sunday + Can't resist the temptation. Take a look on DEPPTINY. Kill 9 bytes. + Now it's 541. + +18-01-99 Monday > + Send new DEPPTINY to Jibz. + +19-01-99 > Tuesday + AAAAARRGH! He did it! Managed to reduce 29 bytes, leaving DEPPTINY + with 512. Hurra! The only-one diskette sector size has been reached! This + guy is really incredible... And core size has been reduced 5 more bytes... + +27-01-99 Wednesday + Oooops! DEPPTINY is buggy... It seems that last optimizations where + a little bit too agressive. Urg! it's my fault!!!. It was my last 9 bytes + killed!. Can't believe it and can't understand why it fails. Let's debug + it... Ok I found my bug. Hop! Fixed. No penalty bytes. It's still 512. + +28-01-99 Thursday > + Send bugfixed DEPPTINY to Joergen. + +15-02-99 Monday + It has taken me three months to realize that DEPPACK and DEPPTINY + were supporting drives and paths from the begining, despite what DEPPACK + says in the usage message. How could I be SO stupid. + +23-02-99 Tuesday + Started porting last DEPPTINY optimizations to DEPPACK. It's getting + harder than I thought. Killed 1 byte on DEPPTINY > 511. + +24-02-99 Wednesday > + Send the 511 one... Instead of looking to all optimizations and put + and adapt the ones I can to DEPPACK, I've grown a new DEPPACK from last + DEPPTINY, adding the error messages, but it can't handle "bad infile" + detection as it was done with previous DEPPACK. It fails on the same way + of DEPPTINY, and I'm not sure why DEPPTINY fails anyway... It's driving + me insane!!! + +25-02-99 Thursday > + Send the new non perfect DEPPACK to Jibz. Let's see if he can find + something about the mysterious bug. + + 1-03-99 Monday + Kill another byte from DEPPTINY > 510. Gonna test it. Arg! Another + pretty bug! Let's see... DEPPACK works right... 512-DEPPTINY works right + 511-DEPPTINY fails... Strange. Oh, now I've seen it... Bugfixed. Ported + the 5 bytes core optimizations to DEPACK16 routines, and cleaned 3 bytes + from C connection part from them. + + 3-03-99 Wednesday > + Send the bugfixed 510 DEPPTINY. + + 8-03-99 Tuesday > + Removing those 3 bytes from C connection part wasn't such a good + idea, but 1 of them at least can be safely removed. Re-send the non + perfect DEPPACK. + + 9-03-99 > Wednesday + Jibz spent 3 bytes to make DEPPTINY a bit safer (it was assuming + that high part of ESP was always 0), and removed 6 more bytes from it. + Now it's only 507, and better than previous ones. I think we could also + spend one more byte to clear the direction flag, leaving it with 508. + +11-03-99 Friday > + Send the 508 one and this updated history till the entry before this + one :-) + +16-03-99 Tuesday + Ported the last optimizations to my own C-less version of DEPACK16. + Started to look again at DEPPACK. Let's start from old DEPPACK instead of + growing it from DEPPTINY. I'm checking the good behaviour of the whole + thing with every bit changed. It's a really frustrating job. + +17-03-99 Wednesday + I've isolated 3 test versions of DEPPACK, one of them detects the + "bad infile" in the test file, another gives always the same result and + the last one produces different results depending of previous memory + state. Still I can't understand why it happens. + +18-03-99 Thursday > + Send the test files to Jibz. Let's see if we can find out what the + hell is happening together. + +21-03-99 Sunday + I've finally find out a possible solution (with expensive 9 bytes + fix) to detect bad infiles. Seems to work well. Ported it to the "grown + from DEPPTINY" one. + +22-03-99 Monday > + Send the fix to Jibz. + +24-03-99 Wednesday + Ported the fix to DEPPTINY, removing another test to keep it under + 512 (actually 511). Found a bug in DEPPACK Jibz advised me about a while + ago. Let's debug it once again. Fixed. Let's make a major test of + everything. Ooopss!! First file tested: new bug found. This one crashes + the system, for both brand-new DEPPACK and DEPPTINY. Seems to happen when + saving last part. Let's debug it again. Ok, fixed too. + +25-03-99 Thursday > + Send everything... Some files were corrupted, and I'm told that + current version is 0.22 instead of 0.21. Make the changes and resend it + all. + +26-03-99 Friday + It seems that a really strange bug now happens only under DOS and + not under Windows, corrupting last part of a big test file. This version + seems doomed. + + 6-04-99 Tuesday + 3 more bytes from DEPPACK has been removed. Tomorrow I'll send it + +27-04-99 Tuesday > + Send DEPPACK and DEPPTINY to aPACK mail-list to see if someone + knows what is happening. + +26-05-99 > Wednesday + aPLib 0.22b has finally been released. As it happened with 0.20, + some files aren't updated. Jibz didn't respond about the strange bug when + I asked him information in the mail-list, and there's no reference about + it in the release. Maybe it wasn't DEPPACK problem after all. Tomorrow + I'll send him newer versions of updated files. + +28-05-99 > Friday > + I've finally sent the updated files, and a silent update with those + files has been made in Jibz's homepage. + + 1-06-99 > Tuesday + Oleg Prokhorov has found the famous bug. Microsoft fault, because: + wasn't DOS supposed to be a 16 bit O.S.? Then why the hell is it + corrupting the high part of eax when calling an API function? The fix + cost 2 bytes for each version, so it makes DEPPTINY grow to 513 (arg!). + + 3-06-99 Thursday + I think we should sacrifice again the cld intruction in DEPPTINY + to keep it in 512 + +13-07-99 Tuesday + I've found 2 small mistakes in the files I sent for the updated + version. DEPACK16.NAS claims to be v0.21b, and DEPACK16.ASM has a + "adc ecx, ecx" instead the "adc cx,cx" it should have. (So TASM users + get a 1 byte bigger version than NASM ones). Removed 8 bytes from + DEPPACK. Now it's 954/878 bytes long. + +15-07-99 Thursday > + Send everything + +20-07-99 > Tuesday + Jibz has managed to cut 11 bytes from DEPPTINY!!!! Of course cld + is welcomed again, leaving it in 502. + +25-07-99 Sunday + Ported Jibz's last optimizations to DEPPACK (941/873) and source + codes, and added back the missing bad infile test to DEPPTINY (506). + Oops! I changed the wrong "adc ecx,ecx" to "adc cx,cx", fixed. Tomorrow + I'll send it. + + 2-09-99 Thursday + Removed 1 byte from DEPPACK (940/872) + +22-11-99 Monday + 3 bytes removed from DEPPTINY (503: Getting near the 500 barrier...) + and DEPPACK (937/833 -> Using Chut's 4C, algorithm 02). + +24-11-99 Thursday + The new 4C-02 v1.01 leaves DEPPACK at 832. + +28-11-99 Monday + The updated 16 bit depackers finally appear at Jibz's homepage. + +29-02-00 Tuesday + Removed 2 more bytes from DEPPTINY (501) and DEPPACK (935/827 -> + Using Chut's 4C-02 version 1.00 alpha). Start commenting DEPPTINY a bit + more... + + 2-03-00 Thrusday + Removed another byte from both (500, 934/826). + + 4-03-00 Saturday + And one more (499!, 933/826). I'm thinking about performing a + memory test to check you actually have those 162K needed to run the + programs. I guess 13 bytes are more than enough for DEPPTINY. + +10-03-00 Friday + Removed 2 more bytes from both again (497,931/822). + + 3-04-00 Monday + Removed 2 VERY evident do-nothing bytes from DEPPACK (929/821). + + 4-04-00 Tuesday > + Added memory check (7 bytes for DEPPTINY (504), 29 for DEPPACK + (962/848)). Continue adding comments to DEPPTINY... and put'em in DEPPACK + too. Now I feel it's small, safe and clear enough to raise the version to + v0.9 (nearly perfect?). + + 5-04-00 > Wednesday + Jibz cutted 2 bytes from core, and 6 more from DEPPACK's syntax + text, leaving sizes of 502 for DEPPTINY and 954/841 for DEPPACK. Also, + aPLib's version number has been increased to v0.26b. + +25-04-00 Tuesday + aPLib 0.26 has been released. + + 8-05-00 Monday > + 1 byte removed from core. One bug detected in TASM version of + DEPACK16.ASM + +14-05-00 Sunday + Removed another byte from DEPPTINY (500). + +23-05-00 Tuesday > + Removed another byte from both DEPPTINY (499) and DEPPACK (952/836). + My mail server has changed from bart to aluesi, so my email is now: + + metalb@aluesi.us.es + + 2-07-00 Sunday + Removed another byte from both DEPPTINY (498) and DEPPACK (951/836) + + 3-07-00 Monday > + Another one! (497,950/831) + + 8-07-00 Saturday + Another one! (496,949/831) + +14-10-00 Saturday + BUGFIX: Up till now, the depackers didn't work with a drive for + outfile. I've been able to fix this, and costed 17 bytes for DEPPTINY + (513, aargh! CLD sacrifice again?). aPPACK also suffers from this bug. + +15-10-00 Sunday + No sacrifice. I removed one more byte -> 512!. Applied bugfix to + DEPPACK (967/858). Version raised to v0.99 (now, I will just add timestamp + preservation for v1.00, only for DEPPACK, as DEPPTINY can't handle any + more code). + +19-10-00 Thrusday > + Added timestamp preservation to DEPPACK (983/864). Version raised + to v1.0 . Next improvement: long filenames support? + +27-10-00 Friday > + Removed 9 bytes from DEPPACK (974/851), and 7 from DEPPTINY (505). + +29-10-00 Sunday > + Removed 4 more bytes from DEPPTINY (501) and 7 from DEPPACK + (967/851 (Hmmm, no gain after compression). Now the timestamp preservation + nearly fits in DEPPTINY!... 3 bytes left to be removed to add it. + +23-02-01 > Friday + Jibz sent me a beta version of new aPLib 0.34, and asked me to + update my depackers, because the encoding method has changed, and also + the aPPack program has added a header to the files. Well, it will take + just a few bytes to update the decode routine, so it would fit in + DEPPTINY, but the header adds even more bytes, so I feel I can't fit it + under 512, so I'll discontinue development of DEPPTINY and concentrate + just on DEPPACK. But perhaps a headerless DEPPTINY will be included for + anyone who wants to see the last optimizations. + +25-02-01 Sunday + Updated the decoding routine. Just 10 bytes. It works cutting the + first 8 bytes from new packed files. DEPPTINY is ready. + +28-02-01 Wednesday > + Added header support, of course including more tests for bad infile + detection based on header. It makes 1023/903 for DEPPACK. Version raised + to 1.1 . Version 1.2 will probably include partial long filenames support. + +19-10-01 > Friday + Received a new beta of aPLib 0.34. Header size has grown from 8 to + 24 bytes, adding CRC info and info about packed file. + +22-10-01 Monday > + Made a few changes to DEPPACK to support new headers, but new tests + using CRCs and size of packed file are not added... yet!. No size penalty. + +24-10-01 Wednesday > + DEPPACK now reads the header in two steps, to skip the header + whatever it's size is, making it compatible with future aPPack versions. + This costs a few bytes (1034/913). + +``` + +`aPLib/contrib/16bit/makeit.bat`: + +```bat +@ECHO OFF +ECHO --- Building aPLib 16bit NASM depacker examples --- +ECHO. + +call nasm deppack.nas -o deppack.com +call nasm depptiny.nas -o depptiny.com + +``` + +`aPLib/contrib/AppleII/apdstsrc.s`: + +```s +;aPLib data decompressor for Apple II +;Peter Ferrie (peter.ferrie@gmail.com) +;assemble using ACME +;dstpakoff ;packed data offset + sta src+1 + lda #orgoff ;original unpacked data offset + sta dst+1 + !if (>(oep-1)=>orgoff) { ;oep = original entrypoint + pha + } else { + lda #>(oep-1) + pha + } + lda #literal + sta A1H + lda #pakoff+paksize ;packed data offset + packed data size + sta A2H + lda #pakoff + sta A2H + lda #hioff + sta A4H + lda #pakoff+paksize ;packed data offset + packed data size + sta src+1 + lda #orgoff+orgsize ;original unpacked data offset + original unpacked size + sta dst+1 + !if (>(oep-1)=>(orgoff+orgsize)) { ;oep = original entrypoint + pha + } else { + lda #>(oep-1) + pha + } + lda # Decompression) ... + ' DECLARE FUNCTION aP_depack (BYVAL src AS BYTE PTR, BYVAL dst AS BYTE PTR) AS DWORD + ' DECLARE FUNCTION aP_depack_safe (BYVAL src as BYTE PTR, BYVAL srclen AS DWORD, BYVAL dst AS BYTE PTR, BYVAL dstlen AS DWORD) AS DWORD + + '// ### Helpers + DECLARE FUNCTION aP_crc32 LIB "aplib.dll" ALIAS "_aP_crc32" (BYVAL src AS BYTE PTR, BYVAL srclen AS DWORD) AS DWORD + DECLARE FUNCTION aPsafe_get_orig_size LIB "aplib.dll" ALIAS "_aPsafe_get_orig_size" (BYVAL src AS BYTE PTR) AS DWORD + DECLARE FUNCTION aPsafe_check LIB "aplib.dll" ALIAS "_aPsafe_check" (BYVAL src AS BYTE PTR) AS DWORD + DECLARE FUNCTION aP_callback (BYVAL insize AS DWORD, BYVAL inpos AS DWORD, BYVAL outpos AS DWORD, cbparam AS DWORD) AS DWORD '// callback function in the app (not in aplib.dll) + +#ENDIF '// End aplib.inc + +``` + +`aPLib/contrib/PowerBuilder/example.txt`: + +```txt +Compress File: + +Integer li_rtn +String ls_source +String ls_dest + +uo_external_function_compression compression_func + +compression_func = Create uo_external_function_compression + +ls_source = as_source + as_file +ls_dest = as_dest + compression_func.uof_compressed_name(as_file) + +li_rtn = compression_func.uof_compress(ls_source, ls_dest, as_message) + +Destroy compression_func + +Return li_rtn + + + + +Decompress File: +Integer li_rtn +String ls_source +String ls_dest + +uo_external_function_compression compression_func + +compression_func = Create uo_external_function_compression + +ls_source = as_source + compression_func.uof_compressed_name(as_file) +ls_dest = as_dest + as_file + +li_rtn = compression_func.uof_decompress(ls_source, ls_dest, as_message) + +Destroy compression_func + +Return li_rtn +``` + +`aPLib/contrib/PowerBuilder/str_filetime.srs`: + +```srs +$PBExportHeader$str_filetime.srs +global type str_filetime from structure + unsignedlong dwlowdatetime + unsignedlong dwhighdatetime +end type + + +``` + +`aPLib/contrib/PowerBuilder/str_netresource.srs`: + +```srs +$PBExportHeader$str_netresource.srs +global type str_netresource from structure + unsignedlong dwscope + unsignedlong dwtype + unsignedlong dwdisplaytype + unsignedlong dwusage + string lplocalname + string lpremotename + string lpcomment + string lpprovider +end type + + +``` + +`aPLib/contrib/PowerBuilder/str_ofstruct.srs`: + +```srs +$PBExportHeader$str_ofstruct.srs +global type str_ofstruct from structure + unsignedinteger cbytes + unsignedinteger ffixeddisk + unsignedlong nerrcode + unsignedlong reserved1 + unsignedlong reserved2 + string szpathname +end type + + +``` + +`aPLib/contrib/PowerBuilder/str_overlapped.srs`: + +```srs +$PBExportHeader$str_overlapped.srs +global type str_overlapped from structure + unsignedlong Internal + unsignedlong InternalHigh + unsignedlong Offset + unsignedlong OffsetHigh + unsignedlong hEvent +end type + + +``` + +`aPLib/contrib/PowerBuilder/str_security_attibutes.srs`: + +```srs +$PBExportHeader$str_security_attibutes.srs +global type str_security_attibutes from structure + unsignedlong nlength + long lpsecuritydescriptor + boolean binherithandle +end type + + +``` + +`aPLib/contrib/PowerBuilder/uo_external_function_compression.sru`: + +```sru +$PBExportHeader$uo_external_function_compression.sru +forward +global type uo_external_function_compression from nonvisualobject +end type +end forward + +global type uo_external_function_compression from nonvisualobject +end type +global uo_external_function_compression uo_external_function_compression + +type prototypes + +Function ULong _aPsafe_pack(Ref String source, Ref String destination, ULong length, & + Ref String workmen, Long callback, Long cbparam) Library "C:\ems\aplib.dll" +Function ULong _aPsafe_depack(Ref String source, ULong srclen, Ref String destination, & + ULong dstlen) Library "C:\ems\aplib.dll" +Function ULong _aPsafe_get_orig_size(Ref String source) Library "C:\ems\aplib.dll" +Function ULong _aP_workmem_size(Ulong length) Library "C:\ems\aplib.dll" +Function ULong _aP_max_packed_size(Ulong input_size) Library "C:\ems\aplib.dll" + +end prototypes + +forward prototypes +public function unsignedlong uof_workmem_size (ref unsignedlong aul_size) +public function unsignedlong uof_max_packed_size (ref unsignedlong aul_size) +public function integer uof_num_of_loops (long al_length) +public function long uof_get_orig_size (ref string as_source) +public function string uof_alloc_memory (unsignedlong aul_size) +public function integer uof_compress (string as_source, string as_dest, ref string as_message) +public function integer uof_decompress (string as_source, string as_dest, ref string as_message) +public function string uof_compressed_name (string as_file) +public function string uof_decompressed_name (string as_file) +end prototypes + +public function unsignedlong uof_workmem_size (ref unsignedlong aul_size); +UnsignedLong lul_ret + +lul_ret = _aP_workmem_size(aul_size) +If lul_ret = 0 then lul_ret = 655360 + +Return lul_ret +end function + +public function unsignedlong uof_max_packed_size (ref unsignedlong aul_size); +UnsignedLong lul_ret + +lul_ret = _aP_max_packed_size(aul_size) +If lul_ret = 0 then lul_ret = 36925 + +Return lul_ret +end function + +public function integer uof_num_of_loops (long al_length);Integer li_loop + +Choose Case al_length +Case 1 + li_loop = 1 + +Case -1 + li_loop = -1 + +Case Else + If Mod(al_length, 32765) = 0 Then + li_loop = al_length/32765 + Else + li_loop = (al_length/32765) + 1 + End If +End Choose + +Return li_loop +end function + +public function long uof_get_orig_size (ref string as_source); +Long ll_ret + +ll_ret = _aPsafe_get_orig_size(as_source) + +Return ll_ret +end function + +public function string uof_alloc_memory (unsignedlong aul_size); +String ls_string + +Choose Case aul_size +Case is < 1 + SetNull(ls_string) + +Case is > 2147483647 + SetNull(ls_string) + +Case Else + ls_string = Space(aul_size) +End Choose + +Return ls_string +end function + +public function integer uof_compress (string as_source, string as_dest, ref string as_message); +Boolean lb_ret + +Long ll_null = 0 +Long ll_ret +Long ll_source +Long ll_dest + +ULong lul_size +ULong lul_bytes_read +ULong lul_bytes_to_read + +String ls_work_mem +String ls_source +String ls_dest + +uo_external_function_winapi api_func + +api_func = Create uo_external_function_winapi + +SetNull(as_message) + +ll_source = api_func.uf_create_file(as_source, 1, 1, 3, 128) +If ll_source = -1 Then + as_message = 'Error opening file ' + as_source + '.' + Return -1 +End If + +lul_bytes_to_read = FileLength(as_source) +ls_source = uof_alloc_memory(lul_bytes_to_read) +If IsNull(ls_source) Then + as_message = 'Unable to allocate memory to read source file ' + as_source + '.' + Return -1 +End If + +lb_ret = api_func.uf_read_file(ll_source, ls_source, lul_bytes_to_read, lul_bytes_read) +lb_ret = api_func.uf_close_file(ll_source) + +lul_size = uof_max_packed_size(lul_bytes_read) +ls_dest = uof_alloc_memory(lul_size) +If IsNull(ls_dest) Then + as_message = 'Unable to allocate packed memory size ' + String(lul_size) + Return -1 +End If + +lul_size = uof_workmem_size(lul_bytes_read) +ls_work_mem = uof_alloc_memory(lul_size) +If IsNull(ls_work_mem) Then + as_message = 'Unable to allocate working memory size ' + String(lul_size) + Return -1 +End If + +ll_ret = _aPsafe_pack(ls_source, ls_dest, lul_bytes_read, ls_work_mem, ll_null, ll_null) +If ll_ret = -1 Then + as_message = 'Error compressing file ' + as_source + '.' + Return -1 +End If + +If FileExists(as_dest) Then FileDelete(as_dest) + +ll_dest = api_func.uf_create_file(as_dest, 4, 2, 4, 128) +If ll_dest = -1 Then + as_message = 'Error creating file ' + as_dest + '.' + Return -1 +End If + +lb_ret = api_func.uf_write_file(ll_dest, ls_dest, ll_ret) +lb_ret = api_func.uf_close_file(ll_dest) + +Destroy api_func + +Return 1 +end function + +public function integer uof_decompress (string as_source, string as_dest, ref string as_message);Boolean lb_ret + +Long ll_null = 0 +Long ll_ret +Long ll_source +Long ll_dest + +ULong lul_size +ULong lul_bytes_read +ULong lul_bytes_to_read + +String ls_source +String ls_dest + +uo_external_function_winapi api_func + +api_func = Create uo_external_function_winapi + +SetNull(as_message) + +ll_source = api_func.uf_create_file(as_source, 1, 1, 3, 128) +If ll_source = -1 Then + as_message = 'Error opening file ' + as_source + '.' + Return -1 +End If + +lul_bytes_to_read = FileLength(as_source) +ls_source = uof_alloc_memory(lul_bytes_to_read) +If ll_source = -1 Then + as_message = 'Unable to allocate memory to read source file ' + as_source + '.' + Return -1 +End If + +lb_ret = api_func.uf_read_file(ll_source, ls_source, lul_bytes_to_read, lul_bytes_read) +lb_ret = api_func.uf_close_file(ll_source) + +If FileExists(as_dest) Then FileDelete(as_dest) + +lul_size = uof_get_orig_size(ls_source) +ls_dest = uof_alloc_memory(lul_size) +If ll_source = -1 Then + as_message = 'Error opening file ' + as_source + '.' + Return -1 +End If + +ll_ret = _aPsafe_depack(ls_source, lul_bytes_read, ls_dest, lul_size) +If ll_source = -1 Then + as_message = 'Error decompressing file ' + as_source + '.' + Return -1 +End If + +ll_dest = api_func.uf_create_file(as_dest, 4, 2, 4, 128) +If ll_source = -1 Then + as_message = 'Error creating file ' + as_dest + '.' + Return -1 +End If + +lb_ret = api_func.uf_write_file(ll_dest, ls_dest, ll_ret) +lb_ret = api_func.uf_close_file(ll_dest) + +Destroy api_func + +Return 1 + +end function + +public function string uof_compressed_name (string as_file); +String ls_temp + +ls_temp = Left(as_file, (Len(as_file) - 1)) + '_' + +Return ls_temp +end function + +public function string uof_decompressed_name (string as_file); +String ls_ext1 +String ls_ext2 +String ls_file +Long ll_pos + +ls_file = as_file + +ls_ext1 = Right(ls_file, 3) +Choose Case Lower(ls_ext1) +Case 'pb_' + ls_ext2 = 'pbd' + +Case 'ex_' + ls_ext2 = 'exe' + +Case 'dl_' + ls_ext2 = 'dll' + +Case Else + SetNull(ls_ext2) + +End Choose + +ll_pos = Pos(ls_file, ls_ext1) +ls_file = Replace(ls_file, ll_pos, 3, ls_ext2) + +Return ls_file +end function + +on uo_external_function_compression.create +call super::create +TriggerEvent( this, "constructor" ) +end on + +on uo_external_function_compression.destroy +TriggerEvent( this, "destructor" ) +call super::destroy +end on + + +``` + +`aPLib/contrib/PowerBuilder/uo_external_function_winapi.sru`: + +```sru +$PBExportHeader$uo_external_function_winapi.sru +$PBExportComments$Window api external functions +forward +global type uo_external_function_winapi from uo_external_function +end type +type str_memorystatus from structure within uo_external_function_winapi +end type +end forward + +type str_memorystatus from structure + unsignedlong sul_dwlength + unsignedlong sul_dwmemoryload + unsignedlong sul_dwtotalphys + unsignedlong sul_dwavailphys + unsignedlong sul_dwtotalpagefile + unsignedlong sul_dwavailpagefile + unsignedlong sul_dwtotalvirtual + unsignedlong sul_dwavailvirtual +end type + +global type uo_external_function_winapi from uo_external_function +end type +global uo_external_function_winapi uo_external_function_winapi + +type prototypes +//playsound +Function boolean sndPlaySoundA (string SoundName, uint Flags) Library "WINMM.DLL" +Function uint waveOutGetNumDevs () Library "WINMM.DLL" + +//getsyscolor +Function ulong GetSysColor (int index) Library "USER32.DLL" + +//getsystemmetrics +Function int GetSystemMetrics (int index) Library "USER32.DLL" + +//getfreememory +Subroutine GlobalMemoryStatus (ref str_memorystatus memorystatus ) Library "KERNEL32.DLL" + +//set and kill timer +Function Boolean KillTimer (long handle, uint id ) library "USER32.DLL" +Function uint SetTimer (long handle, uint id, uint time, long addr ) library "USER32.DLL" + +//GetModuleHandle +Function long GetModuleHandleA(string modname) Library "KERNEL32.DLL" +Function ulong FindWindowA (ulong classname, string windowname) Library "USER32.DLL" +Function integer FindExecutable ( string FileName, & + REF string Directory, REF string Result ) Library "shellapi32" + +Function boolean FlashWindow (long handle, boolean flash) Library "USER32.DLL" +Function uint GetWindow (long handle,uint relationship) Library "USER32.DLL" +Function int GetWindowTextA(long handle, ref string wintext, int length) Library "USER32.DLL" +Function int GetWindowTextLengthA(long handle) Library "USER32.DLL" +Function boolean IsWindowVisible (long handle) Library "USER32.DLL" +Function uint GetWindowsDirectoryA (ref string dirtext, uint textlen) library "KERNEL32.DLL" +Function uint GetSystemDirectoryA (ref string dirtext, uint textlen) library "KERNEL32.DLL" +Function uint GetDriveTypeA (string drive) library "KERNEL32.DLL" +Function ulong GetCurrentDirectoryA (ulong textlen, ref string dirtext) library "KERNEL32.DLL" +Function boolean SetFileAttributesA(ref string lpfilename, ulong dwFileAttributes) library "KERNEL32.DLL" + +// Close application +Function boolean DestroyWindow(ulong handle) Library "USER32.DLL" + +Function boolean GetUserNameA (ref string name, ref ulong len) library "ADVAPI32.DLL" +Function ulong GetTickCount ( ) Library "KERNEL32.DLL" +Function Long LZCopy (Uint hfSourcet, Uint hfDes ) library "user32.exe" +function uint OpenFile(String lpszFileName, str_ofstruct lpOpenBuff, Uint fuMode) library "kernel32.DLL" +FUNCTION boolean SetCurrentDirectoryA(ref string cdir) LIBRARY "kernel32.dll" +FUNCTION Long WNetAddConnection2A(ref str_netresource lpNetResource, ref string lpPassword, & + ref string lpUsername, Long dwFlags) LIBRARY "mpr.dll" +FUNCTION ULong WNetCancelConnectionA(string lpName, BOOLEAN fForce) LIBRARY "mpr.dll" +FUNCTION ULong WNetGetLastErrorA(REF ULong lpError, Ref String lpErrorBuf, Ulong nErrorBufSize, & + Ref string lpNameBuf, ULONG nNameBufSize) LIBRARY "mpr.dll" +Function Boolean CloseHandle(ULong hObject) library "kernel32.DLL" +Function ULong CreateFileA(Ref String lpFileName, ULong dwDesiredAccess, ULong dwShareMode, & + str_security_attibutes lpSecurityAttributes, ULong dwCreationDisposition, & + ULong dwFlagsAndAttributes, ULong hTemplateFile) library "kernel32.DLL" +Function Boolean WriteFile(UnsignedLong hFile, Ref String lpBuffer, ULong nNumberOfBytesToWrite, & + Ref ULong lpNumberOfBytesWritten, Ref str_overlapped lpOverlapped) library "kernel32.DLL" +Function Boolean ReadFile(UnsignedLong hFile, Ref String lpBuffer, ULong nNumberOfBytesToRead, & + Ref ULong lpNumberOfBytesRead, Ref str_overlapped lpOverlapped) library "kernel32.DLL" + +Function String GetLastError() library "kernel32.DLL" + + +end prototypes + +type variables +str_ofstruct istr_ofstruct +end variables + +forward prototypes +public function integer uf_playsound (string as_filename, integer ai_option) +public function unsignedlong uf_getsyscolor (integer ai_index) +public function int uf_getscreenwidth () +public function int uf_getscreenheight () +public function unsignedinteger uf_getsystemdirectory (ref string as_dir, unsignedinteger aui_size) +public function unsignedinteger uf_getwindowsdirectory (ref string as_dir, unsignedinteger aui_size) +public function ulong uf_get_logon_time () +public function boolean uf_killtimer (long aui_handle, unsignedinteger aui_id) +public function unsignedinteger uf_settimer (long aui_handle, unsignedinteger aui_id, unsignedinteger aui_time) +public function boolean uf_flash_window (long aui_handle, boolean ab_flash) +public function unsignedinteger uf_getwindow (long aui_handle, unsignedinteger aui_relationship) +public function boolean uf_iswindowvisible (long aui_handle) +public function unsignedinteger uf_openfile (string as_filename, ref str_ofstruct astr_ptr_str, unsignedinteger aui_fileaccess) +public function unsignedinteger uf_getdrivetype (string as_drive) +public function integer uf_get_logon_name (ref string as_name) +public function long uf_getmodulehandle (string as_modname) +public function unsignedlong uf_getfreememory (long ai_type) +public function boolean uf_destroywindow (unsignedlong aul_whnd) +public function integer uf_findexecutable (ref string as_filename, ref string as_directory, ref string as_executable) +public function unsignedlong uf_findwindow (unsignedlong aul_classname, string as_windowname) +public function integer uf_getwindowtext (long aui_handle, ref string as_text, integer ai_max) +public function long uf_copyfile (unsignedinteger aui_sourcehandle, unsignedinteger aui_desthandle) +public function integer uf_getwindowtextlength (unsignedlong aul_hwnd) +public function integer uf_getsystemmetrics (integer ai_index) +public function integer uf_setcurrentdirectory () +public function integer uf_netaddconnection2 (ref string as_drive, string as_path) +public function integer uf_cancelconnection (string as_drive) +public function integer uf_setfileattributes (ref string as_filename, unsignedlong aul_attribute) +public function unsignedinteger uf_create_file (string as_filename, unsignedlong aul_desiredaccess, unsignedlong aul_sharemode, unsignedlong aul_creationdisposition, unsignedlong ul_flagsandattributes) +public function boolean uf_close_file (unsignedinteger aui_file_handle) +public function integer uf_netgetlasterror () +public function string uf_getlasterror () +public function boolean uf_write_file (long al_file_handle, ref string as_buffer, unsignedlong aul_byte_to_write) +public function boolean uf_read_file (long al_file_handle, ref string as_buffer, ref unsignedlong aul_bytes_to_read, ref unsignedlong aul_bytes_read) +end prototypes + +public function integer uf_playsound (string as_filename, integer ai_option);//Options as defined in mmystem.h These may be or'd together. + +//#define SND_SYNC 0x0000 /* play synchronously (default) */ +//#define SND_ASYNC 0x0001 /* play asynchronously */ +//#define SND_NODEFAULT 0x0002 /* don't use default sound */ +//#define SND_MEMORY 0x0004 /* lpszSoundName points to a memory file */ +//#define SND_LOOP 0x0008 /* loop the sound until next sndPlaySound */ +//#define SND_NOSTOP 0x0010 /* don't stop any currently playing sound */ + +uint lui_numdevs + + +lui_numdevs = WaveOutGetNumDevs() +If lui_numdevs > 0 Then + sndPlaySoundA(as_filename,ai_option) + return 1 +Else + return -1 +End If +end function + +public function unsignedlong uf_getsyscolor (integer ai_index);//GetsysColor in win32 +Return GetSysColor (ai_index) +end function + +public function int uf_getscreenwidth ();Return GetSystemMetrics(0) +end function + +public function int uf_getscreenheight ();return getSystemMetrics(1) +end function + +public function unsignedinteger uf_getsystemdirectory (ref string as_dir, unsignedinteger aui_size);Return GetSystemDirectoryA(as_dir,aui_size) +end function + +public function unsignedinteger uf_getwindowsdirectory (ref string as_dir, unsignedinteger aui_size);Return GetWindowsDirectoryA(as_dir,aui_size) +end function + +public function ulong uf_get_logon_time ();//user gettickcount to find total logon time +Return GetTickCount() + +end function + +public function boolean uf_killtimer (long aui_handle, unsignedinteger aui_id);//win api call to kill timer +Return KillTimer(aui_handle,aui_id) +end function + +public function unsignedinteger uf_settimer (long aui_handle, unsignedinteger aui_id, unsignedinteger aui_time);//win api to create timer +Return(SetTimer(aui_handle,aui_id,aui_time,0)) +end function + +public function boolean uf_flash_window (long aui_handle, boolean ab_flash);//function not found in descendent +Return FlashWindow(aui_handle, ab_flash) +end function + +public function unsignedinteger uf_getwindow (long aui_handle, unsignedinteger aui_relationship);//function not found +Return GetWindow(aui_handle,aui_relationship) +end function + +public function boolean uf_iswindowvisible (long aui_handle);Return IsWindowVisible(aui_handle) +end function + +public function unsignedinteger uf_openfile (string as_filename, ref str_ofstruct astr_ptr_str, unsignedinteger aui_fileaccess);Return OpenFile(as_filename, astr_ptr_str, aui_fileaccess) +end function + +public function unsignedinteger uf_getdrivetype (string as_drive);//drive types +Return GetDriveTypeA(as_drive) +end function + +public function integer uf_get_logon_name (ref string as_name);//use windows function wnetgetuser + +ulong lul_value +Boolean lb_rc +string ls_temp + +lul_value =255 +ls_temp = space(255) + +lb_rc = GetUserNameA(ls_temp, lul_value) + +If lb_rc Then + as_name = ls_temp + Return 1 +Else + Return -1 +End If + + + +end function + +public function long uf_getmodulehandle (string as_modname); +//use sdk getmodule handle +Long ll_return +ll_return = GetModuleHandleA (as_modname) +Return ll_return +end function + +public function unsignedlong uf_getfreememory (long ai_type);//win api to get free memory +str_memorystatus lstr_memorystatus + +lstr_memorystatus.sul_dwlength = 32 + +GlobalMemoryStatus(lstr_memorystatus) + +If ai_type = 1 Then + Return(lstr_memorystatus.sul_dwmemoryload) +ElseIf ai_type = 2 Then + Return(lstr_memorystatus.sul_dwavailphys) +ElseIf ai_type = 3 Then + Return(lstr_memorystatus.sul_dwavailvirtual) +End If +end function + +public function boolean uf_destroywindow (unsignedlong aul_whnd); +Return DestroyWindow(aul_whnd) +end function + +public function integer uf_findexecutable (ref string as_filename, ref string as_directory, ref string as_executable);Return FindExecutable ( as_filename, as_directory, as_executable ) +end function + +public function unsignedlong uf_findwindow (unsignedlong aul_classname, string as_windowname);//use win 32 getmodulehandle function +Return FindWindowA(aul_classname,as_windowname) +end function + +public function integer uf_getwindowtext (long aui_handle, ref string as_text, integer ai_max);//function not found +Return GetWindowTextA (aui_handle,as_text,ai_max) +end function + +public function long uf_copyfile (unsignedinteger aui_sourcehandle, unsignedinteger aui_desthandle);Return LZCopy(aui_sourcehandle, aui_desthandle) + + +end function + +public function integer uf_getwindowtextlength (unsignedlong aul_hwnd); +Return GetWindowTextLengthA(aul_hwnd) + 1 +end function + +public function integer uf_getsystemmetrics (integer ai_index);Return GetSystemMetrics(ai_index) +end function + +public function integer uf_setcurrentdirectory ();boolean rtn +string ls_dir + + +ls_dir = "c:\ems" +rtn = SetCurrentDirectoryA(ls_dir) +//MessageBox("SetCurrentDirectory", string(rtn)) + +if rtn then + return 1 +else + return -1 +end if + +end function + +public function integer uf_netaddconnection2 (ref string as_drive, string as_path);Ulong lul_value +Long ll_flags +Long ll_return +String ls_password +String ls_username + +str_netresource lstr_netresource + +lstr_netresource.dwScope = 2 +lstr_netresource.dwType = 1 +lstr_netresource.dwDisplayType = 3 +lstr_netresource.dwUsage = 1 +lstr_netresource.lpLocalName = as_drive +lstr_netresource.lpRemoteName = as_path + +lul_value = 255 +ls_username = space(lul_value) + +GetUserNameA(ls_username, lul_value) + +SetNull(ls_password) + +ll_return = WNetAddConnection2A(lstr_netresource, ls_password, ls_username, ll_flags) + +Return ll_return +end function + +public function integer uf_cancelconnection (string as_drive); + +Long ll_return + +ll_return = WNetCancelConnectionA(as_drive, TRUE) +Return ll_return +end function + +public function integer uf_setfileattributes (ref string as_filename, unsignedlong aul_attribute);// Change file attributes +// aul_attribute values: +// FILE_ATTRIBUTE_ARCHIVE => 0x20 => 32, +// FILE_ATTRIBUTE_ATOMIC_WRITE => 0x200 => 512, +// FILE_ATTRIBUTE_COMPRESSED => 0x800 => 2048, +// FILE_ATTRIBUTE_DIRECTORY => 0x10 => 16, +// FILE_ATTRIBUTE_HIDDEN => 0x2 => 2, +// FILE_ATTRIBUTE_NORMAL => 0x80 => 128, +// FILE_ATTRIBUTE_READONLY => 0x1 => 1, +// FILE_ATTRIBUTE_SYSTEM => 0x4 => 4, +// FILE_ATTRIBUTE_TEMPORARY => 0x100 => 256, +// FILE_FLAG_BACKUP_SEMANTICS => 0x2000000 => 33554432, +// FILE_FLAG_DELETE_ON_CLOSE => 0x4000000 => 67108864, +// FILE_FLAG_NO_BUFFERING => 0x20000000 => 536870912, +// FILE_FLAG_OVERLAPPED => 0x40000000 => 1073741824, +// FILE_FLAG_POSIX_SEMANTICS => 0x1000000 => 16777216, +// FILE_FLAG_RANDOM_ACCESS => 0x10000000 => 268435456, +// FILE_FLAG_SEQUENTIAL_SCAN => 0x8000000 => 134217728, +// FILE_FLAG_WRITE_THROUGH => 0x80000000 => 2147483648 +// +// (Note: FILE_ATTRIBUTE_NORMAL - The file has no other attributes +// This value is valid only if used alone.) + +boolean ib_rtn + +ib_rtn = SetFileAttributesA(as_filename, aul_attribute) + +if ib_rtn then + return 1 +else + return -1 +end if +end function + +public function unsignedinteger uf_create_file (string as_filename, unsignedlong aul_desiredaccess, unsignedlong aul_sharemode, unsignedlong aul_creationdisposition, unsignedlong ul_flagsandattributes); +// Values for aul_DesiredAccess +// +// FILE_LIST_DIRECTORY 0x00000001 +// FILE_READ_DATA 0x00000001 +// FILE_ADD_FILE 0x00000002 +// FILE_WRITE_DATA 0x00000002 +// FILE_ADD_SUBDIRECTORY 0x00000004 +// FILE_APPEND_DATA 0x00000004 +// FILE_CREATE_PIPE_INSTANCE 0x00000004 +// FILE_READ_EA 0x00000008 +// FILE_WRITE_EA 0x00000010 +// FILE_EXECUTE 0x00000020 +// FILE_TRAVERSE 0x00000020 +// FILE_DELETE_CHILD 0x00000040 +// FILE_READ_ATTRIBUTES 0x00000080 +// FILE_WRITE_ATTRIBUTES 0x00000100 + +// Values for aul_ShareMode +// +// FILE_SHARE_READ 0x00000001 +// FILE_SHARE_WRITE 0x00000002 +// FILE_SHARE_DELETE 0x00000004 +// FILE_SHARE_VALID_FLAGS 0x00000007 + +// Values for aul_CreationDisposition +// +// CREATE_NEW 0x00000001 +// CREATE_ALWAYS 0x00000002 +// OPEN_EXISTING 0x00000003 +// OPEN_ALWAYS 0x00000004 +// TRUNCATE_EXISTING 0x00000005 + +// Values for aul_FlagsAndAttributes +// +// FILE_ATTRIBUTE_READONLY 0x00000001 +// FILE_ATTRIBUTE_HIDDEN 0x00000002 +// FILE_ATTRIBUTE_SYSTEM 0x00000004 +// FILE_ATTRIBUTE_DIRECTORY 0x00000010 +// FILE_ATTRIBUTE_ARCHIVE 0x00000020 +// FILE_ATTRIBUTE_ENCRYPTED 0x00000040 +// FILE_ATTRIBUTE_NORMAL 0x00000080 +// FILE_ATTRIBUTE_TEMPORARY 0x00000100 +// FILE_ATTRIBUTE_SPARSE_FILE 0x00000200 +// FILE_ATTRIBUTE_REPARSE_POINT 0x00000400 +// FILE_ATTRIBUTE_COMPRESSED 0x00000800 +// FILE_ATTRIBUTE_OFFLINE 0x00001000 +// FILE_ATTRIBUTE_NOT_CONTENT_INDEXED 0x00002000 + +uint lui_ret, lui_null +str_security_attibutes lstr_security_attibutes + +lstr_security_attibutes.lpsecuritydescriptor = 0 + +SetNull(lui_null) + +lui_ret = CreateFileA(as_filename, aul_desiredaccess, aul_sharemode, lstr_security_attibutes, & + aul_creationdisposition, ul_flagsandattributes, lui_null) + +//uf_getlasterror() + +return lui_ret +end function + +public function boolean uf_close_file (unsignedinteger aui_file_handle);Boolean lb_ret + +lb_ret = CloseHandle(aui_file_handle) + +Return (lb_ret) +end function + +public function integer uf_netgetlasterror (); +char lca_error[256] +char lca_name[256] +Long ll_return +String ls_error +String ls_name +ULong lpError +Ulong nErrorBufSize +ULONG nNameBufSize + +//ls_error = lca_error +//nErrorBufSize = 256 +//ls_name = lca_name +//nNameBufSize = 256 + +ll_return = WNetGetLastErrorA(lpError, ls_error, nErrorBufSize, ls_name, nNameBufSize) + +Return ll_return +end function + +public function string uf_getlasterror (); +Char lca_error[80] + +String ls_error + +ls_error = GetLastError() + +return ls_error +end function + +public function boolean uf_write_file (long al_file_handle, ref string as_buffer, unsignedlong aul_byte_to_write);//Function Boolean WriteFile(Long hFile, Ref String lpBuffer, ULong nNumberOfBytesToWrite, +// Ref ULong lpNumberOfBytesWritten, Long lpOverlapped) library "kernel32.DLL" +// +Long ll_null = 0 +ULong lul_bytes_written +Boolean lb_ret + +str_overlapped lstr_overlapped + +lb_ret = WriteFile(al_file_handle, as_buffer, aul_byte_to_write, lul_bytes_written, lstr_overlapped) + +//uf_getlasterror() + +Return lb_ret +end function + +public function boolean uf_read_file (long al_file_handle, ref string as_buffer, ref unsignedlong aul_bytes_to_read, ref unsignedlong aul_bytes_read); +//Function Boolean WriteFile(Long hFile, Ref String lpBuffer, ULong nNumberOfBytesToWrite, +// Ref ULong lpNumberOfBytesWritten, Long lpOverlapped) library "kernel32.DLL" +// +Long ll_null = 0 +Boolean lb_ret + +str_overlapped lstr_overlapped + +as_buffer = Space(aul_bytes_to_read) + +lb_ret = ReadFile(al_file_handle, as_buffer, aul_bytes_to_read, aul_bytes_read, lstr_overlapped) + +//uf_getlasterror() + +Return lb_ret + +return true +end function + +on uo_external_function_winapi.create +call super::create +end on + +on uo_external_function_winapi.destroy +call super::destroy +end on + + +``` + +`aPLib/contrib/VB6/maPLib.bas`: + +```bas +Attribute VB_Name = "maPLib" +'--------------------------------------------------------------------------------------- +' Name : maPLib (Module) +'--------------------------------------------------------------------------------------- +' Project : aPLib Compression Library Visual Basic 6 Wrapper +' Author : Jon Johnson +' Date : 7/15/2005 +' Email : jjohnson@sherwoodpolice.org +' Version : 1.0 +' Purpose : Wraps the functions in 'aplib.dll' for use in Visual Basic 6 +' Notes : The two functions (CompressFile, DecompressFile) have very limited error +' : checking. There is much room for improvement. +'--------------------------------------------------------------------------------------- +Option Explicit + +'--------------------------------------------------------------------------------------- +' API Constants +'--------------------------------------------------------------------------------------- +Const APLIB_ERROR = -1 + +'--------------------------------------------------------------------------------------- +' API Compression Functions +'--------------------------------------------------------------------------------------- +'--------------------------------------------------------------------------------------- +' Declare : aP_Pack +' Inputs : source = Pointer to the data to be compressed. +' : destination = Pointer to where the compressed data should be stored. +' : length = The length of the uncompressed data in bytes. +' : workmem = Pointer to the work memory which is used during compression. +' : callback = Pointer to the callback function (or NULL). +' : cbparam = Callback argument. +' Returns : The length of the compressed data, or APLIB_ERROR on error. +' Purpose : Compresses 'length' bytes of data from 'source()' into 'destination()', +' : using 'workmem()' for temporary storage. +'--------------------------------------------------------------------------------------- +Public Declare Function aP_Pack Lib "aplib.dll" Alias "_aP_pack" (source As Byte, destination As Byte, ByVal length As Long, workmem As Byte, Optional ByVal callback As Long = &H0, Optional ByVal cbparam As Long = &H0) As Long +'--------------------------------------------------------------------------------------- +' Declare : aP_workmem_size +' Inputs : input_size = The length of the uncompressed data in bytes. +' Returns : The required length of the work buffer. +' Purpose : Computes the required size of the 'workmem()' buffer used by 'aP_pack' for +' : compressing 'input_size' bytes of data. +'--------------------------------------------------------------------------------------- +Public Declare Function aP_workmem_size Lib "aplib.dll" Alias "_aP_workmem_size" (ByVal input_size As Long) As Long +'--------------------------------------------------------------------------------------- +' Declare : aP_max_packed_size +' Inputs : input_size = The length of the uncompressed data in bytes. +' Returns : The maximum possible size of the compressed data. +' Purpose : Computes the maximum possible compressed size possible when compressing +' : 'input_size' bytes of incompressible data. +'--------------------------------------------------------------------------------------- +Public Declare Function aP_max_packed_size Lib "aplib.dll" Alias "_aP_max_packed_size" (ByVal input_size As Long) As Long +'--------------------------------------------------------------------------------------- +' Declare : aPsafe_pack +' Inputs : source = Pointer to the data to be compressed. +' : destination = Pointer to where the compressed data should be stored. +' : length = The length of the uncompressed data in bytes. +' : workmem = Pointer to the work memory which is used during compression. +' : callback = Pointer to the callback function (or NULL). +' : cbparam = Callback argument. +' Returns : The length of the compressed data, or APLIB_ERROR on error. +' Purpose : Wrapper function for 'aP_pack', which adds a header to the compressed data +' : containing the length of the original data, and CRC32 checksums of the +' : original and compressed data. +'--------------------------------------------------------------------------------------- +Public Declare Function aPsafe_pack Lib "aplib.dll" Alias "_aPsafe_pack" (source As Byte, destination As Byte, ByVal length As Long, workmem As Byte, Optional ByVal callback As Long = &H0, Optional ByVal cbparam As Long = &H0) As Long + + +'--------------------------------------------------------------------------------------- +' API Decompression Functions +'--------------------------------------------------------------------------------------- +'--------------------------------------------------------------------------------------- +' Declare : aP_depack +' Inputs : source = Pointer to the compressed data. +' : destination = Pointer to where the decompressed data should be stored. +' Returns : The length of the decompressed data, or APLIB_ERROR on error. +' Purpose : Decompresses the compressed data from 'source()' into 'destination()'. +'--------------------------------------------------------------------------------------- +Public Declare Function aP_depack Lib "aplib.dll" Alias "_aP_depack_asm_fast" (source As Byte, destination As Byte) As Long +'--------------------------------------------------------------------------------------- +' Declare : aP_depack_safe +' Inputs : source = Pointer to the compressed data. +' : srclen = The size of the source buffer in bytes. +' : destination = Pointer to where the decompressed data should be stored. +' : dstlen = The size of the destination buffer in bytes. +' Returns : The length of the decompressed data, or APLIB_ERROR on error. +' Purpose : Decompresses the compressed data from 'source()' into 'destination()'. +'--------------------------------------------------------------------------------------- +Public Declare Function aP_depack_safe Lib "aplib.dll" Alias "_aP_depack_asm_safe" (source As Byte, ByVal srclen As Long, destination As Byte, ByVal dstlen As Long) As Long +'--------------------------------------------------------------------------------------- +' Declare : aP_depack_asm +' Inputs : source = Pointer to the compressed data. +' : destination = Pointer to where the decompressed data should be stored. +' Returns : The length of the decompressed data, or APLIB_ERROR on error. +' Purpose : Decompresses the compressed data from 'source()' into 'destination()'. +'--------------------------------------------------------------------------------------- +Public Declare Function aP_depack_asm Lib "aplib.dll" Alias "_aP_depack_asm" (source As Byte, destination As Byte) As Long +'--------------------------------------------------------------------------------------- +' Declare : aP_depack_asm_fast +' Inputs : source = Pointer to the compressed data. +' : destination = Pointer to where the decompressed data should be stored. +' Returns : The length of the decompressed data, or APLIB_ERROR on error. +' Purpose : Decompresses the compressed data from 'source()' into 'destination()'. +'--------------------------------------------------------------------------------------- +Public Declare Function aP_depack_asm_fast Lib "aplib.dll" Alias "_aP_depack_asm_fast" (source As Byte, destination As Byte) As Long +'--------------------------------------------------------------------------------------- +' Declare : aP_depack_asm_safe +' Inputs : source = Pointer to the compressed data. +' : srclen = The size of the source buffer in bytes. +' : destination = Pointer to where the decompressed data should be stored. +' : dstlen = The size of the destination buffer in bytes. +' Returns : The length of the decompressed data, or APLIB_ERROR on error. +' Purpose : Decompresses the compressed data from 'source()' into 'destination()'. +'--------------------------------------------------------------------------------------- +Public Declare Function aP_depack_asm_safe Lib "aplib.dll" Alias "_aP_depack_asm_safe" (source As Byte, ByVal srclen As Long, destination As Byte, ByVal dstlen As Long) As Long +'--------------------------------------------------------------------------------------- +' Declare : aP_crc32 +' Inputs : source = Pointer to the data to process. +' : length = The size in bytes of the data. +' Returns : The CRC32 value. +' Purpose : Computes the CRC32 value of 'length' bytes of data from 'source()'. +'--------------------------------------------------------------------------------------- +Public Declare Function aP_crc32 Lib "aplib.dll" Alias "_aP_crc32" (source As Byte, ByVal length As Long) As Long +'--------------------------------------------------------------------------------------- +' Declare : aPsafe_check +' Inputs : source = The compressed data to process. +' Returns : The length of the decompressed data, or APLIB_ERROR on error. +' Purpose : Computes the CRC32 of the compressed data in 'source()' and checks it +' : against the value in the header. Returns the length of the decompressed +' : data stored in the header. +'--------------------------------------------------------------------------------------- +Public Declare Function aPsafe_check Lib "aplib.dll" Alias "_aPsafe_check" (source As Byte) As Long +'--------------------------------------------------------------------------------------- +' Declare : aPsafe_get_orig_size +' Inputs : source = The compressed data to process. +' Returns : The length of the decompressed data, or APLIB_ERROR on error. +' Purpose : Returns the length of the decompressed data stored in the header of the +' : compressed data in 'source()'. +'--------------------------------------------------------------------------------------- +Public Declare Function aPsafe_get_orig_size Lib "aplib.dll" Alias "_aPsafe_get_orig_size" (source As Byte) As Long +'--------------------------------------------------------------------------------------- +' Declare : aPsafe_depack +' Inputs : source = Pointer to the compressed data. +' : srclen = The size of the source buffer in bytes. +' : destination = Pointer to where the decompressed data should be stored. +' : dstlen = The size of the destination buffer in bytes. +' Returns : The length of the decompressed data, or APLIB_ERROR on error. +' Purpose : Wrapper function for 'aP_depack_asm_safe', which checks the CRC32 of the +' : compressed data, decompresses, and checks the CRC32 of the decompressed +' : data. +'--------------------------------------------------------------------------------------- +Public Declare Function aPsafe_depack Lib "aplib.dll" Alias "_aPsafe_depack" (source As Byte, ByVal srclen As Long, destination As Byte, ByVal dstlen As Long) As Long + +'--------------------------------------------------------------------------------------- +' Procedure : CompressFile +' Returns : Boolean (True if succesful, False if not) +' DateTime : 7/15/2005 +' Author : Jon Johnson +' Purpose : Example of using aPLib to compress a file +'--------------------------------------------------------------------------------------- +Public Function CompressFile(sInFile As String, Optional sOutFile As String) As Boolean + Dim lCompressedSize As Long 'Length of compressed data + Dim bInBuffer() As Byte 'Input buffer + Dim bOutBuffer() As Byte 'Output buffer + Dim bWorkBuffer() As Byte 'Work buffer + Dim iFileO As Integer 'File I/O + + 'If no input file specified, return False and exit + If sInFile = "" Then + CompressFile = False + Exit Function + End If + 'If no output file specified, create one using the .ap file extension + If sOutFile = "" Then + sOutFile = FileParsePath(sInFile, False, False) & FileParsePath(sInFile, True, False) & ".ap" + End If + 'Move the data to compress into a buffer + iFileO = FreeFile + Open sInFile For Binary As #iFileO + ReDim bInBuffer(0 To LOF(iFileO) - 1) + Get #iFileO, , bInBuffer() + Close #iFileO + 'Compute the size of the work buffer + ReDim bWorkBuffer(0 To aP_workmem_size(UBound(bInBuffer) + 1)) + 'Compute the size of the output buffer + ReDim bOutBuffer(0 To aP_max_packed_size(UBound(bInBuffer) + 1)) + 'Compress the data using the 'safe' pack method + lCompressedSize = aPsafe_pack(bInBuffer(0), bOutBuffer(0), (UBound(bInBuffer) + 1), bWorkBuffer(0)) + 'If an error encountered in compressing, then return False and exit + If lCompressedSize = APLIB_ERROR Then + CompressFile = False + Exit Function + End If + 'Resize the output buffer to the proper size + 'The rtlMoveMemory API could also be used here + ReDim Preserve bOutBuffer(0 To (lCompressedSize - 1)) + 'Put the compressed data into the output file + If (FileExist(sOutFile)) Then Kill sOutFile + iFileO = FreeFile + Open sOutFile For Binary As #iFileO + Put #iFileO, , bOutBuffer() + Close #iFileO + 'Everything went OK, return True + CompressFile = True +End Function + +'--------------------------------------------------------------------------------------- +' Procedure : DecompressFile +' Returns : Boolean (True if succesful, False if not) +' DateTime : 7/15/2005 +' Author : Jon Johnson +' Purpose : Example of using aPLib to decompress a file +'--------------------------------------------------------------------------------------- +Public Function DecompressFile(sInFile As String, Optional sOutFile As String) As Boolean + Dim lDecompressedSize As Long 'Length of decompressed data + Dim bInBuffer() As Byte 'Input buffer + Dim lInBufferLen As Long 'Input buffer size + Dim bOutBuffer() As Byte 'Output buffer + Dim lOutBufferLen As Long 'Output buffer size + Dim iFileO As Integer 'File I/O + + 'If no input file specified, return False and exit + If sInFile = "" Then + DecompressFile = False + Exit Function + End If + 'If no output file specified, create one using the .dec file extension + If sOutFile = "" Then + sOutFile = FileParsePath(sInFile, False, False) & FileParsePath(sInFile, True, False) & ".dec" + End If + 'Move the data to decompress into a buffer + iFileO = FreeFile + Open sInFile For Binary As #iFileO + ReDim bInBuffer(0 To LOF(iFileO) - 1) + Get #iFileO, , bInBuffer() + Close #iFileO + 'Compute the sizes of the buffers + lInBufferLen = (UBound(bInBuffer) + 1) + lOutBufferLen = aPsafe_get_orig_size(bInBuffer(0)) + 'Set the output buffer to the proper size + ReDim bOutBuffer(0 To (lOutBufferLen - 1)) + 'Decompress the data using the 'safe' depack method + lDecompressedSize = aPsafe_depack(bInBuffer(0), lInBufferLen, bOutBuffer(0), lOutBufferLen) + 'If an error encountered in decompressing, then return False and exit + If lDecompressedSize = APLIB_ERROR Then + DecompressFile = False + Exit Function + End If + 'Put the decompressed data into the output file + If (FileExist(sOutFile)) Then Kill sOutFile + iFileO = FreeFile + Open sOutFile For Binary As #iFileO + Put #iFileO, , bOutBuffer() + Close #iFileO + 'Everything went OK, return True + DecompressFile = True +End Function + +'--------------------------------------------------------------------------------------- +' Utility Functions +'--------------------------------------------------------------------------------------- +Private Function FileParsePath(sPathname As String, bRetFile As Boolean, bExtension As Boolean) As String + Dim sEditArray() As String + sEditArray = Split(sPathname, "\", -1) + If bRetFile = True Then + Dim sFileName As String + sFileName = sEditArray(UBound(sEditArray)) + If bExtension = True Then + FileParsePath = sFileName + Else + sEditArray = Split(sFileName, ".", -1) + FileParsePath = sEditArray(LBound(sEditArray)) + End If + Else + Dim sPathnameA As String + Dim i As Integer + For i = 0 To UBound(sEditArray) - 1 + sPathnameA = sPathnameA & sEditArray(i) & "\" + Next + FileParsePath = sPathnameA + End If + On Error GoTo 0 +End Function + +Private Function FileExist(sFilePath As String) As Boolean + On Error GoTo ErrorHandler + Call FileLen(sFilePath) + FileExist = True + Exit Function +ErrorHandler: + FileExist = False +End Function + +``` + +`aPLib/contrib/ada/aPLibAda.txt`: + +```txt +aPLib Ada binding v. 4-Nov-2001 +-------------------------------- + +Files +----- + +aplibada.txt this file +aplib.ads package specification for aPLib Ada binding +aplib.adb package body for aPLib Ada binding +apacdemo.adb demo +gnat.ago local GNAT options file for AdaGIDE +mk_gndos.bat make command for demo with GNAT for DOS compiler +mk_gnwin.bat make command for demo with GNAT for Windows compiler +mk_aonix.bat make command for demo with Aonix ObjectAda for Windows compiler + + +Usage +----- + +The APLib package contains two generic procedures, Pack and Depack, +that you can use for compressing and decompressing any sort of data +into any other sort. For parametres, see specification: aplib.ads . + +For the packed data type, it's simpler +to use an array of bytes, so you can easily calibrate +the safe size of packed data by calling the +function Evaluate_max_packed_space - see again aplib.ads. + + +Read apacdemo.adb to see an example how to implement it. + + +Binding the aPLib library +------------------------- + +* For GNAT compiler make your program (here the demo) with the command + + [DOS: ] gnatmake apacdemo -largs aplib.a [lib from DJGPP] + [Windows:] gnatmake apacdemo -largs aplib.lib [lib from VC] + [Any:] gnatmake apacdemo -largs aplib.xxx [lib from ???] + + Add usual options if needed. + + If you are using the AdaGIDE interface, just load apacdemo.adb and + build (F3). + +* For ObjectAda compiler it should work... but I didn't find + how (it crashes for now). + +Portability: full, provided the aPLib exists on your platform, +of course ! + +How to run the demo +------------------- + +The command + + apacdemo a.x b.y c.z + +will pack the contents of files a.x b.y c.z into +packed.000, packed.001, packed.002 and unpack into +pack_unp.000, pack_unp.001, pack_unp.002 . + +Typical output: + +________________________________________________________________ +APack_Demo + +Command: apacdemo file1 file2 file3 ... + +When no file specified, 'apacdemo.exe' is used +The data are packed, unpacked and compared with originals. + +File name: C:\Temp\Test + + [====/..............................................] 8% + +Unpacked size : 7885938 +Packed size : 706040 +Work memory size : 655360 +Compression ratio: 8% +Packed file name : packed.001 +Re-depacked file name : pack_unp.001 + +Real time for compression : 118.453919016 +Real time for decompression: 0.172979478 - ratio 1.46031E-03 +Unpacked and original being same: TRUE +________________________________________________________________ + +How to get an Ada95 compiler +---------------------------- + +* Search the Net for the GNU compiler, named GNAT. + Full Ada95 implementation with libraries & sources. + +Free download: ftp://cs.nyu.edu/pub/gnat/ +or search there: + http://ftpsearch.lycos.com/cgi-bin/search?form=normal&query=gnat + +Support: http://www.gnat.com/ + +There is a nice IDE for Windows, AdaGIDE @ + http://www.usafa.af.mil/dfcs/bios/mcc_html/adagide.html + +* The DOS version of GNAT is in a distribution named EZ2LOAD. +It is unofficial and unsupported! Technically, there is "DJGPP inside". + +Main: + ftp://ftp.gwu.edu/pub/ada/ez2load/ +Search: + http://ftpsearch.lycos.com/cgi-bin/search?form=normal&query=ez2load + +Current DOS version is GNAT 3.10p, using DJGPP 2.01 as back-end. +A GNAT 3.13p, using DJGPP 2.02, is currently being tested. + +* There is also a commercial compiler for Windows, ObjectAda + + http://www.aonix.com/content/products/objectada/objectada.html + + with a _free_ version (number of lines/modules limited) that contains +all tools, however: the Microsoft tools, an IDE in Visual *** style, +command line tools also. + +* If you really need to buy one, there is a cool one (not too +expensive), see http://www.rrsoftware.com/ . + +Questions about the Ada port +---------------------------- + +Send them to following e-mail: gdemont@hotmail.com + +Other compression folies in Ada: + - the historic LHARC as simple taskable & streamable template + http://www.mysunrise.ch/users/gdm/gsoft.htm + - an Unzipper, from Info-Zip + http://www.mysunrise.ch/users/gdm/unzipada.htm + +Enjoy - Gautier + + +``` + +`aPLib/contrib/ada/apacdemo.adb`: + +```adb +------------------------------------------------------------------------------ +-- File: apackdemo.adb +-- Description: aPLib binding demo (Q&D!) +-- Date/version: 24-Feb-2001 ; ... ; 9.III.1999 +-- Author: Gautier de Montmollin - gdemont@hotmail.com +------------------------------------------------------------------------------ + +with APLib; +with Ada.Calendar; use Ada.Calendar; +with Ada.Command_Line; use Ada.Command_Line; +with Ada.Text_IO; use Ada.Text_IO; +with Ada.Integer_Text_IO; use Ada.Integer_Text_IO; +with Ada.Float_Text_IO; use Ada.Float_Text_IO; +with Ada.Direct_IO; + +procedure APacDemo is + type byte is mod 2 ** 8; for byte'size use 8; -- could be any basic data + + type t_data_array is array(integer range <>) of byte; + type p_data_array is access t_data_array; + + -- NB: File management is simpler with Ada95 Stream_IO - it's to test... + + package DBIO is new Ada.Direct_IO(byte); use DBIO; + subtype file_of_byte is DBIO.File_type; + + procedure Read_file(n: String; d: out p_data_array) is + f : file_of_byte; b: byte; + begin + d:= null; + Open(f, in_file, n); + d:= New t_data_array(1..integer(size(f))); + for i in d'range loop Read(f,b); d(i):= b; end loop; + Close(f); + exception + when DBIO.Name_Error => Put_Line("File " & n & " not found !"); + end; + + procedure Write_file(n: String; d: t_data_array) is + f : file_of_byte; + begin + Create(f, out_file, n); + for i in d'range loop Write(f,d(i)); end loop; + Close(f); + end; + + procedure Test_pack_unpack(name: string; id: natural) is + ext1: constant string:= integer'image(id+1000); + ext: constant string:= ext1(ext1'last-2..ext1'last); -- 000 001 002 etc. + name_p: constant string:= "packed." & ext; + name_pu: constant string:= "pack_unp." & ext; + + frog, frog2, frog3: p_data_array; + pl, ul, plmax: integer; -- packed / unpacked sizes in _bytes_ + + pack_occur: natural:= 0; + + T0, T1, T2, T3: Time; + + procedure Packometer(u,p: integer; continue: out boolean) is + li: constant:= 50; + pli: constant integer:= (p*li)/ul; + uli: constant integer:= (u*li)/ul; + fancy_1: constant string:=" .oO"; + fancy_2: constant string:="|/-\"; + fancy: string renames fancy_2; -- choose one... + begin + Put(" ["); + for i in 0..pli-1 loop put('='); end loop; + put(fancy(fancy'first+pack_occur mod fancy'length)); + pack_occur:= pack_occur + 1; + for i in pli+1..uli loop put('.'); end loop; + for i in uli+1..li loop put(' '); end loop; + Put("] " & integer'image((100*p)/u)); Put("% " & ASCII.CR); + continue:= true; + end Packometer; + + procedure Pack(u: t_data_array; p: out t_data_array; pl: out integer) is + subtype tp is t_data_array(p'range); + subtype tu is t_data_array(u'range); + procedure Pa is new APLib.Pack(tp, tu, Packometer); + + begin + Pa(u,p,pl); + end Pack; + + procedure Depack(p: t_data_array; u: out t_data_array) is + subtype tp is t_data_array(p'range); + subtype tu is t_data_array(u'range); + procedure De is new APLib.Depack(tp, tu); + + begin + De(p,u); + end Depack; + + bytes_per_element: constant integer:= byte'size/8; + + begin + New_Line; + + Read_file(name, frog); + + if frog /= null then + ul:= frog.all'size / 8; -- frog.all is the array; ul= size in bytes + plmax:= aPLib.Evaluate_max_packed_space(ul); + frog2:= New t_data_array( 1 .. plmax / bytes_per_element ); + + Put_Line("File name: " & name); + New_Line; + + T0:= Clock; + Pack(frog.all, frog2.all, pl); + T1:= Clock; + + New_Line; + New_Line; + Put("Unpacked size : "); Put(ul); New_Line; + Put("Res. for packing : "); Put(plmax); New_Line; + Put("Packed size : "); Put(pl); New_Line; + Put("Work memory size : "); Put(aPLib.aP_workmem_size(ul)); New_Line; + Put("Compression ratio: "); Put((100*pl)/ul,0); Put_Line("%"); + Put_Line("Packed file name : " & name_p); + Put_Line("Re-depacked file name : " & name_pu); + New_Line; + + Put_Line("Real time for compression : " & Duration'Image(T1-T0)); + Write_file(name_p, frog2(1..pl)); + + frog3:= New t_data_array(frog'range); + T2:= Clock; + Depack( frog2(1..pl), frog3.all ); + T3:= Clock; + Put("Real time for decompression: " & Duration'Image(T3-T2) & + " - time ratio :" ); + Put(Float(T3-T2) / Float(T1-T0),2,4,0); + New_Line; + + Write_file(name_pu, frog3.all); + + Put_Line("Are unpacked and original files identical ? " & + Boolean'image( frog.all = frog3.all )); + end if; + + end Test_pack_unpack; + +begin + Put_Line("APack_Demo"); + New_Line; + Put_Line("Command: apacdemo file1 file2 file3 ..."); + Put_Line("In a GUI drop the file(s) on the apacdemo application"); + New_Line; + Put_Line("When no file is specified, 'apacdemo.exe' is used"); + Put_Line("The data are packed, unpacked and compared with originals."); + + if Argument_count=0 then + Test_pack_unpack( "apacdemo.exe",0 ); + else + for i in 1..Argument_count loop + Test_pack_unpack( Argument(i),i ); + end loop; + end if; + + New_Line; + Put("Finished - press return please"); Skip_Line; +end APacDemo; + +``` + +`aPLib/contrib/ada/aplib.adb`: + +```adb +----------------------------------------------------------------------------- +-- File: aplib.adb; see specification (aplib.ads) +----------------------------------------------------------------------------- +with System, Ada.Unchecked_Deallocation; + +-- with Ada.Text_IO; use Ada.Text_IO; -- OA debug + +package body aPLib is + + procedure Pack( source : in unpacked_data; + destination : out packed_data; + packed_length: out integer ) is + + type byte is mod 2 ** 8; for byte'size use 8; + type twa is array( 0..aP_workmem_size(source'size / 8) ) of byte; + pragma pack(twa); + + type pwa is access twa; + procedure Dispose is new Ada.Unchecked_Deallocation( twa, pwa ); + + type p_cb is access function (unpacked, packed: integer) return integer; + + function aP_pack(source: unpacked_data; + destination_addr: System.Address; -- trick for "in" par. + length: integer; + work_mem: twa; + cb: p_cb) + return integer; + + pragma Import(C, aP_pack, "aP_pack"); + + function cb(unpacked, packed: integer) return integer is + cont: boolean; + begin + Call_back(unpacked, packed, cont); + return Boolean'Pos(cont); -- 0 false, 1 true + end cb; + + p_to_cb: p_cb:= cb'access; + tmp_work_mem: pwa:= New twa; + begin +-- Put_Line("OA3 "); +-- packed_length:= +-- aP_pack( source'Address, destination'Address, +-- source'size / 8, tmp_work_mem.all'Address, cb'Address ); +-- Put_Line("OA4 "); + + packed_length:= + aP_pack( source, destination'Address, + source'size / 8, tmp_work_mem.all, p_to_cb ); + + Dispose( tmp_work_mem ); -- we immediately free the work memory + + if packed_length=0 then -- 0 means error + raise Pack_failed; + end if; + end Pack; + + procedure Depack( source : in packed_data; + destination: out unpacked_data ) is + + function aP_depack_asm_fast( + source: packed_data; + destination_addr: System.Address -- trick for "in" par. + ) return integer; + pragma Import(C, aP_depack_asm_fast, "aP_depack_asm_fast"); + + begin + if aP_depack_asm_fast( source, destination'Address )=0 then + raise Unpack_failed; + end if; + end Depack; + +end aPLib; + +``` + +`aPLib/contrib/ada/aplib.ads`: + +```ads +-- +-- aPLib compression library - the smaller the better :) +-- +-- Ada binding for aplib.a +-- +-- Copyright (c) 1998-2009 by Joergen Ibsen / Jibz +-- All Rights Reserved +-- +-- http://www.ibsensoftware.com/ +-- +-- Ada binding by Gautier de Montmollin - gdemont@hotmail.com, gdm@mydiax.ch +-- + + +package aPLib is + + -- Give the maximum "packed" size possible - it can be more than + -- the unpacked size in case of uncompressible data: + + function Evaluate_max_packed_space( unpacked_size: Integer ) return Integer; + pragma Import(C, Evaluate_max_packed_space, "aP_max_packed_size"); + -- Was, before v0.34 b4: (((unpacked_size * 9) / 8) + 16) + + + -- A template for packing data: + + generic + type packed_data is private; + type unpacked_data is private; + with procedure Call_back( unpacked_bytes, packed_bytes: in integer; + continue : out boolean ); + + procedure Pack( source : in unpacked_data; + destination : out packed_data; + packed_length: out integer ); + + -- A template for unpacking data: + + generic + type packed_data is private; + type unpacked_data is private; + + procedure Depack( source : in packed_data; + destination: out unpacked_data ); + + -- Exceptions for errors that could occur: + + pack_failed, unpack_failed: exception; + + -- Just for information + + function aP_workmem_size(inputsize: integer) return integer; + pragma Import(C, aP_workmem_size, "aP_workmem_size"); + +end aPLib; + +``` + +`aPLib/contrib/ada/gnat.ago`: + +```ago +-O2 -gnatp +-i -aOACU_Win -largs ..\..\lib\coff\aplib.lib + + +WINDOWS_TARGET + +``` + +`aPLib/contrib/ada/mk_aonix.bat`: + +```bat +@ECHO OFF +ECHO --- Building aPLib Ada example for Aonix ObjectAda for Windows --- +ECHO. + +SET OAPATH=C:\Program Files\Aonix\ObjectAda\bin\ + +if not exist "%OAPATH%adareg.exe" echo Wrong path [%OAPATH%] - change mk_aonix.bat! + +if exist unit.map goto build + +"%OAPATH%adareg" *.ad? +ECHO. + +:build + +"%OAPATH%adabuild" apacdemo -ll ..\..\lib\coff\aplib.lib +ECHO. + +ECHO Warning: this version doesn't work yet! :-( + +``` + +`aPLib/contrib/ada/mk_gndos.bat`: + +```bat +@ECHO OFF +ECHO --- Building aPLib Ada example for GNAT/DOS (ez2load) --- +ECHO. + +gnatmake -g -i %1 -O2 -gnatp -aOACU_DOS apacdemo -largs ..\..\lib\coff\aplib.a + +if exist b_*.* del b_*.* + +``` + +`aPLib/contrib/ada/mk_gnwin.bat`: + +```bat +@ECHO OFF +ECHO --- Building aPLib Ada example for GNAT/Windows --- +ECHO. + +gnatmake -g -i %1 -O2 -gnatp -aOACU_Win apacdemo -largs ..\..\lib\coff\aplib.lib + +if exist b~*.* del b~*.* + +``` + +`aPLib/contrib/bcb/MainFormUnit.cpp`: + +```cpp +//--------------------------------------------------------------------------- +// MainFormUnit.cpp +// bcb shell coded by mouser (9/18/04) using existing samples for delphi+c +//--------------------------------------------------------------------------- + +//--------------------------------------------------------------------------- +// System includes and C++ Builder Stuff +#include +#pragma hdrstop +//--------------------------------------------------------------------------- + + +//--------------------------------------------------------------------------- +// System includes +//#include +#include +//--------------------------------------------------------------------------- + +//--------------------------------------------------------------------------- +// Application includes +#include "MainFormUnit.h" + +#include "apacksamplec.h" +#include "aplib.h" +//--------------------------------------------------------------------------- + +//--------------------------------------------------------------------------- +// C++ Builder stuff +#pragma package(smart_init) +#pragma resource "*.dfm" +//--------------------------------------------------------------------------- + + +//--------------------------------------------------------------------------- +// Global Form Instance Pointer +TMainForm *MainForm; +//--------------------------------------------------------------------------- + + + +//--------------------------------------------------------------------------- +// Compression callback sample +int STDPREFIX mainformcallback(unsigned int insize, unsigned int inpos, unsigned int outpos, void *cbparam) +{ + char resultstr[255]; + unsigned int ratioval=ratio(inpos, insize); + sprintf(resultstr,"compressed %u -> %u bytes (%u%% done)", inpos, outpos, ratioval); + MainForm->LabelResult->Caption=AnsiString(resultstr); + MainForm->ProgressBar->Position=ratioval; + // let gui update + Application->ProcessMessages(); + // return + if (MainForm->get_wantscancel()) + return 0; + return 1; +} + +// result callback +void STDPREFIX mainformresultcallback(char *resultstr, int errorcode) +{ + MainForm->LabelResult->Caption=AnsiString(resultstr); + if (errorcode==0) + MainForm->LabelResult->Font->Color=clBlack; + else + MainForm->LabelResult->Font->Color=clMaroon; +} +//--------------------------------------------------------------------------- + + + + + + + + +//--------------------------------------------------------------------------- +__fastcall TMainForm::TMainForm(TComponent* Owner) + : TForm(Owner) +{ + // constructor + Initialize(); +} +//--------------------------------------------------------------------------- + + + + + +//--------------------------------------------------------------------------- +void TMainForm::Initialize() +{ + // initialize the library + SetStateNotRunning(); +} + +void TMainForm::SetStateRunning() +{ + // change visible state to running + ButtonCancel->Enabled=true; +} + +void TMainForm::SetStateNotRunning() +{ + // change visible state to not running + ButtonCancel->Enabled=false; + wantscancel=false; + ProgressBar->Position=0; +} +//--------------------------------------------------------------------------- + + + + + + + +//--------------------------------------------------------------------------- +void __fastcall TMainForm::ButtonCompressClick(TObject *Sender) +{ + // ask for file and compress it + bool bretv; + int retv; + OpenDialog->Title="Browse for file to Compress.."; + bretv=OpenDialog->Execute(); + if (bretv) + { + // compress it + AnsiString filename=OpenDialog->FileName; + AnsiString newfilename=filename+".out"; + SetStateRunning(); + retv=compress_file(filename.c_str(),newfilename.c_str(),mainformcallback,mainformresultcallback); + SetStateNotRunning(); + } +} + + +void __fastcall TMainForm::ButtonDecompressClick(TObject *Sender) +{ + // ask for file and decompress it + bool bretv; + int retv; + OpenDialog->Title="Browse for file to Decompress.."; + bretv=OpenDialog->Execute(); + if (bretv) + { + // decompress it + AnsiString filename=OpenDialog->FileName; + AnsiString newfilename=filename+".out"; + SetStateRunning(); + retv=decompress_file(filename.c_str(),newfilename.c_str(),mainformcallback,mainformresultcallback); + SetStateNotRunning(); + } +} +//--------------------------------------------------------------------------- + + + + +//--------------------------------------------------------------------------- +void __fastcall TMainForm::ButtonCancelClick(TObject *Sender) +{ + // user wants to cancel + wantscancel=true; +} +//--------------------------------------------------------------------------- + + + + + +``` + +`aPLib/contrib/bcb/MainFormUnit.dfm`: + +```dfm +object MainForm: TMainForm + Left = 282 + Top = 145 + Width = 385 + Height = 212 + Caption = 'aPLib - Borland C++Builder Demo' + Color = clBtnFace + Constraints.MinHeight = 212 + Constraints.MinWidth = 385 + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + OldCreateOrder = False + PixelsPerInch = 96 + TextHeight = 13 + object Panel1: TPanel + Left = 0 + Top = 0 + Width = 377 + Height = 185 + Align = alClient + BevelOuter = bvLowered + TabOrder = 0 + DesignSize = ( + 377 + 185) + object LabelaPLib2: TLabel + Left = 207 + Top = 8 + Width = 97 + Height = 38 + Anchors = [akTop, akRight] + Caption = 'aPLib' + Font.Charset = ANSI_CHARSET + Font.Color = clGray + Font.Height = -32 + Font.Name = 'Verdana' + Font.Style = [fsBold] + ParentFont = False + Transparent = True + end + object LabelaPLib1: TLabel + Left = 203 + Top = 4 + Width = 97 + Height = 38 + Anchors = [akTop, akRight] + Caption = 'aPLib' + Font.Charset = ANSI_CHARSET + Font.Color = clWindowText + Font.Height = -32 + Font.Name = 'Verdana' + Font.Style = [fsBold] + ParentFont = False + Transparent = True + end + object Label5: TLabel + Left = 223 + Top = 48 + Width = 98 + Height = 13 + Anchors = [akTop, akRight] + Caption = 'the smaller the better' + end + object GroupBox1: TGroupBox + Left = 8 + Top = 80 + Width = 362 + Height = 65 + Anchors = [akLeft, akRight, akBottom] + Caption = ' Progress ' + TabOrder = 0 + DesignSize = ( + 362 + 65) + object LabelResult: TLabel + Left = 16 + Top = 40 + Width = 330 + Height = 13 + Alignment = taCenter + Anchors = [akLeft, akTop, akRight] + AutoSize = False + Font.Charset = DEFAULT_CHARSET + Font.Color = clMaroon + Font.Height = -11 + Font.Name = 'MS Sans Serif' + Font.Style = [] + ParentFont = False + end + object ProgressBar: TProgressBar + Left = 15 + Top = 25 + Width = 331 + Height = 9 + Anchors = [akLeft, akTop, akRight] + Min = 0 + Max = 100 + TabOrder = 0 + end + end + object ButtonCancel: TButton + Left = 295 + Top = 153 + Width = 75 + Height = 25 + Anchors = [akRight, akBottom] + Caption = 'Cancel' + Enabled = False + TabOrder = 1 + OnClick = ButtonCancelClick + end + object ButtonCompress: TButton + Left = 16 + Top = 16 + Width = 75 + Height = 25 + Caption = 'Compress' + TabOrder = 2 + OnClick = ButtonCompressClick + end + object ButtonDecompress: TButton + Left = 16 + Top = 48 + Width = 75 + Height = 25 + Caption = 'Decompress' + TabOrder = 3 + OnClick = ButtonDecompressClick + end + end + object OpenDialog: TOpenDialog + Filter = 'Any File (*.*)|*.*' + Left = 112 + Top = 24 + end +end + +``` + +`aPLib/contrib/bcb/MainFormUnit.h`: + +```h +//--------------------------------------------------------------------------- +// MainFormUnit.cpp +//--------------------------------------------------------------------------- + +//--------------------------------------------------------------------------- +// Header Guard +#ifndef MainFormUnitH +#define MainFormUnitH +//--------------------------------------------------------------------------- + +//--------------------------------------------------------------------------- +// Application Includes +#include +#include +#include +#include +#include +#include +#include +//--------------------------------------------------------------------------- + + +//--------------------------------------------------------------------------- +class TMainForm : public TForm +{ +private: + bool wantscancel; +__published: + // IDE-managed Components + TPanel *Panel1; + TLabel *LabelaPLib2; + TLabel *LabelaPLib1; + TLabel *Label5; + TGroupBox *GroupBox1; + TLabel *LabelResult; + TProgressBar *ProgressBar; + TButton *ButtonCancel; + TButton *ButtonCompress; + TButton *ButtonDecompress; + TOpenDialog *OpenDialog; + void __fastcall ButtonCompressClick(TObject *Sender); + void __fastcall ButtonDecompressClick(TObject *Sender); + void __fastcall ButtonCancelClick(TObject *Sender); +public: + // constructor + __fastcall TMainForm(TComponent* Owner); +public: + void Initialize(); + void SetStateRunning(); + void SetStateNotRunning(); +public: + bool get_wantscancel() {return wantscancel;}; +}; +//--------------------------------------------------------------------------- + + + + + + +//--------------------------------------------------------------------------- +// C++ Builder Global Instance Pointer +extern PACKAGE TMainForm *MainForm; +//--------------------------------------------------------------------------- + + + + + +//--------------------------------------------------------------------------- +// End of Header Guard +#endif +//--------------------------------------------------------------------------- + +``` + +`aPLib/contrib/bcb/README_ABOUT_APLIB_DLL.txt`: + +```txt +If you want to use the aplib.dll with your bcb project, link with the aplib.lib file here in the LibForDll directory. +If you don't want to use the dll, then just link with the static aplib.lib in the ..\..\lib\omf directory. +The sample project uses the static lib in ..\..\lib\omf +``` + +`aPLib/contrib/bcb/apacksamplec.cpp`: + +```cpp +//--------------------------------------------------------------------------- +// apacksamplec.c +// Code from c/apack.c +//--------------------------------------------------------------------------- + +//--------------------------------------------------------------------------- +/* + * aPLib compression library - the smaller the better :) + * + * C example + * + * Copyright (c) 1998-2009 by Joergen Ibsen / Jibz + * All Rights Reserved + * + * http://www.ibsensoftware.com/ + */ +//--------------------------------------------------------------------------- + + +//--------------------------------------------------------------------------- +#include +#include +#include +#include +#include + +#include "apacksamplec.h" + +#include "aplib.h" +//--------------------------------------------------------------------------- + + + + + + +//--------------------------------------------------------------------------- +/* + * Unsigned char type. + */ +typedef unsigned char byte; +//--------------------------------------------------------------------------- + + +//--------------------------------------------------------------------------- +/* + * Compute ratio between two numbers. + */ +unsigned int ratio(unsigned int x, unsigned int y) +{ + if (x <= UINT_MAX / 100) x *= 100; else y /= 100; + + if (y == 0) y = 1; + + return x / y; +} +//--------------------------------------------------------------------------- + + + + + +//--------------------------------------------------------------------------- +// Compression callback sample +int STDPREFIX samplecallback(unsigned int insize, unsigned int inpos, unsigned int outpos, void *cbparam) +{ + printf("\rcompressed %u -> %u bytes (%u%% done)", inpos, outpos, ratio(inpos, insize)); + return 1; +} + +// result callback +void STDPREFIX sampleresultcallback(char *resultstr, int errorcode) +{ + printf("%s\n", resultstr); +} +//--------------------------------------------------------------------------- + + + + + +//--------------------------------------------------------------------------- +/* + * Compress a file. + */ +int compress_file(const char *oldname, const char *packedname,callbackfuncdef *callbackfp,resultcallbackfundef *resultcallbackfp) +{ + FILE *oldfile; + FILE *packedfile; + size_t insize = 0; + size_t outsize = 0; + clock_t clocks; + byte *data, *packed, *workmem; + + /* open input file */ + if ((oldfile = fopen(oldname, "rb")) == NULL) + { + resultcallbackfp("ERR: unable to open input file",1); + return 1; + } + + /* get size of input file */ + fseek(oldfile, 0, SEEK_END); + insize = (size_t) ftell(oldfile); + fseek(oldfile, 0, SEEK_SET); + + /* allocate memory */ + if ((data = (byte *) malloc(insize)) == NULL || + (packed = (byte *) malloc(aP_max_packed_size(insize))) == NULL || + (workmem = (byte *) malloc(aP_workmem_size(insize))) == NULL) + { + resultcallbackfp("ERR: not enough memory",1); + return 1; + } + + if (fread(data, 1, insize, oldfile) != insize) + { + resultcallbackfp("ERR: error reading from input file",1); + return 1; + } + + clocks = clock(); + + /* compress data block */ + outsize = aPsafe_pack(data, packed, insize, workmem, callbackfp, NULL); + + clocks = clock() - clocks; + + /* check for compression error */ + if (outsize == APLIB_ERROR) + { + resultcallbackfp("ERR: an error occured while compressing",1); + return 1; + } + + /* create output file */ + if ((packedfile = fopen(packedname, "wb")) == NULL) + { + resultcallbackfp("ERR: unable to create output file",1); + return 1; + } + + fwrite(packed, 1, outsize, packedfile); + + /* show result */ + char resultstr[255]; + sprintf(resultstr,"compressed %u -> %u bytes (%u%%) in %.2f seconds", + insize, outsize, ratio(outsize, insize), + (double)clocks / (double)CLOCKS_PER_SEC); + resultcallbackfp(resultstr,0); + + /* close files */ + fclose(packedfile); + fclose(oldfile); + + /* free memory */ + free(workmem); + free(packed); + free(data); + + return 0; +} + +/* + * Decompress a file. + */ +int decompress_file(const char *packedname, const char *newname,callbackfuncdef *callbackfp,resultcallbackfundef *resultcallbackfp) +{ + FILE *newfile; + FILE *packedfile; + size_t insize = 0; + size_t outsize = 0; + clock_t clocks; + byte *data, *packed; + size_t depackedsize; + + /* open input file */ + if ((packedfile = fopen(packedname, "rb")) == NULL) + { + resultcallbackfp("ERR: unable to open input file",1); + return 1; + } + + /* get size of input file */ + fseek(packedfile, 0, SEEK_END); + insize = (size_t) ftell(packedfile); + fseek(packedfile, 0, SEEK_SET); + + /* allocate memory */ + if ((packed = (byte *) malloc(insize)) == NULL) + { + resultcallbackfp("ERR: not enough memory",1); + return 1; + } + + if (fread(packed, 1, insize, packedfile) != insize) + { + resultcallbackfp("ERR: error reading from input file",1); + return 1; + } + + depackedsize = aPsafe_get_orig_size(packed); + + if (depackedsize == APLIB_ERROR) + { + resultcallbackfp("ERR: compressed data error",1); + return 1; + } + + /* allocate memory */ + if ((data = (byte *) malloc(depackedsize)) == NULL) + { + resultcallbackfp("ERR: not enough memory",1); + return 1; + } + + clocks = clock(); + + /* decompress data */ + outsize = aPsafe_depack(packed, insize, data, depackedsize); + + clocks = clock() - clocks; + + /* check for decompression error */ + if (outsize != depackedsize) + { + resultcallbackfp("ERR: an error occured while decompressing",1); + return 1; + } + + /* create output file */ + if ((newfile = fopen(newname, "wb")) == NULL) + { + resultcallbackfp("ERR: unable to create output file",1); + return 1; + } + + /* write decompressed data */ + fwrite(data, 1, outsize, newfile); + + /* show result */ + char resultstr[255]; + sprintf(resultstr,"decompressed %u -> %u bytes in %.2f seconds", + insize, outsize, + (double)clocks / (double)CLOCKS_PER_SEC); + resultcallbackfp(resultstr,0); + + /* close files */ + fclose(packedfile); + fclose(newfile); + + /* free memory */ + free(packed); + free(data); + + return 0; +} + + +/* + * Show program syntax. + */ +void show_syntax(void) +{ + printf("syntax:\n\n" + " compress : appack c \n" + " decompress : appack d \n\n"); +} +//--------------------------------------------------------------------------- + + + + +//--------------------------------------------------------------------------- +/* + * Main. + */ +int samplemain(int argc, char *argv[]) +{ + /* show banner */ + printf("===============================================================================\n" + "aPLib example Copyright (c) 1998-2009 by Joergen Ibsen / Jibz\n" + " All Rights Reserved\n\n" + " http://www.ibsensoftware.com/\n" + "===============================================================================\n\n"); + + /* check number of arguments */ + if (argc != 4) + { + show_syntax(); + return 1; + } + +#ifdef __WATCOMC__ + /* OpenWatcom 1.2 line buffers stdout, so we unbuffer stdout manually + to make the progress indication in the callback work. + */ + setbuf(stdout, NULL); +#endif + + /* check first character of first argument to determine action */ + if (argv[1][0] && argv[1][1] == '\0') + { + switch (argv[1][0]) + { + /* compress file */ + case 'c': + case 'C': return compress_file(argv[2], argv[3],samplecallback,sampleresultcallback); + + /* decompress file */ + case 'd': + case 'D': return decompress_file(argv[2], argv[3],samplecallback,sampleresultcallback); + } + } + + /* show program syntax */ + show_syntax(); + return 1; +} +//--------------------------------------------------------------------------- + +``` + +`aPLib/contrib/bcb/apacksamplec.h`: + +```h +//--------------------------------------------------------------------------- +// apackcsample.c +//--------------------------------------------------------------------------- + +//--------------------------------------------------------------------------- +// Header Guard +#ifndef aspacksamplecH +#define aspacksamplecH +//--------------------------------------------------------------------------- + + +//--------------------------------------------------------------------------- +// Calling Convenction (depends on library) +// This version works with watcom version of the lib +//#define STDPREFIX __stdcall +#define STDPREFIX __cdecl +//--------------------------------------------------------------------------- + + +//--------------------------------------------------------------------------- +// Forward declarations +// +typedef STDPREFIX int (callbackfuncdef)(unsigned int insize, unsigned int inpos, unsigned int outpos, void *cbparam); +typedef STDPREFIX void (resultcallbackfundef)(char *errorstring,int errorcode); +// +int STDPREFIX samplecallback(unsigned int insize, unsigned int inpos, unsigned int outpos, void *cbparam); +void STDPREFIX sampleresultcallback(char *errorstr); +// +unsigned int ratio(unsigned int x, unsigned int y); +int compress_file(const char *oldname, const char *packedname,callbackfuncdef *callbackfp,resultcallbackfundef *resultcallbackfp); +int decompress_file(const char *packedname, const char *newname,callbackfuncdef *callbackfp,resultcallbackfundef *resultcallbackfp); +int samplemain(int argc, char *argv[]); +void show_syntax(void); +//--------------------------------------------------------------------------- + + + + + + +//--------------------------------------------------------------------------- +// Header Guard +#endif +//--------------------------------------------------------------------------- +``` + +`aPLib/contrib/bcb/aptest.bpr`: + +```bpr + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +[Version Info] +IncludeVerInfo=0 +AutoIncBuild=0 +MajorVer=1 +MinorVer=0 +Release=0 +Build=0 +Debug=0 +PreRelease=0 +Special=0 +Private=0 +DLL=0 +Locale=1033 +CodePage=1252 + +[Version Info Keys] +CompanyName= +FileDescription= +FileVersion=1.0.0.0 +InternalName= +LegalCopyright= +LegalTrademarks= +OriginalFilename= +ProductName= +ProductVersion=1.0.0.0 +Comments= + +[Excluded Packages] + +[HistoryLists\hlIncludePath] +Count=0 + +[HistoryLists\hlLibraryPath] +Count=0 + +[HistoryLists\hlDebugSourcePath] +Count=0 + +[Debugging] +DebugSourceDirs=$(BCB)\source\vcl + +[Parameters] +RunParams= +Launcher= +UseLauncher=0 +DebugCWD= +HostApplication= +RemoteHost= +RemotePath= +RemoteLauncher= +RemoteCWD= +RemoteDebug=0 + +[Compiler] +ShowInfoMsgs=0 +LinkDebugVcl=0 +LinkCGLIB=0 + +[CORBA] +AddServerUnit=1 +AddClientUnit=1 +PrecompiledHeaders=1 + + +``` + +`aPLib/contrib/bcb/aptest.cpp`: + +```cpp +//--------------------------------------------------------------------------- + +#include +#pragma hdrstop +//--------------------------------------------------------------------------- +USEFORM("MainFormUnit.cpp", MainForm); +//--------------------------------------------------------------------------- +WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) +{ + try + { + Application->Initialize(); + Application->CreateForm(__classid(TMainForm), &MainForm); + Application->Run(); + } + catch (Exception &exception) + { + Application->ShowException(&exception); + } + catch (...) + { + try + { + throw Exception(""); + } + catch (Exception &exception) + { + Application->ShowException(&exception); + } + } + return 0; +} +//--------------------------------------------------------------------------- + +``` + +`aPLib/contrib/delphi/aplib.pas`: + +```pas +(* + * aPLib compression library - the smaller the better :) + * + * Delphi aPLib wrapper for example + * + * Copyright (c) 1998-2009 by Joergen Ibsen / Jibz + * All Rights Reserved + * + * http://www.ibsensoftware.com/ + * + * -> Delphi by Solodovnikov Alexey 21.03.1999 (alenka@mail.line.ru) + *) + +unit aPLib; + +interface + +uses + Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, +(*$IFDEF DYNAMIC_VERSION*) + aPLibud; +(*$ELSE*) + aPLibu; +(*$ENDIF*) + +const + aP_pack_break : DWORD = 0; + aP_pack_continue : DWORD = 1; + + aPLib_Error : DWORD = DWORD(-1); (* indicates error compressing/decompressing *) + +type + + TaPLib = class(TComponent) + private + FWorkMem : Pointer; + FLength : DWORD; + FSource : Pointer; + FDestination : Pointer; + + protected + + public + + CallBack : TaPack_Status; + + procedure Pack; + procedure DePack; + + property Source : Pointer read FSource write FSource; + property Destination : Pointer read FDestination write FDestination; + property Length : DWORD read FLength write FLength; + + published + + end; + + procedure Register; + +implementation + +procedure Register; +begin + RegisterComponents('Samples', [TaPLib]); +end; + +procedure TaPLib.Pack; +begin + if FDestination <> nil then + begin + FreeMem(FDestination); + FDestination := nil; + end; + + if FWorkMem <> nil then + begin + FreeMem(FWorkMem); + FWorkMem := nil; + end; + + GetMem(FDestination,_aP_max_packed_size(FLength)); + if FDestination = nil then raise Exception.Create('Out of memory'); + + GetMem(FWorkMem,_aP_workmem_size(FLength)); + if FWorkMem = nil then raise Exception.Create('Out of memory'); + + FLength := _aPsafe_pack(FSource^, FDestination^, FLength, FWorkMem^, CallBack, nil); + + if FLength = aPLib_Error then raise Exception.Create('Compression error'); +end; + +procedure TaPLib.DePack; +var + DLength : DWORD; +begin + if FDestination <> nil then + begin + FreeMem(FDestination); + FDestination := nil; + end; + + DLength := _aPsafe_get_orig_size(FSource^); + if DLength = aPLib_Error then raise Exception.Create('File is not packed with aPLib'); + + Getmem(FDestination, DLength); + if FDestination = nil then raise Exception.Create('Out of memory'); + + FLength := _aPsafe_depack(FSource^, FLength, FDestination^, DLength); + + if FLength = aPLib_Error then raise Exception.Create('Decompression error'); +end; + +end. + +``` + +`aPLib/contrib/delphi/aplibu.pas`: + +```pas +(* + * aPLib compression library - the smaller the better :) + * + * Delphi interface to aPLib Delphi objects + * + * Copyright (c) 1998-2009 by Joergen Ibsen / Jibz + * All Rights Reserved + * + * http://www.ibsensoftware.com/ + * + * -> Delphi by Solodovnikov Alexey 21.03.1999 (alenka@mail.line.ru) + *) + +unit aPLibu; + +interface + +uses + Windows; + +const + aP_pack_break : DWORD = 0; + aP_pack_continue : DWORD = 1; + + aPLib_Error : DWORD = DWORD(-1); (* indicates error compressing/decompressing *) + +type + + TaPack_Status = function(w0, w1, w2 : DWORD; + cbparam : Pointer) : DWORD;cdecl; + + function _aP_pack(var Source; + var Destination; + Length : DWORD; + var WorkMem; + Callback : TaPack_Status; + cbparam : Pointer) : DWORD;cdecl; + function _aP_workmem_size(InputSize : DWORD) : DWORD;cdecl; + function _aP_max_packed_size(InputSize : DWORD) : DWORD;cdecl; + function _aP_depack_asm(var Source, Destination) : DWORD;cdecl; + function _aP_depack_asm_fast(var Source, Destination) : DWORD;cdecl; + function _aP_depack_asm_safe(var Source; + SrcLen : DWORD; + var Destination; + DstLen :DWORD) : DWORD;cdecl; + function _aP_crc32(var Source; Length : DWORD) : DWORD;cdecl; + function _aPsafe_pack(var Source; + var Destination; + Length : DWORD; + var WorkMem; + Callback : TaPack_Status; + cbparam : Pointer) : DWORD;cdecl; + function _aPsafe_check(var Source) : DWORD;cdecl; + function _aPsafe_get_orig_size(var Source) : DWORD;cdecl; + function _aPsafe_depack(var Source; + SrcLen : DWORD; + var Destination; + DstLen :DWORD) : DWORD;cdecl; + +implementation + + function _aP_pack(var Source; + var Destination; + Length : DWORD; + var WorkMem; + CallBack : TaPack_Status; + cbparam : Pointer) : DWORD;external; + + function _aP_workmem_size(InputSize : DWORD) : DWORD;external; + + function _aP_max_packed_size(InputSize : DWORD) : DWORD;external; + + function _aP_depack_asm(var Source, Destination) : DWORD;external; + + function _aP_depack_asm_fast(var Source, Destination) : DWORD;external; + + function _aP_depack_asm_safe(var Source; + SrcLen : DWORD; + var Destination; + DstLen :DWORD) : DWORD;external; + + function _aP_crc32(var Source; Length : DWORD) : DWORD;external; + + function _aPsafe_pack(var Source; + var Destination; + Length : DWORD; + var WorkMem; + CallBack : TaPack_Status; + cbparam : Pointer) : DWORD;external; + + function _aPsafe_check(var Source) : DWORD;external; + + function _aPsafe_get_orig_size(var Source) : DWORD;external; + + function _aPsafe_depack(var Source; + SrcLen : DWORD; + var Destination; + DstLen :DWORD) : DWORD;external; + +{$L ..\..\lib\omf\aplib.obj} +{$L ..\..\lib\omf\depack.obj} +{$L ..\..\lib\omf\depackf.obj} +{$L ..\..\lib\omf\depacks.obj} +{$L ..\..\lib\omf\crc32.obj} +{$L ..\..\lib\omf\spack.obj} +{$L ..\..\lib\omf\scheck.obj} +{$L ..\..\lib\omf\sgetsize.obj} +{$L ..\..\lib\omf\sdepack.obj} + +end. + +``` + +`aPLib/contrib/delphi/aplibud.pas`: + +```pas +(* + * aPLib compression library - the smaller the better :) + * + * Delphi interface to aPLib dll + * + * Copyright (c) 1998-2009 by Joergen Ibsen / Jibz + * All Rights Reserved + * + * http://www.ibsensoftware.com/ + * + * -> Delphi by Solodovnikov Alexey 21.03.1999 (alenka@mail.line.ru) + *) + +unit aPLibud; + +interface + +uses + Windows; + +const + aP_pack_break : DWORD = 0; + aP_pack_continue : DWORD = 1; + + aPLib_Error : DWORD = DWORD(-1); (* indicates error compressing/decompressing *) + +type + + TaPack_Status = function(w0, w1, w2 : DWORD; + cbparam : Pointer) : DWORD;stdcall; + + function _aP_pack(var Source; + var Destination; + Length : DWORD; + var WorkMem; + Callback : TaPack_Status; + cbparam : Pointer) : DWORD;stdcall; + function _aP_workmem_size(InputSize : DWORD) : DWORD;stdcall; + function _aP_max_packed_size(InputSize : DWORD) : DWORD;stdcall; + function _aP_depack_asm(var Source, Destination) : DWORD;stdcall; + function _aP_depack_asm_fast(var Source, Destination) : DWORD;stdcall; + function _aP_depack_asm_safe(var Source; + SrcLen : DWORD; + var Destination; + DstLen :DWORD) : DWORD;stdcall; + function _aP_crc32(var Source; Length : DWORD) : DWORD;stdcall; + function _aPsafe_pack(var Source; + var Destination; + Length : DWORD; + var WorkMem; + Callback : TaPack_Status; + cbparam : Pointer) : DWORD;stdcall; + function _aPsafe_check(var Source) : DWORD;stdcall; + function _aPsafe_get_orig_size(var Source) : DWORD;stdcall; + function _aPsafe_depack(var Source; + SrcLen : DWORD; + var Destination; + DstLen :DWORD) : DWORD;stdcall; + +implementation + +const + DLL = 'aplib.dll'; + + function _aP_pack(var Source; + var Destination; + Length : DWORD; + var WorkMem; + CallBack : TaPack_Status; + cbparam : Pointer) : DWORD;stdcall;external DLL; + + function _aP_workmem_size(InputSize : DWORD) : DWORD;stdcall;external DLL; + + function _aP_max_packed_size(InputSize : DWORD) : DWORD;stdcall;external DLL; + + function _aP_depack_asm(var Source, Destination) : DWORD;stdcall;external DLL; + + function _aP_depack_asm_fast(var Source, Destination) : DWORD;stdcall;external DLL; + + function _aP_depack_asm_safe(var Source; + SrcLen : DWORD; + var Destination; + DstLen :DWORD) : DWORD;external DLL; + + function _aP_crc32(var Source; Length : DWORD) : DWORD;stdcall;external DLL; + + function _aPsafe_pack(var Source; + var Destination; + Length : DWORD; + var WorkMem; + CallBack : TaPack_Status; + cbparam : Pointer) : DWORD;stdcall;external DLL; + + function _aPsafe_check(var Source) : DWORD;stdcall;external DLL; + + function _aPsafe_get_orig_size(var Source) : DWORD;stdcall;external DLL; + + function _aPsafe_depack(var Source; + SrcLen : DWORD; + var Destination; + DstLen :DWORD) : DWORD;external DLL; + +end. + +``` + +`aPLib/contrib/delphi/aptest.dof`: + +```dof +[Compiler] +A=1 +B=0 +C=1 +D=1 +E=0 +F=0 +G=1 +H=1 +I=1 +J=1 +K=0 +L=1 +M=0 +N=1 +O=1 +P=1 +Q=0 +R=0 +S=0 +T=0 +U=0 +V=1 +W=0 +X=1 +Y=0 +Z=1 +ShowHints=1 +ShowWarnings=1 +UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; +[Linker] +MapFile=0 +OutputObjs=0 +ConsoleApp=1 +DebugInfo=0 +MinStackSize=16384 +MaxStackSize=1048576 +ImageBase=4194304 +ExeDescription= +[Directories] +OutputDir= +UnitOutputDir= +SearchPath= +Packages=vclx30;VCL30;vcldb30;vcldbx30;inetdb30;inet30;VclSmp30;Qrpt30;teeui30;teedb30;tee30;dss30;IBEVNT30;RxDB;RxCtl;RxTools;ppQryWiz;ppDsgnr;ppRCL;ppBDE +Conditionals= +DebugSourceDirs= +UsePackages=0 +[Parameters] +RunParams= +HostApplication= +[Version Info] +IncludeVerInfo=0 +AutoIncBuild=0 +MajorVer=1 +MinorVer=0 +Release=0 +Build=0 +Debug=0 +PreRelease=0 +Special=0 +Private=0 +DLL=0 +Locale=1049 +CodePage=1251 +[Version Info Keys] +CompanyName= +FileDescription= +FileVersion=1.0.0.0 +InternalName= +LegalCopyright= +LegalTrademarks= +OriginalFilename= +ProductName= +ProductVersion=1.0.0.0 +Comments= + +``` + +`aPLib/contrib/delphi/aptest.dpr`: + +```dpr +program aPTest; + +uses + Forms, + t_main in 't_main.pas' {frmMain}; + +{$R *.RES} + +begin + Application.Initialize; + Application.CreateForm(TfrmMain, frmMain); + Application.Run; +end. + +``` + +`aPLib/contrib/delphi/makefile`: + +``` +## +## aPLib compression library - the smaller the better :) +## +## Delphi example makefile (Borland make) +## +## Copyright (c) 1998-2009 by Joergen Ibsen / Jibz +## All Rights Reserved +## + +# Add -DDYNAMIC_VERSION to the dccflags variable to link with the +# dll interface (remember to copy the aPLib dll here). + +libdir = ..\..\lib\omf + +target = aptest.exe +objects = t_main.dcu aplib.dcu aplibu.dcu aplibud.dcu aptest.dpr $(libdir)\aplib.obj $(libdir)\depack.obj $(libdir)\depackf.obj + +dcc = dcc32.exe +dccflags = -Q -$A+ -$O+ -$D- + +.phony: clean + +$(target): $(objects) + $(dcc) $(dccflags) aptest.dpr + +.pas.dcu: + $(dcc) $(dccflags) $< + +clean: + del $(target) + del *.dcu + +``` + +`aPLib/contrib/delphi/t_main.pas`: + +```pas +unit t_main; + +interface + +uses + Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, + aPLib, ExtCtrls, StdCtrls, ComCtrls; + +type + TfrmMain = class(TForm) + aPLib: TaPLib; + Button1: TButton; + Button2: TButton; + Panel1: TPanel; + OD: TOpenDialog; + GroupBox1: TGroupBox; + PB: TProgressBar; + Label3: TLabel; + Label4: TLabel; + Label1: TLabel; + Label2: TLabel; + Label5: TLabel; + CancelBtn: TButton; + procedure Button1Click(Sender: TObject); + procedure Button2Click(Sender: TObject); + procedure CancelBtnClick(Sender: TObject); + private + { Private declarations } + public + Cancel : Boolean; + FileSize : DWORD; + end; + +(*$IFDEF DYNAMIC_VERSION*) + function CallBack(w0, w1, w2 : DWORD; cbparam : Pointer) : DWORD;stdcall; +(*$ELSE*) + function CallBack(w0, w1, w2 : DWORD; cbparam : Pointer) : DWORD;cdecl; +(*$ENDIF*) + +var + frmMain: TfrmMain; + +implementation + +{$R *.DFM} + +function CallBack(w0, w1, w2 : DWORD; cbparam : Pointer) : DWORD; +begin + with frmMain do + begin + Label4.Caption := FormatFloat('##%', ((FileSize - (w1-w2))/FileSize) * 100); + PB.Position := Round(w1/FileSize*100); + + Application.ProcessMessages; + + if Cancel then Result := aP_pack_break + else Result := aP_pack_continue; + end; +end; + +procedure TfrmMain.Button1Click(Sender: TObject); +var + FileIn, + FileOut : TFileStream; + Length : DWORD; + Buffer : Pointer; +begin + if not OD.Execute then Exit; + + FileIn := TFileStream.Create(OD.FileName,fmOpenRead or fmShareDenyWrite); + GetMem(Buffer, FileIn.Size); + Length := FileIn.Size; + FileIn.Read(Buffer^, Length); + + aPLib.Source := Buffer; + aPLib.Length := Length; + + aPlib.CallBack := @CallBack; + + FileSize := FileIn.Size; + Cancel := False; + CancelBtn.Enabled := True; + + aPLib.Pack; + + FileIn.Destroy; + + if aPLib.Length = 0 then Exit; + + FileOut := TFileStream.Create(ExtractFilePath(OD.FileName)+'out.apk', fmCreate); + FileOut.Write(aPLib.Destination^, aPLib.Length); + FileOut.Destroy; + + CancelBtn.Enabled := False; + + ShowMessage('Packed file name is out.apk !'); + +end; + +procedure TfrmMain.Button2Click(Sender: TObject); +var + FileIn, + FileOut : TFileStream; + Length : DWORD; + Buffer : Pointer; +begin + if not OD.Execute then Exit; + + FileIn := TFileStream.Create(OD.FileName,fmOpenRead or fmShareDenyWrite); + GetMem(Buffer, Length); + Length := FileIn.Size; + FileIn.Read(Buffer^, Length); + + aPLib.Source := Buffer; + aPLib.Length := Length; + + aPLib.DePack; + + FileIn.Destroy; + + FileOut := TFileStream.Create(ExtractFilePath(OD.FileName)+'out.dat', fmCreate or fmOpenWrite); + FileOut.Write(aPLib.Destination^, aPLib.Length); + FileOut.Destroy; + + ShowMessage('Original file name is out.dat !'); +end; + +procedure TfrmMain.CancelBtnClick(Sender: TObject); +begin + Cancel := True; +end; + +end. + +``` + +`aPLib/contrib/dotnet/IbsenSoftware/aPLib/AssemblyInfo.cs`: + +```cs +// +// aPLib compression library - the smaller the better :) +// +// C# wrapper +// +// Copyright (c) 1998-2009 by Joergen Ibsen / Jibz +// All Rights Reserved +// +// http://www.ibsensoftware.com/ +// + +using System.Reflection; +using System.Runtime.CompilerServices; + +[assembly: AssemblyTitle("aPLib dll wrapper")] +[assembly: AssemblyDescription("C# wrapper for the aPLib dll")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("Ibsen Software")] +[assembly: AssemblyProduct("aPLib compression library")] +[assembly: AssemblyCopyright("Copyright (c) 1998-2009 by Joergen Ibsen. All Rights Reserved.")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +[assembly: AssemblyVersion("1.0.0.0")] + +[assembly: AssemblyDelaySign(false)] +[assembly: AssemblyKeyFile("")] + +``` + +`aPLib/contrib/dotnet/IbsenSoftware/aPLib/DllInterface.cs`: + +```cs +// +// aPLib compression library - the smaller the better :) +// +// C# wrapper +// +// Copyright (c) 1998-2009 by Joergen Ibsen / Jibz +// All Rights Reserved +// +// http://www.ibsensoftware.com/ +// + +namespace IbsenSoftware.aPLib +{ + using System.Runtime.InteropServices; + + public class DllInterface + { + // declare delegate type used for compression callback + public delegate int CompressionCallback( + int length, + int slen, + int dlen, + int cbparam + ); + + [DllImport("aplib.dll")] + public static extern int aP_pack( + [In] byte[] source, + [Out] byte[] destination, + int length, + [In] byte[] workmem, + CompressionCallback callback, + int cbparam + ); + + [DllImport("aplib.dll")] + public static extern int aP_workmem_size(int length); + + [DllImport("aplib.dll")] + public static extern int aP_max_packed_size(int length); + + [DllImport("aplib.dll")] + public static extern int aP_depack_asm( + [In] byte[] source, + [Out] byte[] destination + ); + + [DllImport("aplib.dll")] + public static extern int aP_depack_asm_fast( + [In] byte[] source, + [Out] byte[] destination + ); + + [DllImport("aplib.dll")] + public static extern int aP_depack_asm_safe( + [In] byte[] source, + int srclen, + [Out] byte[] destination, + int dstlen + ); + + [DllImport("aplib.dll")] + public static extern int aP_crc32([In] byte[] source, int length); + + [DllImport("aplib.dll")] + public static extern int aPsafe_pack( + [In] byte[] source, + [Out] byte[] destination, + int length, + [In] byte[] workmem, + CompressionCallback callback, + int cbparam + ); + + [DllImport("aplib.dll")] + public static extern int aPsafe_check([In] byte[] source); + + [DllImport("aplib.dll")] + public static extern int aPsafe_get_orig_size([In] byte[] source); + + [DllImport("aplib.dll")] + public static extern int aPsafe_depack( + [In] byte[] source, + int srclen, + [Out] byte[] destination, + int dstlen + ); + } +} + +``` + +`aPLib/contrib/dotnet/appack.cs`: + +```cs +// +// aPLib compression library - the smaller the better :) +// +// C# example +// +// Copyright (c) 1998-2009 by Joergen Ibsen / Jibz +// All Rights Reserved +// +// http://www.ibsensoftware.com/ +// + +using System; +using System.IO; + +using IbsenSoftware.aPLib; + +class appack +{ + static int ShowProgress(int length, int slen, int dlen, int cbparam) + { + Console.Write("{0} -> {1}\r", slen, dlen); + return 1; + } + + static void CompressStream(Stream from, Stream to) + { + byte[] src = new byte[from.Length]; + + // read file + if (from.Read(src, 0, src.Length) == src.Length) + { + int dstSize = DllInterface.aP_max_packed_size(src.Length); + int wrkSize = DllInterface.aP_workmem_size(src.Length); + + // allocate mem + byte[] dst = new byte[dstSize]; + byte[] wrk = new byte[wrkSize]; + + // compress data + int packedSize = DllInterface.aPsafe_pack( + src, + dst, + src.Length, + wrk, + new DllInterface.CompressionCallback(ShowProgress), + 0 + ); + + // write compressed data + to.Write(dst, 0, packedSize); + + Console.WriteLine("compressed to {0} bytes", packedSize); + } + } + + static void DecompressStream(Stream from, Stream to) + { + byte[] src = new byte[from.Length]; + + // read file + if (from.Read(src, 0, src.Length) == src.Length) + { + int dstSize = DllInterface.aPsafe_get_orig_size(src); + + // allocate mem + byte[] dst = new byte[dstSize]; + + // decompress data + int depackedSize = DllInterface.aPsafe_depack(src, src.Length, dst, dstSize); + + // write compressed data + to.Write(dst, 0, depackedSize); + + Console.WriteLine("decompressed to {0} bytes", depackedSize); + } + } + + public static void Main(string[] args) + { + Console.WriteLine("==============================================================================="); + Console.WriteLine("aPLib example in C# Copyright (c) 1998-2009 by Joergen Ibsen / Jibz"); + Console.WriteLine(" All Rights Reserved\n"); + Console.WriteLine(" http://www.ibsensoftware.com/"); + Console.WriteLine("===============================================================================\n"); + + if ((args.Length != 3) || ((args[0] != "c") && (args[0] != "d"))) + { + Console.WriteLine("Syntax: appack "); + return; + } + + string inFilename = args[1]; + string outFilename = args[2]; + + if (!File.Exists(inFilename)) + { + Console.WriteLine("Error: unable to find file '{0}'", inFilename); + return; + } + + try { + + using (FileStream inFile = File.OpenRead(inFilename), + outFile = File.Create(outFilename)) + { + if (args[0] == "c") + { + CompressStream(inFile, outFile); + } else { + DecompressStream(inFile, outFile); + } + } + + } catch (Exception e) { + + Console.WriteLine("Error: {0}", e.ToString()); + } + } +} + +``` + +`aPLib/contrib/dotnet/mk.bat`: + +```bat +@ECHO OFF +ECHO --- Building aPLib .NET dll wrapper --- +ECHO. + +csc /nologo /w:3 /t:library /debug- /o+ /out:IbsenSoftware.aPLib.dll IbsenSoftware\aPLib\*.cs + +``` + +`aPLib/contrib/masm32/aplib.inc`: + +```inc +;; +;; aPLib compression library - the smaller the better :) +;; +;; MASM32 include file +;; + +aP_pack proto c, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD +aP_workmem_size proto c, :DWORD +aP_max_packed_size proto c, :DWORD +aP_depack_asm proto c, :DWORD, :DWORD +aP_depack_asm_fast proto c, :DWORD, :DWORD +aP_depack_asm_safe proto c, :DWORD, :DWORD, :DWORD, :DWORD +aP_crc32 proto c, :DWORD, :DWORD + +aPsafe_pack proto c, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD, :DWORD +aPsafe_check proto c, :DWORD +aPsafe_get_orig_size proto c, :DWORD +aPsafe_depack proto c, :DWORD, :DWORD, :DWORD, :DWORD + +``` + +`aPLib/contrib/masm32/appack.asm`: + +```asm +; ######################################################################### + +; aPPack is a test piece for MASM programmers using Joergen Ibsen's +; MASM version of "aPLib". It is an implementation of the LZ77 algorithm +; that has the characteristics of reasonable compression speed and very +; high decompression speed. + +; This makes it highly suitable for installations and other similar +; applications where decompression speed is critical. The compression +; ratio averages slightly better than PKZIP. + +; aPLib is included in MASM32 because it is available from the author +; for personal use as freeware. Commercial applications should contact +; the author for licence of the software. + +; This example uses the 'safe function wrappers' for the compression and +; decompression functions, which maintain a header in front of the packed +; data that is used for crc checking and to determine the length of the +; decompressed data so that the decompression algorithm knows the correct +; buffer size to allocate. + +; This example uses OLE string memory which is implemented in 2 macros +; for convenience of use. The macros are "stralloc" and "strfree". + +; Note that the toolbar bitmap is the single largest component in the +; assembled program. + +; ######################################################################### + + .386 + .model flat, stdcall ; 32 bit memory model + option casemap :none ; case sensitive + + include aPPack.inc ; local includes for this file + +; ######################################################################### + +.code + +start: + invoke GetModuleHandle, NULL + mov hInstance, eax + + invoke GetCommandLine + mov CommandLine, eax + + invoke InitCommonControls + + invoke WinMain,hInstance,NULL,CommandLine,SW_SHOWDEFAULT + invoke ExitProcess,eax + +; ######################################################################### + +WinMain proc hInst :DWORD, + hPrevInst :DWORD, + CmdLine :DWORD, + CmdShow :DWORD + + ;==================== + ; Put LOCALs on stack + ;==================== + + LOCAL wc :WNDCLASSEX + LOCAL msg :MSG + LOCAL Wwd :DWORD + LOCAL Wht :DWORD + LOCAL Wtx :DWORD + LOCAL Wty :DWORD + + ;================================================== + ; Fill WNDCLASSEX structure with required variables + ;================================================== + + invoke LoadIcon,hInst,500 ; icon ID + mov hIcon, eax + + szText szClassName,"aPLib_Class" + + mov wc.cbSize, sizeof WNDCLASSEX + mov wc.style, CS_HREDRAW or CS_VREDRAW \ + or CS_BYTEALIGNWINDOW + mov wc.lpfnWndProc, offset WndProc + mov wc.cbClsExtra, NULL + mov wc.cbWndExtra, NULL + m2m wc.hInstance, hInst + mov wc.hbrBackground, COLOR_BTNFACE+1 + mov wc.lpszMenuName, NULL + mov wc.lpszClassName, offset szClassName + m2m wc.hIcon, hIcon + invoke LoadCursor,NULL,IDC_ARROW + mov wc.hCursor, eax + m2m wc.hIconSm, hIcon + + invoke RegisterClassEx, ADDR wc + + ;================================ + ; Centre window at following size + ;================================ + + mov Wwd, 334 + mov Wht, 191 + + invoke GetSystemMetrics,SM_CXSCREEN + invoke TopXY,Wwd,eax + mov Wtx, eax + + invoke GetSystemMetrics,SM_CYSCREEN + invoke TopXY,Wht,eax + mov Wty, eax + + invoke CreateWindowEx,WS_EX_LEFT, + ADDR szClassName, + ADDR szDisplayName, + WS_OVERLAPPED or WS_SYSMENU, + Wtx,Wty,Wwd,Wht, + NULL,NULL, + hInst,NULL + mov hWnd,eax + + invoke LoadMenu,hInst,600 ; menu ID + invoke SetMenu,hWnd,eax + + invoke ShowWindow,hWnd,SW_SHOWNORMAL + invoke UpdateWindow,hWnd + + ;=================================== + ; Loop until PostQuitMessage is sent + ;=================================== + + StartLoop: + invoke GetMessage,ADDR msg,NULL,0,0 + cmp eax, 0 + je ExitLoop + invoke TranslateMessage, ADDR msg + invoke DispatchMessage, ADDR msg + jmp StartLoop + ExitLoop: + + return msg.wParam + +WinMain endp + +; ######################################################################### + +WndProc proc hWin :DWORD, + uMsg :DWORD, + wParam :DWORD, + lParam :DWORD + + LOCAL var :DWORD + LOCAL caW :DWORD + LOCAL caH :DWORD + LOCAL hFont :DWORD + LOCAL Rct :RECT + LOCAL hDC :DWORD + LOCAL Ps :PAINTSTRUCT + LOCAL tbab :TBADDBITMAP + LOCAL tbb :TBBUTTON + LOCAL buffer1[128]:BYTE ; these are two spare buffers + LOCAL buffer2[128]:BYTE ; for text manipulation etc.. + + .if uMsg == WM_COMMAND + + ; ******************************************************** + ; first check commands that are not allowed while packing + ; ******************************************************** + .if Packing == 0 + + .if wParam == 50 + .data + ThreadID dd 0 + .code + + ; start compressing in a thread + mov eax, OFFSET PackFile + invoke CreateThread,NULL,NULL,eax, + NULL,0,ADDR ThreadID + invoke CloseHandle,eax + + .elseif wParam == 51 + invoke UnpackFile + + .elseif wParam == 53 + invoke SendMessage,hWin,WM_SYSCOMMAND,SC_CLOSE,NULL + + .elseif wParam == 54 + + .data + SelectFile db "Select File",0 + fPattern db "*.*",0,0 + .code + + mov szFileName[0], 0 + + invoke GetFileName,hWin,ADDR SelectFile,ADDR fPattern + + .if szFileName[0] != 0 + invoke lcase,ADDR szFileName + invoke SetWindowText,hEdit1,ADDR szFileName + .endif + + .endif + + .endif + + ; ************************************** + ; then commands that are always allowed + ; ************************************** + .if wParam == 52 + + .data + AboutTtl db "aPLib Pack",0 + AboutMsg db "Joergen Ibsen's aPLib example",13,10,\ + "Copyright © MASM32 2001",0 + .code + + invoke ShellAbout,hWin,ADDR AboutTtl,ADDR AboutMsg,hIcon + + .elseif wParam == 55 + mov ContPack, 0 + + .elseif wParam == 56 + mov killFlag, 1 + + .endif + + .elseif uMsg == WM_SYSCOLORCHANGE + invoke Do_ToolBar,hWin + + .elseif uMsg == WM_CREATE + invoke Do_ToolBar,hWin + + .data + align 4 + caption db "...",0 + abortbt db "Stop",0 + nullbyte db 0 + .code + + invoke EditSl,ADDR nullbyte,20,100,253,22,hWin,700 + mov hEdit1, eax + invoke PushButton,ADDR caption,hWin,283,100,25,22,54 + mov hButn1, eax + invoke Static,ADDR nullbyte,hWin,20,127,240,20,500 + mov hStat1, eax + invoke PushButton,ADDR abortbt,hWin,270,127,38,21,55 + mov hButn2, eax + + invoke GetStockObject,ANSI_VAR_FONT + mov hFont, eax + + invoke SendMessage,hEdit1,WM_SETFONT,hFont,0 + invoke SendMessage,hButn1,WM_SETFONT,hFont,0 + invoke SendMessage,hStat1,WM_SETFONT,hFont,0 + invoke SendMessage,hButn2,WM_SETFONT,hFont,0 + + .elseif uMsg == WM_SIZE + invoke SendMessage,hToolBar,TB_AUTOSIZE,0,0 + + .elseif uMsg == WM_PAINT + invoke BeginPaint,hWin,ADDR Ps + mov hDC, eax + invoke Paint_Proc,hWin,hDC + invoke EndPaint,hWin,ADDR Ps + return 0 + + .elseif uMsg == WM_CLOSE + + .elseif uMsg == WM_DESTROY + invoke PostQuitMessage,NULL + return 0 + .endif + + invoke DefWindowProc,hWin,uMsg,wParam,lParam + + ret + +WndProc endp + +; ######################################################################## + +TopXY proc wDim:DWORD, sDim:DWORD + + shr sDim, 1 ; divide screen dimension by 2 + shr wDim, 1 ; divide window dimension by 2 + mov eax, wDim ; copy window dimension into eax + sub sDim, eax ; sub half win dimension from half screen dimension + + return sDim + +TopXY endp + +; ######################################################################### + +Paint_Proc proc hWin:DWORD, hDC:DWORD + + LOCAL btn_hi :DWORD + LOCAL btn_lo :DWORD + LOCAL Rct :RECT + + invoke GetSysColor,COLOR_BTNHIGHLIGHT + mov btn_hi, eax + + invoke GetSysColor,COLOR_BTNSHADOW + mov btn_lo, eax + + invoke FrameGrp,hEdit1,hButn2,4,1,0 + invoke FrameGrp,hEdit1,hButn2,5,1,1 + invoke FrameGrp,hEdit1,hButn2,14,1,0 + + return 0 + +Paint_Proc endp + +; ######################################################################## + +PackFile proc Param:DWORD + + LOCAL hFile :DWORD + LOCAL ln :DWORD + LOCAL br :DWORD + LOCAL source$ :DWORD + LOCAL dest$ :DWORD + LOCAL working$:DWORD + LOCAL clenth :DWORD + LOCAL szNameFile[128]:BYTE + + push esi + push edi + + invoke GetWindowText,hEdit1,ADDR szNameFile,128 + + cmp szNameFile[0], 0 + jne @F + invoke MessageBox,hWnd,ADDR plSelect, + ADDR szDisplayName,MB_OK + mov eax, 0 + pop edi + pop esi + ret + @@: + + invoke CreateFile,ADDR szNameFile, + GENERIC_READ, + FILE_SHARE_READ, + NULL,OPEN_EXISTING, + FILE_ATTRIBUTE_NORMAL, + NULL + mov hFile, eax + + invoke GetFileSize,hFile,NULL + mov ln, eax + + stralloc ln + mov source$, eax + + invoke ReadFile,hFile,source$,ln,ADDR br,NULL + + invoke CloseHandle,hFile + + mov esi, source$ + lodsd + cmp eax, "23PA" ; test for "AP32" signature + jne @F + .data + beendone db "This file has already been compressed by aPPack",0 + .code + invoke MessageBox,hWnd,ADDR beendone, + ADDR szDisplayName,MB_OK + strfree source$ + pop edi + pop esi + ret + @@: + + invoke aP_max_packed_size,ln + + stralloc eax + mov dest$, eax + + invoke aP_workmem_size,ln + + stralloc eax + mov working$, eax + + ; --------------------------------------- + ; compress source$ and write it to dest$ + ; --------------------------------------- + + mov Packing, 1 + mov ContPack, 1 + + invoke aPsafe_pack,source$,dest$,ln,working$,ADDR cbProc,NULL + mov clenth, eax + + .if eax == 0 + .data + aborted db "Packing aborted",0 + .code + invoke SendMessage,hStat1,WM_SETTEXT,0,ADDR aborted + jmp Abort + .endif + + .data + Patn1 db "*.*",0,0 + SaveFile1 db "Save File As",0 + .code + + mov szFileName[0], 0 + invoke SaveFileName,hWnd,ADDR SaveFile1,ADDR Patn1 + + .if szFileName[0] != 0 + ; ----------------------------------------- + ; truncate file to zero length if it exists + ; ----------------------------------------- + invoke CreateFile,ADDR szFileName, ; pointer to name of the file + GENERIC_WRITE, ; access (read-write) mode + NULL, ; share mode + NULL, ; pointer to security attributes + CREATE_ALWAYS, ; how to create + FILE_ATTRIBUTE_NORMAL, ; file attributes + NULL + mov hFile, eax + + invoke WriteFile,hFile,dest$,clenth,ADDR br,NULL + invoke CloseHandle,hFile + + .endif + + Abort: + + strfree source$ + strfree dest$ + strfree working$ + + mov Packing, 0 + + pop edi + pop esi + + ret + +PackFile endp + +; ######################################################################## + +UnpackFile proc + + LOCAL hFile :DWORD + LOCAL ln :DWORD + LOCAL br :DWORD + LOCAL dsize :DWORD + LOCAL source$ :DWORD + LOCAL dest$ :DWORD + LOCAL szNameFile[128]:BYTE + + push esi + + invoke GetWindowText,hEdit1,ADDR szNameFile,128 + + cmp szNameFile[0], 0 + jne @F + invoke MessageBox,hWnd,ADDR plSelect, + ADDR szDisplayName,MB_OK + mov eax, 0 + pop esi + ret + @@: + + invoke CreateFile,ADDR szNameFile, + GENERIC_READ, + FILE_SHARE_READ, + NULL,OPEN_EXISTING, + FILE_ATTRIBUTE_NORMAL, + NULL + mov hFile, eax + + invoke GetFileSize,hFile,NULL + mov ln, eax + + stralloc ln + mov source$, eax + + invoke ReadFile,hFile,source$,ln,ADDR br,NULL + + invoke CloseHandle,hFile + + invoke aPsafe_get_orig_size,source$ + mov dsize, eax + + test eax,eax + jnz @F + .data + noap db "This file has not been compressed by aPPack",0 + .code + invoke MessageBox,hWnd,ADDR noap, + ADDR szDisplayName,MB_OK + strfree source$ + pop esi + ret + @@: + stralloc dsize + mov dest$, eax + + invoke aPsafe_depack,source$,ln,dest$,dsize + + .data + Patn2 db "*.*",0,0 + SaveFile2 db "Save File As",0 + .code + + mov szFileName[0], 0 + invoke SaveFileName,hWnd,ADDR SaveFile2,ADDR Patn2 + + .if szFileName[0] != 0 + ; ----------------------------------------- + ; truncate file to zero length if it exists + ; ----------------------------------------- + invoke CreateFile,ADDR szFileName, ; pointer to name of the file + GENERIC_WRITE, ; access (read-write) mode + NULL, ; share mode + NULL, ; pointer to security attributes + CREATE_ALWAYS, ; how to create + FILE_ATTRIBUTE_NORMAL, ; file attributes + NULL + + mov hFile, eax + invoke WriteFile,hFile,dest$,dsize,ADDR br,NULL + invoke CloseHandle,hFile + .endif + + strfree source$ + strfree dest$ + + pop esi + + ret + +UnpackFile endp + +; ######################################################################## + +cbProc proc C orglen:DWORD,len1:DWORD,len2:DWORD,cbparam:DWORD + + ; ------------------------------------------------------ + ; This is an application defined callback that receives + ; 2 parameters from the "aP_pack" procedure during the + ; compression process. Note the "C" calling convention. + ; ------------------------------------------------------ + + LOCAL buff[32]:BYTE + LOCAL buf2[16]:BYTE + + invoke dwtoa,len1,ADDR buff + invoke dwtoa,len2,ADDR buf2 + + .data + arrow db " => ",0 + .code + + invoke lstrcat,ADDR buff,ADDR arrow + invoke lstrcat,ADDR buff,ADDR buf2 + + invoke SendMessage,hStat1,WM_SETTEXT,0,ADDR buff + + mov eax, ContPack + ret + +cbProc endp + +; ######################################################################## + +end start + +``` + +`aPLib/contrib/masm32/appack.inc`: + +```inc +; ######################################################################### + +; include files +; ~~~~~~~~~~~~~ + include \MASM32\INCLUDE\windows.inc + include \MASM32\INCLUDE\masm32.inc + include \MASM32\INCLUDE\gdi32.inc + include \MASM32\INCLUDE\user32.inc + include \MASM32\INCLUDE\kernel32.inc + include \MASM32\INCLUDE\Comctl32.inc + include \MASM32\INCLUDE\comdlg32.inc + include \MASM32\INCLUDE\shell32.inc + include \MASM32\include\oleaut32.inc + include aplib.inc + +; libraries +; ~~~~~~~~~ + includelib \MASM32\LIB\masm32.lib + + includelib \MASM32\LIB\gdi32.lib + includelib \MASM32\LIB\user32.lib + includelib \MASM32\LIB\kernel32.lib + includelib \MASM32\LIB\Comctl32.lib + includelib \MASM32\LIB\comdlg32.lib + includelib \MASM32\LIB\shell32.lib + includelib \MASM32\LIB\oleaut32.lib + includelib ..\..\lib\coff\aplib.lib + +; ######################################################################### + + ;================= + ; Local prototypes + ;================= + WinMain PROTO :DWORD,:DWORD,:DWORD,:DWORD + WndProc PROTO :DWORD,:DWORD,:DWORD,:DWORD + TopXY PROTO :DWORD,:DWORD + Paint_Proc PROTO :DWORD,:DWORD + PackFile PROTO :DWORD + UnpackFile PROTO + cbProc PROTO C :DWORD,:DWORD,:DWORD,:DWORD + + wsprintfA PROTO C :DWORD,:VARARG + wsprintf equ + + ;============= + ; Local macros + ;============= + + szText MACRO Name, Text:VARARG + LOCAL lbl + jmp lbl + Name db Text,0 + lbl: + ENDM + + m2m MACRO M1, M2 + push M2 + pop M1 + ENDM + + return MACRO arg + mov eax, arg + ret + ENDM + + stralloc MACRO ln + invoke SysAllocStringByteLen,0,ln + ENDM + + strfree MACRO strhandle + invoke SysFreeString,strhandle + ENDM + + .data + CommandLine dd 0 + hWnd dd 0 + hInstance dd 0 + hIcon dd 0 + hEdit1 dd 0 + hButn1 dd 0 + hButn2 dd 0 + hStat1 dd 0 + Packing dd 0 + ContPack dd 1 + killFlag dd 0 + szDisplayName db "aPLib Pack",0 + plSelect db "Please Select File First",0 + +; ########################### Inserted modules ############################ + + include toolbar.asm + include filedlgs.asm + include ctrls.asm + +; ######################################################################### + +``` + +`aPLib/contrib/masm32/ctrls.asm`: + +```asm +; ######################################################################## + + PushButton PROTO :DWORD,:DWORD,:DWORD,:DWORD,:DWORD,:DWORD,:DWORD + EditSl PROTO :DWORD,:DWORD,:DWORD,:DWORD,:DWORD,:DWORD,:DWORD + Static PROTO :DWORD,:DWORD,:DWORD,:DWORD,:DWORD,:DWORD,:DWORD + + .data + btnClass db "BUTTON",0 + EditClass db "EDIT",0 + statClass db "STATIC",0 + + .code + +; ######################################################################## + +PushButton proc lpText:DWORD,hParent:DWORD, + a:DWORD,b:DWORD,wd:DWORD,ht:DWORD,ID:DWORD + +; invoke PushButton,ADDR szText,hWnd,20,20,100,25,500 + + invoke CreateWindowEx,0, + ADDR btnClass,lpText, + WS_CHILD or WS_VISIBLE, + a,b,wd,ht,hParent,ID, + hInstance,NULL + + ret + +PushButton endp + +; ######################################################################### + +EditSl proc szMsg:DWORD,a:DWORD,b:DWORD, + wd:DWORD,ht:DWORD,hParent:DWORD,ID:DWORD + +; invoke EditSl,ADDR adrTxt,200,10,150,25,hWnd,700 + + + invoke CreateWindowEx,WS_EX_CLIENTEDGE,ADDR EditClass,szMsg, + WS_VISIBLE or WS_CHILDWINDOW or \ + ES_AUTOHSCROLL or ES_NOHIDESEL, + a,b,wd,ht,hParent,ID,hInstance,NULL + + ret + +EditSl endp + +; ######################################################################## + +Static proc lpText:DWORD,hParent:DWORD, + a:DWORD,b:DWORD,wd:DWORD,ht:DWORD,ID:DWORD + +; invoke Static,ADDR szText,hWnd,20,20,100,25,500 + + invoke CreateWindowEx,WS_EX_STATICEDGE, + ADDR statClass,lpText, + WS_CHILD or WS_VISIBLE or SS_CENTER, + a,b,wd,ht,hParent,ID, + hInstance,NULL + + ret + +Static endp + +; ######################################################################## + + +``` + +`aPLib/contrib/masm32/filedlgs.asm`: + +```asm +; ######################################################################## + + GetFileName PROTO :DWORD, :DWORD, :DWORD + SaveFileName PROTO :DWORD, :DWORD, :DWORD + FillBuffer PROTO :DWORD, :DWORD, :BYTE + + .data + szFileName db 260 dup(0) + ofn OPENFILENAME <> ; structure + + .code + +; ######################################################################## + +GetFileName proc hParent:DWORD,lpTitle:DWORD,lpFilter:DWORD + + mov ofn.lStructSize, sizeof OPENFILENAME + m2m ofn.hWndOwner, hParent + m2m ofn.hInstance, hInstance + m2m ofn.lpstrFilter, lpFilter + m2m ofn.lpstrFile, offset szFileName + mov ofn.nMaxFile, sizeof szFileName + m2m ofn.lpstrTitle, lpTitle + mov ofn.Flags, OFN_EXPLORER or OFN_FILEMUSTEXIST or \ + OFN_LONGNAMES + + invoke GetOpenFileName,ADDR ofn + + ret + +GetFileName endp + +; ######################################################################### + +SaveFileName proc hParent:DWORD,lpTitle:DWORD,lpFilter:DWORD + + mov ofn.lStructSize, sizeof OPENFILENAME + m2m ofn.hWndOwner, hParent + m2m ofn.hInstance, hInstance + m2m ofn.lpstrFilter, lpFilter + m2m ofn.lpstrFile, offset szFileName + mov ofn.nMaxFile, sizeof szFileName + m2m ofn.lpstrTitle, lpTitle + mov ofn.Flags, OFN_EXPLORER or OFN_LONGNAMES or OFN_OVERWRITEPROMPT + + invoke GetSaveFileName,ADDR ofn + + ret + +SaveFileName endp + +; ######################################################################## + +``` + +`aPLib/contrib/masm32/makeit.bat`: + +```bat +@echo off + +if not exist rsrc.rc goto over1 +\MASM32\BIN\Rc.exe /v rsrc.rc +\MASM32\BIN\Cvtres.exe /machine:ix86 rsrc.res +:over1 + +if exist %1.obj del aPPack.obj +if exist %1.exe del aPPack.exe + +\MASM32\BIN\Ml.exe /c /coff aPPack.asm +if errorlevel 1 goto errasm + +if not exist rsrc.obj goto nores + +\MASM32\BIN\Link.exe /SUBSYSTEM:WINDOWS aPPack.obj rsrc.obj +if errorlevel 1 goto errlink + +dir aPPack.* +goto TheEnd + +:nores +\MASM32\BIN\Link.exe /SUBSYSTEM:WINDOWS aPPack.obj +if errorlevel 1 goto errlink +dir aPPack.* +goto TheEnd + +:errlink +echo _ +echo Link error +goto TheEnd + +:errasm +echo _ +echo Assembly Error +goto TheEnd + +:TheEnd + +pause + +``` + +`aPLib/contrib/masm32/rsrc.rc`: + +```rc +#include "\masm32\include\resource.h" + +500 ICON MOVEABLE PURE LOADONCALL DISCARDABLE "ap.ico" + +750 BITMAP MOVEABLE PURE LOADONCALL DISCARDABLE "file0750.bmp" + +``` + +`aPLib/contrib/masm32/tbmacros.asm`: + +```asm + ; --------------------------- + ; macros for creating toolbar + ; --------------------------- + + TBextraData MACRO + mov tbb.fsState, TBSTATE_ENABLED + mov tbb.dwData, 0 + mov tbb.iString, 0 + ENDM + + ; ------------------------------ + + TBbutton MACRO bID, cID + mov tbb.iBitmap, bID ;; button ID number + mov tbb.idCommand, cID ;; command ID number + mov tbb.fsStyle, TBSTYLE_BUTTON + invoke SendMessage,hToolBar,TB_ADDBUTTONS,1,ADDR tbb + ENDM + + ; ------------------------------ + + TBblank MACRO + mov tbb.iBitmap, 0 + mov tbb.idCommand, 0 + mov tbb.fsStyle, TBSTYLE_SEP + invoke SendMessage,hToolBar,TB_ADDBUTTONS,1,ADDR tbb + ENDM + + ; ------------------------------ + + Create_Tool_Bar MACRO Wd, Ht + + szText tbClass,"ToolbarWindow32" + + invoke CreateWindowEx,0, + ADDR tbClass, + ADDR szDisplayName, + WS_CHILD or WS_VISIBLE or CCS_NODIVIDER or TBSTYLE_FLAT, + 0,0,500,40, + hWin,NULL, + hInstance,NULL + + ;; or TBSTYLE_FLAT + + mov hToolBar, eax + + invoke SendMessage,hToolBar,TB_BUTTONSTRUCTSIZE,sizeof TBBUTTON,0 + + ;; --------------------------------------- + ;; Put width & height of bitmap into DWORD + ;; --------------------------------------- + mov ecx,Wd ;; loword = bitmap Width + mov eax,Ht ;; hiword = bitmap Height + shl eax,16 + mov ax, cx + + mov bSize, eax + + invoke SendMessage,hToolBar,TB_SETBITMAPSIZE,0,bSize + + invoke SetBmpColor,hTbBmp + mov hTbBmp,eax + + mov tbab.hInst, 0 + m2m tbab.nID, hTbBmp + invoke SendMessage,hToolBar,TB_ADDBITMAP,12,ADDR tbab + + invoke SendMessage,hToolBar,TB_SETBUTTONSIZE,0,bSize + ENDM + + +``` + +`aPLib/contrib/masm32/toolbar.asm`: + +```asm +; ######################################################################## + + Do_ToolBar PROTO :DWORD + SetBmpColor PROTO :DWORD + + include tbmacros.asm + + .data + hTbBmp dd 0 + hToolBar dd 0 + + .code + +; ######################################################################## + +Do_ToolBar proc hWin :DWORD + + ; --------------------------------------- + ; This proc works by using macros so that + ; the code is easier to read and modify + ; --------------------------------------- + + LOCAL bSize :DWORD + LOCAL tbab :TBADDBITMAP + LOCAL tbb :TBBUTTON + + ; ------------------ + ; The toolbar bitmap + ; ~~~~~~~~~~~~~~~~~~ + ; You must supply a bitmap for the toolbar that has the + ; correct number of the required images, each of the same + ; size and in the following strip bitmap form. + + ; ------------------------------------- + ; | 1 | 2 | 3 | 4 | 5 | 6 | + ; ------------------------------------- + + ; ------------------------ + ; Uncomment following when + ; bitmap has been created + ; ------------------------ + invoke LoadBitmap,hInstance,750 + mov hTbBmp,eax + + ; -------------------------------------------------- + ; Set toolbar button dimensions here, width & height + ; -------------------------------------------------- + Create_Tool_Bar 75, 75 + + TBextraData ; additional data for TBBUTTON structure + + ; ----------------------------------- + ; Add toolbar buttons and spaces here + ; Syntax for the macro TBbutton is + ; TBbutton bmpID number, WM_COMMAND ID number + ; WM_COMMAND ID numbers start at 50 + ; ----------------------------------- + TBbutton 0, 50 + TBbutton 1, 51 + TBbutton 2, 52 + TBbutton 3, 53 + + ret + +Do_ToolBar endp + +; ######################################################################## + +SetBmpColor proc hBitmap:DWORD + + LOCAL mDC :DWORD + LOCAL hBrush :DWORD + LOCAL hOldBmp :DWORD + LOCAL hReturn :DWORD + LOCAL hOldBrush :DWORD + + invoke CreateCompatibleDC,NULL + mov mDC,eax + + invoke SelectObject,mDC,hBitmap + mov hOldBmp,eax + + invoke GetSysColor,COLOR_BTNFACE + invoke CreateSolidBrush,eax + mov hBrush,eax + + invoke SelectObject,mDC,hBrush + mov hOldBrush,eax + + invoke GetPixel,mDC,1,1 + invoke ExtFloodFill,mDC,1,1,eax,FLOODFILLSURFACE + + invoke SelectObject,mDC,hOldBrush + invoke DeleteObject,hBrush + + invoke SelectObject,mDC,hBitmap + mov hReturn,eax + invoke DeleteDC,mDC + + mov eax,hReturn + + ret + +SetBmpColor endp + +; ######################################################################### + +``` + +`aPLib/contrib/python/aplib.py`: + +```py +################################################################################ +# quick hack for using aplib (http://www.ibsensoftware.com/products_aPLib.html) +# put aplib.dll in %PATH% or same dir as this script +# on *nix it might require LD_LIBRARY_PATH set depending on where libaplib.so is + +import os +from ctypes import * + +################################################################################ + +__all__ = [ 'pack', 'pack_safe', 'depack', 'depack_safe', 'CB_COMPRESS'] + +################################################################################ + +if os.name == 'nt': + CB_COMPRESS = WINFUNCTYPE(c_uint, c_uint, c_uint, c_uint, c_void_p) + _aplib = windll.aplib +else: + CB_COMPRESS = CFUNCTYPE(c_uint, c_uint, c_uint, c_uint, c_void_p) + # might require LD_LIBRARY_PATH set + _aplib = CDLL("libaplib.so") + +def _ratio(inpos, insize): + return (inpos * 100) / insize + +def _cbCompress(insize, inpos, outpos, cbparam): + print "compressed %u -> %u bytes (%u%% done)" % \ + ( inpos, outpos, _ratio(inpos, insize)) + return 1 + +_cbCompressFunc = CB_COMPRESS(_cbCompress) + +################################################################################ + +def pack(src, cb=None): + + srclen = len(src) + if srclen <= 0: + raise ValueError('Invalid input.') + + dstlen = _aplib.aP_max_packed_size(srclen) + dst = create_string_buffer(dstlen) + wrkmem = create_string_buffer(_aplib.aP_workmem_size(srclen)) + + dstlen = _aplib.aP_pack(src, dst, srclen, wrkmem, cb, 0) + + if dstlen == -1: + raise ValueError('Compression error.') + + return buffer(dst, 0, dstlen) + +def pack_safe(src, cb=None): + + srclen = len(src) + if srclen <= 0: + raise ValueError('Invalid input.') + + dstlen = _aplib.aP_max_packed_size(srclen) + dst = create_string_buffer(dstlen) + wrkmem = create_string_buffer(_aplib.aP_workmem_size(srclen)) + + dstlen = _aplib.aPsafe_pack(src, dst, srclen, wrkmem, cb, 0) + + if dstlen == -1: + raise ValueError('Compression error.') + + return buffer(dst, 0, dstlen) + +################################################################################ + +def depack(src, dstlen): + + srclen = len(src) + if srclen <= 0 or dstlen <= 0: + raise ValueError('Invalid input.') + + dst = create_string_buffer(dstlen) + + dstlen = _aplib.aP_depack_asm_safe(src, srclen, dst, dstlen) + + if dstlen == -1: + raise ValueError('Decompression error.') + + return buffer(dst, 0, dstlen) + +def depack_safe(src): + + srclen = len(src) + if srclen <= 0: + raise ValueError('Invalid input.') + + dstlen = _aplib.aPsafe_get_orig_size(src) + dst = create_string_buffer(dstlen) + + dstlen = _aplib.aPsafe_depack(src, srclen, dst, dstlen) + + if dstlen == -1: + raise ValueError('Decompression error.') + + return buffer(dst, 0, dstlen) + +################################################################################ + +if __name__ == "__main__": + import optparse + + parser = optparse.OptionParser( + usage='%prog [-h] [-v] -m c|d infile outfile' + ) + parser.add_option( + '-m', '--mode', + action="store", + type="string", + dest='mode', + help='c for compress, d for decompress') + parser.add_option( + '-v', '--verbose', + action="store_true", + dest='verbose') + + options, args = parser.parse_args() + if not options.mode in ['c', 'd']: + parser.error('You must give a valid --mode') + if not len(args) == 2: + parser.error('You must give in- and outfile') + + infile = args[0] + outfile = args[1] + + src = open(infile, 'rb').read() + + if options.mode == 'c': + print "Compressing '%s' to '%s'" % (infile, outfile) + if options.verbose: + dst = pack_safe(src, _cbCompressFunc) + else: + dst = pack_safe(src) + open(outfile, 'wb').write(dst) + print "Compressed '%s' from %u to %u bytes (%u%%)" \ + % (infile, len(src), len(dst), _ratio(len(dst), len(src))) + elif options.mode == 'd': + print "Decompressing '%s' to '%s'" % (infile, outfile) + dst = depack_safe(src) + open(outfile, 'wb').write(dst) + print "Decompressed '%s' from %u to %u bytes (%u%%)" \ + % (infile, len(src), len(dst), _ratio(len(dst), len(src))) + + +################################################################################ + +``` + +`aPLib/contrib/tmt/aplibu.pas`: + +```pas +unit aplibu; + +(* + * aPLib compression library - the smaller the better :) + * + * TMT Pascal interface to aPLib Delphi objects + * + * Copyright (c) 1998-2009 by Joergen Ibsen / Jibz + * All Rights Reserved + * + * http://www.ibsensoftware.com/ + * + * -> VPascal by Veit Kannegieser, 23.09.1998 + * -> TMT Pascal by Oleg Prokhorov + *) + +(* To enable aborting compression with Esc, define ESC_ABORT *) + +interface + +const + aP_pack_continue=1; + aP_pack_break =0; + + aPLib_Error =-1; (* indicates error compressing/decompressing *) + +function aP_pack(var source; + var destination; + length:longint; + var workmem; + callback:pointer; + cbparam:pointer):longint; + +function aP_workmem_size(inputsize:longint):longint; + +function aP_max_packed_size(inputsize:longint):longint; + +function aP_depack_asm(var source,destination):longint; + +function aP_depack_asm_fast(var source,destination):longint; + +function aP_depack_asm_safe(var source; + srclen:longint; + var destination; + dstlen:longint):longint; + +function aP_crc32(var source; + length:longint):longint; + +function aPsafe_pack(var source; + var destination; + length:longint; + var workmem; + callback:pointer; + cbparam:pointer):longint; + +function aPsafe_check(var source):longint; + +function aPsafe_get_orig_size(var source):longint; + +function aPsafe_depack(var source; + srclen:longint; + var destination; + dstlen:longint):longint; + +function cb0:longint; +function cb1:longint; + +implementation + +(*$IFDEF ESC_ABORT*) +uses crt; +(*$ENDIF ESC_ABORT*) + +function _aP_pack:longint;external; +function _aP_workmem_size:longint;external; +function _aP_max_packed_size:longint;external; +function _aP_depack_asm:longint;external; +function _aP_depack_asm_fast:longint;external; +function _aP_depack_asm_safe:longint;external; +function _aP_crc32:longint;external; +function _aPsafe_pack:longint;external; +function _aPsafe_check:longint;external; +function _aPsafe_get_orig_size:longint;external; +function _aPsafe_depack:longint;external; + +(*$l ..\..\lib\omf\aplib.obj *) +(*$l ..\..\lib\omf\depack.obj *) +(*$l ..\..\lib\omf\depackf.obj *) +(*$l ..\..\lib\omf\depacks.obj *) +(*$l ..\..\lib\omf\crc32.obj *) +(*$l ..\..\lib\omf\spack.obj *) +(*$l ..\..\lib\omf\scheck.obj *) +(*$l ..\..\lib\omf\sgetsize.obj *) +(*$l ..\..\lib\omf\sdepack.obj *) + +function aP_pack(var source; + var destination; + length:longint; + var workmem; + callback:pointer; + cbparam:pointer):longint;assembler; + asm + push cbparam + push callback + push workmem + push length + push destination + push source + call _aP_pack + end; + +function aP_workmem_size(inputsize:longint):longint;assembler; + asm + push inputsize + call _aP_workmem_size + end; + +function aP_max_packed_size(inputsize:longint):longint;assembler; + asm + push inputsize + call _aP_max_packed_size + end; + +function aP_depack_asm(var source,destination):longint;assembler; + asm + push destination + push source + call _aP_depack_asm + end; + +function aP_depack_asm_fast(var source,destination):longint;assembler; + asm + push destination + push source + call _aP_depack_asm_fast + end; + +function aP_depack_asm_safe(var source; + srclen:longint; + var destination; + dstlen:longint):longint;assembler; + asm + push dstlen + push destination + push srclen + push source + call _aP_depack_asm_safe + end; + +function aP_crc32(var source; + length:longint):longint;assembler; + asm + push length + push source + call _aP_crc32 + end; + +function aPsafe_pack(var source; + var destination; + length:longint; + var workmem; + callback:pointer; + cbparam:pointer):longint;assembler; + asm + push cbparam + push callback + push workmem + push length + push destination + push source + call _aPsafe_pack + end; + +function aPsafe_check(var source):longint;assembler; + asm + push source + call _aPsafe_check + end; + +function aPsafe_get_orig_size(var source):longint;assembler; + asm + push source + call _aPsafe_get_orig_size + end; + +function aPsafe_depack(var source; + srclen:longint; + var destination; + dstlen:longint):longint;assembler; + asm + push dstlen + push destination + push srclen + push source + call _aPsafe_depack + end; + + +(* callback samples for _aP_pack *) + +function cb0:longint;assembler; + asm + mov eax,aP_pack_continue + end; + +function cb1_(w1,w2:longint):longint; + begin + write(w1:8,' -> ',w2:8,^m); + cb1_:=aP_pack_continue; + (*$IFDEF ESC_ABORT*) + if keypressed then + if readkey=#27 then + cb1_:=aP_pack_break; + (*$ENDIF ESC_ABORT*) + end; + +function cb1:longint;assembler; + asm + pushad + push dword [ebp+0Ch] + push dword [ ebp+10h] + call cb1_ + mov [esp+1ch],eax (* POPAD restores EAX *) + popad + end; + +end. + +``` + +`aPLib/contrib/tmt/appack.pas`: + +```pas +(* + * aPLib compression library - the smaller the better :) + * + * TMT Pascal packing example + * + * Copyright (c) 1998-2009 by Joergen Ibsen / Jibz + * All Rights Reserved + * + * http://www.ibsensoftware.com/ + * + * -> VPascal by Veit Kannegieser, 23.09.1998 + * -> TMT Pascal by Oleg Prokhorov + *) + +uses aplibu; + +var + infile,outfile :file; + inbuffer,outbuffer :pointer; + workmem :pointer; + insize,outsize :longint; + +begin + (* check number of parameters *) + if paramcount<1 then + begin + writeln; + writeln('Syntax: APPACK [output file]'); + writeln; + halt(1); + end; + + (* open input file and read data *) + assign(infile,paramstr(1)); + reset(infile,1); + insize:=filesize(infile); + getmem(inbuffer,insize); + blockread(infile,inbuffer^,insize); + close(infile); + + (* get output mem and workmem *) + getmem(outbuffer,aP_max_packed_size(insize)); + getmem(workmem,aP_workmem_size(insize)); + + (* pack data *) + outsize:=aPsafe_pack(inbuffer^,outbuffer^,insize,workmem^,@cb1,nil); + writeln; + + if outsize=aPLib_Error then + begin + WriteLn; + WriteLn('ERR: an error occured while compressing'); + WriteLn; + Halt(1); + end; + + (* write packed data *) + if paramcount<2 then + begin + assign(outfile,'out.apk'); + writeln; + writeln('No output file specified, writing to ''out.apk'''); + end else assign(outfile,paramstr(2)); + rewrite(outfile,1); + blockwrite(outfile,outbuffer^,outsize); + close(outfile); + + (* free mem *) + freemem(inbuffer,insize); + freemem(outbuffer,aP_max_packed_size(insize)); + freemem(workmem,aP_workmem_size(insize)); + +end. + +``` + +`aPLib/contrib/tmt/apunpack.pas`: + +```pas +(* + * aPLib compression library - the smaller the better :) + * + * TMT Pascal depacking example + * + * Copyright (c) 1998-2009 by Joergen Ibsen / Jibz + * All Rights Reserved + * + * http://www.ibsensoftware.com/ + * + * -> VPascal by Veit Kannegieser, 23.09.1998 + * -> TMT Pascal by Oleg Prokhorov + *) + +uses aplibu; + +var + infile,outfile :file; + inbuffer,outbuffer :pointer; + insize,outsize :longint; + outmemsize :longint; + +begin + (* check number of parameters *) + if paramcount<1 then + begin + writeln; + writeln('Syntax: APUNPACK [output file]'); + writeln; + halt(1); + end; + + (* open input file and read header *) + assign(infile,paramstr(1)); + reset(infile,1); + insize:=filesize(infile); + + (* get mem and read input file *) + getmem(inbuffer,insize); + blockread(infile,inbuffer^,insize); + close(infile); + + (* check header and get original size *) + outmemsize := aPsafe_get_orig_size(inbuffer^); + if outmemsize=aPLib_Error then + begin + writeln('File is not packed with aPPack.'); + halt(0); + end; + + (* get mem for unpacked data *) + getmem(outbuffer,outmemsize); + + (* unpack data *) + outsize:=aPsafe_depack(inbuffer^,insize,outbuffer^,outmemsize); + + if outsize=aPLib_Error then + begin + WriteLn; + WriteLn('ERR: compressed data error'); + WriteLn; + Halt(1); + end; + + if outsize<>outmemsize then halt(1); + + (* write unpacked data *) + if paramcount<2 then + begin + assign(outfile,'out.dat'); + writeln; + writeln('No output file specified, writing to ''out.dat'''); + end else assign(outfile,paramstr(2)); + rewrite(outfile,1); + blockwrite(outfile,outbuffer^,outsize); + close(outfile); + + (* free memory *) + freemem(inbuffer,insize); + freemem(outbuffer,outmemsize); + +end. + +``` + +`aPLib/contrib/tmt/makeit.bat`: + +```bat +@ECHO OFF +ECHO --- Building aPLib TMT Pascal example --- +ECHO. + +tmtpc -C aplibu.pas +tmtpc -$LOGO- appack.pas +tmtpc -$LOGO- apunpack.pas + +``` + +`aPLib/contrib/vpascal/aplib.def`: + +```def +LIBRARY 'aplib.dll' + +STUB NONE + +DESCRIPTION '@#Jibz,V.K.:1.01#@ aPLib Compression/Decompression Library' + +EXPORTS + _aP_pack @1 + _aP_workmem_size @2 + _aP_max_packed_size @3 + _aP_depack_asm @4 + _aP_depack_asm_fast @5 + _aP_depack_asm_safe @6 + _aP_crc32 @7 + _aPsafe_pack @8 + _aPsafe_check @9 + _aPsafe_get_orig_size @10 + _aPsafe_depack @11 + +``` + +`aPLib/contrib/vpascal/aplibu.pas`: + +```pas +unit aplibu; + +(* + * aPLib compression library - the smaller the better :) + * + * VPascal interface to aplib.lib + * + * Copyright (c) 1998-2009 by Joergen Ibsen / Jibz + * All Rights Reserved + * + * http://www.ibsensoftware.com/ + * + * -> VPascal by Veit Kannegieser, 23.09.1998 + *) + +interface + +const + aP_pack_continue =1; + aP_pack_break =0; + + aPLib_Error =-1; (* indicates error compressing/decompressing *) + +(* compression status callback functions *) +{&Saves EBX,ECX,EDX,ESI,EDI} +{&Cdecl+} +type + apack_status =function(const w0,w1,w2:longint; + const cbparam:pointer):longint; + +function cb0(const w0,w1,w2:longint; const cbparam:pointer):longint; +function cb1(const w0,w1,w2:longint; const cbparam:pointer):longint; + +{&Saves EBX,ESI,EDI} +{&Cdecl-} + + +(* library functions *) +{&Cdecl+}{&OrgName+} (* aplibu@_aP_pack -> _aP_pack *) + +function _aP_pack( + const source; + const destination; + const length :longint; + const workmem; + const callback :apack_status; + const cbparam:pointer) :longint; + +function _aP_workmem_size( + const inputsize :longint) :longint; + +function _aP_max_packed_size( + const inputsize :longint) :longint; + +function _aP_depack_asm( + const source; + const destination) :longint; + +function _aP_depack_asm_fast( + const source; + const destination) :longint; + +function _aP_depack_asm_safe( + const source; + const srclen :longint; + const destination; + const dstlen :longint) :longint; + +function _aP_crc32( + const source; + const length :longint) :longint; + +function _aPsafe_pack( + const source; + const destination; + const length :longint; + const workmem; + const callback :apack_status; + const cbparam:pointer) :longint; + +function _aPsafe_check( + const source) :longint; + +function _aPsafe_get_orig_size( + const source) :longint; + +function _aPsafe_depack( + const source; + const srclen :longint; + const destination; + const dstlen :longint) :longint; + +{&Cdecl-}{&OrgName-} + + +implementation + +{$IFDEF ESC_ABORT} +uses + VpSysLow; +{$ENDIF ESC_ABORT} + +function _aP_pack ;external; +function _aP_workmem_size ;external; +function _aP_max_packed_size ;external; +function _aP_depack_asm ;external; +function _aP_depack_asm_fast ;external; +function _aP_depack_asm_safe ;external; +function _aP_crc32 ;external; +function _aPsafe_pack ;external; +function _aPsafe_check ;external; +function _aPsafe_get_orig_size ;external; +function _aPsafe_depack ;external; + +{$L ..\..\lib\omf\aplib.lib} + +(* callback samples for _aP_pack *) + +function cb0(const w0,w1,w2:longint; + const cbparam:pointer):longint;assembler;{&Frame-}{&Uses None} + asm + mov eax,aP_pack_continue + end; + +function cb1(const w0,w1,w2:longint; + const cbparam:pointer):longint; + begin + Write(w1:8,' -> ',w2:8,^m); + cb1:=aP_pack_continue; + {$IfDef ESC_ABORT} + if SysKeyPressed then + if SysReadKey=#27 then + cb1:=aP_pack_break; + {$EndIf ESC_ABORT} + end; + +end. + +``` + +`aPLib/contrib/vpascal/aplibud.pas`: + +```pas +unit aplibud; + +(* + * aPLib compression library - the smaller the better :) + * + * VPascal interface to aplib.lib + * + * Copyright (c) 1998-2009 by Joergen Ibsen / Jibz + * All Rights Reserved + * + * http://www.ibsensoftware.com/ + * + * -> VPascal by Veit Kannegieser, 23.09.1998 + *) + +interface + +const + aP_pack_continue =1; + aP_pack_break =0; + + aPLib_Error =-1; (* indicates error compressing/decompressing *) + +(* compression status callback functions *) +{&Saves EBX,ECX,EDX,ESI,EDI} +{$IfDef Win32} {&StdCall+} {$Else} {&Cdecl+} {$EndIf} +type + apack_status =function(const w0,w1,w2:longint; + const cbparam:pointer):longint; + +function cb0(const w0,w1,w2:longint; const cbparam:pointer):longint; +function cb1(const w0,w1,w2:longint; const cbparam:pointer):longint; + +{&Saves EBX,ESI,EDI} +{&StdCall-} + + +(* DLL interface functions *) +{&OrgName+} (* aplibu@_aP_pack -> _aP_pack *) +{$IfDef Win32} {&StdCall+} {$Else} {&Cdecl+} {$EndIf} + + +function _aP_pack( + const source; + const destination; + const length :longint; + const workmem; + const callback :apack_status; + const cbparam:pointer) :longint; + +function _aP_workmem_size( + const inputsize :longint) :longint; + +function _aP_max_packed_size( + const inputsize :longint) :longint; + +function _aP_depack_asm( + const source; + const destination) :longint; + +function _aP_depack_asm_fast( + const source; + const destination) :longint; + +function _aP_depack_asm_safe( + const source; + const srclen :longint; + const destination; + const dstlen :longint) :longint; + +function _aP_crc32( + const source; + const length :longint) :longint; + +function _aPsafe_pack( + const source; + const destination; + const length :longint; + const workmem; + const callback :apack_status; + const cbparam:pointer) :longint; + +function _aPsafe_check( + const source) :longint; + +function _aPsafe_get_orig_size( + const source) :longint; + +function _aPsafe_depack( + const source; + const srclen :longint; + const destination; + const dstlen :longint) :longint; + +{&Cdecl-}{&StdCall-}{&OrgName-} + + +implementation + +{$IfDef ESC_ABORT} +uses + VpSysLow; +{$EndIf ESC_ABORT} + +const + aplib_dll_name={$IfDef OS2 }'aplib.dll'{$EndIf} + {$IfDef Win32}'aplib.dll'{$EndIf} + {$IfDef Linux}'aplib.so' {$EndIf}; + + +function _aP_pack ;external aplib_dll_name {$IfDef Linux}name 'aP_pack' {$EndIf}; +function _aP_workmem_size ;external aplib_dll_name {$IfDef Linux}name 'aP_workmem_size' {$EndIf}; +function _aP_max_packed_size ;external aplib_dll_name {$IfDef Linux}name 'aP_max_packed_size' {$EndIf}; +function _aP_depack_asm ;external aplib_dll_name {$IfDef Linux}name 'aP_depack_asm' {$EndIf}; +function _aP_depack_asm_fast ;external aplib_dll_name {$IfDef Linux}name 'aP_depack_asm_fast' {$EndIf}; +function _aP_depack_asm_safe ;external aplib_dll_name {$IfDef Linux}name 'aP_depack_asm_safe' {$EndIf}; +function _aP_crc32 ;external aplib_dll_name {$IfDef Linux}name 'aP_crc32' {$EndIf}; +function _aPsafe_pack ;external aplib_dll_name {$IfDef Linux}name 'aPsafe_pack' {$EndIf}; +function _aPsafe_check ;external aplib_dll_name {$IfDef Linux}name 'aPsafe_check' {$EndIf}; +function _aPsafe_get_orig_size ;external aplib_dll_name {$IfDef Linux}name 'aPsafe_get_orig_size' {$EndIf}; +function _aPsafe_depack ;external aplib_dll_name {$IfDef Linux}name 'aPsafe_depack' {$EndIf}; + + +(* callback samples for _aP_pack *) + +function cb0(const w0,w1,w2:longint; + const cbparam:pointer):longint;assembler;{&Frame-}{&Uses None} + asm + mov eax,aP_pack_continue + end; + +function cb1(const w0,w1,w2:longint; + const cbparam:pointer):longint; + begin + Write(w1:8,' -> ',w2:8,^m); + cb1:=aP_pack_continue; + {$IfDef ESC_ABORT} + if SysKeyPressed then + if SysReadKey=#27 then + cb1:=aP_pack_break; + {$EndIf ESC_ABORT} + end; + +end. + +``` + +`aPLib/contrib/vpascal/appack.pas`: + +```pas +{$M 32000} +{$I+} +program test__aplib_pack; + +(* + * aPLib compression library - the smaller the better :) + * + * VPascal packing example + * + * Copyright (c) 1998-2009 by Joergen Ibsen / Jibz + * All Rights Reserved + * + * http://www.ibsensoftware.com/ + * + * -> VPascal by Veit Kannegieser, 23.09.1998 + *) + + +{$IfDef DYNAMIC_VERSION} +uses aplibud; +{$Else} +uses aplibu; +{$EndIf} + +var + infile ,outfile :file; + inbuffer ,outbuffer :pointer; + workmem :pointer; + insize ,outsize :longint; + +begin + (* check number of parameters *) + if ParamCount<1 then + begin + WriteLn; + WriteLn('Syntax: APPACK [output file]'); + WriteLn; + Halt(1); + end; + + (* open input file and read data *) + Assign(infile,ParamStr(1)); + FileMode:=$40; (* open_access_ReadOnly OR open_share_DenyNone *) + Reset(infile,1); + insize:=FileSize(infile); + GetMem(inbuffer,insize); + BlockRead(infile,inbuffer^,insize); + Close(infile); + + (* get output mem and workmem *) + GetMem(outbuffer,_aP_max_packed_size(insize)); + GetMem(workmem,_aP_workmem_size(insize)); + + (* pack data *) + outsize:=_aPsafe_pack(inbuffer^,outbuffer^,insize,workmem^,cb1,nil); + Writeln; + + if outsize=aPLib_Error then + begin + WriteLn; + WriteLn('ERR: an error occured while compressing'); + WriteLn; + Halt(1); + end; + + (* write packed data *) + if ParamCount<2 then + begin + Assign(outfile,'out.apk'); + WriteLn; + WriteLn('No output file specified, writing to ''out.apk'''); + end + else + Assign(outfile,ParamStr(2)); + FileModeReadWrite:=$42; (* open_access_ReadWrite OR open_share_DenyNone *) + Rewrite(outfile,1); + BlockWrite(outfile,outbuffer^,outsize); + Close(outfile); + + (* free mem *) + Dispose(inbuffer); + Dispose(outbuffer); + Dispose(workmem); + +end. + + +``` + +`aPLib/contrib/vpascal/apunpack.pas`: + +```pas +program test__aplib_depack; + +(* + * aPLib compression library - the smaller the better :) + * + * VPascal depacking example + * + * Copyright (c) 1998-2009 by Joergen Ibsen / Jibz + * All Rights Reserved + * + * http://www.ibsensoftware.com/ + * + * -> VPascal by Veit Kannegieser, 23.09.1998 + *) + +{$IfDef DYNAMIC_VERSION} +uses aplibud; +{$Else} +uses aplibu; +{$EndIf} + +var + infile ,outfile :file; + inbuffer ,outbuffer :pointer; + insize ,outsize :longint; + outmemsize :longint; + +begin + (* check number of parameters *) + if ParamCount<1 then + begin + WriteLn; + WriteLn('Syntax: APUNPACK [output file]'); + WriteLn; + Halt(1); + end; + + (* open input file and read header *) + Assign(infile,ParamStr(1)); + FileMode:=$40; (* open_access_ReadOnly OR open_share_DenyNone *) + Reset(infile,1); + insize:=FileSize(infile); + + (* get mem and read input file *) + GetMem(inbuffer,insize); + BlockRead(infile,inbuffer^,insize); + Close(infile); + + (* get original size from header and get mem *) + outmemsize := _aPsafe_get_orig_size(inbuffer^); + GetMem(outbuffer,outmemsize); + + (* unpack data *) + outsize:=_aPsafe_depack(inbuffer^,insize,outbuffer^,outmemsize); + + if outsize=aPLib_Error then + begin + WriteLn; + WriteLn('ERR: compressed data error'); + WriteLn; + Halt(1); + end; + + if outsize<>outmemsize then Halt(1); + + (* write unpacked data *) + if ParamCount<2 then + begin + Assign(outfile,'out.dat'); + WriteLn; + WriteLn('No output file specified, writing to ''out.dat'''); + end + else + Assign(outfile,ParamStr(2)); + FileModeReadWrite:=$42; (* open_access_ReadWrite OR open_share_DenyNone *) + Rewrite(outfile,1); + BlockWrite(outfile,outbuffer^,outsize); + Close(outfile); + + (* free mem *) + Dispose(inbuffer); + Dispose(outbuffer); + +end. + + +``` + +`aPLib/contrib/vpascal/descript.ion`: + +```ion +aplib.def Interface Definition for APLIB.DLL (OS/2) +aplibu.pas Interface Unit to ..\..\lib\omf\aplib.lib +aplibud.pas Dynamic Version of aplibu +appack.pas demo program for the Compressor +apunpack.pas demo program for the Decompressor +make_exe.cmd make demo executables (adapt path) +test_exe.cmd test make_exe result +vpc.cfg VPC.CFG compiler parameter (adapt path) + +``` + +`aPLib/contrib/vpascal/make_exe.cmd`: + +```cmd +@echo off +cls +rem VP base directory -- also change in vpc.cfg +set vpbase=y:\vp21 +set host=os2 +if [os_shell]==[] set host=w32 +set vpbin=%vpbase%\bin.%host% +set beginlibpath=%vpbin% + +if exist dynamic goto md1 +echo *** MkDir *** +md dynamic +md dynamic\lnx +md dynamic\os2 +md dynamic\w32 +md static +md static\os2 +md static\w32 +md static\d32 +md static\lnx +:md1 + +echo *** DLL *** + +rem OS/2 +link386 /NoLogo /NoIgnoreCase /Map ..\..\lib\omf\aplib.lib,dynamic\os2\aplib.dll,dynamic\os2\aplib.map,,aplib.def +cd dynamic\os2 +mapsym aplib.map > nul +del aplib.map +cd ..\.. +rem if errorlevel 1 goto Error_Exit + +rem Win32 +copy ..\..\lib\dll\aplib.dll dynamic\w32\aplib.dll +if errorlevel 1 goto Error_Exit + +rem Linux +echo gcc -shared -nostdlib -Wl,--whole-archive aplib.a -o aplib.so > dynamic\lnx\aplib.txt + +echo *** dynamic EXE *** + +echo * OS/2: aPPack +set cfg=/Edynamic\os2 -CO -DDYNAMIC_VERSION @vpc.cfg +%vpbin%\vpc %cfg% aPPack.pas +if errorlevel 1 goto Error_Exit +echo * OS/2: aPUnpack +%vpbin%\vpc %cfg% aPUnpack.pas +if errorlevel 1 goto Error_Exit + +echo * Win32: aPPack +set cfg=/Edynamic\w32 -CW -DDYNAMIC_VERSION @vpc.cfg +%vpbin%\vpc %cfg% aPPack.pas +if errorlevel 1 GOTO Error_Exit +echo * Win32: aPUnpack +%vpbin%\vpc %cfg% aPUnpack.pas +if errorlevel 1 goto Error_Exit + +if not exist %vpbase%\units.lnx goto No_Linux_dyn +echo * Linux: aPPack +set cfg=/Edynamic\lnx -CL:LNX:LINUX -DDYNAMIC_VERSION @vpc.cfg +%vpbin%\vpc %cfg% aPPack.pas +if errorlevel 1 goto Error_Exit +%vpbin%\pe2elf -m3 dynamic\lnx\aPPack.exe +if errorlevel 1 goto Error_Exit +del dynamic\lnx\aPPack.exe +echo * Linux: aPUnpack +%vpbin%\vpc %cfg% aPUnpack.pas +if errorlevel 1 goto Error_Exit +%vpbin%\pe2elf -m3 dynamic\lnx\aPUnpack.exe +if errorlevel 1 goto Error_Exit +del dynamic\lnx\aPUnpack.exe +:No_Linux_dyn + + +echo *** static EXE *** + +echo * OS/2: aPPack +set cfg=/Estatic\os2 -CO @vpc.cfg +%vpbin%\vpc %cfg% aPPack.pas +if errorlevel 1 goto Error_Exit +echo * OS/2: aPUnpack +%vpbin%\vpc %cfg% aPUnpack.pas +if errorlevel 1 goto Error_Exit + +echo * Win32: aPPack +set cfg=/Estatic\w32 -CW @vpc.cfg +%vpbin%\vpc %cfg% aPPack.pas +if errorlevel 1 goto Error_Exit +echo * Win32: aPUnpack +%vpbin%\vpc %cfg% aPUnpack.pas +if errorlevel 1 goto Error_Exit + + +if not exist %vpbase%\units.d32 goto No_DPMI32 +echo * DPMI32: aPPack +copy %vpbase%\bin.d32\wdosxle.exe static\d32\wdosxle.exe +set cfg=/Estatic\d32 -CW:D32:DPMI32 @vpc.cfg +%vpbin%\vpc %cfg% aPPack.pas +if errorlevel 1 goto Error_Exit +%vpbin%\pe2le static\d32\aPPack.exe static\d32\aPPack.exe /s:wdxs_le.exe +32lite -8:0 -9:0 static\d32\aPPack.exe +echo * DPMI32: aPUnpack +%vpbin%\vpc %cfg% aPUnpack.pas +if errorlevel 1 goto Error_Exit +%vpbin%\pe2le static\d32\aPUnpack.exe static\d32\aPUnpack.exe /s:wdxs_le.exe +call 32lite -8:0 -9:0 static\d32\aPUnpack.exe +:No_DPMI32 + +if not exist %vpbase%\units.lnx goto No_Linux +echo * Linux: aPPack +set cfg=/Estatic\lnx -CL:LNX:LINUX @vpc.cfg +%vpbin%\vpc %cfg% aPPack.pas +if errorlevel 1 goto Error_Exit +%vpbin%\pe2elf -m3 static\lnx\aPPack.exe +if errorlevel 1 goto Error_Exit +del static\lnx\aPPack.exe +echo * Linux: aPUnpack +%vpbin%\vpc %cfg% aPUnpack.pas +if errorlevel 1 goto Error_Exit +%vpbin%\pe2elf -m3 static\lnx\aPUnpack.exe +if errorlevel 1 goto Error_Exit +del static\lnx\aPUnpack.exe +:No_Linux + +call LxLite static\os2\* dynamic\os2\* /U+ /F+ /ZS /T + +goto End + +:Error_Exit +PAUSE + +:End + +``` + +`aPLib/contrib/vpascal/test_exe.cmd`: + +```cmd +@echo off +if [%1] == [L1] goto L1 + +cls +set testfile=aPPack.exe +call %0 L1 dynamic os2 +call %0 L1 dynamic w32 +call %0 L1 static d32 +call %0 L1 static os2 +call %0 L1 static w32 +goto END + +:L1 +echo ** %2 ** %3 ** +cd %2\%3 +if exist out.apk del out.apk +if exist test.ap del test.ap +if exist test.unp del test.unp +if [%3] == [d32] Dos4GW.exe aPPack.exe %testfile% test.ap +if [%3] == [os2] aPPack.exe %testfile% test.ap +if [%3] == [w32] call pec aPPack.exe %testfile% test.ap +if not exist test.ap pause +if [%3] == [d32] Dos4GW.exe aPUnpack.exe test.ap test.unp +if [%3] == [os2] aPUnpack.exe test.ap test.unp +if [%3] == [w32] call pec aPUnpack.exe test.ap test.unp +if not exist test.unp pause +if exist test.ap del test.ap +if exist test.unp del test.unp +cd ..\.. + +:END + +``` + +`aPLib/contrib/vpascal/vpc.cfg`: + +```cfg +/iY:\VP21\source\rtl +/lY:\VP21\lib.%p;Y:\VP21\units.%p +/oY:\VP21\out.%p\units +/rY:\VP21\res.%p +/uY:\VP21\units.%p;Y:\VP21\source\rtl;Y:\VP21\source\%p +/B +/P0 +/$D- +/$Delphi- +/$Optimize+ +/$L- +/$V- +/$LocInfo- +/$G+ +/$G3+ +/$I+ +/$Q- +/$R- +/$S- +/$SmartLink+ +/$Speed- +/$Use32+ +/$V+ +/$W- +/$X+ + +``` + +`aPLib/doc/html/_sources/acknowledgements.txt`: + +```txt + +Acknowledgements +================ + +Greetings and thanks to: + +* d'b for our continuous discussions of compression techniques :) +* TAD for all the great ideas and the good discussions +* The people who made the Epsilon Compression Page +* Pasi 'Albert' Ojala for his info on PuCrunch +* RIT Research Labs for making Dos Navigator .. it's the BEST! +* LiuTaoTao for making TR .. one of the best debuggers around! +* Eugene Suslikov (SEN) for making HIEW .. it ROCKS! +* Oleg for his work on the TMT Pascal code +* Veit Kannegieser for his work on the VPascal code +* METALBRAIN for his work on the 16bit depackers +* Gautier for his work on the Ada code +* Alexey Solodovnikov for his work on the Delphi code +* Steve Hutchesson for his work on the MASM32 code +* Agner Fog for objconv and his great info on calling conventions +* All other people who make good software freely available for non-commercial + use! + +A special thanks to the beta-testers: + +* x-otic (thx mate ;) +* Oleg Prokhorov (great optimisations and bug reports!) +* Lawrence E. Boothby +* METALBRAIN (believe in miracles, my friend ;) +* eL PuSHeR +* Elli +* Veit Kannegieser +* Gautier + +``` + +`aPLib/doc/html/_sources/changes.txt`: + +```txt + +Version History +=============== + +**v1.1.1** * + Add ``VERSIONINFO`` resource to dll files, and fix subsystem in 32-bit dll + for Win95 compatibility, thanks to Richard Russell. + + Add Apple II example, thanks to Peter Ferrie. + + Add PowerBASIC example, thanks to Wayne Diamond. + + Use `Sphinx `_ to generate docs. + +**v1.1.0** * + Added Linux ELF shared library support, thanks to Vov Pov. + + Added a Python example, thx to Marco Fabbricatore. + + Fixed a bug in 64-bit :c:func:`aPsafe_check()`. + + Cleaned up compression code. + + Changed to semver version numbering. + +**v1.01** * + Added undecorated names to 32-bit dll again, thanks to James C. Fuller. + +**v1.00** * + Changed the license so aPLib can now be used free of charge for commercial + use as well. + + Added support for 64-bit compression and decompression. Since I do not + have a running 64-bit system myself, any feedback on how it works would + be great. + + Removed support for a number of old compilers/assemblers. If you still + need these, please use the previous release or contact me (if you need + object files for Delphi, simply unpack the OMF library). + + Moved most of the examples to the contrib folder since I no longer have + the old development tools installed to check they work. + + All the assembly source files included are now FASM syntax. + + Simplified the build process using objconv by Agner Fog. + + Jumped the version number to v1.00 to signify the code is stable. + +**v0.44** * + Made a few updates to the documentation. + + Fixed a rare crash, thx to Rafael Ahucha! + +**v0.43** * + Added Visual Basic 6 wrapper, thx to Jon Johnson! + + Added PowerBuilder 9.0 objects, thx to James Sheekey! + + Fixed a rare crash, thx to cyberbob! + +**v0.42** * + Added C and assembler implementations of a new safe depacker + :c:func:`aP_depack_safe()` and :c:func:`aP_depack_asm_safe()`. + + Updated the ``aPsafe_`` wrapper functions. + + Renamed ``lib/vc`` to ``lib/mscoff`` and ``lib/watcom`` to ``lib/omf`` to + better reflect that they are not limited to those specific compilers. + + Updated examples and documentation. + +**v0.41** + Added a `Borland C++ Builder `_ example, thx to + mouser! + + Fixed vc library compatibility with + `Pelles C `_. + +**v0.40** + The documentation was rewritten in html, and moved to a separate folder. + + All examples were updated. The ``dll_asm``, ``dos32`` and ``tlink32`` + examples were removed, and a small .NET example was added. + +**v0.39** + All aPLib functions now return ``-1`` on error instead of ``0``. Added a + macro ``APLIB_ERROR`` for this value to all include files. + +**v0.38** + The aPLib compression functions should now be fully thread-safe. Updated + the C decompression code for thread-safety. + +**v0.37** + Changed the parameters for the callback function. It is now called with + the input size, input bytes processed, output bytes produced, and a + user-supplied callback parameter. Thx to f0dder! + +**v0.36** * + Fixed a bug which could cause a match to be found in the area before the + input buffer under certain conditions, thx to Veit! + + Changed the extension of the C example files from ``cpp`` to ``c``. + + The ELF32 version was tested under FreeBSD, thx to Oleg! + +**v0.35** + Worked with a number of 'issues' in the build process. + + Fixed the C depacker so it no longer modifies the input buffer, thx to + Trevor Mensah! + +**v0.34** * + Updated the 16bit, Ada, Delphi, C/C++, TMT Pascal and Virtual Pascal + examples, thx to METALBRAIN, Gautier, Oleg and Veit! + + Added a MASM32 example program, thx to Steve Hutchesson! + + Fixed another bug which could cause :c:func:`aP_pack()` to read one byte + past the input buffer, thx to Reiner Proels! + + NOTE!! the dll version now expects the callback function to use the + stdcall calling convention. + + The libraries now include the function :c:func:`aP_max_packed_size()`, + which given the input size returns the maximum possible size + :c:func:`aP_pack()` may produce (i.e. the worst case output size of + totally incompressible data). At the moment the function simply returns + ``(inputsize + (inputsize / 8) + 64)``. + +**v0.33** + Added ELF32 version of aPLib, which has been tested with Linux, BeOS and + QNX. Modified the C example to work under these operating systems too. + +**v0.32** + Discovered some mixups between different versions of the examples .. + started rewriting some of them. Added a header to the files created by + most of the examples. + +**v0.31** + Improved compression ratio a little. + +**v0.30** + Fixed a bug in one of the 16bit depackers, thx to Peter Hegel! + + Updated the C/C++ example. + +**v0.29** + Updated the Ada example, thx to Gautier! + + I have removed the 'b' from the version number. + +**v0.28b** + Updated the 16bit depacker examples, thx to METALBRAIN! + + Renamed the SRC/C depacker files. + +**v0.27b** + Fixed a bug which could cause :c:func:`aP_pack()` to read one byte past + the input buffer. + +**v0.26b** * + Added Visual C++ and Borland C examples. + + Rewrote the example program, so there is only a single source file, which + works with BCC32, DJGPP, VC++ and Watcom. + + Added an import library for Visual C++ in ``lib/dll``, and an example of + how to use it (``examples/c/make_dll.bat``). + + The libraries now include the function :c:func:`aP_workmem_size()`, which + given the input size returns the amount of memory required for the work + buffer (you still have to allocate it yourself). This should make + upgrading easier in case I change the memory requirement in a later + version. At the moment the function simply returns 640k. + +**v0.25b** + Added a TMT Pascal example, thx to Oleg Prokhorov! + + Moved the Ada and VPascal examples to the example dir. + + Updated the documentation. + +**v0.24b** + Updated the 16bit depacker examples, thx to METALBRAIN! + + Made all assembler depackers smaller, thx to TAD and METALBRAIN! + +**v0.23b** + Recompiled with the latest VC++ and DJGPP versions. + + Did a few speed optimisations -- most versions should be a little faster. + +**v0.22b** * + Improved the compression speed a little more. + + Cleaned up the code, which made the library somewhat smaller. + + Added a C depacker. + + Silent update: Updated the 16bit depackers - thx to METALBRAIN. There is + still one problem with the 16bit example depackers, but it will be fixed + for the next release. + +**v0.21b** + Improved compression ratio and speed. + + Added Ada support by Gautier - thx! + + Reduced the memory requirement from 1mb to 640k -- which should be enough + for anybody ;). + +**v0.20b** * + Added Delphi support and example by Alexey Solodovnikov - thx! + + Rewrote the aPPack example, removing some errors, and added 16bit + depackers - thx to METALBRAIN! + + Removed a lot of unneeded information from the object files. + + Rearranged all the folders -- hope it's not too confusing ;). + + Removed all the example binaries from this file, and made them available + in a separate file instead. + + Added the real aPACK / aPLib homepage URL, since home.ml.org was down for + a period. + +**v0.19b** * + Fixed a little mem bug (hopefully), thx to ANAKiN! + + Ratio improved a little on large files. + + Finally got around to updating my DJGPP installation :) + + NOTE!! I have revised the license conditions -- please read APLIB.DOC. + +**v0.18b** * + Added the new VPascal interfacing code by Veit Kannegieser. + + Added a library compiled for VC. + + Worked a little on the depackers. + +**v0.17b** * + NOTE!! the callback function now has to return a value. This is to make it + possible for the callback function to abort the packing without exiting + the program. If the callback returns ``1``, :c:func:`aP_pack()` will + continue -- if it returns ``0``, :c:func:`aP_pack()` will stop and return + ``0``. + + The aPACK / aPLib homepage is now up on: apack.home.ml.org + + I have not gotten the new VPascal interfacing code from Veit yet, so I + will add it again in the next version :) + + Since I have added so much new stuff, I am releasing this version to get + some feedback (hint!), to find out where to go from here. If you have + Visual C++, Borland C++, Borland C++ Builder, Visual Basic, Delphi or + other 32-bit compilers/linkers, I am very interested in any problems you + might have using aPLib (especially the DLL version). + +**v0.16b** + NOTE!! :c:func:`aP_pack()` NO LONGER allocates the memory it needs itself. + This was changed because otherwise you would need to supply malloc and + free functions to the packer. Now you just call :c:func:`aP_pack()` with a + pointer to 1mb of mem. This is also faster if you compress multiple sets + of data, because mem is not allocated and deallocated every time. + + Added new VPascal interfacing code by Veit Kannegieser - thx! + + Added DOS32 and TLINK32 (Win32 PE) example code and executables. + + Also added a DLL version of aPLib, and some example code for it. By the + way -- the DLL version works fine as a wdl file for WDOSX! + + Speeded up the fast depackers a tiny bit. + +**v0.15b** + Quite a few people have pointed out to me that AR was not the cleverest + library format to use, so I changed to OMF format, which works with (at + least) Watcom, DOS32 and TASM32/TLINK32. + + Added assembler depackers for TASM and WASM, and added the fast assembler + depacker for NASM. + + The Watcom and DJGPP libraries now also contain compiled versions of + :c:func:`aP_depack_asm()` and :c:func:`aP_depack_asm_fast()`, and the + ``APDEPACK.H`` files with the inline assembler versions have been removed. + +**v0.14b** * + Made some minor enhancements to the packer - ratio is a little better. + + Added depacking code for NASM, converted by Archee/CoNTRACT - thx! + +**v0.13b** + Added depacking code for Pascal (Virtual Pascal), converted by Veit + Kannegieser - thx! + + Switched to AR format for the Watcom library. + +**v0.12b** * + Changed the libraries to make them C-compatible. + +**v0.11b** + :c:func:`aP_depack_asm_fast()` is a little faster. + +**v0.10b** * + Compression is a little faster :) + +**v0.09b** + Compression is a little better :) + +**v0.08b** * + First release version of aPLib :) + +**v0.07b** + Fixed a bug that gave errors when compressing multiple sets of data (thx + x-otic!). + + Cleaned up the code a little. + +**v0.06b** + Changed the packer, so it uses a fixed amount of mem (about 1 meg). + + A few bugs fixed. + +**v0.05b** + First version of the aPLib library included. + +**v0.04b** + Added the DJGPP fast asm unpacker. + +**v0.03b** + Optimised the depacker a little. + +**v0.02b** + Second try ;-P + +**v0.01b** + First try! + +Project started March 5th 1998. + +``` + +`aPLib/doc/html/_sources/compression.txt`: + +```txt + +Compression +=========== + +The following is a description of the aPLib compression functionality. + + +Compression Functions +--------------------- + +.. c:function:: size_t aP_pack(const void *source, void *destination, \ + size_t length, void *workmem, \ + int (*callback)(size_t, size_t, size_t, void *), \ + void *cbparam) + + Compress *length* bytes of data from *source* to *destination*, using + *workmem* as temporary storage. + + The *destination* buffer should be large enough to hold + ``aP_max_packed_size(length)`` bytes. + + The *workmem* buffer should be ``aP_workmem_size(length)`` bytes large. + + The callback function, *callback*, must take four parameters. The first is + *length*, the second is the number of input bytes that has been + compressed, the third is how many output bytes they have been compressed + to, and the fourth is *cbparam*. If you do not have a callback, use + ``NULL`` instead. If the callback returns a non-zero value then + :c:func:`aP_pack()` will continue compressing -- if it returns zero, + :c:func:`aP_pack()` will stop and return ``APLIB_ERROR``. + + :param source: pointer to data to be compressed + :param destination: pointer to where compressed data should be stored + :param length: length of uncompressed data in bytes + :param workmem: pointer to work memory used during compression + :param callback: pointer to callback function (or ``NULL``) + :param cbparam: callback argument + :return: length of compressed data, or ``APLIB_ERROR`` on error + +.. c:function:: size_t aP_workmem_size(size_t input_size) + + Compute required size of *workmem* buffer used by :c:func:`aP_pack()` for + compressing *input_size* bytes of data. + + The current code always returns 640k (640*1024). + + :param input_size: length of uncompressed data in bytes + :return: required length of work buffer + +.. c:function:: size_t aP_max_packed_size(size_t input_size) + + Compute maximum possible compressed size when compressing *input_size* + bytes of incompressible data. + + The current code returns ``(input_size + (input_size / 8) + 64)``. + + :param input_size: length of uncompressed data in bytes + :return: maximum possible size of compressed data + + +Safe Wrapper Functions +---------------------- + +.. c:function:: size_t aPsafe_pack(const void *source, void *destination, \ + size_t length, void *workmem, \ + int (*callback)(size_t, size_t, size_t, void *), \ + void *cbparam) + + Wrapper function for :c:func:`aP_pack()`, which adds a header to the + compressed data containing the length of the original data, and CRC32 + checksums of the original and compressed data. + + :param source: pointer to data to be compressed + :param destination: pointer to where compressed data should be stored + :param length: length of uncompressed data in bytes + :param workmem: pointer to work memory used during compression + :param callback: pointer to callback function (or ``NULL``) + :param cbparam: callback argument + :return: length of compressed data, or ``APLIB_ERROR`` on error + + .. seealso:: :c:func:`aP_pack()` + + +Example +------- + +.. code-block:: c + + /* allocate workmem and destination memory */ + char *workmem = malloc(aP_workmem_size(length)); + char *compressed = malloc(aP_max_packed_size(length)); + + /* compress data[] to compressed[] */ + size_t outlength = aPsafe_pack(data, compressed, length, workmem, NULL, NULL); + + /* if APLIB_ERROR is returned, and error occured */ + if (outlength == APLIB_ERROR) { + printf("An error occured!\n"); + } + else { + printf("Compressed %u bytes to %u bytes\n", length, outlength); + } + +``` + +`aPLib/doc/html/_sources/decompression.txt`: + +```txt + +Decompression +============= + +The following is a description of the aPLib decompression functionality. + + +Decompression Functions +----------------------- + +.. c:function:: size_t aP_depack(const void *source, void *destination) + + Decompress compressed data from *source* to *destination*. + + The *destination* buffer must be large enough to hold the decompressed + data. + + :param source: pointer to compressed data + :param destination: pointer to where decompressed data should be stored + :return: length of decompressed data, or ``APLIB_ERROR`` on error + + .. note:: + This function is not included in the libraries, but is available in + ``src/c/depack.c``. :c:func:`aP_depack_asm_fast()` can be used + instead. + +.. c:function:: size_t aP_depack_safe(const void *source, size_t srclen, \ + void *destination, size_t dstlen) + + Decompress compressed data from *source* to *destination*. + + This function reads at most *srclen* bytes from *source*, and writes + at most *dstlen* bytes to *destination*. If there is not enough + source or destination space, or a decoding error occurs, the function + returns ``APLIB_ERROR``. + + :param source: pointer to compressed data + :param srclen: size of source buffer in bytes + :param destination: pointer to where decompressed data should be stored + :param dstlen: size of destination buffer in bytes + :return: length of decompressed data, or ``APLIB_ERROR`` on error + + .. note:: + This function is not included in the libraries, but is available in + ``src/c/depacks.c``. :c:func:`aP_depack_asm_safe()` can be used + instead. + +.. c:function:: size_t aP_depack_asm(const void *source, void *destination) + + Decompress compressed data from *source* to *destination*. + + The *destination* buffer must be large enough to hold the decompressed + data. + + Optimised for size. + + :param source: pointer to compressed data + :param destination: pointer to where decompressed data should be stored + :return: length of decompressed data, or ``APLIB_ERROR`` on error + + +.. c:function:: size_t aP_depack_asm_fast(const void *source, \ + void *destination) + + Decompress compressed data from *source* to *destination*. + + The *destination* buffer must be large enough to hold the decompressed + data. + + Optimised for speed. + + :param source: pointer to compressed data + :param destination: pointer to where decompressed data should be stored + :return: length of decompressed data, or ``APLIB_ERROR`` on error + +.. c:function:: size_t aP_depack_asm_safe(const void *source, size_t srclen, \ + void *destination, size_t dstlen) + + Decompress compressed data from *source* to *destination*. + + This function reads at most *srclen* bytes from *source*, and writes + at most *dstlen* bytes to *destination*. If there is not enough + source or destination space, or a decoding error occurs, the function + returns ``APLIB_ERROR``. + + :param source: pointer to compressed data + :param srclen: size of source buffer in bytes + :param destination: pointer to where decompressed data should be stored + :param dstlen: size of destination buffer in bytes + :return: length of decompressed data, or ``APLIB_ERROR`` on error + + .. seealso:: :c:func:`aPsafe_depack()` + +.. c:function:: unsigned int aP_crc32(const void *source, size_t length) + + Compute CRC32 value of *length* bytes of data from *source*. + + :param source: pointer to data to process + :param length: size in bytes of data + :return: CRC32 value + + +Safe Wrapper Functions +---------------------- + +.. c:function:: size_t aPsafe_check(const void *source) + + Compute CRC32 of compressed data in *source* and check it against value + stored in header. Return length of decompressed data stored in header. + + :param source: compressed data to process + :return: length of decompressed data, or ``APLIB_ERROR`` on error + +.. c:function:: size_t aPsafe_get_orig_size(const void *source) + + Return length of decompressed data stored in header of compressed data in + *source*. + + :param source: compressed data to process + :return: length of decompressed data, or ``APLIB_ERROR`` on error + +.. c:function:: size_t aPsafe_depack(const void *source, size_t srclen, \ + void *destination, size_t dstlen) + + Wrapper function for :c:func:`aP_depack_asm_safe`, which checks the CRC32 + of the compressed data, decompresses, and checks the CRC32 of the + decompressed data. + + :param source: pointer to compressed data + :param srclen: size of source buffer in bytes + :param destination: pointer to where decompressed data should be stored + :param dstlen: size of destination buffer in bytes + :return: length of decompressed data, or ``APLIB_ERROR`` on error + + .. seealso:: :c:func:`aP_depack_asm_safe()` + + +Example +------- + +.. code-block:: c + + /* get original size */ + size_t orig_size = aPsafe_get_orig_size(compressed); + + /* allocate memory for decompressed data */ + char *data = malloc(orig_size); + + /* decompress compressed[] to data[] */ + size_t outlength = aPsafe_depack(compressed, compressed_size, data, orig_size); + + /* check decompressed length */ + if (outlength != orig_size) { + printf("An error occured!\n"); + } + else { + printf("Decompressed %u bytes\n", outlength); + } + +``` + +`aPLib/doc/html/_sources/general.txt`: + +```txt + +General Information +=================== + + +Introduction +------------ + +aPLib is a compression library based on the algorithm used in aPACK (my 16-bit +executable packer). aPLib is an easy-to-use alternative to many of the +heavy-weight compression libraries available. + +The compression ratios achieved by aPLib combined with the speed and tiny +footprint of the decompressors (as low as 169 bytes!) makes it the ideal +choice for many products. + +Since the first public release in 1998, aPLib has been one of the top pure +LZ-based compression libraries available. It is used in a wide range of +products including executable compression and protection software, archivers, +games, embedded systems, and handheld devices. + + +Compatibility +------------- + +The aPLib package includes pre-compiled libraries in a number of formats +(COFF, ELF, OMF). + +No standard library functions are used, so the libraries can work with most +x86/x64 compilers, as long as the name decoration and calling conventions +match. + +The ELF folders contain a version of aPLib which uses PIC to allow it to be +linked into shared libraries on linux. + + +Thread-safety +------------- + +All compression and decompression functions are thread-safe. + + +Using aPLib +----------- + +For C/C++ you simply include ``aplib.h`` and link with the appropriate library +for your compiler. If you only need to decompress data, or if you modify the +decompression code, you can compile and link with one of the decompression +implementations in the ``src`` folder. + +For other languages you can either check if there is a useable example, or use +the DLL version. Most linkers allow calling C functions in an external +library, so usually there is a way to use one of the libraries. + +aPLib performs memory-to-memory compression and decompression, so getting data +into an input buffer and allocating an output buffer is your responsibility. + +All functions return ``APLIB_ERROR`` (which is ``-1``) if an error occurs. + +Attempting to compress incompressible data can lead to expansion. You can get +the maximum possible coded size by passing the size of the input to the +function :c:func:`aP_max_packed_size()`. + +When calling :c:func:`aP_pack()` you have to supply a work buffer. You can get +the required size of this buffer by passing the size of the input to the +function :c:func:`aP_workmem_size()` (in the current version this function +always returns 640k). + +If you do not have a callback for :c:func:`aP_pack()`, you can pass ``NULL`` +(i.e. ``0``) instead. The callback functionality allows your program to keep +track of the compression progress, and if required to stop the compression. + +:c:func:`aP_depack()`, :c:func:`aP_depack_asm()`, and +:c:func:`aP_depack_asm_fast()` assume that they are given valid compressed +data -- if not they will most likely crash. This is to ensure that the basic +decompression code is as small, fast and easy to understand as possible. You +can use :c:func:`aP_depack_safe()` or :c:func:`aP_depack_asm_safe()` if you +need to catch decompression errors. Also the safe wrapper functions provide a +nice interface that helps prevent potential crashes. + + +Safe Wrapper Functions +---------------------- + +Starting with aPLib v0.34, there are additional functions included which +provide a better way of handling the compressed data in the example, and also +serve as an example of how to add functionality through function wrappers. + +The :c:func:`aPsafe_pack()` and :c:func:`aPsafe_depack()` functions are +wrappers for their regular ``aP_`` counterparts, which add a header to the +compressed data. This header includes a tag, information about the compressed +and decompressed size of the data, and CRC32 values for the compressed and +decompressed data. + +The ``example`` folder contains a simple command line packer that uses aPLib +to compress and decompress data. The ``aPsafe_`` functions are used in this +example, because they provide extra functionality like retrieving the original +size of compressed data. + + +Contact Information +------------------- + +If you have any questions, suggestions or bug-reports about aPLib, please feel +free to contact me by e-mail at: + + contact@ibsensoftware.com + +You can get the latest version of aPLib and my other software at: + + http://www.ibsensoftware.com/ + +``` + +`aPLib/doc/html/_sources/index.txt`: + +```txt + +Welcome to the aPLib documentation! +=================================== + +aPLib is a compression library based on the algorithm used in aPACK (my 16-bit +executable packer). aPLib is an easy-to-use alternative to many of the +heavy-weight compression libraries available. + +The compression ratios achieved by aPLib combined with the speed and tiny +footprint of the decompressors (as low as 169 bytes!) makes it the ideal +choice for many products. + +Contents: + +.. toctree:: + :maxdepth: 2 + + license + general + compression + decompression + acknowledgements + changes + +``` + +`aPLib/doc/html/_sources/license.txt`: + +```txt +.. include:: + +License +======= + +aPLib is freeware. If you use aPLib in a product, an acknowledgement would be +appreciated, e.g. by adding something like the following to the documentation: + + | This product uses the aPLib compression library, + | Copyright |copy| 1998-2014 Joergen Ibsen, All Rights Reserved. + | For more information, please visit: http://www.ibsensoftware.com/ + +You may not redistribute aPLib without all of the files. + +You may not edit or reverse engineer any of the files (except the header +files and the decompression code, which you may edit as long as you do not +remove the copyright notice). + +You may not sell aPLib, or any part of it, for money (except for charging for +the media). + +``#ifndef COMMON_SENSE`` + + This software is provided "as is". In no event shall I, the author, be + liable for any kind of loss or damage arising out of the use, abuse or + the inability to use this software. USE IT ENTIRELY AT YOUR OWN RISK! + + This software comes without any kind of warranty, either expressed or + implied, including, but not limited to the implied warranties of + merchantability or fitness for any particular purpose. + + If you do not agree with these terms or if your jurisdiction does not + allow the exclusion of warranty and liability as stated above you are NOT + allowed to use this software at all. + +``#else`` + + Bla bla bla .. the usual stuff - you know it anyway: + + If anything goes even remotely wrong - blame _yourself_, NOT me! + +``#endif`` + +``` + +`aPLib/doc/html/_static/basic.css`: + +```css +/* + * basic.css + * ~~~~~~~~~ + * + * Sphinx stylesheet -- basic theme. + * + * :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +/* -- main layout ----------------------------------------------------------- */ + +div.clearer { + clear: both; +} + +/* -- relbar ---------------------------------------------------------------- */ + +div.related { + width: 100%; + font-size: 90%; +} + +div.related h3 { + display: none; +} + +div.related ul { + margin: 0; + padding: 0 0 0 10px; + list-style: none; +} + +div.related li { + display: inline; +} + +div.related li.right { + float: right; + margin-right: 5px; +} + +/* -- sidebar --------------------------------------------------------------- */ + +div.sphinxsidebarwrapper { + padding: 10px 5px 0 10px; +} + +div.sphinxsidebar { + float: left; + width: 230px; + margin-left: -100%; + font-size: 90%; +} + +div.sphinxsidebar ul { + list-style: none; +} + +div.sphinxsidebar ul ul, +div.sphinxsidebar ul.want-points { + margin-left: 20px; + list-style: square; +} + +div.sphinxsidebar ul ul { + margin-top: 0; + margin-bottom: 0; +} + +div.sphinxsidebar form { + margin-top: 10px; +} + +div.sphinxsidebar input { + border: 1px solid #98dbcc; + font-family: sans-serif; + font-size: 1em; +} + +div.sphinxsidebar #searchbox input[type="text"] { + width: 170px; +} + +div.sphinxsidebar #searchbox input[type="submit"] { + width: 30px; +} + +img { + border: 0; + max-width: 100%; +} + +/* -- search page ----------------------------------------------------------- */ + +ul.search { + margin: 10px 0 0 20px; + padding: 0; +} + +ul.search li { + padding: 5px 0 5px 20px; + background-image: url(file.png); + background-repeat: no-repeat; + background-position: 0 7px; +} + +ul.search li a { + font-weight: bold; +} + +ul.search li div.context { + color: #888; + margin: 2px 0 0 30px; + text-align: left; +} + +ul.keywordmatches li.goodmatch a { + font-weight: bold; +} + +/* -- index page ------------------------------------------------------------ */ + +table.contentstable { + width: 90%; +} + +table.contentstable p.biglink { + line-height: 150%; +} + +a.biglink { + font-size: 1.3em; +} + +span.linkdescr { + font-style: italic; + padding-top: 5px; + font-size: 90%; +} + +/* -- general index --------------------------------------------------------- */ + +table.indextable { + width: 100%; +} + +table.indextable td { + text-align: left; + vertical-align: top; +} + +table.indextable dl, table.indextable dd { + margin-top: 0; + margin-bottom: 0; +} + +table.indextable tr.pcap { + height: 10px; +} + +table.indextable tr.cap { + margin-top: 10px; + background-color: #f2f2f2; +} + +img.toggler { + margin-right: 3px; + margin-top: 3px; + cursor: pointer; +} + +div.modindex-jumpbox { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 1em 0 1em 0; + padding: 0.4em; +} + +div.genindex-jumpbox { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 1em 0 1em 0; + padding: 0.4em; +} + +/* -- general body styles --------------------------------------------------- */ + +a.headerlink { + visibility: hidden; +} + +h1:hover > a.headerlink, +h2:hover > a.headerlink, +h3:hover > a.headerlink, +h4:hover > a.headerlink, +h5:hover > a.headerlink, +h6:hover > a.headerlink, +dt:hover > a.headerlink { + visibility: visible; +} + +div.body p.caption { + text-align: inherit; +} + +div.body td { + text-align: left; +} + +.field-list ul { + padding-left: 1em; +} + +.first { + margin-top: 0 !important; +} + +p.rubric { + margin-top: 30px; + font-weight: bold; +} + +img.align-left, .figure.align-left, object.align-left { + clear: left; + float: left; + margin-right: 1em; +} + +img.align-right, .figure.align-right, object.align-right { + clear: right; + float: right; + margin-left: 1em; +} + +img.align-center, .figure.align-center, object.align-center { + display: block; + margin-left: auto; + margin-right: auto; +} + +.align-left { + text-align: left; +} + +.align-center { + text-align: center; +} + +.align-right { + text-align: right; +} + +/* -- sidebars -------------------------------------------------------------- */ + +div.sidebar { + margin: 0 0 0.5em 1em; + border: 1px solid #ddb; + padding: 7px 7px 0 7px; + background-color: #ffe; + width: 40%; + float: right; +} + +p.sidebar-title { + font-weight: bold; +} + +/* -- topics ---------------------------------------------------------------- */ + +div.topic { + border: 1px solid #ccc; + padding: 7px 7px 0 7px; + margin: 10px 0 10px 0; +} + +p.topic-title { + font-size: 1.1em; + font-weight: bold; + margin-top: 10px; +} + +/* -- admonitions ----------------------------------------------------------- */ + +div.admonition { + margin-top: 10px; + margin-bottom: 10px; + padding: 7px; +} + +div.admonition dt { + font-weight: bold; +} + +div.admonition dl { + margin-bottom: 0; +} + +p.admonition-title { + margin: 0px 10px 5px 0px; + font-weight: bold; +} + +div.body p.centered { + text-align: center; + margin-top: 25px; +} + +/* -- tables ---------------------------------------------------------------- */ + +table.docutils { + border: 0; + border-collapse: collapse; +} + +table.docutils td, table.docutils th { + padding: 1px 8px 1px 5px; + border-top: 0; + border-left: 0; + border-right: 0; + border-bottom: 1px solid #aaa; +} + +table.field-list td, table.field-list th { + border: 0 !important; +} + +table.footnote td, table.footnote th { + border: 0 !important; +} + +th { + text-align: left; + padding-right: 5px; +} + +table.citation { + border-left: solid 1px gray; + margin-left: 1px; +} + +table.citation td { + border-bottom: none; +} + +/* -- other body styles ----------------------------------------------------- */ + +ol.arabic { + list-style: decimal; +} + +ol.loweralpha { + list-style: lower-alpha; +} + +ol.upperalpha { + list-style: upper-alpha; +} + +ol.lowerroman { + list-style: lower-roman; +} + +ol.upperroman { + list-style: upper-roman; +} + +dl { + margin-bottom: 15px; +} + +dd p { + margin-top: 0px; +} + +dd ul, dd table { + margin-bottom: 10px; +} + +dd { + margin-top: 3px; + margin-bottom: 10px; + margin-left: 30px; +} + +dt:target, .highlighted { + background-color: #fbe54e; +} + +dl.glossary dt { + font-weight: bold; + font-size: 1.1em; +} + +.field-list ul { + margin: 0; + padding-left: 1em; +} + +.field-list p { + margin: 0; +} + +.optional { + font-size: 1.3em; +} + +.versionmodified { + font-style: italic; +} + +.system-message { + background-color: #fda; + padding: 5px; + border: 3px solid red; +} + +.footnote:target { + background-color: #ffa; +} + +.line-block { + display: block; + margin-top: 1em; + margin-bottom: 1em; +} + +.line-block .line-block { + margin-top: 0; + margin-bottom: 0; + margin-left: 1.5em; +} + +.guilabel, .menuselection { + font-family: sans-serif; +} + +.accelerator { + text-decoration: underline; +} + +.classifier { + font-style: oblique; +} + +abbr, acronym { + border-bottom: dotted 1px; + cursor: help; +} + +/* -- code displays --------------------------------------------------------- */ + +pre { + overflow: auto; + overflow-y: hidden; /* fixes display issues on Chrome browsers */ +} + +td.linenos pre { + padding: 5px 0px; + border: 0; + background-color: transparent; + color: #aaa; +} + +table.highlighttable { + margin-left: 0.5em; +} + +table.highlighttable td { + padding: 0 0.5em 0 0.5em; +} + +tt.descname { + background-color: transparent; + font-weight: bold; + font-size: 1.2em; +} + +tt.descclassname { + background-color: transparent; +} + +tt.xref, a tt { + background-color: transparent; + font-weight: bold; +} + +h1 tt, h2 tt, h3 tt, h4 tt, h5 tt, h6 tt { + background-color: transparent; +} + +.viewcode-link { + float: right; +} + +.viewcode-back { + float: right; + font-family: sans-serif; +} + +div.viewcode-block:target { + margin: -1px -10px; + padding: 0 10px; +} + +/* -- math display ---------------------------------------------------------- */ + +img.math { + vertical-align: middle; +} + +div.body div.math p { + text-align: center; +} + +span.eqno { + float: right; +} + +/* -- printout stylesheet --------------------------------------------------- */ + +@media print { + div.document, + div.documentwrapper, + div.bodywrapper { + margin: 0 !important; + width: 100%; + } + + div.sphinxsidebar, + div.related, + div.footer, + #top-link { + display: none; + } +} +``` + +`aPLib/doc/html/_static/default.css`: + +```css +/* + * default.css_t + * ~~~~~~~~~~~~~ + * + * Sphinx stylesheet -- default theme. + * + * :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +@import url("basic.css"); + +/* -- page layout ----------------------------------------------------------- */ + +body { + font-family: sans-serif; + font-size: 100%; + background-color: #11303d; + color: #000; + margin: 0; + padding: 0; +} + +div.document { + background-color: #1c4e63; +} + +div.documentwrapper { + float: left; + width: 100%; +} + +div.bodywrapper { + margin: 0 0 0 230px; +} + +div.body { + background-color: #ffffff; + color: #000000; + padding: 0 20px 30px 20px; +} + +div.footer { + color: #ffffff; + width: 100%; + padding: 9px 0 9px 0; + text-align: center; + font-size: 75%; +} + +div.footer a { + color: #ffffff; + text-decoration: underline; +} + +div.related { + background-color: #133f52; + line-height: 30px; + color: #ffffff; +} + +div.related a { + color: #ffffff; +} + +div.sphinxsidebar { +} + +div.sphinxsidebar h3 { + font-family: 'Trebuchet MS', sans-serif; + color: #ffffff; + font-size: 1.4em; + font-weight: normal; + margin: 0; + padding: 0; +} + +div.sphinxsidebar h3 a { + color: #ffffff; +} + +div.sphinxsidebar h4 { + font-family: 'Trebuchet MS', sans-serif; + color: #ffffff; + font-size: 1.3em; + font-weight: normal; + margin: 5px 0 0 0; + padding: 0; +} + +div.sphinxsidebar p { + color: #ffffff; +} + +div.sphinxsidebar p.topless { + margin: 5px 10px 10px 10px; +} + +div.sphinxsidebar ul { + margin: 10px; + padding: 0; + color: #ffffff; +} + +div.sphinxsidebar a { + color: #98dbcc; +} + +div.sphinxsidebar input { + border: 1px solid #98dbcc; + font-family: sans-serif; + font-size: 1em; +} + + + +/* -- hyperlink styles ------------------------------------------------------ */ + +a { + color: #355f7c; + text-decoration: none; +} + +a:visited { + color: #355f7c; + text-decoration: none; +} + +a:hover { + text-decoration: underline; +} + + + +/* -- body styles ----------------------------------------------------------- */ + +div.body h1, +div.body h2, +div.body h3, +div.body h4, +div.body h5, +div.body h6 { + font-family: 'Trebuchet MS', sans-serif; + background-color: #f2f2f2; + font-weight: normal; + color: #20435c; + border-bottom: 1px solid #ccc; + margin: 20px -20px 10px -20px; + padding: 3px 0 3px 10px; +} + +div.body h1 { margin-top: 0; font-size: 200%; } +div.body h2 { font-size: 160%; } +div.body h3 { font-size: 140%; } +div.body h4 { font-size: 120%; } +div.body h5 { font-size: 110%; } +div.body h6 { font-size: 100%; } + +a.headerlink { + color: #c60f0f; + font-size: 0.8em; + padding: 0 4px 0 4px; + text-decoration: none; +} + +a.headerlink:hover { + background-color: #c60f0f; + color: white; +} + +div.body p, div.body dd, div.body li { + text-align: justify; + line-height: 130%; +} + +div.admonition p.admonition-title + p { + display: inline; +} + +div.admonition p { + margin-bottom: 5px; +} + +div.admonition pre { + margin-bottom: 5px; +} + +div.admonition ul, div.admonition ol { + margin-bottom: 5px; +} + +div.note { + background-color: #eee; + border: 1px solid #ccc; +} + +div.seealso { + background-color: #ffc; + border: 1px solid #ff6; +} + +div.topic { + background-color: #eee; +} + +div.warning { + background-color: #ffe4e4; + border: 1px solid #f66; +} + +p.admonition-title { + display: inline; +} + +p.admonition-title:after { + content: ":"; +} + +pre { + padding: 5px; + background-color: #eeffcc; + color: #333333; + line-height: 120%; + border: 1px solid #ac9; + border-left: none; + border-right: none; +} + +tt { + background-color: #ecf0f3; + padding: 0 1px 0 1px; + font-size: 0.95em; +} + +th { + background-color: #ede; +} + +.warning tt { + background: #efc2c2; +} + +.note tt { + background: #d6d6d6; +} + +.viewcode-back { + font-family: sans-serif; +} + +div.viewcode-block:target { + background-color: #f4debf; + border-top: 1px solid #ac9; + border-bottom: 1px solid #ac9; +} +``` + +`aPLib/doc/html/_static/doctools.js`: + +```js +/* + * doctools.js + * ~~~~~~~~~~~ + * + * Sphinx JavaScript utilities for all documentation. + * + * :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + +/** + * select a different prefix for underscore + */ +$u = _.noConflict(); + +/** + * make the code below compatible with browsers without + * an installed firebug like debugger +if (!window.console || !console.firebug) { + var names = ["log", "debug", "info", "warn", "error", "assert", "dir", + "dirxml", "group", "groupEnd", "time", "timeEnd", "count", "trace", + "profile", "profileEnd"]; + window.console = {}; + for (var i = 0; i < names.length; ++i) + window.console[names[i]] = function() {}; +} + */ + +/** + * small helper function to urldecode strings + */ +jQuery.urldecode = function(x) { + return decodeURIComponent(x).replace(/\+/g, ' '); +}; + +/** + * small helper function to urlencode strings + */ +jQuery.urlencode = encodeURIComponent; + +/** + * This function returns the parsed url parameters of the + * current request. Multiple values per key are supported, + * it will always return arrays of strings for the value parts. + */ +jQuery.getQueryParameters = function(s) { + if (typeof s == 'undefined') + s = document.location.search; + var parts = s.substr(s.indexOf('?') + 1).split('&'); + var result = {}; + for (var i = 0; i < parts.length; i++) { + var tmp = parts[i].split('=', 2); + var key = jQuery.urldecode(tmp[0]); + var value = jQuery.urldecode(tmp[1]); + if (key in result) + result[key].push(value); + else + result[key] = [value]; + } + return result; +}; + +/** + * highlight a given string on a jquery object by wrapping it in + * span elements with the given class name. + */ +jQuery.fn.highlightText = function(text, className) { + function highlight(node) { + if (node.nodeType == 3) { + var val = node.nodeValue; + var pos = val.toLowerCase().indexOf(text); + if (pos >= 0 && !jQuery(node.parentNode).hasClass(className)) { + var span = document.createElement("span"); + span.className = className; + span.appendChild(document.createTextNode(val.substr(pos, text.length))); + node.parentNode.insertBefore(span, node.parentNode.insertBefore( + document.createTextNode(val.substr(pos + text.length)), + node.nextSibling)); + node.nodeValue = val.substr(0, pos); + } + } + else if (!jQuery(node).is("button, select, textarea")) { + jQuery.each(node.childNodes, function() { + highlight(this); + }); + } + } + return this.each(function() { + highlight(this); + }); +}; + +/** + * Small JavaScript module for the documentation. + */ +var Documentation = { + + init : function() { + this.fixFirefoxAnchorBug(); + this.highlightSearchWords(); + this.initIndexTable(); + }, + + /** + * i18n support + */ + TRANSLATIONS : {}, + PLURAL_EXPR : function(n) { return n == 1 ? 0 : 1; }, + LOCALE : 'unknown', + + // gettext and ngettext don't access this so that the functions + // can safely bound to a different name (_ = Documentation.gettext) + gettext : function(string) { + var translated = Documentation.TRANSLATIONS[string]; + if (typeof translated == 'undefined') + return string; + return (typeof translated == 'string') ? translated : translated[0]; + }, + + ngettext : function(singular, plural, n) { + var translated = Documentation.TRANSLATIONS[singular]; + if (typeof translated == 'undefined') + return (n == 1) ? singular : plural; + return translated[Documentation.PLURALEXPR(n)]; + }, + + addTranslations : function(catalog) { + for (var key in catalog.messages) + this.TRANSLATIONS[key] = catalog.messages[key]; + this.PLURAL_EXPR = new Function('n', 'return +(' + catalog.plural_expr + ')'); + this.LOCALE = catalog.locale; + }, + + /** + * add context elements like header anchor links + */ + addContextElements : function() { + $('div[id] > :header:first').each(function() { + $('\u00B6'). + attr('href', '#' + this.id). + attr('title', _('Permalink to this headline')). + appendTo(this); + }); + $('dt[id]').each(function() { + $('\u00B6'). + attr('href', '#' + this.id). + attr('title', _('Permalink to this definition')). + appendTo(this); + }); + }, + + /** + * workaround a firefox stupidity + */ + fixFirefoxAnchorBug : function() { + if (document.location.hash && $.browser.mozilla) + window.setTimeout(function() { + document.location.href += ''; + }, 10); + }, + + /** + * highlight the search words provided in the url in the text + */ + highlightSearchWords : function() { + var params = $.getQueryParameters(); + var terms = (params.highlight) ? params.highlight[0].split(/\s+/) : []; + if (terms.length) { + var body = $('div.body'); + if (!body.length) { + body = $('body'); + } + window.setTimeout(function() { + $.each(terms, function() { + body.highlightText(this.toLowerCase(), 'highlighted'); + }); + }, 10); + $('') + .appendTo($('#searchbox')); + } + }, + + /** + * init the domain index toggle buttons + */ + initIndexTable : function() { + var togglers = $('img.toggler').click(function() { + var src = $(this).attr('src'); + var idnum = $(this).attr('id').substr(7); + $('tr.cg-' + idnum).toggle(); + if (src.substr(-9) == 'minus.png') + $(this).attr('src', src.substr(0, src.length-9) + 'plus.png'); + else + $(this).attr('src', src.substr(0, src.length-8) + 'minus.png'); + }).css('display', ''); + if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) { + togglers.click(); + } + }, + + /** + * helper function to hide the search marks again + */ + hideSearchWords : function() { + $('#searchbox .highlight-link').fadeOut(300); + $('span.highlighted').removeClass('highlighted'); + }, + + /** + * make the url absolute + */ + makeURL : function(relativeURL) { + return DOCUMENTATION_OPTIONS.URL_ROOT + '/' + relativeURL; + }, + + /** + * get the current relative url + */ + getCurrentURL : function() { + var path = document.location.pathname; + var parts = path.split(/\//); + $.each(DOCUMENTATION_OPTIONS.URL_ROOT.split(/\//), function() { + if (this == '..') + parts.pop(); + }); + var url = parts.join('/'); + return path.substring(url.lastIndexOf('/') + 1, path.length - 1); + } +}; + +// quick alias for translations +_ = Documentation.gettext; + +$(document).ready(function() { + Documentation.init(); +}); + +``` + +`aPLib/doc/html/_static/grey.css`: + +```css +/* slightly less colorful style overrides */ + +@import url("default.css"); + +th { + background-color: #eee; +} + +div.seealso { + background-color: #eee; + border: 1px solid #ccc; +} + +pre { + background-color: #eeeeee; + border: 1px solid #ccc; +} + +tt { + background-color: inherit; + font-size: inherit; +} + +``` + +`aPLib/doc/html/_static/jquery.js`: + +```js +/*! jQuery v1.8.3 jquery.com | jquery.org/license */ +(function(e,t){function _(e){var t=M[e]={};return v.each(e.split(y),function(e,n){t[n]=!0}),t}function H(e,n,r){if(r===t&&e.nodeType===1){var i="data-"+n.replace(P,"-$1").toLowerCase();r=e.getAttribute(i);if(typeof r=="string"){try{r=r==="true"?!0:r==="false"?!1:r==="null"?null:+r+""===r?+r:D.test(r)?v.parseJSON(r):r}catch(s){}v.data(e,n,r)}else r=t}return r}function B(e){var t;for(t in e){if(t==="data"&&v.isEmptyObject(e[t]))continue;if(t!=="toJSON")return!1}return!0}function et(){return!1}function tt(){return!0}function ut(e){return!e||!e.parentNode||e.parentNode.nodeType===11}function at(e,t){do e=e[t];while(e&&e.nodeType!==1);return e}function ft(e,t,n){t=t||0;if(v.isFunction(t))return v.grep(e,function(e,r){var i=!!t.call(e,r,e);return i===n});if(t.nodeType)return v.grep(e,function(e,r){return e===t===n});if(typeof t=="string"){var r=v.grep(e,function(e){return e.nodeType===1});if(it.test(t))return v.filter(t,r,!n);t=v.filter(t,r)}return v.grep(e,function(e,r){return v.inArray(e,t)>=0===n})}function lt(e){var t=ct.split("|"),n=e.createDocumentFragment();if(n.createElement)while(t.length)n.createElement(t.pop());return n}function Lt(e,t){return e.getElementsByTagName(t)[0]||e.appendChild(e.ownerDocument.createElement(t))}function At(e,t){if(t.nodeType!==1||!v.hasData(e))return;var n,r,i,s=v._data(e),o=v._data(t,s),u=s.events;if(u){delete o.handle,o.events={};for(n in u)for(r=0,i=u[n].length;r").appendTo(i.body),n=t.css("display");t.remove();if(n==="none"||n===""){Pt=i.body.appendChild(Pt||v.extend(i.createElement("iframe"),{frameBorder:0,width:0,height:0}));if(!Ht||!Pt.createElement)Ht=(Pt.contentWindow||Pt.contentDocument).document,Ht.write(""),Ht.close();t=Ht.body.appendChild(Ht.createElement(e)),n=Dt(t,"display"),i.body.removeChild(Pt)}return Wt[e]=n,n}function fn(e,t,n,r){var i;if(v.isArray(t))v.each(t,function(t,i){n||sn.test(e)?r(e,i):fn(e+"["+(typeof i=="object"?t:"")+"]",i,n,r)});else if(!n&&v.type(t)==="object")for(i in t)fn(e+"["+i+"]",t[i],n,r);else r(e,t)}function Cn(e){return function(t,n){typeof t!="string"&&(n=t,t="*");var r,i,s,o=t.toLowerCase().split(y),u=0,a=o.length;if(v.isFunction(n))for(;u)[^>]*$|#([\w\-]*)$)/,E=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,S=/^[\],:{}\s]*$/,x=/(?:^|:|,)(?:\s*\[)+/g,T=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,N=/"[^"\\\r\n]*"|true|false|null|-?(?:\d\d*\.|)\d+(?:[eE][\-+]?\d+|)/g,C=/^-ms-/,k=/-([\da-z])/gi,L=function(e,t){return(t+"").toUpperCase()},A=function(){i.addEventListener?(i.removeEventListener("DOMContentLoaded",A,!1),v.ready()):i.readyState==="complete"&&(i.detachEvent("onreadystatechange",A),v.ready())},O={};v.fn=v.prototype={constructor:v,init:function(e,n,r){var s,o,u,a;if(!e)return this;if(e.nodeType)return this.context=this[0]=e,this.length=1,this;if(typeof e=="string"){e.charAt(0)==="<"&&e.charAt(e.length-1)===">"&&e.length>=3?s=[null,e,null]:s=w.exec(e);if(s&&(s[1]||!n)){if(s[1])return n=n instanceof v?n[0]:n,a=n&&n.nodeType?n.ownerDocument||n:i,e=v.parseHTML(s[1],a,!0),E.test(s[1])&&v.isPlainObject(n)&&this.attr.call(e,n,!0),v.merge(this,e);o=i.getElementById(s[2]);if(o&&o.parentNode){if(o.id!==s[2])return r.find(e);this.length=1,this[0]=o}return this.context=i,this.selector=e,this}return!n||n.jquery?(n||r).find(e):this.constructor(n).find(e)}return v.isFunction(e)?r.ready(e):(e.selector!==t&&(this.selector=e.selector,this.context=e.context),v.makeArray(e,this))},selector:"",jquery:"1.8.3",length:0,size:function(){return this.length},toArray:function(){return l.call(this)},get:function(e){return e==null?this.toArray():e<0?this[this.length+e]:this[e]},pushStack:function(e,t,n){var r=v.merge(this.constructor(),e);return r.prevObject=this,r.context=this.context,t==="find"?r.selector=this.selector+(this.selector?" ":"")+n:t&&(r.selector=this.selector+"."+t+"("+n+")"),r},each:function(e,t){return v.each(this,e,t)},ready:function(e){return v.ready.promise().done(e),this},eq:function(e){return e=+e,e===-1?this.slice(e):this.slice(e,e+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(l.apply(this,arguments),"slice",l.call(arguments).join(","))},map:function(e){return this.pushStack(v.map(this,function(t,n){return e.call(t,n,t)}))},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:[].sort,splice:[].splice},v.fn.init.prototype=v.fn,v.extend=v.fn.extend=function(){var e,n,r,i,s,o,u=arguments[0]||{},a=1,f=arguments.length,l=!1;typeof u=="boolean"&&(l=u,u=arguments[1]||{},a=2),typeof u!="object"&&!v.isFunction(u)&&(u={}),f===a&&(u=this,--a);for(;a0)return;r.resolveWith(i,[v]),v.fn.trigger&&v(i).trigger("ready").off("ready")},isFunction:function(e){return v.type(e)==="function"},isArray:Array.isArray||function(e){return v.type(e)==="array"},isWindow:function(e){return e!=null&&e==e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},type:function(e){return e==null?String(e):O[h.call(e)]||"object"},isPlainObject:function(e){if(!e||v.type(e)!=="object"||e.nodeType||v.isWindow(e))return!1;try{if(e.constructor&&!p.call(e,"constructor")&&!p.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(n){return!1}var r;for(r in e);return r===t||p.call(e,r)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},error:function(e){throw new Error(e)},parseHTML:function(e,t,n){var r;return!e||typeof e!="string"?null:(typeof t=="boolean"&&(n=t,t=0),t=t||i,(r=E.exec(e))?[t.createElement(r[1])]:(r=v.buildFragment([e],t,n?null:[]),v.merge([],(r.cacheable?v.clone(r.fragment):r.fragment).childNodes)))},parseJSON:function(t){if(!t||typeof t!="string")return null;t=v.trim(t);if(e.JSON&&e.JSON.parse)return e.JSON.parse(t);if(S.test(t.replace(T,"@").replace(N,"]").replace(x,"")))return(new Function("return "+t))();v.error("Invalid JSON: "+t)},parseXML:function(n){var r,i;if(!n||typeof n!="string")return null;try{e.DOMParser?(i=new DOMParser,r=i.parseFromString(n,"text/xml")):(r=new ActiveXObject("Microsoft.XMLDOM"),r.async="false",r.loadXML(n))}catch(s){r=t}return(!r||!r.documentElement||r.getElementsByTagName("parsererror").length)&&v.error("Invalid XML: "+n),r},noop:function(){},globalEval:function(t){t&&g.test(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(C,"ms-").replace(k,L)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,n,r){var i,s=0,o=e.length,u=o===t||v.isFunction(e);if(r){if(u){for(i in e)if(n.apply(e[i],r)===!1)break}else for(;s0&&e[0]&&e[a-1]||a===0||v.isArray(e));if(f)for(;u-1)a.splice(n,1),i&&(n<=o&&o--,n<=u&&u--)}),this},has:function(e){return v.inArray(e,a)>-1},empty:function(){return a=[],this},disable:function(){return a=f=n=t,this},disabled:function(){return!a},lock:function(){return f=t,n||c.disable(),this},locked:function(){return!f},fireWith:function(e,t){return t=t||[],t=[e,t.slice?t.slice():t],a&&(!r||f)&&(i?f.push(t):l(t)),this},fire:function(){return c.fireWith(this,arguments),this},fired:function(){return!!r}};return c},v.extend({Deferred:function(e){var t=[["resolve","done",v.Callbacks("once memory"),"resolved"],["reject","fail",v.Callbacks("once memory"),"rejected"],["notify","progress",v.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return v.Deferred(function(n){v.each(t,function(t,r){var s=r[0],o=e[t];i[r[1]](v.isFunction(o)?function(){var e=o.apply(this,arguments);e&&v.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[s+"With"](this===i?n:this,[e])}:n[s])}),e=null}).promise()},promise:function(e){return e!=null?v.extend(e,r):r}},i={};return r.pipe=r.then,v.each(t,function(e,s){var o=s[2],u=s[3];r[s[1]]=o.add,u&&o.add(function(){n=u},t[e^1][2].disable,t[2][2].lock),i[s[0]]=o.fire,i[s[0]+"With"]=o.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t=0,n=l.call(arguments),r=n.length,i=r!==1||e&&v.isFunction(e.promise)?r:0,s=i===1?e:v.Deferred(),o=function(e,t,n){return function(r){t[e]=this,n[e]=arguments.length>1?l.call(arguments):r,n===u?s.notifyWith(t,n):--i||s.resolveWith(t,n)}},u,a,f;if(r>1){u=new Array(r),a=new Array(r),f=new Array(r);for(;t
a",n=p.getElementsByTagName("*"),r=p.getElementsByTagName("a")[0];if(!n||!r||!n.length)return{};s=i.createElement("select"),o=s.appendChild(i.createElement("option")),u=p.getElementsByTagName("input")[0],r.style.cssText="top:1px;float:left;opacity:.5",t={leadingWhitespace:p.firstChild.nodeType===3,tbody:!p.getElementsByTagName("tbody").length,htmlSerialize:!!p.getElementsByTagName("link").length,style:/top/.test(r.getAttribute("style")),hrefNormalized:r.getAttribute("href")==="/a",opacity:/^0.5/.test(r.style.opacity),cssFloat:!!r.style.cssFloat,checkOn:u.value==="on",optSelected:o.selected,getSetAttribute:p.className!=="t",enctype:!!i.createElement("form").enctype,html5Clone:i.createElement("nav").cloneNode(!0).outerHTML!=="<:nav>",boxModel:i.compatMode==="CSS1Compat",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,boxSizingReliable:!0,pixelPosition:!1},u.checked=!0,t.noCloneChecked=u.cloneNode(!0).checked,s.disabled=!0,t.optDisabled=!o.disabled;try{delete p.test}catch(d){t.deleteExpando=!1}!p.addEventListener&&p.attachEvent&&p.fireEvent&&(p.attachEvent("onclick",h=function(){t.noCloneEvent=!1}),p.cloneNode(!0).fireEvent("onclick"),p.detachEvent("onclick",h)),u=i.createElement("input"),u.value="t",u.setAttribute("type","radio"),t.radioValue=u.value==="t",u.setAttribute("checked","checked"),u.setAttribute("name","t"),p.appendChild(u),a=i.createDocumentFragment(),a.appendChild(p.lastChild),t.checkClone=a.cloneNode(!0).cloneNode(!0).lastChild.checked,t.appendChecked=u.checked,a.removeChild(u),a.appendChild(p);if(p.attachEvent)for(l in{submit:!0,change:!0,focusin:!0})f="on"+l,c=f in p,c||(p.setAttribute(f,"return;"),c=typeof p[f]=="function"),t[l+"Bubbles"]=c;return v(function(){var n,r,s,o,u="padding:0;margin:0;border:0;display:block;overflow:hidden;",a=i.getElementsByTagName("body")[0];if(!a)return;n=i.createElement("div"),n.style.cssText="visibility:hidden;border:0;width:0;height:0;position:static;top:0;margin-top:1px",a.insertBefore(n,a.firstChild),r=i.createElement("div"),n.appendChild(r),r.innerHTML="
t
",s=r.getElementsByTagName("td"),s[0].style.cssText="padding:0;margin:0;border:0;display:none",c=s[0].offsetHeight===0,s[0].style.display="",s[1].style.display="none",t.reliableHiddenOffsets=c&&s[0].offsetHeight===0,r.innerHTML="",r.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",t.boxSizing=r.offsetWidth===4,t.doesNotIncludeMarginInBodyOffset=a.offsetTop!==1,e.getComputedStyle&&(t.pixelPosition=(e.getComputedStyle(r,null)||{}).top!=="1%",t.boxSizingReliable=(e.getComputedStyle(r,null)||{width:"4px"}).width==="4px",o=i.createElement("div"),o.style.cssText=r.style.cssText=u,o.style.marginRight=o.style.width="0",r.style.width="1px",r.appendChild(o),t.reliableMarginRight=!parseFloat((e.getComputedStyle(o,null)||{}).marginRight)),typeof r.style.zoom!="undefined"&&(r.innerHTML="",r.style.cssText=u+"width:1px;padding:1px;display:inline;zoom:1",t.inlineBlockNeedsLayout=r.offsetWidth===3,r.style.display="block",r.style.overflow="visible",r.innerHTML="
",r.firstChild.style.width="5px",t.shrinkWrapBlocks=r.offsetWidth!==3,n.style.zoom=1),a.removeChild(n),n=r=s=o=null}),a.removeChild(p),n=r=s=o=u=a=p=null,t}();var D=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,P=/([A-Z])/g;v.extend({cache:{},deletedIds:[],uuid:0,expando:"jQuery"+(v.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(e){return e=e.nodeType?v.cache[e[v.expando]]:e[v.expando],!!e&&!B(e)},data:function(e,n,r,i){if(!v.acceptData(e))return;var s,o,u=v.expando,a=typeof n=="string",f=e.nodeType,l=f?v.cache:e,c=f?e[u]:e[u]&&u;if((!c||!l[c]||!i&&!l[c].data)&&a&&r===t)return;c||(f?e[u]=c=v.deletedIds.pop()||v.guid++:c=u),l[c]||(l[c]={},f||(l[c].toJSON=v.noop));if(typeof n=="object"||typeof n=="function")i?l[c]=v.extend(l[c],n):l[c].data=v.extend(l[c].data,n);return s=l[c],i||(s.data||(s.data={}),s=s.data),r!==t&&(s[v.camelCase(n)]=r),a?(o=s[n],o==null&&(o=s[v.camelCase(n)])):o=s,o},removeData:function(e,t,n){if(!v.acceptData(e))return;var r,i,s,o=e.nodeType,u=o?v.cache:e,a=o?e[v.expando]:v.expando;if(!u[a])return;if(t){r=n?u[a]:u[a].data;if(r){v.isArray(t)||(t in r?t=[t]:(t=v.camelCase(t),t in r?t=[t]:t=t.split(" ")));for(i=0,s=t.length;i1,null,!1))},removeData:function(e){return this.each(function(){v.removeData(this,e)})}}),v.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=v._data(e,t),n&&(!r||v.isArray(n)?r=v._data(e,t,v.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=v.queue(e,t),r=n.length,i=n.shift(),s=v._queueHooks(e,t),o=function(){v.dequeue(e,t)};i==="inprogress"&&(i=n.shift(),r--),i&&(t==="fx"&&n.unshift("inprogress"),delete s.stop,i.call(e,o,s)),!r&&s&&s.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return v._data(e,n)||v._data(e,n,{empty:v.Callbacks("once memory").add(function(){v.removeData(e,t+"queue",!0),v.removeData(e,n,!0)})})}}),v.fn.extend({queue:function(e,n){var r=2;return typeof e!="string"&&(n=e,e="fx",r--),arguments.length1)},removeAttr:function(e){return this.each(function(){v.removeAttr(this,e)})},prop:function(e,t){return v.access(this,v.prop,e,t,arguments.length>1)},removeProp:function(e){return e=v.propFix[e]||e,this.each(function(){try{this[e]=t,delete this[e]}catch(n){}})},addClass:function(e){var t,n,r,i,s,o,u;if(v.isFunction(e))return this.each(function(t){v(this).addClass(e.call(this,t,this.className))});if(e&&typeof e=="string"){t=e.split(y);for(n=0,r=this.length;n=0)r=r.replace(" "+n[s]+" "," ");i.className=e?v.trim(r):""}}}return this},toggleClass:function(e,t){var n=typeof e,r=typeof t=="boolean";return v.isFunction(e)?this.each(function(n){v(this).toggleClass(e.call(this,n,this.className,t),t)}):this.each(function(){if(n==="string"){var i,s=0,o=v(this),u=t,a=e.split(y);while(i=a[s++])u=r?u:!o.hasClass(i),o[u?"addClass":"removeClass"](i)}else if(n==="undefined"||n==="boolean")this.className&&v._data(this,"__className__",this.className),this.className=this.className||e===!1?"":v._data(this,"__className__")||""})},hasClass:function(e){var t=" "+e+" ",n=0,r=this.length;for(;n=0)return!0;return!1},val:function(e){var n,r,i,s=this[0];if(!arguments.length){if(s)return n=v.valHooks[s.type]||v.valHooks[s.nodeName.toLowerCase()],n&&"get"in n&&(r=n.get(s,"value"))!==t?r:(r=s.value,typeof r=="string"?r.replace(R,""):r==null?"":r);return}return i=v.isFunction(e),this.each(function(r){var s,o=v(this);if(this.nodeType!==1)return;i?s=e.call(this,r,o.val()):s=e,s==null?s="":typeof s=="number"?s+="":v.isArray(s)&&(s=v.map(s,function(e){return e==null?"":e+""})),n=v.valHooks[this.type]||v.valHooks[this.nodeName.toLowerCase()];if(!n||!("set"in n)||n.set(this,s,"value")===t)this.value=s})}}),v.extend({valHooks:{option:{get:function(e){var t=e.attributes.value;return!t||t.specified?e.value:e.text}},select:{get:function(e){var t,n,r=e.options,i=e.selectedIndex,s=e.type==="select-one"||i<0,o=s?null:[],u=s?i+1:r.length,a=i<0?u:s?i:0;for(;a=0}),n.length||(e.selectedIndex=-1),n}}},attrFn:{},attr:function(e,n,r,i){var s,o,u,a=e.nodeType;if(!e||a===3||a===8||a===2)return;if(i&&v.isFunction(v.fn[n]))return v(e)[n](r);if(typeof e.getAttribute=="undefined")return v.prop(e,n,r);u=a!==1||!v.isXMLDoc(e),u&&(n=n.toLowerCase(),o=v.attrHooks[n]||(X.test(n)?F:j));if(r!==t){if(r===null){v.removeAttr(e,n);return}return o&&"set"in o&&u&&(s=o.set(e,r,n))!==t?s:(e.setAttribute(n,r+""),r)}return o&&"get"in o&&u&&(s=o.get(e,n))!==null?s:(s=e.getAttribute(n),s===null?t:s)},removeAttr:function(e,t){var n,r,i,s,o=0;if(t&&e.nodeType===1){r=t.split(y);for(;o=0}})});var $=/^(?:textarea|input|select)$/i,J=/^([^\.]*|)(?:\.(.+)|)$/,K=/(?:^|\s)hover(\.\S+|)\b/,Q=/^key/,G=/^(?:mouse|contextmenu)|click/,Y=/^(?:focusinfocus|focusoutblur)$/,Z=function(e){return v.event.special.hover?e:e.replace(K,"mouseenter$1 mouseleave$1")};v.event={add:function(e,n,r,i,s){var o,u,a,f,l,c,h,p,d,m,g;if(e.nodeType===3||e.nodeType===8||!n||!r||!(o=v._data(e)))return;r.handler&&(d=r,r=d.handler,s=d.selector),r.guid||(r.guid=v.guid++),a=o.events,a||(o.events=a={}),u=o.handle,u||(o.handle=u=function(e){return typeof v=="undefined"||!!e&&v.event.triggered===e.type?t:v.event.dispatch.apply(u.elem,arguments)},u.elem=e),n=v.trim(Z(n)).split(" ");for(f=0;f=0&&(y=y.slice(0,-1),a=!0),y.indexOf(".")>=0&&(b=y.split("."),y=b.shift(),b.sort());if((!s||v.event.customEvent[y])&&!v.event.global[y])return;n=typeof n=="object"?n[v.expando]?n:new v.Event(y,n):new v.Event(y),n.type=y,n.isTrigger=!0,n.exclusive=a,n.namespace=b.join("."),n.namespace_re=n.namespace?new RegExp("(^|\\.)"+b.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,h=y.indexOf(":")<0?"on"+y:"";if(!s){u=v.cache;for(f in u)u[f].events&&u[f].events[y]&&v.event.trigger(n,r,u[f].handle.elem,!0);return}n.result=t,n.target||(n.target=s),r=r!=null?v.makeArray(r):[],r.unshift(n),p=v.event.special[y]||{};if(p.trigger&&p.trigger.apply(s,r)===!1)return;m=[[s,p.bindType||y]];if(!o&&!p.noBubble&&!v.isWindow(s)){g=p.delegateType||y,l=Y.test(g+y)?s:s.parentNode;for(c=s;l;l=l.parentNode)m.push([l,g]),c=l;c===(s.ownerDocument||i)&&m.push([c.defaultView||c.parentWindow||e,g])}for(f=0;f=0:v.find(h,this,null,[s]).length),u[h]&&f.push(c);f.length&&w.push({elem:s,matches:f})}d.length>m&&w.push({elem:this,matches:d.slice(m)});for(r=0;r0?this.on(t,null,e,n):this.trigger(t)},Q.test(t)&&(v.event.fixHooks[t]=v.event.keyHooks),G.test(t)&&(v.event.fixHooks[t]=v.event.mouseHooks)}),function(e,t){function nt(e,t,n,r){n=n||[],t=t||g;var i,s,a,f,l=t.nodeType;if(!e||typeof e!="string")return n;if(l!==1&&l!==9)return[];a=o(t);if(!a&&!r)if(i=R.exec(e))if(f=i[1]){if(l===9){s=t.getElementById(f);if(!s||!s.parentNode)return n;if(s.id===f)return n.push(s),n}else if(t.ownerDocument&&(s=t.ownerDocument.getElementById(f))&&u(t,s)&&s.id===f)return n.push(s),n}else{if(i[2])return S.apply(n,x.call(t.getElementsByTagName(e),0)),n;if((f=i[3])&&Z&&t.getElementsByClassName)return S.apply(n,x.call(t.getElementsByClassName(f),0)),n}return vt(e.replace(j,"$1"),t,n,r,a)}function rt(e){return function(t){var n=t.nodeName.toLowerCase();return n==="input"&&t.type===e}}function it(e){return function(t){var n=t.nodeName.toLowerCase();return(n==="input"||n==="button")&&t.type===e}}function st(e){return N(function(t){return t=+t,N(function(n,r){var i,s=e([],n.length,t),o=s.length;while(o--)n[i=s[o]]&&(n[i]=!(r[i]=n[i]))})})}function ot(e,t,n){if(e===t)return n;var r=e.nextSibling;while(r){if(r===t)return-1;r=r.nextSibling}return 1}function ut(e,t){var n,r,s,o,u,a,f,l=L[d][e+" "];if(l)return t?0:l.slice(0);u=e,a=[],f=i.preFilter;while(u){if(!n||(r=F.exec(u)))r&&(u=u.slice(r[0].length)||u),a.push(s=[]);n=!1;if(r=I.exec(u))s.push(n=new m(r.shift())),u=u.slice(n.length),n.type=r[0].replace(j," ");for(o in i.filter)(r=J[o].exec(u))&&(!f[o]||(r=f[o](r)))&&(s.push(n=new m(r.shift())),u=u.slice(n.length),n.type=o,n.matches=r);if(!n)break}return t?u.length:u?nt.error(e):L(e,a).slice(0)}function at(e,t,r){var i=t.dir,s=r&&t.dir==="parentNode",o=w++;return t.first?function(t,n,r){while(t=t[i])if(s||t.nodeType===1)return e(t,n,r)}:function(t,r,u){if(!u){var a,f=b+" "+o+" ",l=f+n;while(t=t[i])if(s||t.nodeType===1){if((a=t[d])===l)return t.sizset;if(typeof a=="string"&&a.indexOf(f)===0){if(t.sizset)return t}else{t[d]=l;if(e(t,r,u))return t.sizset=!0,t;t.sizset=!1}}}else while(t=t[i])if(s||t.nodeType===1)if(e(t,r,u))return t}}function ft(e){return e.length>1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function lt(e,t,n,r,i){var s,o=[],u=0,a=e.length,f=t!=null;for(;u-1&&(s[f]=!(o[f]=c))}}else g=lt(g===o?g.splice(d,g.length):g),i?i(null,o,g,a):S.apply(o,g)})}function ht(e){var t,n,r,s=e.length,o=i.relative[e[0].type],u=o||i.relative[" "],a=o?1:0,f=at(function(e){return e===t},u,!0),l=at(function(e){return T.call(t,e)>-1},u,!0),h=[function(e,n,r){return!o&&(r||n!==c)||((t=n).nodeType?f(e,n,r):l(e,n,r))}];for(;a1&&ft(h),a>1&&e.slice(0,a-1).join("").replace(j,"$1"),n,a0,s=e.length>0,o=function(u,a,f,l,h){var p,d,v,m=[],y=0,w="0",x=u&&[],T=h!=null,N=c,C=u||s&&i.find.TAG("*",h&&a.parentNode||a),k=b+=N==null?1:Math.E;T&&(c=a!==g&&a,n=o.el);for(;(p=C[w])!=null;w++){if(s&&p){for(d=0;v=e[d];d++)if(v(p,a,f)){l.push(p);break}T&&(b=k,n=++o.el)}r&&((p=!v&&p)&&y--,u&&x.push(p))}y+=w;if(r&&w!==y){for(d=0;v=t[d];d++)v(x,m,a,f);if(u){if(y>0)while(w--)!x[w]&&!m[w]&&(m[w]=E.call(l));m=lt(m)}S.apply(l,m),T&&!u&&m.length>0&&y+t.length>1&&nt.uniqueSort(l)}return T&&(b=k,c=N),x};return o.el=0,r?N(o):o}function dt(e,t,n){var r=0,i=t.length;for(;r2&&(f=u[0]).type==="ID"&&t.nodeType===9&&!s&&i.relative[u[1].type]){t=i.find.ID(f.matches[0].replace($,""),t,s)[0];if(!t)return n;e=e.slice(u.shift().length)}for(o=J.POS.test(e)?-1:u.length-1;o>=0;o--){f=u[o];if(i.relative[l=f.type])break;if(c=i.find[l])if(r=c(f.matches[0].replace($,""),z.test(u[0].type)&&t.parentNode||t,s)){u.splice(o,1),e=r.length&&u.join("");if(!e)return S.apply(n,x.call(r,0)),n;break}}}return a(e,h)(r,t,s,n,z.test(e)),n}function mt(){}var n,r,i,s,o,u,a,f,l,c,h=!0,p="undefined",d=("sizcache"+Math.random()).replace(".",""),m=String,g=e.document,y=g.documentElement,b=0,w=0,E=[].pop,S=[].push,x=[].slice,T=[].indexOf||function(e){var t=0,n=this.length;for(;ti.cacheLength&&delete e[t.shift()],e[n+" "]=r},e)},k=C(),L=C(),A=C(),O="[\\x20\\t\\r\\n\\f]",M="(?:\\\\.|[-\\w]|[^\\x00-\\xa0])+",_=M.replace("w","w#"),D="([*^$|!~]?=)",P="\\["+O+"*("+M+")"+O+"*(?:"+D+O+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+_+")|)|)"+O+"*\\]",H=":("+M+")(?:\\((?:(['\"])((?:\\\\.|[^\\\\])*?)\\2|([^()[\\]]*|(?:(?:"+P+")|[^:]|\\\\.)*|.*))\\)|)",B=":(even|odd|eq|gt|lt|nth|first|last)(?:\\("+O+"*((?:-\\d)?\\d*)"+O+"*\\)|)(?=[^-]|$)",j=new RegExp("^"+O+"+|((?:^|[^\\\\])(?:\\\\.)*)"+O+"+$","g"),F=new RegExp("^"+O+"*,"+O+"*"),I=new RegExp("^"+O+"*([\\x20\\t\\r\\n\\f>+~])"+O+"*"),q=new RegExp(H),R=/^(?:#([\w\-]+)|(\w+)|\.([\w\-]+))$/,U=/^:not/,z=/[\x20\t\r\n\f]*[+~]/,W=/:not\($/,X=/h\d/i,V=/input|select|textarea|button/i,$=/\\(?!\\)/g,J={ID:new RegExp("^#("+M+")"),CLASS:new RegExp("^\\.("+M+")"),NAME:new RegExp("^\\[name=['\"]?("+M+")['\"]?\\]"),TAG:new RegExp("^("+M.replace("w","w*")+")"),ATTR:new RegExp("^"+P),PSEUDO:new RegExp("^"+H),POS:new RegExp(B,"i"),CHILD:new RegExp("^:(only|nth|first|last)-child(?:\\("+O+"*(even|odd|(([+-]|)(\\d*)n|)"+O+"*(?:([+-]|)"+O+"*(\\d+)|))"+O+"*\\)|)","i"),needsContext:new RegExp("^"+O+"*[>+~]|"+B,"i")},K=function(e){var t=g.createElement("div");try{return e(t)}catch(n){return!1}finally{t=null}},Q=K(function(e){return e.appendChild(g.createComment("")),!e.getElementsByTagName("*").length}),G=K(function(e){return e.innerHTML="",e.firstChild&&typeof e.firstChild.getAttribute!==p&&e.firstChild.getAttribute("href")==="#"}),Y=K(function(e){e.innerHTML="";var t=typeof e.lastChild.getAttribute("multiple");return t!=="boolean"&&t!=="string"}),Z=K(function(e){return e.innerHTML="",!e.getElementsByClassName||!e.getElementsByClassName("e").length?!1:(e.lastChild.className="e",e.getElementsByClassName("e").length===2)}),et=K(function(e){e.id=d+0,e.innerHTML="
",y.insertBefore(e,y.firstChild);var t=g.getElementsByName&&g.getElementsByName(d).length===2+g.getElementsByName(d+0).length;return r=!g.getElementById(d),y.removeChild(e),t});try{x.call(y.childNodes,0)[0].nodeType}catch(tt){x=function(e){var t,n=[];for(;t=this[e];e++)n.push(t);return n}}nt.matches=function(e,t){return nt(e,null,null,t)},nt.matchesSelector=function(e,t){return nt(t,null,null,[e]).length>0},s=nt.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(i===1||i===9||i===11){if(typeof e.textContent=="string")return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=s(e)}else if(i===3||i===4)return e.nodeValue}else for(;t=e[r];r++)n+=s(t);return n},o=nt.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?t.nodeName!=="HTML":!1},u=nt.contains=y.contains?function(e,t){var n=e.nodeType===9?e.documentElement:e,r=t&&t.parentNode;return e===r||!!(r&&r.nodeType===1&&n.contains&&n.contains(r))}:y.compareDocumentPosition?function(e,t){return t&&!!(e.compareDocumentPosition(t)&16)}:function(e,t){while(t=t.parentNode)if(t===e)return!0;return!1},nt.attr=function(e,t){var n,r=o(e);return r||(t=t.toLowerCase()),(n=i.attrHandle[t])?n(e):r||Y?e.getAttribute(t):(n=e.getAttributeNode(t),n?typeof e[t]=="boolean"?e[t]?t:null:n.specified?n.value:null:null)},i=nt.selectors={cacheLength:50,createPseudo:N,match:J,attrHandle:G?{}:{href:function(e){return e.getAttribute("href",2)},type:function(e){return e.getAttribute("type")}},find:{ID:r?function(e,t,n){if(typeof t.getElementById!==p&&!n){var r=t.getElementById(e);return r&&r.parentNode?[r]:[]}}:function(e,n,r){if(typeof n.getElementById!==p&&!r){var i=n.getElementById(e);return i?i.id===e||typeof i.getAttributeNode!==p&&i.getAttributeNode("id").value===e?[i]:t:[]}},TAG:Q?function(e,t){if(typeof t.getElementsByTagName!==p)return t.getElementsByTagName(e)}:function(e,t){var n=t.getElementsByTagName(e);if(e==="*"){var r,i=[],s=0;for(;r=n[s];s++)r.nodeType===1&&i.push(r);return i}return n},NAME:et&&function(e,t){if(typeof t.getElementsByName!==p)return t.getElementsByName(name)},CLASS:Z&&function(e,t,n){if(typeof t.getElementsByClassName!==p&&!n)return t.getElementsByClassName(e)}},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace($,""),e[3]=(e[4]||e[5]||"").replace($,""),e[2]==="~="&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),e[1]==="nth"?(e[2]||nt.error(e[0]),e[3]=+(e[3]?e[4]+(e[5]||1):2*(e[2]==="even"||e[2]==="odd")),e[4]=+(e[6]+e[7]||e[2]==="odd")):e[2]&&nt.error(e[0]),e},PSEUDO:function(e){var t,n;if(J.CHILD.test(e[0]))return null;if(e[3])e[2]=e[3];else if(t=e[4])q.test(t)&&(n=ut(t,!0))&&(n=t.indexOf(")",t.length-n)-t.length)&&(t=t.slice(0,n),e[0]=e[0].slice(0,n)),e[2]=t;return e.slice(0,3)}},filter:{ID:r?function(e){return e=e.replace($,""),function(t){return t.getAttribute("id")===e}}:function(e){return e=e.replace($,""),function(t){var n=typeof t.getAttributeNode!==p&&t.getAttributeNode("id");return n&&n.value===e}},TAG:function(e){return e==="*"?function(){return!0}:(e=e.replace($,"").toLowerCase(),function(t){return t.nodeName&&t.nodeName.toLowerCase()===e})},CLASS:function(e){var t=k[d][e+" "];return t||(t=new RegExp("(^|"+O+")"+e+"("+O+"|$)"))&&k(e,function(e){return t.test(e.className||typeof e.getAttribute!==p&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r,i){var s=nt.attr(r,e);return s==null?t==="!=":t?(s+="",t==="="?s===n:t==="!="?s!==n:t==="^="?n&&s.indexOf(n)===0:t==="*="?n&&s.indexOf(n)>-1:t==="$="?n&&s.substr(s.length-n.length)===n:t==="~="?(" "+s+" ").indexOf(n)>-1:t==="|="?s===n||s.substr(0,n.length+1)===n+"-":!1):!0}},CHILD:function(e,t,n,r){return e==="nth"?function(e){var t,i,s=e.parentNode;if(n===1&&r===0)return!0;if(s){i=0;for(t=s.firstChild;t;t=t.nextSibling)if(t.nodeType===1){i++;if(e===t)break}}return i-=r,i===n||i%n===0&&i/n>=0}:function(t){var n=t;switch(e){case"only":case"first":while(n=n.previousSibling)if(n.nodeType===1)return!1;if(e==="first")return!0;n=t;case"last":while(n=n.nextSibling)if(n.nodeType===1)return!1;return!0}}},PSEUDO:function(e,t){var n,r=i.pseudos[e]||i.setFilters[e.toLowerCase()]||nt.error("unsupported pseudo: "+e);return r[d]?r(t):r.length>1?(n=[e,e,"",t],i.setFilters.hasOwnProperty(e.toLowerCase())?N(function(e,n){var i,s=r(e,t),o=s.length;while(o--)i=T.call(e,s[o]),e[i]=!(n[i]=s[o])}):function(e){return r(e,0,n)}):r}},pseudos:{not:N(function(e){var t=[],n=[],r=a(e.replace(j,"$1"));return r[d]?N(function(e,t,n,i){var s,o=r(e,null,i,[]),u=e.length;while(u--)if(s=o[u])e[u]=!(t[u]=s)}):function(e,i,s){return t[0]=e,r(t,null,s,n),!n.pop()}}),has:N(function(e){return function(t){return nt(e,t).length>0}}),contains:N(function(e){return function(t){return(t.textContent||t.innerText||s(t)).indexOf(e)>-1}}),enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return t==="input"&&!!e.checked||t==="option"&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},parent:function(e){return!i.pseudos.empty(e)},empty:function(e){var t;e=e.firstChild;while(e){if(e.nodeName>"@"||(t=e.nodeType)===3||t===4)return!1;e=e.nextSibling}return!0},header:function(e){return X.test(e.nodeName)},text:function(e){var t,n;return e.nodeName.toLowerCase()==="input"&&(t=e.type)==="text"&&((n=e.getAttribute("type"))==null||n.toLowerCase()===t)},radio:rt("radio"),checkbox:rt("checkbox"),file:rt("file"),password:rt("password"),image:rt("image"),submit:it("submit"),reset:it("reset"),button:function(e){var t=e.nodeName.toLowerCase();return t==="input"&&e.type==="button"||t==="button"},input:function(e){return V.test(e.nodeName)},focus:function(e){var t=e.ownerDocument;return e===t.activeElement&&(!t.hasFocus||t.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},active:function(e){return e===e.ownerDocument.activeElement},first:st(function(){return[0]}),last:st(function(e,t){return[t-1]}),eq:st(function(e,t,n){return[n<0?n+t:n]}),even:st(function(e,t){for(var n=0;n=0;)e.push(r);return e}),gt:st(function(e,t,n){for(var r=n<0?n+t:n;++r",e.querySelectorAll("[selected]").length||i.push("\\["+O+"*(?:checked|disabled|ismap|multiple|readonly|selected|value)"),e.querySelectorAll(":checked").length||i.push(":checked")}),K(function(e){e.innerHTML="

",e.querySelectorAll("[test^='']").length&&i.push("[*^$]="+O+"*(?:\"\"|'')"),e.innerHTML="",e.querySelectorAll(":enabled").length||i.push(":enabled",":disabled")}),i=new RegExp(i.join("|")),vt=function(e,r,s,o,u){if(!o&&!u&&!i.test(e)){var a,f,l=!0,c=d,h=r,p=r.nodeType===9&&e;if(r.nodeType===1&&r.nodeName.toLowerCase()!=="object"){a=ut(e),(l=r.getAttribute("id"))?c=l.replace(n,"\\$&"):r.setAttribute("id",c),c="[id='"+c+"'] ",f=a.length;while(f--)a[f]=c+a[f].join("");h=z.test(e)&&r.parentNode||r,p=a.join(",")}if(p)try{return S.apply(s,x.call(h.querySelectorAll(p),0)),s}catch(v){}finally{l||r.removeAttribute("id")}}return t(e,r,s,o,u)},u&&(K(function(t){e=u.call(t,"div");try{u.call(t,"[test!='']:sizzle"),s.push("!=",H)}catch(n){}}),s=new RegExp(s.join("|")),nt.matchesSelector=function(t,n){n=n.replace(r,"='$1']");if(!o(t)&&!s.test(n)&&!i.test(n))try{var a=u.call(t,n);if(a||e||t.document&&t.document.nodeType!==11)return a}catch(f){}return nt(n,null,null,[t]).length>0})}(),i.pseudos.nth=i.pseudos.eq,i.filters=mt.prototype=i.pseudos,i.setFilters=new mt,nt.attr=v.attr,v.find=nt,v.expr=nt.selectors,v.expr[":"]=v.expr.pseudos,v.unique=nt.uniqueSort,v.text=nt.getText,v.isXMLDoc=nt.isXML,v.contains=nt.contains}(e);var nt=/Until$/,rt=/^(?:parents|prev(?:Until|All))/,it=/^.[^:#\[\.,]*$/,st=v.expr.match.needsContext,ot={children:!0,contents:!0,next:!0,prev:!0};v.fn.extend({find:function(e){var t,n,r,i,s,o,u=this;if(typeof e!="string")return v(e).filter(function(){for(t=0,n=u.length;t0)for(i=r;i=0:v.filter(e,this).length>0:this.filter(e).length>0)},closest:function(e,t){var n,r=0,i=this.length,s=[],o=st.test(e)||typeof e!="string"?v(e,t||this.context):0;for(;r-1:v.find.matchesSelector(n,e)){s.push(n);break}n=n.parentNode}}return s=s.length>1?v.unique(s):s,this.pushStack(s,"closest",e)},index:function(e){return e?typeof e=="string"?v.inArray(this[0],v(e)):v.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.prevAll().length:-1},add:function(e,t){var n=typeof e=="string"?v(e,t):v.makeArray(e&&e.nodeType?[e]:e),r=v.merge(this.get(),n);return this.pushStack(ut(n[0])||ut(r[0])?r:v.unique(r))},addBack:function(e){return this.add(e==null?this.prevObject:this.prevObject.filter(e))}}),v.fn.andSelf=v.fn.addBack,v.each({parent:function(e){var t=e.parentNode;return t&&t.nodeType!==11?t:null},parents:function(e){return v.dir(e,"parentNode")},parentsUntil:function(e,t,n){return v.dir(e,"parentNode",n)},next:function(e){return at(e,"nextSibling")},prev:function(e){return at(e,"previousSibling")},nextAll:function(e){return v.dir(e,"nextSibling")},prevAll:function(e){return v.dir(e,"previousSibling")},nextUntil:function(e,t,n){return v.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return v.dir(e,"previousSibling",n)},siblings:function(e){return v.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return v.sibling(e.firstChild)},contents:function(e){return v.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:v.merge([],e.childNodes)}},function(e,t){v.fn[e]=function(n,r){var i=v.map(this,t,n);return nt.test(e)||(r=n),r&&typeof r=="string"&&(i=v.filter(r,i)),i=this.length>1&&!ot[e]?v.unique(i):i,this.length>1&&rt.test(e)&&(i=i.reverse()),this.pushStack(i,e,l.call(arguments).join(","))}}),v.extend({filter:function(e,t,n){return n&&(e=":not("+e+")"),t.length===1?v.find.matchesSelector(t[0],e)?[t[0]]:[]:v.find.matches(e,t)},dir:function(e,n,r){var i=[],s=e[n];while(s&&s.nodeType!==9&&(r===t||s.nodeType!==1||!v(s).is(r)))s.nodeType===1&&i.push(s),s=s[n];return i},sibling:function(e,t){var n=[];for(;e;e=e.nextSibling)e.nodeType===1&&e!==t&&n.push(e);return n}});var ct="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",ht=/ jQuery\d+="(?:null|\d+)"/g,pt=/^\s+/,dt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,vt=/<([\w:]+)/,mt=/]","i"),Et=/^(?:checkbox|radio)$/,St=/checked\s*(?:[^=]|=\s*.checked.)/i,xt=/\/(java|ecma)script/i,Tt=/^\s*\s*$/g,Nt={option:[1,""],legend:[1,"
","
"],thead:[1,"","
"],tr:[2,"","
"],td:[3,"","
"],col:[2,"","
"],area:[1,"",""],_default:[0,"",""]},Ct=lt(i),kt=Ct.appendChild(i.createElement("div"));Nt.optgroup=Nt.option,Nt.tbody=Nt.tfoot=Nt.colgroup=Nt.caption=Nt.thead,Nt.th=Nt.td,v.support.htmlSerialize||(Nt._default=[1,"X
","
"]),v.fn.extend({text:function(e){return v.access(this,function(e){return e===t?v.text(this):this.empty().append((this[0]&&this[0].ownerDocument||i).createTextNode(e))},null,e,arguments.length)},wrapAll:function(e){if(v.isFunction(e))return this.each(function(t){v(this).wrapAll(e.call(this,t))});if(this[0]){var t=v(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstChild&&e.firstChild.nodeType===1)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return v.isFunction(e)?this.each(function(t){v(this).wrapInner(e.call(this,t))}):this.each(function(){var t=v(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=v.isFunction(e);return this.each(function(n){v(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){v.nodeName(this,"body")||v(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(e){(this.nodeType===1||this.nodeType===11)&&this.appendChild(e)})},prepend:function(){return this.domManip(arguments,!0,function(e){(this.nodeType===1||this.nodeType===11)&&this.insertBefore(e,this.firstChild)})},before:function(){if(!ut(this[0]))return this.domManip(arguments,!1,function(e){this.parentNode.insertBefore(e,this)});if(arguments.length){var e=v.clean(arguments);return this.pushStack(v.merge(e,this),"before",this.selector)}},after:function(){if(!ut(this[0]))return this.domManip(arguments,!1,function(e){this.parentNode.insertBefore(e,this.nextSibling)});if(arguments.length){var e=v.clean(arguments);return this.pushStack(v.merge(this,e),"after",this.selector)}},remove:function(e,t){var n,r=0;for(;(n=this[r])!=null;r++)if(!e||v.filter(e,[n]).length)!t&&n.nodeType===1&&(v.cleanData(n.getElementsByTagName("*")),v.cleanData([n])),n.parentNode&&n.parentNode.removeChild(n);return this},empty:function(){var e,t=0;for(;(e=this[t])!=null;t++){e.nodeType===1&&v.cleanData(e.getElementsByTagName("*"));while(e.firstChild)e.removeChild(e.firstChild)}return this},clone:function(e,t){return e=e==null?!1:e,t=t==null?e:t,this.map(function(){return v.clone(this,e,t)})},html:function(e){return v.access(this,function(e){var n=this[0]||{},r=0,i=this.length;if(e===t)return n.nodeType===1?n.innerHTML.replace(ht,""):t;if(typeof e=="string"&&!yt.test(e)&&(v.support.htmlSerialize||!wt.test(e))&&(v.support.leadingWhitespace||!pt.test(e))&&!Nt[(vt.exec(e)||["",""])[1].toLowerCase()]){e=e.replace(dt,"<$1>");try{for(;r1&&typeof f=="string"&&St.test(f))return this.each(function(){v(this).domManip(e,n,r)});if(v.isFunction(f))return this.each(function(i){var s=v(this);e[0]=f.call(this,i,n?s.html():t),s.domManip(e,n,r)});if(this[0]){i=v.buildFragment(e,this,l),o=i.fragment,s=o.firstChild,o.childNodes.length===1&&(o=s);if(s){n=n&&v.nodeName(s,"tr");for(u=i.cacheable||c-1;a0?this.clone(!0):this).get(),v(o[i])[t](r),s=s.concat(r);return this.pushStack(s,e,o.selector)}}),v.extend({clone:function(e,t,n){var r,i,s,o;v.support.html5Clone||v.isXMLDoc(e)||!wt.test("<"+e.nodeName+">")?o=e.cloneNode(!0):(kt.innerHTML=e.outerHTML,kt.removeChild(o=kt.firstChild));if((!v.support.noCloneEvent||!v.support.noCloneChecked)&&(e.nodeType===1||e.nodeType===11)&&!v.isXMLDoc(e)){Ot(e,o),r=Mt(e),i=Mt(o);for(s=0;r[s];++s)i[s]&&Ot(r[s],i[s])}if(t){At(e,o);if(n){r=Mt(e),i=Mt(o);for(s=0;r[s];++s)At(r[s],i[s])}}return r=i=null,o},clean:function(e,t,n,r){var s,o,u,a,f,l,c,h,p,d,m,g,y=t===i&&Ct,b=[];if(!t||typeof t.createDocumentFragment=="undefined")t=i;for(s=0;(u=e[s])!=null;s++){typeof u=="number"&&(u+="");if(!u)continue;if(typeof u=="string")if(!gt.test(u))u=t.createTextNode(u);else{y=y||lt(t),c=t.createElement("div"),y.appendChild(c),u=u.replace(dt,"<$1>"),a=(vt.exec(u)||["",""])[1].toLowerCase(),f=Nt[a]||Nt._default,l=f[0],c.innerHTML=f[1]+u+f[2];while(l--)c=c.lastChild;if(!v.support.tbody){h=mt.test(u),p=a==="table"&&!h?c.firstChild&&c.firstChild.childNodes:f[1]===""&&!h?c.childNodes:[];for(o=p.length-1;o>=0;--o)v.nodeName(p[o],"tbody")&&!p[o].childNodes.length&&p[o].parentNode.removeChild(p[o])}!v.support.leadingWhitespace&&pt.test(u)&&c.insertBefore(t.createTextNode(pt.exec(u)[0]),c.firstChild),u=c.childNodes,c.parentNode.removeChild(c)}u.nodeType?b.push(u):v.merge(b,u)}c&&(u=c=y=null);if(!v.support.appendChecked)for(s=0;(u=b[s])!=null;s++)v.nodeName(u,"input")?_t(u):typeof u.getElementsByTagName!="undefined"&&v.grep(u.getElementsByTagName("input"),_t);if(n){m=function(e){if(!e.type||xt.test(e.type))return r?r.push(e.parentNode?e.parentNode.removeChild(e):e):n.appendChild(e)};for(s=0;(u=b[s])!=null;s++)if(!v.nodeName(u,"script")||!m(u))n.appendChild(u),typeof u.getElementsByTagName!="undefined"&&(g=v.grep(v.merge([],u.getElementsByTagName("script")),m),b.splice.apply(b,[s+1,0].concat(g)),s+=g.length)}return b},cleanData:function(e,t){var n,r,i,s,o=0,u=v.expando,a=v.cache,f=v.support.deleteExpando,l=v.event.special;for(;(i=e[o])!=null;o++)if(t||v.acceptData(i)){r=i[u],n=r&&a[r];if(n){if(n.events)for(s in n.events)l[s]?v.event.remove(i,s):v.removeEvent(i,s,n.handle);a[r]&&(delete a[r],f?delete i[u]:i.removeAttribute?i.removeAttribute(u):i[u]=null,v.deletedIds.push(r))}}}}),function(){var e,t;v.uaMatch=function(e){e=e.toLowerCase();var t=/(chrome)[ \/]([\w.]+)/.exec(e)||/(webkit)[ \/]([\w.]+)/.exec(e)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(e)||/(msie) ([\w.]+)/.exec(e)||e.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(e)||[];return{browser:t[1]||"",version:t[2]||"0"}},e=v.uaMatch(o.userAgent),t={},e.browser&&(t[e.browser]=!0,t.version=e.version),t.chrome?t.webkit=!0:t.webkit&&(t.safari=!0),v.browser=t,v.sub=function(){function e(t,n){return new e.fn.init(t,n)}v.extend(!0,e,this),e.superclass=this,e.fn=e.prototype=this(),e.fn.constructor=e,e.sub=this.sub,e.fn.init=function(r,i){return i&&i instanceof v&&!(i instanceof e)&&(i=e(i)),v.fn.init.call(this,r,i,t)},e.fn.init.prototype=e.fn;var t=e(i);return e}}();var Dt,Pt,Ht,Bt=/alpha\([^)]*\)/i,jt=/opacity=([^)]*)/,Ft=/^(top|right|bottom|left)$/,It=/^(none|table(?!-c[ea]).+)/,qt=/^margin/,Rt=new RegExp("^("+m+")(.*)$","i"),Ut=new RegExp("^("+m+")(?!px)[a-z%]+$","i"),zt=new RegExp("^([-+])=("+m+")","i"),Wt={BODY:"block"},Xt={position:"absolute",visibility:"hidden",display:"block"},Vt={letterSpacing:0,fontWeight:400},$t=["Top","Right","Bottom","Left"],Jt=["Webkit","O","Moz","ms"],Kt=v.fn.toggle;v.fn.extend({css:function(e,n){return v.access(this,function(e,n,r){return r!==t?v.style(e,n,r):v.css(e,n)},e,n,arguments.length>1)},show:function(){return Yt(this,!0)},hide:function(){return Yt(this)},toggle:function(e,t){var n=typeof e=="boolean";return v.isFunction(e)&&v.isFunction(t)?Kt.apply(this,arguments):this.each(function(){(n?e:Gt(this))?v(this).show():v(this).hide()})}}),v.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Dt(e,"opacity");return n===""?"1":n}}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":v.support.cssFloat?"cssFloat":"styleFloat"},style:function(e,n,r,i){if(!e||e.nodeType===3||e.nodeType===8||!e.style)return;var s,o,u,a=v.camelCase(n),f=e.style;n=v.cssProps[a]||(v.cssProps[a]=Qt(f,a)),u=v.cssHooks[n]||v.cssHooks[a];if(r===t)return u&&"get"in u&&(s=u.get(e,!1,i))!==t?s:f[n];o=typeof r,o==="string"&&(s=zt.exec(r))&&(r=(s[1]+1)*s[2]+parseFloat(v.css(e,n)),o="number");if(r==null||o==="number"&&isNaN(r))return;o==="number"&&!v.cssNumber[a]&&(r+="px");if(!u||!("set"in u)||(r=u.set(e,r,i))!==t)try{f[n]=r}catch(l){}},css:function(e,n,r,i){var s,o,u,a=v.camelCase(n);return n=v.cssProps[a]||(v.cssProps[a]=Qt(e.style,a)),u=v.cssHooks[n]||v.cssHooks[a],u&&"get"in u&&(s=u.get(e,!0,i)),s===t&&(s=Dt(e,n)),s==="normal"&&n in Vt&&(s=Vt[n]),r||i!==t?(o=parseFloat(s),r||v.isNumeric(o)?o||0:s):s},swap:function(e,t,n){var r,i,s={};for(i in t)s[i]=e.style[i],e.style[i]=t[i];r=n.call(e);for(i in t)e.style[i]=s[i];return r}}),e.getComputedStyle?Dt=function(t,n){var r,i,s,o,u=e.getComputedStyle(t,null),a=t.style;return u&&(r=u.getPropertyValue(n)||u[n],r===""&&!v.contains(t.ownerDocument,t)&&(r=v.style(t,n)),Ut.test(r)&&qt.test(n)&&(i=a.width,s=a.minWidth,o=a.maxWidth,a.minWidth=a.maxWidth=a.width=r,r=u.width,a.width=i,a.minWidth=s,a.maxWidth=o)),r}:i.documentElement.currentStyle&&(Dt=function(e,t){var n,r,i=e.currentStyle&&e.currentStyle[t],s=e.style;return i==null&&s&&s[t]&&(i=s[t]),Ut.test(i)&&!Ft.test(t)&&(n=s.left,r=e.runtimeStyle&&e.runtimeStyle.left,r&&(e.runtimeStyle.left=e.currentStyle.left),s.left=t==="fontSize"?"1em":i,i=s.pixelLeft+"px",s.left=n,r&&(e.runtimeStyle.left=r)),i===""?"auto":i}),v.each(["height","width"],function(e,t){v.cssHooks[t]={get:function(e,n,r){if(n)return e.offsetWidth===0&&It.test(Dt(e,"display"))?v.swap(e,Xt,function(){return tn(e,t,r)}):tn(e,t,r)},set:function(e,n,r){return Zt(e,n,r?en(e,t,r,v.support.boxSizing&&v.css(e,"boxSizing")==="border-box"):0)}}}),v.support.opacity||(v.cssHooks.opacity={get:function(e,t){return jt.test((t&&e.currentStyle?e.currentStyle.filter:e.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":t?"1":""},set:function(e,t){var n=e.style,r=e.currentStyle,i=v.isNumeric(t)?"alpha(opacity="+t*100+")":"",s=r&&r.filter||n.filter||"";n.zoom=1;if(t>=1&&v.trim(s.replace(Bt,""))===""&&n.removeAttribute){n.removeAttribute("filter");if(r&&!r.filter)return}n.filter=Bt.test(s)?s.replace(Bt,i):s+" "+i}}),v(function(){v.support.reliableMarginRight||(v.cssHooks.marginRight={get:function(e,t){return v.swap(e,{display:"inline-block"},function(){if(t)return Dt(e,"marginRight")})}}),!v.support.pixelPosition&&v.fn.position&&v.each(["top","left"],function(e,t){v.cssHooks[t]={get:function(e,n){if(n){var r=Dt(e,t);return Ut.test(r)?v(e).position()[t]+"px":r}}}})}),v.expr&&v.expr.filters&&(v.expr.filters.hidden=function(e){return e.offsetWidth===0&&e.offsetHeight===0||!v.support.reliableHiddenOffsets&&(e.style&&e.style.display||Dt(e,"display"))==="none"},v.expr.filters.visible=function(e){return!v.expr.filters.hidden(e)}),v.each({margin:"",padding:"",border:"Width"},function(e,t){v.cssHooks[e+t]={expand:function(n){var r,i=typeof n=="string"?n.split(" "):[n],s={};for(r=0;r<4;r++)s[e+$t[r]+t]=i[r]||i[r-2]||i[0];return s}},qt.test(e)||(v.cssHooks[e+t].set=Zt)});var rn=/%20/g,sn=/\[\]$/,on=/\r?\n/g,un=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,an=/^(?:select|textarea)/i;v.fn.extend({serialize:function(){return v.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?v.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||an.test(this.nodeName)||un.test(this.type))}).map(function(e,t){var n=v(this).val();return n==null?null:v.isArray(n)?v.map(n,function(e,n){return{name:t.name,value:e.replace(on,"\r\n")}}):{name:t.name,value:n.replace(on,"\r\n")}}).get()}}),v.param=function(e,n){var r,i=[],s=function(e,t){t=v.isFunction(t)?t():t==null?"":t,i[i.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};n===t&&(n=v.ajaxSettings&&v.ajaxSettings.traditional);if(v.isArray(e)||e.jquery&&!v.isPlainObject(e))v.each(e,function(){s(this.name,this.value)});else for(r in e)fn(r,e[r],n,s);return i.join("&").replace(rn,"+")};var ln,cn,hn=/#.*$/,pn=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,dn=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,vn=/^(?:GET|HEAD)$/,mn=/^\/\//,gn=/\?/,yn=/)<[^<]*)*<\/script>/gi,bn=/([?&])_=[^&]*/,wn=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,En=v.fn.load,Sn={},xn={},Tn=["*/"]+["*"];try{cn=s.href}catch(Nn){cn=i.createElement("a"),cn.href="",cn=cn.href}ln=wn.exec(cn.toLowerCase())||[],v.fn.load=function(e,n,r){if(typeof e!="string"&&En)return En.apply(this,arguments);if(!this.length)return this;var i,s,o,u=this,a=e.indexOf(" ");return a>=0&&(i=e.slice(a,e.length),e=e.slice(0,a)),v.isFunction(n)?(r=n,n=t):n&&typeof n=="object"&&(s="POST"),v.ajax({url:e,type:s,dataType:"html",data:n,complete:function(e,t){r&&u.each(r,o||[e.responseText,t,e])}}).done(function(e){o=arguments,u.html(i?v("
").append(e.replace(yn,"")).find(i):e)}),this},v.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(e,t){v.fn[t]=function(e){return this.on(t,e)}}),v.each(["get","post"],function(e,n){v[n]=function(e,r,i,s){return v.isFunction(r)&&(s=s||i,i=r,r=t),v.ajax({type:n,url:e,data:r,success:i,dataType:s})}}),v.extend({getScript:function(e,n){return v.get(e,t,n,"script")},getJSON:function(e,t,n){return v.get(e,t,n,"json")},ajaxSetup:function(e,t){return t?Ln(e,v.ajaxSettings):(t=e,e=v.ajaxSettings),Ln(e,t),e},ajaxSettings:{url:cn,isLocal:dn.test(ln[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded; charset=UTF-8",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":Tn},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":e.String,"text html":!0,"text json":v.parseJSON,"text xml":v.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:Cn(Sn),ajaxTransport:Cn(xn),ajax:function(e,n){function T(e,n,s,a){var l,y,b,w,S,T=n;if(E===2)return;E=2,u&&clearTimeout(u),o=t,i=a||"",x.readyState=e>0?4:0,s&&(w=An(c,x,s));if(e>=200&&e<300||e===304)c.ifModified&&(S=x.getResponseHeader("Last-Modified"),S&&(v.lastModified[r]=S),S=x.getResponseHeader("Etag"),S&&(v.etag[r]=S)),e===304?(T="notmodified",l=!0):(l=On(c,w),T=l.state,y=l.data,b=l.error,l=!b);else{b=T;if(!T||e)T="error",e<0&&(e=0)}x.status=e,x.statusText=(n||T)+"",l?d.resolveWith(h,[y,T,x]):d.rejectWith(h,[x,T,b]),x.statusCode(g),g=t,f&&p.trigger("ajax"+(l?"Success":"Error"),[x,c,l?y:b]),m.fireWith(h,[x,T]),f&&(p.trigger("ajaxComplete",[x,c]),--v.active||v.event.trigger("ajaxStop"))}typeof e=="object"&&(n=e,e=t),n=n||{};var r,i,s,o,u,a,f,l,c=v.ajaxSetup({},n),h=c.context||c,p=h!==c&&(h.nodeType||h instanceof v)?v(h):v.event,d=v.Deferred(),m=v.Callbacks("once memory"),g=c.statusCode||{},b={},w={},E=0,S="canceled",x={readyState:0,setRequestHeader:function(e,t){if(!E){var n=e.toLowerCase();e=w[n]=w[n]||e,b[e]=t}return this},getAllResponseHeaders:function(){return E===2?i:null},getResponseHeader:function(e){var n;if(E===2){if(!s){s={};while(n=pn.exec(i))s[n[1].toLowerCase()]=n[2]}n=s[e.toLowerCase()]}return n===t?null:n},overrideMimeType:function(e){return E||(c.mimeType=e),this},abort:function(e){return e=e||S,o&&o.abort(e),T(0,e),this}};d.promise(x),x.success=x.done,x.error=x.fail,x.complete=m.add,x.statusCode=function(e){if(e){var t;if(E<2)for(t in e)g[t]=[g[t],e[t]];else t=e[x.status],x.always(t)}return this},c.url=((e||c.url)+"").replace(hn,"").replace(mn,ln[1]+"//"),c.dataTypes=v.trim(c.dataType||"*").toLowerCase().split(y),c.crossDomain==null&&(a=wn.exec(c.url.toLowerCase()),c.crossDomain=!(!a||a[1]===ln[1]&&a[2]===ln[2]&&(a[3]||(a[1]==="http:"?80:443))==(ln[3]||(ln[1]==="http:"?80:443)))),c.data&&c.processData&&typeof c.data!="string"&&(c.data=v.param(c.data,c.traditional)),kn(Sn,c,n,x);if(E===2)return x;f=c.global,c.type=c.type.toUpperCase(),c.hasContent=!vn.test(c.type),f&&v.active++===0&&v.event.trigger("ajaxStart");if(!c.hasContent){c.data&&(c.url+=(gn.test(c.url)?"&":"?")+c.data,delete c.data),r=c.url;if(c.cache===!1){var N=v.now(),C=c.url.replace(bn,"$1_="+N);c.url=C+(C===c.url?(gn.test(c.url)?"&":"?")+"_="+N:"")}}(c.data&&c.hasContent&&c.contentType!==!1||n.contentType)&&x.setRequestHeader("Content-Type",c.contentType),c.ifModified&&(r=r||c.url,v.lastModified[r]&&x.setRequestHeader("If-Modified-Since",v.lastModified[r]),v.etag[r]&&x.setRequestHeader("If-None-Match",v.etag[r])),x.setRequestHeader("Accept",c.dataTypes[0]&&c.accepts[c.dataTypes[0]]?c.accepts[c.dataTypes[0]]+(c.dataTypes[0]!=="*"?", "+Tn+"; q=0.01":""):c.accepts["*"]);for(l in c.headers)x.setRequestHeader(l,c.headers[l]);if(!c.beforeSend||c.beforeSend.call(h,x,c)!==!1&&E!==2){S="abort";for(l in{success:1,error:1,complete:1})x[l](c[l]);o=kn(xn,c,n,x);if(!o)T(-1,"No Transport");else{x.readyState=1,f&&p.trigger("ajaxSend",[x,c]),c.async&&c.timeout>0&&(u=setTimeout(function(){x.abort("timeout")},c.timeout));try{E=1,o.send(b,T)}catch(k){if(!(E<2))throw k;T(-1,k)}}return x}return x.abort()},active:0,lastModified:{},etag:{}});var Mn=[],_n=/\?/,Dn=/(=)\?(?=&|$)|\?\?/,Pn=v.now();v.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Mn.pop()||v.expando+"_"+Pn++;return this[e]=!0,e}}),v.ajaxPrefilter("json jsonp",function(n,r,i){var s,o,u,a=n.data,f=n.url,l=n.jsonp!==!1,c=l&&Dn.test(f),h=l&&!c&&typeof a=="string"&&!(n.contentType||"").indexOf("application/x-www-form-urlencoded")&&Dn.test(a);if(n.dataTypes[0]==="jsonp"||c||h)return s=n.jsonpCallback=v.isFunction(n.jsonpCallback)?n.jsonpCallback():n.jsonpCallback,o=e[s],c?n.url=f.replace(Dn,"$1"+s):h?n.data=a.replace(Dn,"$1"+s):l&&(n.url+=(_n.test(f)?"&":"?")+n.jsonp+"="+s),n.converters["script json"]=function(){return u||v.error(s+" was not called"),u[0]},n.dataTypes[0]="json",e[s]=function(){u=arguments},i.always(function(){e[s]=o,n[s]&&(n.jsonpCallback=r.jsonpCallback,Mn.push(s)),u&&v.isFunction(o)&&o(u[0]),u=o=t}),"script"}),v.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(e){return v.globalEval(e),e}}}),v.ajaxPrefilter("script",function(e){e.cache===t&&(e.cache=!1),e.crossDomain&&(e.type="GET",e.global=!1)}),v.ajaxTransport("script",function(e){if(e.crossDomain){var n,r=i.head||i.getElementsByTagName("head")[0]||i.documentElement;return{send:function(s,o){n=i.createElement("script"),n.async="async",e.scriptCharset&&(n.charset=e.scriptCharset),n.src=e.url,n.onload=n.onreadystatechange=function(e,i){if(i||!n.readyState||/loaded|complete/.test(n.readyState))n.onload=n.onreadystatechange=null,r&&n.parentNode&&r.removeChild(n),n=t,i||o(200,"success")},r.insertBefore(n,r.firstChild)},abort:function(){n&&n.onload(0,1)}}}});var Hn,Bn=e.ActiveXObject?function(){for(var e in Hn)Hn[e](0,1)}:!1,jn=0;v.ajaxSettings.xhr=e.ActiveXObject?function(){return!this.isLocal&&Fn()||In()}:Fn,function(e){v.extend(v.support,{ajax:!!e,cors:!!e&&"withCredentials"in e})}(v.ajaxSettings.xhr()),v.support.ajax&&v.ajaxTransport(function(n){if(!n.crossDomain||v.support.cors){var r;return{send:function(i,s){var o,u,a=n.xhr();n.username?a.open(n.type,n.url,n.async,n.username,n.password):a.open(n.type,n.url,n.async);if(n.xhrFields)for(u in n.xhrFields)a[u]=n.xhrFields[u];n.mimeType&&a.overrideMimeType&&a.overrideMimeType(n.mimeType),!n.crossDomain&&!i["X-Requested-With"]&&(i["X-Requested-With"]="XMLHttpRequest");try{for(u in i)a.setRequestHeader(u,i[u])}catch(f){}a.send(n.hasContent&&n.data||null),r=function(e,i){var u,f,l,c,h;try{if(r&&(i||a.readyState===4)){r=t,o&&(a.onreadystatechange=v.noop,Bn&&delete Hn[o]);if(i)a.readyState!==4&&a.abort();else{u=a.status,l=a.getAllResponseHeaders(),c={},h=a.responseXML,h&&h.documentElement&&(c.xml=h);try{c.text=a.responseText}catch(p){}try{f=a.statusText}catch(p){f=""}!u&&n.isLocal&&!n.crossDomain?u=c.text?200:404:u===1223&&(u=204)}}}catch(d){i||s(-1,d)}c&&s(u,f,c,l)},n.async?a.readyState===4?setTimeout(r,0):(o=++jn,Bn&&(Hn||(Hn={},v(e).unload(Bn)),Hn[o]=r),a.onreadystatechange=r):r()},abort:function(){r&&r(0,1)}}}});var qn,Rn,Un=/^(?:toggle|show|hide)$/,zn=new RegExp("^(?:([-+])=|)("+m+")([a-z%]*)$","i"),Wn=/queueHooks$/,Xn=[Gn],Vn={"*":[function(e,t){var n,r,i=this.createTween(e,t),s=zn.exec(t),o=i.cur(),u=+o||0,a=1,f=20;if(s){n=+s[2],r=s[3]||(v.cssNumber[e]?"":"px");if(r!=="px"&&u){u=v.css(i.elem,e,!0)||n||1;do a=a||".5",u/=a,v.style(i.elem,e,u+r);while(a!==(a=i.cur()/o)&&a!==1&&--f)}i.unit=r,i.start=u,i.end=s[1]?u+(s[1]+1)*n:n}return i}]};v.Animation=v.extend(Kn,{tweener:function(e,t){v.isFunction(e)?(t=e,e=["*"]):e=e.split(" ");var n,r=0,i=e.length;for(;r-1,f={},l={},c,h;a?(l=i.position(),c=l.top,h=l.left):(c=parseFloat(o)||0,h=parseFloat(u)||0),v.isFunction(t)&&(t=t.call(e,n,s)),t.top!=null&&(f.top=t.top-s.top+c),t.left!=null&&(f.left=t.left-s.left+h),"using"in t?t.using.call(e,f):i.css(f)}},v.fn.extend({position:function(){if(!this[0])return;var e=this[0],t=this.offsetParent(),n=this.offset(),r=er.test(t[0].nodeName)?{top:0,left:0}:t.offset();return n.top-=parseFloat(v.css(e,"marginTop"))||0,n.left-=parseFloat(v.css(e,"marginLeft"))||0,r.top+=parseFloat(v.css(t[0],"borderTopWidth"))||0,r.left+=parseFloat(v.css(t[0],"borderLeftWidth"))||0,{top:n.top-r.top,left:n.left-r.left}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||i.body;while(e&&!er.test(e.nodeName)&&v.css(e,"position")==="static")e=e.offsetParent;return e||i.body})}}),v.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,n){var r=/Y/.test(n);v.fn[e]=function(i){return v.access(this,function(e,i,s){var o=tr(e);if(s===t)return o?n in o?o[n]:o.document.documentElement[i]:e[i];o?o.scrollTo(r?v(o).scrollLeft():s,r?s:v(o).scrollTop()):e[i]=s},e,i,arguments.length,null)}}),v.each({Height:"height",Width:"width"},function(e,n){v.each({padding:"inner"+e,content:n,"":"outer"+e},function(r,i){v.fn[i]=function(i,s){var o=arguments.length&&(r||typeof i!="boolean"),u=r||(i===!0||s===!0?"margin":"border");return v.access(this,function(n,r,i){var s;return v.isWindow(n)?n.document.documentElement["client"+e]:n.nodeType===9?(s=n.documentElement,Math.max(n.body["scroll"+e],s["scroll"+e],n.body["offset"+e],s["offset"+e],s["client"+e])):i===t?v.css(n,r,i,u):v.style(n,r,i,u)},n,o?i:t,o,null)}})}),e.jQuery=e.$=v,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return v})})(window); +``` + +`aPLib/doc/html/_static/pygments.css`: + +```css +.highlight .hll { background-color: #ffffcc } +.highlight { background: #eeffcc; } +.highlight .c { color: #408090; font-style: italic } /* Comment */ +.highlight .err { border: 1px solid #FF0000 } /* Error */ +.highlight .k { color: #007020; font-weight: bold } /* Keyword */ +.highlight .o { color: #666666 } /* Operator */ +.highlight .cm { color: #408090; font-style: italic } /* Comment.Multiline */ +.highlight .cp { color: #007020 } /* Comment.Preproc */ +.highlight .c1 { color: #408090; font-style: italic } /* Comment.Single */ +.highlight .cs { color: #408090; background-color: #fff0f0 } /* Comment.Special */ +.highlight .gd { color: #A00000 } /* Generic.Deleted */ +.highlight .ge { font-style: italic } /* Generic.Emph */ +.highlight .gr { color: #FF0000 } /* Generic.Error */ +.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */ +.highlight .gi { color: #00A000 } /* Generic.Inserted */ +.highlight .go { color: #333333 } /* Generic.Output */ +.highlight .gp { color: #c65d09; font-weight: bold } /* Generic.Prompt */ +.highlight .gs { font-weight: bold } /* Generic.Strong */ +.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ +.highlight .gt { color: #0044DD } /* Generic.Traceback */ +.highlight .kc { color: #007020; font-weight: bold } /* Keyword.Constant */ +.highlight .kd { color: #007020; font-weight: bold } /* Keyword.Declaration */ +.highlight .kn { color: #007020; font-weight: bold } /* Keyword.Namespace */ +.highlight .kp { color: #007020 } /* Keyword.Pseudo */ +.highlight .kr { color: #007020; font-weight: bold } /* Keyword.Reserved */ +.highlight .kt { color: #902000 } /* Keyword.Type */ +.highlight .m { color: #208050 } /* Literal.Number */ +.highlight .s { color: #4070a0 } /* Literal.String */ +.highlight .na { color: #4070a0 } /* Name.Attribute */ +.highlight .nb { color: #007020 } /* Name.Builtin */ +.highlight .nc { color: #0e84b5; font-weight: bold } /* Name.Class */ +.highlight .no { color: #60add5 } /* Name.Constant */ +.highlight .nd { color: #555555; font-weight: bold } /* Name.Decorator */ +.highlight .ni { color: #d55537; font-weight: bold } /* Name.Entity */ +.highlight .ne { color: #007020 } /* Name.Exception */ +.highlight .nf { color: #06287e } /* Name.Function */ +.highlight .nl { color: #002070; font-weight: bold } /* Name.Label */ +.highlight .nn { color: #0e84b5; font-weight: bold } /* Name.Namespace */ +.highlight .nt { color: #062873; font-weight: bold } /* Name.Tag */ +.highlight .nv { color: #bb60d5 } /* Name.Variable */ +.highlight .ow { color: #007020; font-weight: bold } /* Operator.Word */ +.highlight .w { color: #bbbbbb } /* Text.Whitespace */ +.highlight .mf { color: #208050 } /* Literal.Number.Float */ +.highlight .mh { color: #208050 } /* Literal.Number.Hex */ +.highlight .mi { color: #208050 } /* Literal.Number.Integer */ +.highlight .mo { color: #208050 } /* Literal.Number.Oct */ +.highlight .sb { color: #4070a0 } /* Literal.String.Backtick */ +.highlight .sc { color: #4070a0 } /* Literal.String.Char */ +.highlight .sd { color: #4070a0; font-style: italic } /* Literal.String.Doc */ +.highlight .s2 { color: #4070a0 } /* Literal.String.Double */ +.highlight .se { color: #4070a0; font-weight: bold } /* Literal.String.Escape */ +.highlight .sh { color: #4070a0 } /* Literal.String.Heredoc */ +.highlight .si { color: #70a0d0; font-style: italic } /* Literal.String.Interpol */ +.highlight .sx { color: #c65d09 } /* Literal.String.Other */ +.highlight .sr { color: #235388 } /* Literal.String.Regex */ +.highlight .s1 { color: #4070a0 } /* Literal.String.Single */ +.highlight .ss { color: #517918 } /* Literal.String.Symbol */ +.highlight .bp { color: #007020 } /* Name.Builtin.Pseudo */ +.highlight .vc { color: #bb60d5 } /* Name.Variable.Class */ +.highlight .vg { color: #bb60d5 } /* Name.Variable.Global */ +.highlight .vi { color: #bb60d5 } /* Name.Variable.Instance */ +.highlight .il { color: #208050 } /* Literal.Number.Integer.Long */ +``` + +`aPLib/doc/html/_static/searchtools.js`: + +```js +/* + * searchtools.js_t + * ~~~~~~~~~~~~~~~~ + * + * Sphinx JavaScript utilties for the full-text search. + * + * :copyright: Copyright 2007-2014 by the Sphinx team, see AUTHORS. + * :license: BSD, see LICENSE for details. + * + */ + + +/** + * Porter Stemmer + */ +var Stemmer = function() { + + var step2list = { + ational: 'ate', + tional: 'tion', + enci: 'ence', + anci: 'ance', + izer: 'ize', + bli: 'ble', + alli: 'al', + entli: 'ent', + eli: 'e', + ousli: 'ous', + ization: 'ize', + ation: 'ate', + ator: 'ate', + alism: 'al', + iveness: 'ive', + fulness: 'ful', + ousness: 'ous', + aliti: 'al', + iviti: 'ive', + biliti: 'ble', + logi: 'log' + }; + + var step3list = { + icate: 'ic', + ative: '', + alize: 'al', + iciti: 'ic', + ical: 'ic', + ful: '', + ness: '' + }; + + var c = "[^aeiou]"; // consonant + var v = "[aeiouy]"; // vowel + var C = c + "[^aeiouy]*"; // consonant sequence + var V = v + "[aeiou]*"; // vowel sequence + + var mgr0 = "^(" + C + ")?" + V + C; // [C]VC... is m>0 + var meq1 = "^(" + C + ")?" + V + C + "(" + V + ")?$"; // [C]VC[V] is m=1 + var mgr1 = "^(" + C + ")?" + V + C + V + C; // [C]VCVC... is m>1 + var s_v = "^(" + C + ")?" + v; // vowel in stem + + this.stemWord = function (w) { + var stem; + var suffix; + var firstch; + var origword = w; + + if (w.length < 3) + return w; + + var re; + var re2; + var re3; + var re4; + + firstch = w.substr(0,1); + if (firstch == "y") + w = firstch.toUpperCase() + w.substr(1); + + // Step 1a + re = /^(.+?)(ss|i)es$/; + re2 = /^(.+?)([^s])s$/; + + if (re.test(w)) + w = w.replace(re,"$1$2"); + else if (re2.test(w)) + w = w.replace(re2,"$1$2"); + + // Step 1b + re = /^(.+?)eed$/; + re2 = /^(.+?)(ed|ing)$/; + if (re.test(w)) { + var fp = re.exec(w); + re = new RegExp(mgr0); + if (re.test(fp[1])) { + re = /.$/; + w = w.replace(re,""); + } + } + else if (re2.test(w)) { + var fp = re2.exec(w); + stem = fp[1]; + re2 = new RegExp(s_v); + if (re2.test(stem)) { + w = stem; + re2 = /(at|bl|iz)$/; + re3 = new RegExp("([^aeiouylsz])\\1$"); + re4 = new RegExp("^" + C + v + "[^aeiouwxy]$"); + if (re2.test(w)) + w = w + "e"; + else if (re3.test(w)) { + re = /.$/; + w = w.replace(re,""); + } + else if (re4.test(w)) + w = w + "e"; + } + } + + // Step 1c + re = /^(.+?)y$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(s_v); + if (re.test(stem)) + w = stem + "i"; + } + + // Step 2 + re = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + suffix = fp[2]; + re = new RegExp(mgr0); + if (re.test(stem)) + w = stem + step2list[suffix]; + } + + // Step 3 + re = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + suffix = fp[2]; + re = new RegExp(mgr0); + if (re.test(stem)) + w = stem + step3list[suffix]; + } + + // Step 4 + re = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/; + re2 = /^(.+?)(s|t)(ion)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(mgr1); + if (re.test(stem)) + w = stem; + } + else if (re2.test(w)) { + var fp = re2.exec(w); + stem = fp[1] + fp[2]; + re2 = new RegExp(mgr1); + if (re2.test(stem)) + w = stem; + } + + // Step 5 + re = /^(.+?)e$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(mgr1); + re2 = new RegExp(meq1); + re3 = new RegExp("^" + C + v + "[^aeiouwxy]$"); + if (re.test(stem) || (re2.test(stem) && !(re3.test(stem)))) + w = stem; + } + re = /ll$/; + re2 = new RegExp(mgr1); + if (re.test(w) && re2.test(w)) { + re = /.$/; + w = w.replace(re,""); + } + + // and turn initial Y back to y + if (firstch == "y") + w = firstch.toLowerCase() + w.substr(1); + return w; + } +} + + + +/** + * Simple result scoring code. + */ +var Scorer = { + // Implement the following function to further tweak the score for each result + // The function takes a result array [filename, title, anchor, descr, score] + // and returns the new score. + /* + score: function(result) { + return result[4]; + }, + */ + + // query matches the full name of an object + objNameMatch: 11, + // or matches in the last dotted part of the object name + objPartialMatch: 6, + // Additive scores depending on the priority of the object + objPrio: {0: 15, // used to be importantResults + 1: 5, // used to be objectResults + 2: -5}, // used to be unimportantResults + // Used when the priority is not in the mapping. + objPrioDefault: 0, + + // query found in title + title: 15, + // query found in terms + term: 5 +}; + + +/** + * Search Module + */ +var Search = { + + _index : null, + _queued_query : null, + _pulse_status : -1, + + init : function() { + var params = $.getQueryParameters(); + if (params.q) { + var query = params.q[0]; + $('input[name="q"]')[0].value = query; + this.performSearch(query); + } + }, + + loadIndex : function(url) { + $.ajax({type: "GET", url: url, data: null, + dataType: "script", cache: true, + complete: function(jqxhr, textstatus) { + if (textstatus != "success") { + document.getElementById("searchindexloader").src = url; + } + }}); + }, + + setIndex : function(index) { + var q; + this._index = index; + if ((q = this._queued_query) !== null) { + this._queued_query = null; + Search.query(q); + } + }, + + hasIndex : function() { + return this._index !== null; + }, + + deferQuery : function(query) { + this._queued_query = query; + }, + + stopPulse : function() { + this._pulse_status = 0; + }, + + startPulse : function() { + if (this._pulse_status >= 0) + return; + function pulse() { + var i; + Search._pulse_status = (Search._pulse_status + 1) % 4; + var dotString = ''; + for (i = 0; i < Search._pulse_status; i++) + dotString += '.'; + Search.dots.text(dotString); + if (Search._pulse_status > -1) + window.setTimeout(pulse, 500); + } + pulse(); + }, + + /** + * perform a search for something (or wait until index is loaded) + */ + performSearch : function(query) { + // create the required interface elements + this.out = $('#search-results'); + this.title = $('

' + _('Searching') + '

').appendTo(this.out); + this.dots = $('').appendTo(this.title); + this.status = $('

').appendTo(this.out); + this.output = $('
'); + } + // Prettify the comment rating. + comment.pretty_rating = comment.rating + ' point' + + (comment.rating == 1 ? '' : 's'); + // Make a class (for displaying not yet moderated comments differently) + comment.css_class = comment.displayed ? '' : ' moderate'; + // Create a div for this comment. + var context = $.extend({}, opts, comment); + var div = $(renderTemplate(commentTemplate, context)); + + // If the user has voted on this comment, highlight the correct arrow. + if (comment.vote) { + var direction = (comment.vote == 1) ? 'u' : 'd'; + div.find('#' + direction + 'v' + comment.id).hide(); + div.find('#' + direction + 'u' + comment.id).show(); + } + + if (opts.moderator || comment.text != '[deleted]') { + div.find('a.reply').show(); + if (comment.proposal_diff) + div.find('#sp' + comment.id).show(); + if (opts.moderator && !comment.displayed) + div.find('#cm' + comment.id).show(); + if (opts.moderator || (opts.username == comment.username)) + div.find('#dc' + comment.id).show(); + } + return div; + } + + /** + * A simple template renderer. Placeholders such as <%id%> are replaced + * by context['id'] with items being escaped. Placeholders such as <#id#> + * are not escaped. + */ + function renderTemplate(template, context) { + var esc = $(document.createElement('div')); + + function handle(ph, escape) { + var cur = context; + $.each(ph.split('.'), function() { + cur = cur[this]; + }); + return escape ? esc.text(cur || "").html() : cur; + } + + return template.replace(/<([%#])([\w\.]*)\1>/g, function() { + return handle(arguments[2], arguments[1] == '%' ? true : false); + }); + } + + /** Flash an error message briefly. */ + function showError(message) { + $(document.createElement('div')).attr({'class': 'popup-error'}) + .append($(document.createElement('div')) + .attr({'class': 'error-message'}).text(message)) + .appendTo('body') + .fadeIn("slow") + .delay(2000) + .fadeOut("slow"); + } + + /** Add a link the user uses to open the comments popup. */ + $.fn.comment = function() { + return this.each(function() { + var id = $(this).attr('id').substring(1); + var count = COMMENT_METADATA[id]; + var title = count + ' comment' + (count == 1 ? '' : 's'); + var image = count > 0 ? opts.commentBrightImage : opts.commentImage; + var addcls = count == 0 ? ' nocomment' : ''; + $(this) + .append( + $(document.createElement('a')).attr({ + href: '#', + 'class': 'sphinx-comment-open' + addcls, + id: 'ao' + id + }) + .append($(document.createElement('img')).attr({ + src: image, + alt: 'comment', + title: title + })) + .click(function(event) { + event.preventDefault(); + show($(this).attr('id').substring(2)); + }) + ) + .append( + $(document.createElement('a')).attr({ + href: '#', + 'class': 'sphinx-comment-close hidden', + id: 'ah' + id + }) + .append($(document.createElement('img')).attr({ + src: opts.closeCommentImage, + alt: 'close', + title: 'close' + })) + .click(function(event) { + event.preventDefault(); + hide($(this).attr('id').substring(2)); + }) + ); + }); + }; + + var opts = { + processVoteURL: '/_process_vote', + addCommentURL: '/_add_comment', + getCommentsURL: '/_get_comments', + acceptCommentURL: '/_accept_comment', + deleteCommentURL: '/_delete_comment', + commentImage: '/static/_static/comment.png', + closeCommentImage: '/static/_static/comment-close.png', + loadingImage: '/static/_static/ajax-loader.gif', + commentBrightImage: '/static/_static/comment-bright.png', + upArrow: '/static/_static/up.png', + downArrow: '/static/_static/down.png', + upArrowPressed: '/static/_static/up-pressed.png', + downArrowPressed: '/static/_static/down-pressed.png', + voting: false, + moderator: false + }; + + if (typeof COMMENT_OPTIONS != "undefined") { + opts = jQuery.extend(opts, COMMENT_OPTIONS); + } + + var popupTemplate = '\ +
\ +

\ + Sort by:\ + best rated\ + newest\ + oldest\ +

\ +
Comments
\ +
\ + loading comments...
\ +
    \ +
    \ +

    Add a comment\ + (markup):

    \ +
    \ + reStructured text markup: *emph*, **strong**, \ + ``code``, \ + code blocks: :: and an indented block after blank line
    \ +
    \ + \ +

    \ + \ + Propose a change ▹\ + \ + \ + Propose a change ▿\ + \ +

    \ + \ + \ + \ + \ + \ +
    \ +
    '; + + var commentTemplate = '\ +
    \ +
    \ +
    \ + \ + \ + \ + \ + \ + \ +
    \ +
    \ + \ + \ + \ + \ + \ + \ +
    \ +
    \ +
    \ +

    \ + <%username%>\ + <%pretty_rating%>\ + <%time.delta%>\ +

    \ +
    <#text#>
    \ +

    \ + \ + reply ▿\ + proposal ▹\ + proposal ▿\ + \ + \ +

    \ +
    \
    +<#proposal_diff#>\
    +        
    \ +
      \ +
      \ +
      \ +
      \ + '; + + var replyTemplate = '\ +
    • \ +
      \ +
      \ + \ + \ + \ + \ + \ + \ +
      \ +
    • '; + + $(document).ready(function() { + init(); + }); +})(jQuery); + +$(document).ready(function() { + // add comment anchors for all paragraphs that are commentable + $('.sphinx-has-comment').comment(); + + // highlight search words in search results + $("div.context").each(function() { + var params = $.getQueryParameters(); + var terms = (params.q) ? params.q[0].split(/\s+/) : []; + var result = $(this); + $.each(terms, function() { + result.highlightText(this.toLowerCase(), 'highlighted'); + }); + }); + + // directly open comment window if requested + var anchor = document.location.hash; + if (anchor.substring(0, 9) == '#comment-') { + $('#ao' + anchor.substring(9)).click(); + document.location.hash = '#s' + anchor.substring(9); + } +}); + +``` + +`aPLib/doc/html/acknowledgements.html`: + +```html + + + + + + + + Acknowledgements — aPLib 1.1.1 documentation + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      Acknowledgements

      +

      Greetings and thanks to:

      +
        +
      • d’b for our continuous discussions of compression techniques :)
      • +
      • TAD for all the great ideas and the good discussions
      • +
      • The people who made the Epsilon Compression Page
      • +
      • Pasi ‘Albert’ Ojala for his info on PuCrunch
      • +
      • RIT Research Labs for making Dos Navigator .. it’s the BEST!
      • +
      • LiuTaoTao for making TR .. one of the best debuggers around!
      • +
      • Eugene Suslikov (SEN) for making HIEW .. it ROCKS!
      • +
      • Oleg for his work on the TMT Pascal code
      • +
      • Veit Kannegieser for his work on the VPascal code
      • +
      • METALBRAIN for his work on the 16bit depackers
      • +
      • Gautier for his work on the Ada code
      • +
      • Alexey Solodovnikov for his work on the Delphi code
      • +
      • Steve Hutchesson for his work on the MASM32 code
      • +
      • Agner Fog for objconv and his great info on calling conventions
      • +
      • All other people who make good software freely available for non-commercial +use!
      • +
      +

      A special thanks to the beta-testers:

      +
        +
      • x-otic (thx mate ;)
      • +
      • Oleg Prokhorov (great optimisations and bug reports!)
      • +
      • Lawrence E. Boothby
      • +
      • METALBRAIN (believe in miracles, my friend ;)
      • +
      • eL PuSHeR
      • +
      • Elli
      • +
      • Veit Kannegieser
      • +
      • Gautier
      • +
      +
      + + +
      +
      +
      +
      +
      +

      Previous topic

      +

      Decompression

      +

      Next topic

      +

      Version History

      +

      This Page

      + + + +
      +
      +
      +
      + + + + +``` + +`aPLib/doc/html/changes.html`: + +```html + + + + + + + + Version History — aPLib 1.1.1 documentation + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      Version History

      +
      +
      v1.1.1 *
      +

      Add VERSIONINFO resource to dll files, and fix subsystem in 32-bit dll +for Win95 compatibility, thanks to Richard Russell.

      +

      Add Apple II example, thanks to Peter Ferrie.

      +

      Add PowerBASIC example, thanks to Wayne Diamond.

      +

      Use Sphinx to generate docs.

      +
      +
      v1.1.0 *
      +

      Added Linux ELF shared library support, thanks to Vov Pov.

      +

      Added a Python example, thx to Marco Fabbricatore.

      +

      Fixed a bug in 64-bit aPsafe_check().

      +

      Cleaned up compression code.

      +

      Changed to semver version numbering.

      +
      +
      v1.01 *
      +
      Added undecorated names to 32-bit dll again, thanks to James C. Fuller.
      +
      v1.00 *
      +

      Changed the license so aPLib can now be used free of charge for commercial +use as well.

      +

      Added support for 64-bit compression and decompression. Since I do not +have a running 64-bit system myself, any feedback on how it works would +be great.

      +

      Removed support for a number of old compilers/assemblers. If you still +need these, please use the previous release or contact me (if you need +object files for Delphi, simply unpack the OMF library).

      +

      Moved most of the examples to the contrib folder since I no longer have +the old development tools installed to check they work.

      +

      All the assembly source files included are now FASM syntax.

      +

      Simplified the build process using objconv by Agner Fog.

      +

      Jumped the version number to v1.00 to signify the code is stable.

      +
      +
      v0.44 *
      +

      Made a few updates to the documentation.

      +

      Fixed a rare crash, thx to Rafael Ahucha!

      +
      +
      v0.43 *
      +

      Added Visual Basic 6 wrapper, thx to Jon Johnson!

      +

      Added PowerBuilder 9.0 objects, thx to James Sheekey!

      +

      Fixed a rare crash, thx to cyberbob!

      +
      +
      v0.42 *
      +

      Added C and assembler implementations of a new safe depacker +aP_depack_safe() and aP_depack_asm_safe().

      +

      Updated the aPsafe_ wrapper functions.

      +

      Renamed lib/vc to lib/mscoff and lib/watcom to lib/omf to +better reflect that they are not limited to those specific compilers.

      +

      Updated examples and documentation.

      +
      +
      v0.41
      +

      Added a Borland C++ Builder example, thx to +mouser!

      +

      Fixed vc library compatibility with +Pelles C.

      +
      +
      v0.40
      +

      The documentation was rewritten in html, and moved to a separate folder.

      +

      All examples were updated. The dll_asm, dos32 and tlink32 +examples were removed, and a small .NET example was added.

      +
      +
      v0.39
      +
      All aPLib functions now return -1 on error instead of 0. Added a +macro APLIB_ERROR for this value to all include files.
      +
      v0.38
      +
      The aPLib compression functions should now be fully thread-safe. Updated +the C decompression code for thread-safety.
      +
      v0.37
      +
      Changed the parameters for the callback function. It is now called with +the input size, input bytes processed, output bytes produced, and a +user-supplied callback parameter. Thx to f0dder!
      +
      v0.36 *
      +

      Fixed a bug which could cause a match to be found in the area before the +input buffer under certain conditions, thx to Veit!

      +

      Changed the extension of the C example files from cpp to c.

      +

      The ELF32 version was tested under FreeBSD, thx to Oleg!

      +
      +
      v0.35
      +

      Worked with a number of ‘issues’ in the build process.

      +

      Fixed the C depacker so it no longer modifies the input buffer, thx to +Trevor Mensah!

      +
      +
      v0.34 *
      +

      Updated the 16bit, Ada, Delphi, C/C++, TMT Pascal and Virtual Pascal +examples, thx to METALBRAIN, Gautier, Oleg and Veit!

      +

      Added a MASM32 example program, thx to Steve Hutchesson!

      +

      Fixed another bug which could cause aP_pack() to read one byte +past the input buffer, thx to Reiner Proels!

      +

      NOTE!! the dll version now expects the callback function to use the +stdcall calling convention.

      +

      The libraries now include the function aP_max_packed_size(), +which given the input size returns the maximum possible size +aP_pack() may produce (i.e. the worst case output size of +totally incompressible data). At the moment the function simply returns +(inputsize + (inputsize / 8) + 64).

      +
      +
      v0.33
      +
      Added ELF32 version of aPLib, which has been tested with Linux, BeOS and +QNX. Modified the C example to work under these operating systems too.
      +
      v0.32
      +
      Discovered some mixups between different versions of the examples .. +started rewriting some of them. Added a header to the files created by +most of the examples.
      +
      v0.31
      +
      Improved compression ratio a little.
      +
      v0.30
      +

      Fixed a bug in one of the 16bit depackers, thx to Peter Hegel!

      +

      Updated the C/C++ example.

      +
      +
      v0.29
      +

      Updated the Ada example, thx to Gautier!

      +

      I have removed the ‘b’ from the version number.

      +
      +
      v0.28b
      +

      Updated the 16bit depacker examples, thx to METALBRAIN!

      +

      Renamed the SRC/C depacker files.

      +
      +
      v0.27b
      +
      Fixed a bug which could cause aP_pack() to read one byte past +the input buffer.
      +
      v0.26b *
      +

      Added Visual C++ and Borland C examples.

      +

      Rewrote the example program, so there is only a single source file, which +works with BCC32, DJGPP, VC++ and Watcom.

      +

      Added an import library for Visual C++ in lib/dll, and an example of +how to use it (examples/c/make_dll.bat).

      +

      The libraries now include the function aP_workmem_size(), which +given the input size returns the amount of memory required for the work +buffer (you still have to allocate it yourself). This should make +upgrading easier in case I change the memory requirement in a later +version. At the moment the function simply returns 640k.

      +
      +
      v0.25b
      +

      Added a TMT Pascal example, thx to Oleg Prokhorov!

      +

      Moved the Ada and VPascal examples to the example dir.

      +

      Updated the documentation.

      +
      +
      v0.24b
      +

      Updated the 16bit depacker examples, thx to METALBRAIN!

      +

      Made all assembler depackers smaller, thx to TAD and METALBRAIN!

      +
      +
      v0.23b
      +

      Recompiled with the latest VC++ and DJGPP versions.

      +

      Did a few speed optimisations – most versions should be a little faster.

      +
      +
      v0.22b *
      +

      Improved the compression speed a little more.

      +

      Cleaned up the code, which made the library somewhat smaller.

      +

      Added a C depacker.

      +

      Silent update: Updated the 16bit depackers - thx to METALBRAIN. There is +still one problem with the 16bit example depackers, but it will be fixed +for the next release.

      +
      +
      v0.21b
      +

      Improved compression ratio and speed.

      +

      Added Ada support by Gautier - thx!

      +

      Reduced the memory requirement from 1mb to 640k – which should be enough +for anybody ;).

      +
      +
      v0.20b *
      +

      Added Delphi support and example by Alexey Solodovnikov - thx!

      +

      Rewrote the aPPack example, removing some errors, and added 16bit +depackers - thx to METALBRAIN!

      +

      Removed a lot of unneeded information from the object files.

      +

      Rearranged all the folders – hope it’s not too confusing ;).

      +

      Removed all the example binaries from this file, and made them available +in a separate file instead.

      +

      Added the real aPACK / aPLib homepage URL, since home.ml.org was down for +a period.

      +
      +
      v0.19b *
      +

      Fixed a little mem bug (hopefully), thx to ANAKiN!

      +

      Ratio improved a little on large files.

      +

      Finally got around to updating my DJGPP installation :)

      +

      NOTE!! I have revised the license conditions – please read APLIB.DOC.

      +
      +
      v0.18b *
      +

      Added the new VPascal interfacing code by Veit Kannegieser.

      +

      Added a library compiled for VC.

      +

      Worked a little on the depackers.

      +
      +
      v0.17b *
      +

      NOTE!! the callback function now has to return a value. This is to make it +possible for the callback function to abort the packing without exiting +the program. If the callback returns 1, aP_pack() will +continue – if it returns 0, aP_pack() will stop and return +0.

      +

      The aPACK / aPLib homepage is now up on: apack.home.ml.org

      +

      I have not gotten the new VPascal interfacing code from Veit yet, so I +will add it again in the next version :)

      +

      Since I have added so much new stuff, I am releasing this version to get +some feedback (hint!), to find out where to go from here. If you have +Visual C++, Borland C++, Borland C++ Builder, Visual Basic, Delphi or +other 32-bit compilers/linkers, I am very interested in any problems you +might have using aPLib (especially the DLL version).

      +
      +
      v0.16b
      +

      NOTE!! aP_pack() NO LONGER allocates the memory it needs itself. +This was changed because otherwise you would need to supply malloc and +free functions to the packer. Now you just call aP_pack() with a +pointer to 1mb of mem. This is also faster if you compress multiple sets +of data, because mem is not allocated and deallocated every time.

      +

      Added new VPascal interfacing code by Veit Kannegieser - thx!

      +

      Added DOS32 and TLINK32 (Win32 PE) example code and executables.

      +

      Also added a DLL version of aPLib, and some example code for it. By the +way – the DLL version works fine as a wdl file for WDOSX!

      +

      Speeded up the fast depackers a tiny bit.

      +
      +
      v0.15b
      +

      Quite a few people have pointed out to me that AR was not the cleverest +library format to use, so I changed to OMF format, which works with (at +least) Watcom, DOS32 and TASM32/TLINK32.

      +

      Added assembler depackers for TASM and WASM, and added the fast assembler +depacker for NASM.

      +

      The Watcom and DJGPP libraries now also contain compiled versions of +aP_depack_asm() and aP_depack_asm_fast(), and the +APDEPACK.H files with the inline assembler versions have been removed.

      +
      +
      v0.14b *
      +

      Made some minor enhancements to the packer - ratio is a little better.

      +

      Added depacking code for NASM, converted by Archee/CoNTRACT - thx!

      +
      +
      v0.13b
      +

      Added depacking code for Pascal (Virtual Pascal), converted by Veit +Kannegieser - thx!

      +

      Switched to AR format for the Watcom library.

      +
      +
      v0.12b *
      +
      Changed the libraries to make them C-compatible.
      +
      v0.11b
      +
      aP_depack_asm_fast() is a little faster.
      +
      v0.10b *
      +
      Compression is a little faster :)
      +
      v0.09b
      +
      Compression is a little better :)
      +
      v0.08b *
      +
      First release version of aPLib :)
      +
      v0.07b
      +

      Fixed a bug that gave errors when compressing multiple sets of data (thx +x-otic!).

      +

      Cleaned up the code a little.

      +
      +
      v0.06b
      +

      Changed the packer, so it uses a fixed amount of mem (about 1 meg).

      +

      A few bugs fixed.

      +
      +
      v0.05b
      +
      First version of the aPLib library included.
      +
      v0.04b
      +
      Added the DJGPP fast asm unpacker.
      +
      v0.03b
      +
      Optimised the depacker a little.
      +
      v0.02b
      +
      Second try ;-P
      +
      v0.01b
      +
      First try!
      +
      +

      Project started March 5th 1998.

      +
      + + +
      +
      +
      +
      +
      +

      Previous topic

      +

      Acknowledgements

      +

      This Page

      + + + +
      +
      +
      +
      + + + + +``` + +`aPLib/doc/html/compression.html`: + +```html + + + + + + + + Compression — aPLib 1.1.1 documentation + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      Compression

      +

      The following is a description of the aPLib compression functionality.

      +
      +

      Compression Functions

      +
      +
      +size_t aP_pack(const void *source, void *destination, size_t length, void *workmem, int (*callback)(size_t, size_t, size_t, void *), void *cbparam)
      +

      Compress length bytes of data from source to destination, using +workmem as temporary storage.

      +

      The destination buffer should be large enough to hold +aP_max_packed_size(length) bytes.

      +

      The workmem buffer should be aP_workmem_size(length) bytes large.

      +

      The callback function, callback, must take four parameters. The first is +length, the second is the number of input bytes that has been +compressed, the third is how many output bytes they have been compressed +to, and the fourth is cbparam. If you do not have a callback, use +NULL instead. If the callback returns a non-zero value then +aP_pack() will continue compressing – if it returns zero, +aP_pack() will stop and return APLIB_ERROR.

      +
      +++ + + + + + +
      Parameters:
        +
      • source – pointer to data to be compressed
      • +
      • destination – pointer to where compressed data should be stored
      • +
      • length – length of uncompressed data in bytes
      • +
      • workmem – pointer to work memory used during compression
      • +
      • callback – pointer to callback function (or NULL)
      • +
      • cbparam – callback argument
      • +
      +
      Returns:

      length of compressed data, or APLIB_ERROR on error

      +
      + + +
      +
      +size_t aP_workmem_size(size_t input_size)
      +

      Compute required size of workmem buffer used by aP_pack() for +compressing input_size bytes of data.

      +

      The current code always returns 640k (640*1024).

      + +++ + + + + + +
      Parameters:
        +
      • input_size – length of uncompressed data in bytes
      • +
      +
      Returns:

      required length of work buffer

      +
      +
      + +
      +
      +size_t aP_max_packed_size(size_t input_size)
      +

      Compute maximum possible compressed size when compressing input_size +bytes of incompressible data.

      +

      The current code returns (input_size + (input_size / 8) + 64).

      + +++ + + + + + +
      Parameters:
        +
      • input_size – length of uncompressed data in bytes
      • +
      +
      Returns:

      maximum possible size of compressed data

      +
      +
      + + +
      +

      Safe Wrapper Functions

      +
      +
      +size_t aPsafe_pack(const void *source, void *destination, size_t length, void *workmem, int (*callback)(size_t, size_t, size_t, void *), void *cbparam)
      +

      Wrapper function for aP_pack(), which adds a header to the +compressed data containing the length of the original data, and CRC32 +checksums of the original and compressed data.

      + +++ + + + + + +
      Parameters:
        +
      • source – pointer to data to be compressed
      • +
      • destination – pointer to where compressed data should be stored
      • +
      • length – length of uncompressed data in bytes
      • +
      • workmem – pointer to work memory used during compression
      • +
      • callback – pointer to callback function (or NULL)
      • +
      • cbparam – callback argument
      • +
      +
      Returns:

      length of compressed data, or APLIB_ERROR on error

      +
      +
      +

      See also

      +

      aP_pack()

      +
      +
      + +
      +
      +

      Example

      +
      /* allocate workmem and destination memory */
      +char *workmem    = malloc(aP_workmem_size(length));
      +char *compressed = malloc(aP_max_packed_size(length));
      +
      +/* compress data[] to compressed[] */
      +size_t outlength = aPsafe_pack(data, compressed, length, workmem, NULL, NULL);
      +
      +/* if APLIB_ERROR is returned, and error occured */
      +if (outlength == APLIB_ERROR) {
      +        printf("An error occured!\n");
      +}
      +else {
      +        printf("Compressed %u bytes to %u bytes\n", length, outlength);
      +}
      +
      +
      +
      + + + + + + +
      +
      +

      Table Of Contents

      + + +

      Previous topic

      +

      General Information

      +

      Next topic

      +

      Decompression

      +

      This Page

      + + + +
      +
      +
      + + + + + +``` + +`aPLib/doc/html/decompression.html`: + +```html + + + + + + + + Decompression — aPLib 1.1.1 documentation + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      Decompression

      +

      The following is a description of the aPLib decompression functionality.

      +
      +

      Decompression Functions

      +
      +
      +size_t aP_depack(const void *source, void *destination)
      +

      Decompress compressed data from source to destination.

      +

      The destination buffer must be large enough to hold the decompressed +data.

      + +++ + + + + + +
      Parameters:
        +
      • source – pointer to compressed data
      • +
      • destination – pointer to where decompressed data should be stored
      • +
      +
      Returns:

      length of decompressed data, or APLIB_ERROR on error

      +
      +
      +

      Note

      +

      This function is not included in the libraries, but is available in +src/c/depack.c. aP_depack_asm_fast() can be used +instead.

      +
      +
      + +
      +
      +size_t aP_depack_safe(const void *source, size_t srclen, void *destination, size_t dstlen)
      +

      Decompress compressed data from source to destination.

      +

      This function reads at most srclen bytes from source, and writes +at most dstlen bytes to destination. If there is not enough +source or destination space, or a decoding error occurs, the function +returns APLIB_ERROR.

      + +++ + + + + + +
      Parameters:
        +
      • source – pointer to compressed data
      • +
      • srclen – size of source buffer in bytes
      • +
      • destination – pointer to where decompressed data should be stored
      • +
      • dstlen – size of destination buffer in bytes
      • +
      +
      Returns:

      length of decompressed data, or APLIB_ERROR on error

      +
      +
      +

      Note

      +

      This function is not included in the libraries, but is available in +src/c/depacks.c. aP_depack_asm_safe() can be used +instead.

      +
      +
      + +
      +
      +size_t aP_depack_asm(const void *source, void *destination)
      +

      Decompress compressed data from source to destination.

      +

      The destination buffer must be large enough to hold the decompressed +data.

      +

      Optimised for size.

      + +++ + + + + + +
      Parameters:
        +
      • source – pointer to compressed data
      • +
      • destination – pointer to where decompressed data should be stored
      • +
      +
      Returns:

      length of decompressed data, or APLIB_ERROR on error

      +
      +
      + +
      +
      +size_t aP_depack_asm_fast(const void *source, void *destination)
      +

      Decompress compressed data from source to destination.

      +

      The destination buffer must be large enough to hold the decompressed +data.

      +

      Optimised for speed.

      + +++ + + + + + +
      Parameters:
        +
      • source – pointer to compressed data
      • +
      • destination – pointer to where decompressed data should be stored
      • +
      +
      Returns:

      length of decompressed data, or APLIB_ERROR on error

      +
      +
      + +
      +
      +size_t aP_depack_asm_safe(const void *source, size_t srclen, void *destination, size_t dstlen)
      +

      Decompress compressed data from source to destination.

      +

      This function reads at most srclen bytes from source, and writes +at most dstlen bytes to destination. If there is not enough +source or destination space, or a decoding error occurs, the function +returns APLIB_ERROR.

      + +++ + + + + + +
      Parameters:
        +
      • source – pointer to compressed data
      • +
      • srclen – size of source buffer in bytes
      • +
      • destination – pointer to where decompressed data should be stored
      • +
      • dstlen – size of destination buffer in bytes
      • +
      +
      Returns:

      length of decompressed data, or APLIB_ERROR on error

      +
      +
      +

      See also

      +

      aPsafe_depack()

      +
      +
      + +
      +
      +unsigned int aP_crc32(const void *source, size_t length)
      +

      Compute CRC32 value of length bytes of data from source.

      + +++ + + + + + +
      Parameters:
        +
      • source – pointer to data to process
      • +
      • length – size in bytes of data
      • +
      +
      Returns:

      CRC32 value

      +
      +
      + +
      +
      +

      Safe Wrapper Functions

      +
      +
      +size_t aPsafe_check(const void *source)
      +

      Compute CRC32 of compressed data in source and check it against value +stored in header. Return length of decompressed data stored in header.

      + +++ + + + + + +
      Parameters:
        +
      • source – compressed data to process
      • +
      +
      Returns:

      length of decompressed data, or APLIB_ERROR on error

      +
      +
      + +
      +
      +size_t aPsafe_get_orig_size(const void *source)
      +

      Return length of decompressed data stored in header of compressed data in +source.

      + +++ + + + + + +
      Parameters:
        +
      • source – compressed data to process
      • +
      +
      Returns:

      length of decompressed data, or APLIB_ERROR on error

      +
      +
      + +
      +
      +size_t aPsafe_depack(const void *source, size_t srclen, void *destination, size_t dstlen)
      +

      Wrapper function for aP_depack_asm_safe(), which checks the CRC32 +of the compressed data, decompresses, and checks the CRC32 of the +decompressed data.

      + +++ + + + + + +
      Parameters:
        +
      • source – pointer to compressed data
      • +
      • srclen – size of source buffer in bytes
      • +
      • destination – pointer to where decompressed data should be stored
      • +
      • dstlen – size of destination buffer in bytes
      • +
      +
      Returns:

      length of decompressed data, or APLIB_ERROR on error

      +
      +
      +

      See also

      +

      aP_depack_asm_safe()

      +
      +
      + +
      +
      +

      Example

      +
      /* get original size */
      +size_t orig_size = aPsafe_get_orig_size(compressed);
      +
      +/* allocate memory for decompressed data */
      +char *data = malloc(orig_size);
      +
      +/* decompress compressed[] to data[] */
      +size_t outlength = aPsafe_depack(compressed, compressed_size, data, orig_size);
      +
      +/* check decompressed length */
      +if (outlength != orig_size) {
      +        printf("An error occured!\n");
      +}
      +else {
      +        printf("Decompressed %u bytes\n", outlength);
      +}
      +
      +
      +
      +
      + + +
      +
      +
      +
      +
      +

      Table Of Contents

      + + +

      Previous topic

      +

      Compression

      +

      Next topic

      +

      Acknowledgements

      +

      This Page

      + + + +
      +
      +
      +
      + + + + +``` + +`aPLib/doc/html/general.html`: + +```html + + + + + + + + General Information — aPLib 1.1.1 documentation + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      General Information

      +
      +

      Introduction

      +

      aPLib is a compression library based on the algorithm used in aPACK (my 16-bit +executable packer). aPLib is an easy-to-use alternative to many of the +heavy-weight compression libraries available.

      +

      The compression ratios achieved by aPLib combined with the speed and tiny +footprint of the decompressors (as low as 169 bytes!) makes it the ideal +choice for many products.

      +

      Since the first public release in 1998, aPLib has been one of the top pure +LZ-based compression libraries available. It is used in a wide range of +products including executable compression and protection software, archivers, +games, embedded systems, and handheld devices.

      +
      +
      +

      Compatibility

      +

      The aPLib package includes pre-compiled libraries in a number of formats +(COFF, ELF, OMF).

      +

      No standard library functions are used, so the libraries can work with most +x86/x64 compilers, as long as the name decoration and calling conventions +match.

      +

      The ELF folders contain a version of aPLib which uses PIC to allow it to be +linked into shared libraries on linux.

      +
      +
      +

      Thread-safety

      +

      All compression and decompression functions are thread-safe.

      +
      +
      +

      Using aPLib

      +

      For C/C++ you simply include aplib.h and link with the appropriate library +for your compiler. If you only need to decompress data, or if you modify the +decompression code, you can compile and link with one of the decompression +implementations in the src folder.

      +

      For other languages you can either check if there is a useable example, or use +the DLL version. Most linkers allow calling C functions in an external +library, so usually there is a way to use one of the libraries.

      +

      aPLib performs memory-to-memory compression and decompression, so getting data +into an input buffer and allocating an output buffer is your responsibility.

      +

      All functions return APLIB_ERROR (which is -1) if an error occurs.

      +

      Attempting to compress incompressible data can lead to expansion. You can get +the maximum possible coded size by passing the size of the input to the +function aP_max_packed_size().

      +

      When calling aP_pack() you have to supply a work buffer. You can get +the required size of this buffer by passing the size of the input to the +function aP_workmem_size() (in the current version this function +always returns 640k).

      +

      If you do not have a callback for aP_pack(), you can pass NULL +(i.e. 0) instead. The callback functionality allows your program to keep +track of the compression progress, and if required to stop the compression.

      +

      aP_depack(), aP_depack_asm(), and +aP_depack_asm_fast() assume that they are given valid compressed +data – if not they will most likely crash. This is to ensure that the basic +decompression code is as small, fast and easy to understand as possible. You +can use aP_depack_safe() or aP_depack_asm_safe() if you +need to catch decompression errors. Also the safe wrapper functions provide a +nice interface that helps prevent potential crashes.

      +
      +
      +

      Safe Wrapper Functions

      +

      Starting with aPLib v0.34, there are additional functions included which +provide a better way of handling the compressed data in the example, and also +serve as an example of how to add functionality through function wrappers.

      +

      The aPsafe_pack() and aPsafe_depack() functions are +wrappers for their regular aP_ counterparts, which add a header to the +compressed data. This header includes a tag, information about the compressed +and decompressed size of the data, and CRC32 values for the compressed and +decompressed data.

      +

      The example folder contains a simple command line packer that uses aPLib +to compress and decompress data. The aPsafe_ functions are used in this +example, because they provide extra functionality like retrieving the original +size of compressed data.

      +
      +
      +

      Contact Information

      +

      If you have any questions, suggestions or bug-reports about aPLib, please feel +free to contact me by e-mail at:

      +
      +
      +

      You can get the latest version of aPLib and my other software at:

      +
      +
      +
      +
      + + +
      +
      +
      +
      +
      +

      Table Of Contents

      + + +

      Previous topic

      +

      License

      +

      Next topic

      +

      Compression

      +

      This Page

      + + + +
      +
      +
      +
      + + + + +``` + +`aPLib/doc/html/genindex.html`: + +```html + + + + + + + + + Index — aPLib 1.1.1 documentation + + + + + + + + + + + + + +
      + +
      +
      + + + + + +
      +
      +
      +
      + + + + +``` + +`aPLib/doc/html/index.html`: + +```html + + + + + + + + Welcome to the aPLib documentation! — aPLib 1.1.1 documentation + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      Welcome to the aPLib documentation!

      +

      aPLib is a compression library based on the algorithm used in aPACK (my 16-bit +executable packer). aPLib is an easy-to-use alternative to many of the +heavy-weight compression libraries available.

      +

      The compression ratios achieved by aPLib combined with the speed and tiny +footprint of the decompressors (as low as 169 bytes!) makes it the ideal +choice for many products.

      +

      Contents:

      + +
      + + +
      +
      +
      +
      +
      +

      Next topic

      +

      License

      +

      This Page

      + + + +
      +
      +
      +
      + + + + +``` + +`aPLib/doc/html/license.html`: + +```html + + + + + + + + License — aPLib 1.1.1 documentation + + + + + + + + + + + + + + + +
      +
      +
      +
      + +
      +

      License

      +

      aPLib is freeware. If you use aPLib in a product, an acknowledgement would be +appreciated, e.g. by adding something like the following to the documentation:

      +
      +
      +
      This product uses the aPLib compression library,
      +
      Copyright © 1998-2014 Joergen Ibsen, All Rights Reserved.
      +
      For more information, please visit: http://www.ibsensoftware.com/
      +
      +
      +

      You may not redistribute aPLib without all of the files.

      +

      You may not edit or reverse engineer any of the files (except the header +files and the decompression code, which you may edit as long as you do not +remove the copyright notice).

      +

      You may not sell aPLib, or any part of it, for money (except for charging for +the media).

      +

      #ifndef COMMON_SENSE

      +
      +

      This software is provided “as is”. In no event shall I, the author, be +liable for any kind of loss or damage arising out of the use, abuse or +the inability to use this software. USE IT ENTIRELY AT YOUR OWN RISK!

      +

      This software comes without any kind of warranty, either expressed or +implied, including, but not limited to the implied warranties of +merchantability or fitness for any particular purpose.

      +

      If you do not agree with these terms or if your jurisdiction does not +allow the exclusion of warranty and liability as stated above you are NOT +allowed to use this software at all.

      +
      +

      #else

      +
      +

      Bla bla bla .. the usual stuff - you know it anyway:

      +

      If anything goes even remotely wrong - blame _yourself_, NOT me!

      +
      +

      #endif

      +
      + + +
      +
      +
      +
      +
      +

      Previous topic

      +

      Welcome to the aPLib documentation!

      +

      Next topic

      +

      General Information

      +

      This Page

      + + + +
      +
      +
      +
      + + + + +``` + +`aPLib/doc/html/search.html`: + +```html + + + + + + + + Search — aPLib 1.1.1 documentation + + + + + + + + + + + + + + + + + + + +
      +
      +
      +
      + +

      Search

      +
      + +

      + Please activate JavaScript to enable the search + functionality. +

      +
      +

      + From here you can search these documents. Enter your search + words into the box below and click "search". Note that the search + function will automatically search for all of the words. Pages + containing fewer words won't appear in the result list. +

      +
      + + + +
      + +
      + +
      + +
      +
      +
      +
      +
      +
      +
      +
      +
      + + + + +``` + +`aPLib/doc/html/searchindex.js`: + +```js +Search.setIndex({terms:{fuller:5,updat:5,develop:5,decompress:5,"new":5,down:5,mscoff:5,malloc:[1,2,5],pell:5,implement:[3,5],compressed_s:2,problem:5,exampl:5,ensur:3,commerci:[0,5],specif:5,html:5,report:[3,0],techniqu:0,semver:5,mai:[4,5],cyberbob:5,rewrit:5,thank:[0,5],other:[3,0,5],hope:5,omf:[3,5],rare:5,special:0,f0dder:5,kannegies:[0,5],progress:3,low:[3,6],"\u215b":4,note:5,richard:5,kind:4,albert:0,test:5,callback:[3,1,5],get:[3,2,5],either:[3,4],"06b":5,call:[3,0,5],fasm:5,ibsen:4,versioninfo:5,right:4,pack:5,linker:[3,5],against:2,incompress:[3,1,5],packer:[3,5,6],time:5,extern:3,lab:0,"5th":5,through:3,read:[2,5],ap_pack:[3,1,5],liabil:4,made:[0,5],possibl:[3,1,5],silent:5,size:[3,1,2,5],copyright:4,non:[0,1],"14b":5,dealloc:5,sen:0,python:5,compress:[0,5],zero:1,anybodi:5,signifi:5,nasm:5,execut:[3,5,6],discov:5,sourc:[1,2,5],descript:[1,2],also:[3,5],aplib:[1,2,5],languag:3,tad:[0,5],"return":[3,1,2,5],pic:3,suslikov:0,game:3,homepag:5,singl:5,pascal:[0,5],src:[3,2,5],x86:3,protect:3,linux:[3,5],ada:[0,5],compil:[3,5],mensah:5,lot:5,peopl:[0,5],solodovnikov:[0,5],delphi:[0,5],"_yourself_":4,ratio:[3,5,6],abort:5,optimis:[0,2,5],simpl:3,loss:4,input_s:1,diamond:5,work:[3,0,1,5],"22b":5,folder:[3,5],"long":[3,4],minor:5,"1mb":5,come:4,expans:3,discuss:0,especi:5,asm:5,wide:3,allow:[3,4],unpack:5,charg:[4,5],steve:[0,5],cbparam:1,extens:5,peter:5,perform:3,author:4,debugg:0,name:[3,5],yet:5,separ:5,ap_depack_asm:[3,2,5],virtual:5,thi:[3,4,2,5],exclus:4,ap_:3,best:0,notic:4,elf32:5,pass:3,check:[3,2,5],epsilon:0,someth:4,win32:5,edit:4,easier:5,apsafe_get_orig_s:2,itself:5,did:5,store:[1,2],appl:5,line:3,"13b":5,anyth:4,includ:[3,4,2,5],liutaotao:0,freewar:4,current:[3,1],sell:4,depack:[0,2,5],valu:[3,1,2,5],apdepack:5,caus:5,joergen:4,expect:5,dir:5,should:[1,2,5],"25b":5,number:[3,1,5],well:5,mouser:5,"26b":5,around:[0,5],fabbricator:5,dure:1,comput:[1,2],extra:3,outlength:[1,2],all:[3,0,4,5],question:3,again:5,pucrunch:0,share:[3,5],everi:5,unsign:2,monei:4,simpli:[3,5],own:4,dos32:5,great:[0,5],"12b":5,convert:5,net:5,remov:[4,5],"24b":5,reduc:5,ideal:[3,6],sinc:[3,5],visual:5,set:5,wrong:4,wayn:5,some:5,srclen:2,user:5,fine:5,"02b":5,rang:3,proel:5,instal:5,borland:5,"const":[1,2],between:5,file:[4,5],"public":3,got:5,start:[3,5],previou:5,apsafe_:[3,5],without:[4,5],"27b":5,apsafe_depack:[3,2],myself:5,like:[3,4],wdosx:5,wrapper:5,would:[4,5],http:[3,4],"switch":5,org:5,too:5,when:[3,1,5],otic:[0,5],beta:0,ap_depack_saf:[3,2,5],mate:0,info:0,area:5,instead:[3,1,2,5],tester:0,elf:[3,5],algorithm:[3,6],tini:[3,5,6],masm32:[0,5],who:0,program:[3,5],follow:[4,1,2],choic:[3,6],softwar:[3,0,4],past:5,"case":5,sphinx:5,process:[2,5],"function":5,engin:4,blame:4,input:[3,1,5],archiv:3,feedback:5,oper:5,keep:3,els:[4,1,2],cpp:5,usual:[3,4],assembl:5,were:5,stdcall:5,simplifi:5,least:5,hopefulli:5,small:[3,5],"\u215e":4,hold:[1,2],our:0,rit:0,match:[3,5],russel:5,old:5,ifndef:4,project:5,vov:5,make_dl:5,make:[3,0,5,6],need:[3,5],eugen:0,you:[3,4,1,5],meg:5,hutchesson:[0,5],vpascal:[0,5],build:5,safeti:5,except:4,"\u215d":4,gave:5,format:[3,5],pov:5,reflect:5,later:5,"char":[1,2],freebsd:5,contact:5,pusher:0,"import":5,output:[3,1,5],certain:5,creat:5,"18b":5,rewritten:5,header:[3,4,1,2,5],boothbi:0,tag:3,reiner:5,handheld:3,tool:5,apsafe_pack:[3,1],occur:[3,1,2],suppli:[3,5],differ:5,macro:5,pure:3,remot:4,djgpp:5,temporari:1,marco:5,pleas:[3,4,5],interfac:[3,5],free:[3,5],lib:5,can:[3,2,5],longer:5,releas:[3,5],still:5,syntax:5,subsystem:5,moment:5,"640k":[3,1,5],wai:[3,5],few:5,jon:5,"10b":5,powerbas:5,run:5,easi:[3,6],just:5,contract:5,thei:[3,1,5],onli:[3,5],ap_max_packed_s:[3,1,5],inputs:5,point:5,alexei:[0,5],mem:5,"20b":5,link:3,clean:5,write:2,which:[3,4,1,2,5],licens:[5,6],most:[3,2,5],chang:5,understand:3,qnx:5,here:5,add:[3,1,5],navig:0,"11b":5,beo:5,base:[3,6],total:5,"catch":3,confus:5,much:5,embed:3,first:[3,1,5],top:3,smaller:5,objconv:[0,5],x64:3,avail:[3,0,2,5,6],product:[3,4,6],revers:4,basic:[3,5],yourself:5,anoth:5,idea:0,fast:[3,5],jame:5,apsafe_check:[2,5],printf:[1,2],damag:4,pointer:[1,2,5],length:[1,2],worst:5,dstlen:2,doe:4,under:5,rearrang:5,continu:[0,1,5],know:4,command:3,binari:5,redistribut:4,have:[3,1,5],document:5,move:5,miracl:0,event:4,paramet:[1,2,5],"16bit":[0,5],research:0,good:0,gautier:[0,5],them:5,gotten:5,system:[3,5],stop:[3,1,5],part:4,shall:4,pre:3,renam:5,argument:1,rewrot:5,goe:4,powerbuild:5,enhanc:5,ap_crc32:2,contain:[3,1,5],merchant:4,provid:[3,4],abus:4,alloc:[3,1,2,5],fulli:5,alwai:[3,1],oleg:[0,5],cleverest:5,hiew:0,better:[3,5],quit:5,risk:4,decompressor:[3,6],space:2,metalbrain:[0,5],those:5,packag:3,jump:5,impli:4,aris:4,"09b":5,requir:[3,1,5],fit:4,ojala:0,common_sens:4,"int":[1,2],latest:[3,5],freeli:0,find:5,been:[3,1,5],modifi:[3,5],librari:[3,4,2,5,6],rock:0,tmt:[0,5],dll:[3,5],doc:5,term:4,pasi:0,suggest:3,upgrad:5,real:5,"08b":5,purpos:4,inform:5,second:[1,5],"07b":5,must:[1,2],given:[3,5],"15b":5,checksum:1,feel:3,friend:0,becaus:[3,5],combin:[3,6],issu:5,enough:[1,2,5],"04b":5,undecor:5,fourth:1,rafael:5,ani:[3,4,5],believ:0,amount:5,"03b":5,win95:5,could:5,littl:5,next:5,handl:3,your:[3,4],about:[3,5],befor:5,orig_s:2,"17b":5,anywai:4,endif:4,condit:5,useabl:3,trevor:5,now:5,fog:[0,5],gener:5,lead:3,home:5,decod:2,wasm:5,larg:[1,2,5],mani:[3,1,6],coff:3,footprint:[3,6],respons:3,four:1,how:[3,1,5],inlin:5,buffer:[3,1,2,5],thx:[0,5],compat:5,"19b":5,mail:3,exit:5,decor:3,nice:3,somewhat:5,apack:[3,5,6],stabl:5,interest:5,"23b":5,veit:[0,5],arche:5,builder:5,period:5,watcom:5,uncompress:1,assum:3,counterpart:3,jurisdict:4,otherwis:5,crash:[3,5],agre:4,"void":[1,2],url:5,page:0,prokhorov:[0,5],reserv:4,found:5,entir:4,attempt:3,regular:3,maximum:[3,1,5],size_t:[1,2],out:[4,5],state:4,prevent:3,weight:[3,6],from:[1,2,5],tasm32:5,johnson:5,even:4,achiev:[3,6],error:[3,1,2,5],heavi:[3,6],potenti:3,storag:1,march:5,ibsensoftwar:[3,4],ap_workmem_s:[3,1,5],dll_asm:5,particular:4,ap_depack_asm_saf:[3,2,5],contrib:5,appropri:3,thread:5,veri:5,track:3,where:[1,2,5],hint:5,more:[4,5],ferri:5,origin:[3,1,2],sheekei:5,bcc32:5,"final":5,bat:5,com:[3,4],greet:0,media:4,"21b":5,stuff:[4,5],wdl:5,valid:3,elli:0,"\u03c9":4,appreci:4,devic:3,hegel:5,altern:[3,6],www:[3,4],destin:[1,2],safe:5,bla:4,produc:5,faster:5,might:5,ap_depack_asm_fast:[3,2,5],"01b":5,appack:5,take:1,liabl:4,multipl:5,inabl:4,crc32:[3,1,2],serv:3,fix:5,"05b":5,code:[3,0,4,1,5],standard:3,resourc:5,content:6,support:5,bug:[3,0,5],revis:5,express:4,abov:4,ahucha:5,recompil:5,mixup:5,retriev:3,memori:[3,1,2,5],"byte":[3,1,2,5,6],"try":5,limit:[4,5],convent:[3,0,5],warranti:4,anakin:5,"\u215c":4,tlink32:5,addit:3,speed:[3,2,5,6],lawrenc:0,bit:[3,5,6],"16b":5,tasm:5,agner:[0,5],workmem:1,data:[3,1,2,5],object:5,aplib_error:[3,1,2,5],"28b":5,improv:5,visit:4,third:1,unneed:5,ap_depack:[3,2],"null":[3,1],help:3},objtypes:{"0":"c:function"},envversion:43,objects:{"":{aP_workmem_size:[1,0,1,"c.aP_workmem_size"],aP_depack_safe:[2,0,1,"c.aP_depack_safe"],aP_crc32:[2,0,1,"c.aP_crc32"],aP_depack:[2,0,1,"c.aP_depack"],aP_depack_asm_safe:[2,0,1,"c.aP_depack_asm_safe"],aPsafe_check:[2,0,1,"c.aPsafe_check"],aP_max_packed_size:[1,0,1,"c.aP_max_packed_size"],aP_depack_asm:[2,0,1,"c.aP_depack_asm"],aPsafe_depack:[2,0,1,"c.aPsafe_depack"],aPsafe_get_orig_size:[2,0,1,"c.aPsafe_get_orig_size"],aPsafe_pack:[1,0,1,"c.aPsafe_pack"],aP_pack:[1,0,1,"c.aP_pack"],aP_depack_asm_fast:[2,0,1,"c.aP_depack_asm_fast"]}},filenames:["acknowledgements","compression","decompression","general","license","changes","index"],titles:["Acknowledgements","Compression","Decompression","General Information","License","Version History","Welcome to the aPLib documentation!"],objnames:{"0":["c","function","C function"]},titleterms:{version:5,welcom:6,thread:3,wrapper:[3,1,2],introduct:3,compat:3,decompress:2,compress:1,acknowledg:0,"function":[3,1,2],safe:[3,1,2],gener:3,exampl:[1,2],contact:3,licens:4,document:6,histori:5,inform:3,aplib:[3,6],safeti:3}}) +``` + +`aPLib/example/appack.c`: + +```c +/* + * aPLib compression library - the smaller the better :) + * + * C example + * + * Copyright (c) 1998-2014 Joergen Ibsen + * All Rights Reserved + * + * http://www.ibsensoftware.com/ + */ + +#include +#include +#include +#include +#include + +#include "aplib.h" + +/* + * Calling convention for the callback. + */ +#ifndef CB_CALLCONV +# if defined(AP_DLL) +# define CB_CALLCONV __stdcall +# elif defined(__GNUC__) +# define CB_CALLCONV +# else +# define CB_CALLCONV __cdecl +# endif +#endif + +/* + * Unsigned char type. + */ +typedef unsigned char byte; + +/* + * Compute ratio between two numbers. + */ +static unsigned int ratio(unsigned int x, unsigned int y) +{ + if (x <= UINT_MAX / 100) { + x *= 100; + } + else { + y /= 100; + } + + if (y == 0) { + y = 1; + } + + return x / y; +} + +/* + * Compression callback. + */ +int CB_CALLCONV callback(unsigned int insize, unsigned int inpos, + unsigned int outpos, void *cbparam) +{ + (void) cbparam; + + printf("\rcompressed %u -> %u bytes (%u%% done)", inpos, outpos, + ratio(inpos, insize)); + + return 1; +} + +/* + * Compress a file. + */ +static int compress_file(const char *oldname, const char *packedname) +{ + FILE *oldfile; + FILE *packedfile; + unsigned int insize, outsize; + clock_t clocks; + byte *data, *packed, *workmem; + + /* open input file */ + if ((oldfile = fopen(oldname, "rb")) == NULL) { + printf("\nERR: unable to open input file\n"); + return 1; + } + + /* get size of input file */ + fseek(oldfile, 0, SEEK_END); + insize = (unsigned int) ftell(oldfile); + fseek(oldfile, 0, SEEK_SET); + + /* allocate memory */ + if ((data = (byte *) malloc(insize)) == NULL || + (packed = (byte *) malloc(aP_max_packed_size(insize))) == NULL || + (workmem = (byte *) malloc(aP_workmem_size(insize))) == NULL) { + printf("\nERR: not enough memory\n"); + return 1; + } + + if (fread(data, 1, insize, oldfile) != insize) { + printf("\nERR: error reading from input file\n"); + return 1; + } + + clocks = clock(); + + /* compress data block */ + outsize = aPsafe_pack(data, packed, insize, workmem, callback, NULL); + + clocks = clock() - clocks; + + /* check for compression error */ + if (outsize == APLIB_ERROR) { + printf("\nERR: an error occured while compressing\n"); + return 1; + } + + /* create output file */ + if ((packedfile = fopen(packedname, "wb")) == NULL) { + printf("\nERR: unable to create output file\n"); + return 1; + } + + fwrite(packed, 1, outsize, packedfile); + + /* show result */ + printf("\rCompressed %u -> %u bytes (%u%%) in %.2f seconds\n", + insize, outsize, ratio(outsize, insize), + (double) clocks / (double) CLOCKS_PER_SEC); + + /* close files */ + fclose(packedfile); + fclose(oldfile); + + /* free memory */ + free(workmem); + free(packed); + free(data); + + return 0; +} + +/* + * Decompress a file. + */ +static int decompress_file(const char *packedname, const char *newname) +{ + FILE *newfile; + FILE *packedfile; + unsigned int insize, outsize; + clock_t clocks; + byte *data, *packed; + unsigned int depackedsize; + + /* open input file */ + if ((packedfile = fopen(packedname, "rb")) == NULL) { + printf("\nERR: unable to open input file\n"); + return 1; + } + + /* get size of input file */ + fseek(packedfile, 0, SEEK_END); + insize = (unsigned int) ftell(packedfile); + fseek(packedfile, 0, SEEK_SET); + + /* allocate memory */ + if ((packed = (byte *) malloc(insize)) == NULL) { + printf("\nERR: not enough memory\n"); + return 1; + } + + if (fread(packed, 1, insize, packedfile) != insize) { + printf("\nERR: error reading from input file\n"); + return 1; + } + + depackedsize = aPsafe_get_orig_size(packed); + + if (depackedsize == APLIB_ERROR) { + printf("\nERR: compressed data error\n"); + return 1; + } + + /* allocate memory */ + if ((data = (byte *) malloc(depackedsize)) == NULL) { + printf("\nERR: not enough memory\n"); + return 1; + } + + clocks = clock(); + + /* decompress data */ + outsize = aPsafe_depack(packed, insize, data, depackedsize); + + clocks = clock() - clocks; + + /* check for decompression error */ + if (outsize != depackedsize) { + printf("\nERR: an error occured while decompressing\n"); + return 1; + } + + /* create output file */ + if ((newfile = fopen(newname, "wb")) == NULL) { + printf("\nERR: unable to create output file\n"); + return 1; + } + + /* write decompressed data */ + fwrite(data, 1, outsize, newfile); + + /* show result */ + printf("Decompressed %u -> %u bytes in %.2f seconds\n", + insize, outsize, + (double) clocks / (double) CLOCKS_PER_SEC); + + /* close files */ + fclose(packedfile); + fclose(newfile); + + /* free memory */ + free(packed); + free(data); + + return 0; +} + +/* + * Show program syntax. + */ +static void show_syntax(void) +{ + printf(" Syntax:\n\n" + " Compress : appack c \n" + " Decompress : appack d \n\n"); +} + +/* + * Main. + */ +int main(int argc, char *argv[]) +{ + /* show banner */ + printf("appack, aPLib compression library example\n" + "Copyright 1998-2014 Joergen Ibsen (www.ibsensoftware.com)\n\n"); + + /* check number of arguments */ + if (argc != 4) { + show_syntax(); + return 1; + } + +#ifdef __WATCOMC__ + /* OpenWatcom 1.2 line buffers stdout, so we unbuffer stdout manually + to make the progress indication in the callback work. + */ + setbuf(stdout, NULL); +#endif + + /* check first character of first argument to determine action */ + if (argv[1][0] && argv[1][1] == '\0') { + switch (argv[1][0]) { + /* compress file */ + case 'c': + case 'C': return compress_file(argv[2], argv[3]); + + /* decompress file */ + case 'd': + case 'D': return decompress_file(argv[2], argv[3]); + } + } + + /* show program syntax */ + show_syntax(); + return 1; +} + +``` + +`aPLib/example/make_bcc.bat`: + +```bat +@ECHO OFF +ECHO --- Building aPLib Borland C/C++ example --- +ECHO. + +bcc32 -I..\lib\omf appack.c ..\lib\omf\aplib.lib -eappack.exe + +``` + +`aPLib/example/make_dll.bat`: + +```bat +@ECHO OFF +ECHO --- Building aPLib Visual C/C++ DLL example --- +ECHO. + +cl /nologo /O2 /I..\lib\dll /DAP_DLL appack.c ..\lib\dll\aplib.lib + +ECHO. +ECHO Remember to copy APLIB.DLL here before running. + +``` + +`aPLib/example/make_pc.bat`: + +```bat +@ECHO OFF +ECHO --- Building aPLib Pelles C example --- +ECHO. + +cc /Ot /I..\lib\coff appack.c ..\lib\coff\aplib.lib + +``` + +`aPLib/example/make_vc.bat`: + +```bat +@ECHO OFF +ECHO --- Building aPLib Visual C/C++ example --- +ECHO. + +cl /nologo /O2 /I..\lib\coff appack.c ..\lib\coff\aplib.lib + +``` + +`aPLib/example/make_wat.bat`: + +```bat +@ECHO OFF +ECHO --- Building aPLib Watcom C/C++ example --- +ECHO. + +wcl386 /oneax /oe /oh /5r /zc -zld /i=..\lib\omf appack.c /"library ..\lib\omf\aplib" + +``` + +`aPLib/example/makefile.cyg`: + +```cyg +## +## aPLib compression library - the smaller the better :) +## +## Cygwin GCC makefile +## +## Copyright (c) 1998-2014 Joergen Ibsen +## All Rights Reserved +## + +target = appack.exe +objects = appack.o + +cflags = -Wall -O2 -s -mno-cygwin +ldflags = $(cflags) +incdir = ../lib/coff +libs = $(incdir)/aplib.lib + +.PHONY: all clean + +all: $(target) + +$(target): $(objects) + gcc $(ldflags) -o $@ $^ $(libs) + +%.o : %.c + gcc -c -I$(incdir) $(cflags) -o $@ $< + +clean: + $(RM) $(objects) $(target) + +``` + +`aPLib/example/makefile.elf`: + +```elf +## +## aPLib compression library - the smaller the better :) +## +## GCC makefile (Linux, FreeBSD, BeOS and QNX) +## +## Copyright (c) 1998-2014 Joergen Ibsen +## All Rights Reserved +## + +target = appack +objects = appack.o + +cflags = -Wall -O2 -s +ldflags = $(cflags) +incdir = ../lib/elf +libs = $(incdir)/aplib.a + +.PHONY: all clean + +all: $(target) + +$(target): $(objects) + gcc $(ldflags) -o $@ $^ $(libs) + +%.o : %.c + gcc -c -I$(incdir) $(cflags) -o $@ $< + +clean: + $(RM) $(objects) $(target) + +``` + +`aPLib/example/makefile.mgw`: + +```mgw +## +## aPLib compression library - the smaller the better :) +## +## MinGW GCC makefile +## +## Copyright (c) 1998-2014 Joergen Ibsen +## All Rights Reserved +## + +target = appack.exe +objects = appack.o + +cflags = -Wall -O2 -s +ldflags = $(cflags) +incdir = ../lib/coff +libs = $(incdir)/aplib.lib + +.PHONY: all clean + +all: $(target) + +$(target): $(objects) + gcc $(ldflags) -o $@ $^ $(libs) + +%.o : %.c + gcc -c -I$(incdir) $(cflags) -o $@ $< + +clean: + $(RM) $(objects) $(target) + +``` + +`aPLib/lib/coff/aplib.h`: + +```h +/* + * aPLib compression library - the smaller the better :) + * + * COFF format header file + * + * Copyright (c) 1998-2014 Joergen Ibsen + * All Rights Reserved + * + * http://www.ibsensoftware.com/ + */ + +#ifndef APLIB_H_INCLUDED +#define APLIB_H_INCLUDED + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef APLIB_ERROR +# define APLIB_ERROR ((unsigned int) (-1)) +#endif + +unsigned int __cdecl aP_pack(const void *source, + void *destination, + unsigned int length, + void *workmem, + int (__cdecl *callback)(unsigned int, unsigned int, unsigned int, void *), + void *cbparam); + +unsigned int __cdecl aP_workmem_size(unsigned int inputsize); + +unsigned int __cdecl aP_max_packed_size(unsigned int inputsize); + +unsigned int __cdecl aP_depack_asm(const void *source, void *destination); + +unsigned int __cdecl aP_depack_asm_fast(const void *source, void *destination); + +unsigned int __cdecl aP_depack_asm_safe(const void *source, + unsigned int srclen, + void *destination, + unsigned int dstlen); + +unsigned int __cdecl aP_crc32(const void *source, unsigned int length); + +unsigned int __cdecl aPsafe_pack(const void *source, + void *destination, + unsigned int length, + void *workmem, + int (__cdecl *callback)(unsigned int, unsigned int, unsigned int, void *), + void *cbparam); + +unsigned int __cdecl aPsafe_check(const void *source); + +unsigned int __cdecl aPsafe_get_orig_size(const void *source); + +unsigned int __cdecl aPsafe_depack(const void *source, + unsigned int srclen, + void *destination, + unsigned int dstlen); + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /* APLIB_H_INCLUDED */ + +``` + +`aPLib/lib/coff64/aplib.h`: + +```h +/* + * aPLib compression library - the smaller the better :) + * + * COFF 64-bit format header file + * + * Copyright (c) 1998-2014 Joergen Ibsen + * All Rights Reserved + * + * http://www.ibsensoftware.com/ + */ + +#ifndef APLIB_H_INCLUDED +#define APLIB_H_INCLUDED + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef APLIB_ERROR +# define APLIB_ERROR ((unsigned int) (-1)) +#endif + +unsigned int aP_pack(const void *source, + void *destination, + unsigned int length, + void *workmem, + int (*callback)(unsigned int, unsigned int, unsigned int, void *), + void *cbparam); + +unsigned int aP_workmem_size(unsigned int inputsize); + +unsigned int aP_max_packed_size(unsigned int inputsize); + +unsigned int aP_depack_asm(const void *source, void *destination); + +unsigned int aP_depack_asm_fast(const void *source, void *destination); + +unsigned int aP_depack_asm_safe(const void *source, + unsigned int srclen, + void *destination, + unsigned int dstlen); + +unsigned int aP_crc32(const void *source, unsigned int length); + +unsigned int aPsafe_pack(const void *source, + void *destination, + unsigned int length, + void *workmem, + int (*callback)(unsigned int, unsigned int, unsigned int, void *), + void *cbparam); + +unsigned int aPsafe_check(const void *source); + +unsigned int aPsafe_get_orig_size(const void *source); + +unsigned int aPsafe_depack(const void *source, + unsigned int srclen, + void *destination, + unsigned int dstlen); + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /* APLIB_H_INCLUDED */ + +``` + +`aPLib/lib/dll/aplib.h`: + +```h +/* + * aPLib compression library - the smaller the better :) + * + * DLL header file + * + * Copyright (c) 1998-2014 Joergen Ibsen + * All Rights Reserved + * + * http://www.ibsensoftware.com/ + */ + +#ifndef APLIB_H_INCLUDED +#define APLIB_H_INCLUDED + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef APLIB_ERROR +# define APLIB_ERROR ((unsigned int) (-1)) +#endif + +__declspec(dllimport) unsigned int __stdcall aP_pack(const void *source, + void *destination, + unsigned int length, + void *workmem, + int (__stdcall *callback)(unsigned int, unsigned int, unsigned int, void *), + void *cbparam); + +__declspec(dllimport) unsigned int __stdcall aP_workmem_size(unsigned int inputsize); + +__declspec(dllimport) unsigned int __stdcall aP_max_packed_size(unsigned int inputsize); + +__declspec(dllimport) unsigned int __stdcall aP_depack_asm(const void *source, void *destination); + +__declspec(dllimport) unsigned int __stdcall aP_depack_asm_fast(const void *source, void *destination); + +__declspec(dllimport) unsigned int __stdcall aP_depack_asm_safe(const void *source, + unsigned int srclen, + void *destination, + unsigned int dstlen); + +__declspec(dllimport) unsigned int __stdcall aP_crc32(const void *source, unsigned int length); + +__declspec(dllimport) unsigned int __stdcall aPsafe_pack(const void *source, + void *destination, + unsigned int length, + void *workmem, + int (__stdcall *callback)(unsigned int, unsigned int, unsigned int, void *), + void *cbparam); + +__declspec(dllimport) unsigned int __stdcall aPsafe_check(const void *source); + +__declspec(dllimport) unsigned int __stdcall aPsafe_get_orig_size(const void *source); + +__declspec(dllimport) unsigned int __stdcall aPsafe_depack(const void *source, + unsigned int srclen, + void *destination, + unsigned int dstlen); + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /* APLIB_H_INCLUDED */ + +``` + +`aPLib/lib/dll64/aplib.h`: + +```h +/* + * aPLib compression library - the smaller the better :) + * + * DLL 64-bit header file + * + * Copyright (c) 1998-2014 Joergen Ibsen + * All Rights Reserved + * + * http://www.ibsensoftware.com/ + */ + +#ifndef APLIB_H_INCLUDED +#define APLIB_H_INCLUDED + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef APLIB_ERROR +# define APLIB_ERROR ((unsigned int) (-1)) +#endif + +__declspec(dllimport) unsigned int aP_pack(const void *source, + void *destination, + unsigned int length, + void *workmem, + int (*callback)(unsigned int, unsigned int, unsigned int, void *), + void *cbparam); + +__declspec(dllimport) unsigned int aP_workmem_size(unsigned int inputsize); + +__declspec(dllimport) unsigned int aP_max_packed_size(unsigned int inputsize); + +__declspec(dllimport) unsigned int aP_depack_asm(const void *source, void *destination); + +__declspec(dllimport) unsigned int aP_depack_asm_fast(const void *source, void *destination); + +__declspec(dllimport) unsigned int aP_depack_asm_safe(const void *source, + unsigned int srclen, + void *destination, + unsigned int dstlen); + +__declspec(dllimport) unsigned int aP_crc32(const void *source, unsigned int length); + +__declspec(dllimport) unsigned int aPsafe_pack(const void *source, + void *destination, + unsigned int length, + void *workmem, + int (*callback)(unsigned int, unsigned int, unsigned int, void *), + void *cbparam); + +__declspec(dllimport) unsigned int aPsafe_check(const void *source); + +__declspec(dllimport) unsigned int aPsafe_get_orig_size(const void *source); + +__declspec(dllimport) unsigned int aPsafe_depack(const void *source, + unsigned int srclen, + void *destination, + unsigned int dstlen); + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /* APLIB_H_INCLUDED */ + +``` + +`aPLib/lib/elf/aplib.h`: + +```h +/* + * aPLib compression library - the smaller the better :) + * + * ELF format header file + * + * Copyright (c) 1998-2014 Joergen Ibsen + * All Rights Reserved + * + * http://www.ibsensoftware.com/ + */ + +#ifndef APLIB_H_INCLUDED +#define APLIB_H_INCLUDED + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef APLIB_ERROR +# define APLIB_ERROR ((unsigned int) (-1)) +#endif + +unsigned int aP_pack(const void *source, + void *destination, + unsigned int length, + void *workmem, + int (*callback)(unsigned int, unsigned int, unsigned int, void *), + void *cbparam); + +unsigned int aP_workmem_size(unsigned int inputsize); + +unsigned int aP_max_packed_size(unsigned int inputsize); + +unsigned int aP_depack_asm(const void *source, void *destination); + +unsigned int aP_depack_asm_fast(const void *source, void *destination); + +unsigned int aP_depack_asm_safe(const void *source, + unsigned int srclen, + void *destination, + unsigned int dstlen); + +unsigned int aP_crc32(const void *source, unsigned int length); + +unsigned int aPsafe_pack(const void *source, + void *destination, + unsigned int length, + void *workmem, + int (*callback)(unsigned int, unsigned int, unsigned int, void *), + void *cbparam); + +unsigned int aPsafe_check(const void *source); + +unsigned int aPsafe_get_orig_size(const void *source); + +unsigned int aPsafe_depack(const void *source, + unsigned int srclen, + void *destination, + unsigned int dstlen); + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /* APLIB_H_INCLUDED */ + +``` + +`aPLib/lib/elf64/aplib.h`: + +```h +/* + * aPLib compression library - the smaller the better :) + * + * ELF 64-bit format header file + * + * Copyright (c) 1998-2014 Joergen Ibsen + * All Rights Reserved + * + * http://www.ibsensoftware.com/ + */ + +#ifndef APLIB_H_INCLUDED +#define APLIB_H_INCLUDED + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef APLIB_ERROR +# define APLIB_ERROR ((unsigned int) (-1)) +#endif + +unsigned int aP_pack(const void *source, + void *destination, + unsigned int length, + void *workmem, + int (*callback)(unsigned int, unsigned int, unsigned int, void *), + void *cbparam); + +unsigned int aP_workmem_size(unsigned int inputsize); + +unsigned int aP_max_packed_size(unsigned int inputsize); + +unsigned int aP_depack_asm(const void *source, void *destination); + +unsigned int aP_depack_asm_fast(const void *source, void *destination); + +unsigned int aP_depack_asm_safe(const void *source, + unsigned int srclen, + void *destination, + unsigned int dstlen); + +unsigned int aP_crc32(const void *source, unsigned int length); + +unsigned int aPsafe_pack(const void *source, + void *destination, + unsigned int length, + void *workmem, + int (*callback)(unsigned int, unsigned int, unsigned int, void *), + void *cbparam); + +unsigned int aPsafe_check(const void *source); + +unsigned int aPsafe_get_orig_size(const void *source); + +unsigned int aPsafe_depack(const void *source, + unsigned int srclen, + void *destination, + unsigned int dstlen); + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /* APLIB_H_INCLUDED */ + +``` + +`aPLib/lib/omf/aplib.h`: + +```h +/* + * aPLib compression library - the smaller the better :) + * + * OMF format header file + * + * Copyright (c) 1998-2014 Joergen Ibsen + * All Rights Reserved + * + * http://www.ibsensoftware.com/ + */ + +#ifndef APLIB_H_INCLUDED +#define APLIB_H_INCLUDED + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef APLIB_ERROR +# define APLIB_ERROR ((unsigned int) (-1)) +#endif + +unsigned int __cdecl aP_pack(const void *source, + void *destination, + unsigned int length, + void *workmem, + int (__cdecl *callback)(unsigned int, unsigned int, unsigned int, void *), + void *cbparam); + +unsigned int __cdecl aP_workmem_size(unsigned int inputsize); + +unsigned int __cdecl aP_max_packed_size(unsigned int inputsize); + +unsigned int __cdecl aP_depack_asm(const void *source, void *destination); + +unsigned int __cdecl aP_depack_asm_fast(const void *source, void *destination); + +unsigned int __cdecl aP_depack_asm_safe(const void *source, + unsigned int srclen, + void *destination, + unsigned int dstlen); + +unsigned int __cdecl aP_crc32(const void *source, unsigned int length); + +unsigned int __cdecl aPsafe_pack(const void *source, + void *destination, + unsigned int length, + void *workmem, + int (__cdecl *callback)(unsigned int, unsigned int, unsigned int, void *), + void *cbparam); + +unsigned int __cdecl aPsafe_check(const void *source); + +unsigned int __cdecl aPsafe_get_orig_size(const void *source); + +unsigned int __cdecl aPsafe_depack(const void *source, + unsigned int srclen, + void *destination, + unsigned int dstlen); + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /* APLIB_H_INCLUDED */ + +``` + +`aPLib/readme.txt`: + +```txt + + + ______ ______ ____ ______ ____ + _\__ /_ _\ /_ _\ /___ _\____/ _\ /___ + / // / // / // /___ / / + / / // / // / // / // / / + /_ / //_ ___//_ / //_ / //_ / / + /______\ /___\ /______\ /______\ /______\ + -= t h e s m a l l e r t h e b e t t e r =- + + Copyright (c) 1998-2014 Joergen Ibsen, All Rights Reserved + + http://www.ibsensoftware.com/ + + + +About +----- + +aPLib is a compression library based on the algorithm used in aPACK (my +16-bit executable packer). aPLib is an easy-to-use alternative to many of the +heavy-weight compression libraries available. + +The compression ratios achieved by aPLib combined with the speed and tiny +footprint of the depackers (as low as 169 bytes!) makes it the ideal choice +for many products. + +Please read the documentation file 'doc/aPLib.chm' or +'doc/html/index.html'. + + + +License +------- + +aPLib is freeware. If you use aPLib in a product, an acknowledgement would be +appreciated, e.g. by adding something like the following to the documentation: + + This product uses the aPLib compression library, + Copyright (c) 1998-2014 Joergen Ibsen, All Rights Reserved. + For more information, please visit: http://www.ibsensoftware.com/ + +You may not redistribute aPLib without all of the files. + +You may not edit or reverse engineer any of the files (except the header files +and the decompression code, which you may edit as long as you do not remove +the copyright notice). + +You may not sell aPLib, or any part of it, for money (except for charging for +the media). + + #ifndef COMMON_SENSE + + This software is provided "as is". In no event shall I, the author, be + liable for any kind of loss or damage arising out of the use, abuse or + the inability to use this software. USE IT ENTIRELY AT YOUR OWN RISK! + + This software comes without any kind of warranty, either expressed or + implied, including, but not limited to the implied warranties of + merchantability or fitness for any particular purpose. + + If you do not agree with these terms or if your jurisdiction does not + allow the exclusion of warranty and liability as stated above you are + NOT allowed to use this software at all. + + #else + + Bla bla bla .. the usual stuff - you know it anyway: + + If anything goes even remotely wrong - blame _yourself_, NOT me! + + #endif + +``` + +`aPLib/src/32bit/crc32.asm`: + +```asm +;; +;; aPLib compression library - the smaller the better :) +;; +;; fasm assembler crc32 +;; +;; Copyright (c) 1998-2014 Joergen Ibsen +;; All Rights Reserved +;; +;; http://www.ibsensoftware.com/ +;; + +; CRC32 calculation taken from the zlib source, which is +; Copyright (C) 1995-1998 Jean-loup Gailly and Mark Adler + +format MS COFF + +public aP_crc32 as '_aP_crc32' + +; ============================================================= + +macro docrcM +{ + mov ebx, 0x000000ff + and ebx, eax + shr eax, 8 + xor eax, [edi+ebx*4] +} + +macro docrcbyteM +{ + xor al, [esi] + inc esi + docrcM +} + +macro docrcdwordM +{ + xor eax, [esi] + add esi, 4 + docrcM + docrcM + docrcM + docrcM +} + +; ============================================================= + +section '.text' code readable executable + +aP_crc32: + ; aP_crc32(const void *source, unsigned int length) + + .ret$ equ 7*4 + .src$ equ 8*4 + 4 + .len$ equ 8*4 + 8 + + pushad + + mov esi, [esp + .src$] ; esi -> buffer + mov ecx, [esp + .len$] ; ecx = length + mov edi, aP_crctab ; edi -> crctab + + sub eax, eax + + test esi, esi + jz .c_exit + + sub eax, 1 + + test ecx, ecx + jz .c_done + + .c_align_loop: + test esi, 3 + jz .c_aligned_now + docrcbyteM + dec ecx + jnz .c_align_loop + + .c_aligned_now: + mov edx, ecx + and edx, 7 + shr ecx, 3 + jz .c_LT_eight + + .c_next_eight: + docrcdwordM + docrcdwordM + dec ecx + jnz .c_next_eight + + .c_LT_eight: + mov ecx, edx + test ecx, ecx + jz .c_done + + .c_last_loop: + docrcbyteM + dec ecx + jnz .c_last_loop + + .c_done: + not eax + + .c_exit: + mov [esp + .ret$], eax ; return crc32 in eax + + popad + + ret + +; ============================================================= + +section '.rdata' data readable + +aP_crctab dd 000000000h, 077073096h, 0ee0e612ch, 0990951bah, 0076dc419h + dd 0706af48fh, 0e963a535h, 09e6495a3h, 00edb8832h, 079dcb8a4h + dd 0e0d5e91eh, 097d2d988h, 009b64c2bh, 07eb17cbdh, 0e7b82d07h + dd 090bf1d91h, 01db71064h, 06ab020f2h, 0f3b97148h, 084be41deh + dd 01adad47dh, 06ddde4ebh, 0f4d4b551h, 083d385c7h, 0136c9856h + dd 0646ba8c0h, 0fd62f97ah, 08a65c9ech, 014015c4fh, 063066cd9h + dd 0fa0f3d63h, 08d080df5h, 03b6e20c8h, 04c69105eh, 0d56041e4h + dd 0a2677172h, 03c03e4d1h, 04b04d447h, 0d20d85fdh, 0a50ab56bh + dd 035b5a8fah, 042b2986ch, 0dbbbc9d6h, 0acbcf940h, 032d86ce3h + dd 045df5c75h, 0dcd60dcfh, 0abd13d59h, 026d930ach, 051de003ah + dd 0c8d75180h, 0bfd06116h, 021b4f4b5h, 056b3c423h, 0cfba9599h + dd 0b8bda50fh, 02802b89eh, 05f058808h, 0c60cd9b2h, 0b10be924h + dd 02f6f7c87h, 058684c11h, 0c1611dabh, 0b6662d3dh, 076dc4190h + dd 001db7106h, 098d220bch, 0efd5102ah, 071b18589h, 006b6b51fh + dd 09fbfe4a5h, 0e8b8d433h, 07807c9a2h, 00f00f934h, 09609a88eh + dd 0e10e9818h, 07f6a0dbbh, 0086d3d2dh, 091646c97h, 0e6635c01h + dd 06b6b51f4h, 01c6c6162h, 0856530d8h, 0f262004eh, 06c0695edh + dd 01b01a57bh, 08208f4c1h, 0f50fc457h, 065b0d9c6h, 012b7e950h + dd 08bbeb8eah, 0fcb9887ch, 062dd1ddfh, 015da2d49h, 08cd37cf3h + dd 0fbd44c65h, 04db26158h, 03ab551ceh, 0a3bc0074h, 0d4bb30e2h + dd 04adfa541h, 03dd895d7h, 0a4d1c46dh, 0d3d6f4fbh, 04369e96ah + dd 0346ed9fch, 0ad678846h, 0da60b8d0h, 044042d73h, 033031de5h + dd 0aa0a4c5fh, 0dd0d7cc9h, 05005713ch, 0270241aah, 0be0b1010h + dd 0c90c2086h, 05768b525h, 0206f85b3h, 0b966d409h, 0ce61e49fh + dd 05edef90eh, 029d9c998h, 0b0d09822h, 0c7d7a8b4h, 059b33d17h + dd 02eb40d81h, 0b7bd5c3bh, 0c0ba6cadh, 0edb88320h, 09abfb3b6h + dd 003b6e20ch, 074b1d29ah, 0ead54739h, 09dd277afh, 004db2615h + dd 073dc1683h, 0e3630b12h, 094643b84h, 00d6d6a3eh, 07a6a5aa8h + dd 0e40ecf0bh, 09309ff9dh, 00a00ae27h, 07d079eb1h, 0f00f9344h + dd 08708a3d2h, 01e01f268h, 06906c2feh, 0f762575dh, 0806567cbh + dd 0196c3671h, 06e6b06e7h, 0fed41b76h, 089d32be0h, 010da7a5ah + dd 067dd4acch, 0f9b9df6fh, 08ebeeff9h, 017b7be43h, 060b08ed5h + dd 0d6d6a3e8h, 0a1d1937eh, 038d8c2c4h, 04fdff252h, 0d1bb67f1h + dd 0a6bc5767h, 03fb506ddh, 048b2364bh, 0d80d2bdah, 0af0a1b4ch + dd 036034af6h, 041047a60h, 0df60efc3h, 0a867df55h, 0316e8eefh + dd 04669be79h, 0cb61b38ch, 0bc66831ah, 0256fd2a0h, 05268e236h + dd 0cc0c7795h, 0bb0b4703h, 0220216b9h, 05505262fh, 0c5ba3bbeh + dd 0b2bd0b28h, 02bb45a92h, 05cb36a04h, 0c2d7ffa7h, 0b5d0cf31h + dd 02cd99e8bh, 05bdeae1dh, 09b64c2b0h, 0ec63f226h, 0756aa39ch + dd 0026d930ah, 09c0906a9h, 0eb0e363fh, 072076785h, 005005713h + dd 095bf4a82h, 0e2b87a14h, 07bb12baeh, 00cb61b38h, 092d28e9bh + dd 0e5d5be0dh, 07cdcefb7h, 00bdbdf21h, 086d3d2d4h, 0f1d4e242h + dd 068ddb3f8h, 01fda836eh, 081be16cdh, 0f6b9265bh, 06fb077e1h + dd 018b74777h, 088085ae6h, 0ff0f6a70h, 066063bcah, 011010b5ch + dd 08f659effh, 0f862ae69h, 0616bffd3h, 0166ccf45h, 0a00ae278h + dd 0d70dd2eeh, 04e048354h, 03903b3c2h, 0a7672661h, 0d06016f7h + dd 04969474dh, 03e6e77dbh, 0aed16a4ah, 0d9d65adch, 040df0b66h + dd 037d83bf0h, 0a9bcae53h, 0debb9ec5h, 047b2cf7fh, 030b5ffe9h + dd 0bdbdf21ch, 0cabac28ah, 053b39330h, 024b4a3a6h, 0bad03605h + dd 0cdd70693h, 054de5729h, 023d967bfh, 0b3667a2eh, 0c4614ab8h + dd 05d681b02h, 02a6f2b94h, 0b40bbe37h, 0c30c8ea1h, 05a05df1bh + dd 02d02ef8dh + +; ============================================================= + +``` + +`aPLib/src/32bit/depack.asm`: + +```asm +;; +;; aPLib compression library - the smaller the better :) +;; +;; fasm assembler depacker +;; +;; Copyright (c) 1998-2014 Joergen Ibsen +;; All Rights Reserved +;; +;; http://www.ibsensoftware.com/ +;; + +format MS COFF + +public aP_depack_asm as '_aP_depack_asm' + +; ============================================================= + +section '.text' code readable executable + +aP_depack_asm: + ; aP_depack_asm(const void *source, void *destination) + + _ret$ equ 7*4 + _src$ equ 8*4 + 4 + _dst$ equ 8*4 + 8 + + pushad + + mov esi, [esp + _src$] ; C calling convention + mov edi, [esp + _dst$] + + cld + mov dl, 80h + xor ebx,ebx + +literal: + movsb + mov bl, 2 +nexttag: + call getbit + jnc literal + + xor ecx, ecx + call getbit + jnc codepair + xor eax, eax + call getbit + jnc shortmatch + mov bl, 2 + inc ecx + mov al, 10h + .getmorebits: + call getbit + adc al, al + jnc .getmorebits + jnz domatch + stosb + jmp nexttag +codepair: + call getgamma_no_ecx + sub ecx, ebx + jnz normalcodepair + call getgamma + jmp domatch_lastpos + +shortmatch: + lodsb + shr eax, 1 + jz donedepacking + adc ecx, ecx + jmp domatch_with_2inc + +normalcodepair: + xchg eax, ecx + dec eax + shl eax, 8 + lodsb + call getgamma + + cmp eax, 32000 + jae domatch_with_2inc + cmp ah, 5 + jae domatch_with_inc + cmp eax, 7fh + ja domatch_new_lastpos + +domatch_with_2inc: + inc ecx + +domatch_with_inc: + inc ecx + +domatch_new_lastpos: + xchg eax, ebp +domatch_lastpos: + mov eax, ebp + + mov bl, 1 + +domatch: + push esi + mov esi, edi + sub esi, eax + rep movsb + pop esi + jmp nexttag + +getbit: + add dl, dl + jnz .stillbitsleft + mov dl, [esi] + inc esi + adc dl, dl + .stillbitsleft: + ret + +getgamma: + xor ecx, ecx +getgamma_no_ecx: + inc ecx + .getgammaloop: + call getbit + adc ecx, ecx + call getbit + jc .getgammaloop + ret + +donedepacking: + sub edi, [esp + _dst$] + mov [esp + _ret$], edi ; return unpacked length in eax + + popad + + ret + +; ============================================================= + +``` + +`aPLib/src/32bit/depackf.asm`: + +```asm +;; +;; aPLib compression library - the smaller the better :) +;; +;; fasm fast assembler depacker +;; +;; Copyright (c) 1998-2014 Joergen Ibsen +;; All Rights Reserved +;; +;; http://www.ibsensoftware.com/ +;; + +format MS COFF + +public aP_depack_asm_fast as '_aP_depack_asm_fast' + +; ============================================================= + +macro getbitM +{ + local .stillbitsleft + add dl, dl + jnz .stillbitsleft + mov dl, [esi] + inc esi + adc dl, dl + .stillbitsleft: +} + +macro domatchM reg +{ + push esi + mov esi, edi + sub esi, reg + rep movsb + pop esi +} + +macro getgammaM reg +{ + local .getmore + + mov reg, 1 + .getmore: + getbitM + adc reg, reg + getbitM + jc .getmore +} + +; ============================================================= + +section '.text' code readable executable + +aP_depack_asm_fast: + ; aP_depack_asm_fast(const void *source, void *destination) + + _ret$ equ 7*4 + _src$ equ 8*4 + 4 + _dst$ equ 8*4 + 8 + + pushad + + mov esi, [esp + _src$] ; C calling convention + mov edi, [esp + _dst$] + + cld + mov dl, 80h + +literal: + mov al, [esi] + add esi, 1 + mov [edi], al + add edi, 1 + + mov ebx, 2 + +nexttag: + getbitM + jnc literal + + getbitM + jnc codepair + + xor eax, eax + getbitM + jnc shortmatch + + getbitM + adc eax, eax + getbitM + adc eax, eax + getbitM + adc eax, eax + getbitM + adc eax, eax + jz .thewrite + + mov ebx, edi + sub ebx, eax + mov al, [ebx] + + .thewrite: + mov [edi], al + inc edi + + mov ebx, 2 + jmp nexttag + +codepair: + getgammaM eax + sub eax, ebx + mov ebx, 1 + jnz normalcodepair + + getgammaM ecx + domatchM ebp + + jmp nexttag + +normalcodepair: + dec eax + + shl eax, 8 + mov al, [esi] + inc esi + + mov ebp, eax + + getgammaM ecx + + cmp eax, 32000 + sbb ecx, -1 + + cmp eax, 1280 + sbb ecx, -1 + + cmp eax, 128 + adc ecx, 0 + + cmp eax, 128 + adc ecx, 0 + + domatchM eax + jmp nexttag + +shortmatch: + mov al, [esi] + inc esi + + xor ecx, ecx + db 0c0h, 0e8h, 001h + jz donedepacking + + adc ecx, 2 + + mov ebp, eax + + domatchM eax + + mov ebx, 1 + jmp nexttag + +donedepacking: + sub edi, [esp + _dst$] + mov [esp + _ret$], edi ; return unpacked length in eax + + popad + + ret + +; ============================================================= + +``` + +`aPLib/src/32bit/depacks.asm`: + +```asm +;; +;; aPLib compression library - the smaller the better :) +;; +;; fasm safe assembler depacker +;; +;; Copyright (c) 1998-2014 Joergen Ibsen +;; All Rights Reserved +;; +;; http://www.ibsensoftware.com/ +;; + +format MS COFF + +public aP_depack_asm_safe as '_aP_depack_asm_safe' + +; ============================================================= + +macro getbitM +{ + local .stillbitsleft + add dl, dl + jnz .stillbitsleft + + sub dword [esp + 4], 1 ; read one byte from source + jc return_error ; + + mov dl, [esi] + inc esi + + add dl, dl + inc dl + .stillbitsleft: +} + +macro domatchM reg +{ + push ecx + mov ecx, [esp + 12 + _dlen$] ; ecx = dstlen + sub ecx, [esp + 4] ; ecx = num written + cmp reg, ecx + pop ecx + ja return_error + + sub [esp], ecx ; write ecx bytes to destination + jc return_error ; + + push esi + mov esi, edi + sub esi, reg + rep movsb + pop esi +} + +macro getgammaM reg +{ + local .getmore + mov reg, 1 + .getmore: + getbitM + adc reg, reg + jc return_error + getbitM + jc .getmore +} + +; ============================================================= + +section '.text' code readable executable + +aP_depack_asm_safe: + ; aP_depack_asm_safe(const void *source, + ; unsigned int srclen, + ; void *destination, + ; unsigned int dstlen) + + _ret$ equ 7*4 + _src$ equ 8*4 + 4 + _slen$ equ 8*4 + 8 + _dst$ equ 8*4 + 12 + _dlen$ equ 8*4 + 16 + + pushad + + mov esi, [esp + _src$] ; C calling convention + mov eax, [esp + _slen$] + mov edi, [esp + _dst$] + mov ecx, [esp + _dlen$] + + push eax + push ecx + + test esi, esi + jz return_error + + test edi, edi + jz return_error + + or ebp, -1 + + cld + xor edx, edx + +literal: + sub dword [esp + 4], 1 ; read one byte from source + jc return_error ; + + mov al, [esi] + add esi, 1 + + sub dword [esp], 1 ; write one byte to destination + jc return_error ; + + mov [edi], al + add edi, 1 + + mov ebx, 2 + +nexttag: + getbitM + jnc literal + + getbitM + jnc codepair + + xor eax, eax + + getbitM + jnc shortmatch + + getbitM + adc eax, eax + getbitM + adc eax, eax + getbitM + adc eax, eax + getbitM + adc eax, eax + jz .thewrite + + mov ebx, [esp + 8 + _dlen$] ; ebx = dstlen + sub ebx, [esp] ; ebx = num written + cmp eax, ebx + ja return_error + + mov ebx, edi + sub ebx, eax + mov al, [ebx] + + .thewrite: + sub dword [esp], 1 ; write one byte to destination + jc return_error ; + + mov [edi], al + inc edi + + mov ebx, 2 + + jmp nexttag + +codepair: + getgammaM eax + + sub eax, ebx + + mov ebx, 1 + + jnz normalcodepair + + getgammaM ecx + + domatchM ebp + + jmp nexttag + +normalcodepair: + dec eax + + test eax, 0xff000000 + jnz return_error + + shl eax, 8 + + sub dword [esp + 4], 1 ; read one byte from source + jc return_error ; + + mov al, [esi] + inc esi + + mov ebp, eax + + getgammaM ecx + + cmp eax, 32000 + sbb ecx, -1 + + cmp eax, 1280 + sbb ecx, -1 + + cmp eax, 128 + adc ecx, 0 + + cmp eax, 128 + adc ecx, 0 + + domatchM eax + jmp nexttag + +shortmatch: + sub dword [esp + 4], 1 ; read one byte from source + jc return_error ; + + mov al, [esi] + inc esi + + xor ecx, ecx + db 0c0h, 0e8h, 001h + jz donedepacking + + adc ecx, 2 + + mov ebp, eax + + domatchM eax + + mov ebx, 1 + + jmp nexttag + +return_error: + add esp, 8 + + popad + + or eax, -1 ; return APLIB_ERROR in eax + + ret + +donedepacking: + add esp, 8 + + sub edi, [esp + _dst$] + mov [esp + _ret$], edi ; return unpacked length in eax + + popad + + ret + +; ============================================================= + +``` + +`aPLib/src/32bit/scheck.asm`: + +```asm +;; +;; aPLib compression library - the smaller the better :) +;; +;; fasm safe assembler crc checker +;; +;; Copyright (c) 1998-2014 Joergen Ibsen +;; All Rights Reserved +;; +;; http://www.ibsensoftware.com/ +;; + +format MS COFF + +public aPsafe_check as '_aPsafe_check' + +extrn '_aP_crc32' as aP_crc32 + +; ============================================================= + +section '.text' code readable executable + +aPsafe_check: + ; aPsafe_check(const void *source) + + .ret$ equ 7*4 + .src$ equ 8*4 + 4 + + pushad + + mov esi, [esp + .src$] ; esi -> buffer + + test esi, esi + jz .return_error + + mov ebx, [esi] ; ebx = header.tag + + cmp ebx, 032335041h ; check tag == 'AP32' + jne .return_error + + mov ebx, [esi + 4] ; ebx = header.header_size + cmp ebx, 24 ; check header_size >= 24 + jb .return_error + + add ebx, esi ; ebx -> packed data + + push dword [esi + 8] ; push header.packed_size + push ebx + call aP_crc32 + add esp, 8 + + cmp eax, [esi + 12] ; check eax == header.packed_crc + + mov eax, [esi + 16] ; eax = header.orig_size + + je .return_eax + + .return_error: + or eax, -1 ; eax = -1 + + .return_eax: + mov [esp + .ret$], eax ; return unpacked length in eax + + popad + + ret + +; ============================================================= + +``` + +`aPLib/src/32bit/sdepack.asm`: + +```asm +;; +;; aPLib compression library - the smaller the better :) +;; +;; fasm safe assembler wrapper for aP_depack_asm_safe +;; +;; Copyright (c) 1998-2014 Joergen Ibsen +;; All Rights Reserved +;; +;; http://www.ibsensoftware.com/ +;; + +format MS COFF + +public aPsafe_depack as '_aPsafe_depack' + +extrn '_aP_depack_asm_safe' as aP_depack_asm_safe +extrn '_aP_crc32' as aP_crc32 + +; ============================================================= + +section '.text' code readable executable + +aPsafe_depack: + ; aPsafe_depack(const void *source, + ; size_t srclen, + ; void *destination + ; size_t dstlen) + + .ret$ equ 7*4 + .src$ equ 8*4 + 4 + .slen$ equ 8*4 + 8 + .dst$ equ 8*4 + 12 + .dlen$ equ 8*4 + 16 + + pushad + + mov esi, [esp + .src$] ; esi -> inbuffer + mov ecx, [esp + .slen$] ; ecx = srclen + mov edi, [esp + .dst$] ; edi -> outbuffer + + test esi, esi + jz .return_error + + test edi, edi + jz .return_error + + cmp ecx, 24 ; check srclen >= 24 + jb .return_error + + mov ebx, [esi] ; ebx = header.tag + + cmp ebx, 032335041h ; check tag == 'AP32' + jne .return_error + + mov ebx, [esi + 4] ; ebx = header.header_size + cmp ebx, 24 ; check header_size >= 24 + jb .return_error + + sub ecx, ebx ; ecx = srclen without header + jc .return_error + + cmp [esi + 8], ecx ; check header.packed_size is + ja .return_error ; within remaining srclen + + add ebx, esi ; ebx -> packed data + + push dword [esi + 8] ; push header.packed_size + push ebx + call aP_crc32 + add esp, 8 + + cmp eax, [esi + 12] ; check eax == header.packed_crc + jne .return_error + + mov ecx, [esp + .dlen$] ; ecx = dstlen + cmp [esi + 16], ecx ; check header.orig_size is ok + ja .return_error + + push ecx ; push dstlen + push edi + push dword [esi + 8] ; push header.packed_size + push ebx + call aP_depack_asm_safe + add esp, 16 + + cmp eax, [esi + 16] ; check eax == header.orig_size + jne .return_error + + mov ebx, eax ; ebx = unpacked size + + push eax + push edi + call aP_crc32 + add esp, 8 + + cmp eax, [esi + 20] ; check eax == header.orig_crc + + mov eax, ebx ; eax = unpacked size + + je .return_eax + + .return_error: + or eax, -1 ; eax = -1 + + .return_eax: + mov [esp + .ret$], eax ; return unpacked length in eax + + popad + + ret + +; ============================================================= + +``` + +`aPLib/src/32bit/sgetsize.asm`: + +```asm +;; +;; aPLib compression library - the smaller the better :) +;; +;; fasm safe assembler header access +;; +;; Copyright (c) 1998-2014 Joergen Ibsen +;; All Rights Reserved +;; +;; http://www.ibsensoftware.com/ +;; + +format MS COFF + +public aPsafe_get_orig_size as '_aPsafe_get_orig_size' + +; ============================================================= + +section '.text' code readable executable + +aPsafe_get_orig_size: + ; aPsafe_get_orig_size(const void *source) + + .ret$ equ 7*4 + .src$ equ 8*4 + 4 + + pushad + + mov esi, [esp + .src$] ; esi -> buffer + + mov ebx, [esi] ; ebx = header.tag + + or eax, -1 ; eax = -1 + + cmp ebx, 032335041h ; check tag == 'AP32' + jne .return_eax + + mov ebx, [esi + 4] ; ebx = header.header_size + cmp ebx, 24 ; check header_size >= 24 + jb .return_eax + + mov eax, [esi + 16] ; eax = header.orig_size + + .return_eax: + mov [esp + .ret$], eax ; return unpacked length in eax + + popad + + ret + +; ============================================================= + +``` + +`aPLib/src/32bit/spack.asm`: + +```asm +;; +;; aPLib compression library - the smaller the better :) +;; +;; fasm safe assembler wrapper for aP_pack +;; +;; Copyright (c) 1998-2014 Joergen Ibsen +;; All Rights Reserved +;; +;; http://www.ibsensoftware.com/ +;; + +; header format: +; +; offs size data +; -------------------------------------- +; 0 dword tag ('AP32') +; 4 dword header_size (24 bytes) +; 8 dword packed_size +; 12 dword packed_crc +; 16 dword orig_size +; 20 dword orig_crc + +format MS COFF + +public aPsafe_pack as '_aPsafe_pack' + +extrn '_aP_pack' as aP_pack +extrn '_aP_crc32' as aP_crc32 + +; ============================================================= + +section '.text' code readable executable + +aPsafe_pack: + ; aPsafe_pack(const void *source, + ; void *destination, + ; unsigned int length, + ; void *workmem, + ; int (*callback)(unsigned int, unsigned int, void *), + ; void *cbparam) + + .ret$ equ 7*4 + .src$ equ 8*4 + 4 + .dst$ equ 8*4 + 8 + .len$ equ 8*4 + 12 + .wmem$ equ 8*4 + 16 + .cb$ equ 8*4 + 20 + .cbp$ equ 8*4 + 24 + + pushad + + mov ebp, esp + + mov esi, [ebp + .src$] ; esi -> inbuffer + mov edi, [ebp + .dst$] ; edi -> outbuffer + mov ecx, [ebp + .len$] ; ecx = length + + or eax, -1 ; eax = -1 + + test esi, esi ; check parameters + jz .return_eax ; + test edi, edi ; + jz .return_eax ; + test ecx, ecx ; + jz .return_eax ; + + mov ebx, 032335041h + mov [edi], ebx ; set header.tag + mov ebx, 24 + mov [edi + 4], ebx ; set header.header_size + + add ebx, edi ; ebx -> destination for packed data + + mov [edi + 16], ecx ; set header.orig_size + + push ecx + push esi + call aP_crc32 + add esp, 8 + + mov [edi + 20], eax ; set header.orig_crc + + push dword [ebp + .cbp$] ; callback param + push dword [ebp + .cb$] ; callback + push dword [ebp + .wmem$] ; workmem + push ecx ; length + push ebx ; destination + push esi ; source + call aP_pack + add esp, 24 + + cmp eax, -1 + je .return_eax + + mov [edi + 8], eax ; set header.packed_size + + mov edx, eax ; edx = packed size + + push eax + push ebx + call aP_crc32 + add esp, 8 + + mov [edi + 12], eax ; set header.packed_crc + + lea eax, [edx + 24] ; eax = packed size + header size + + .return_eax: + mov [esp + .ret$], eax ; return unpacked length in eax + + popad + + ret + +; ============================================================= + +``` + +`aPLib/src/64bit/crc32.asm`: + +```asm +;; +;; aPLib compression library - the smaller the better :) +;; +;; fasm 64-bit assembler crc32 +;; +;; Copyright (c) 1998-2014 Joergen Ibsen +;; All Rights Reserved +;; +;; http://www.ibsensoftware.com/ +;; + +; CRC32 calculation taken from the zlib source, which is +; Copyright (C) 1995-1998 Jean-loup Gailly and Mark Adler + +format MS64 COFF + +public aP_crc32 + +; ============================================================= + +macro docrcM +{ + mov r9, 0x000000ff + and r9, rax + shr eax, 8 + xor eax, [r8+r9*4] +} + +macro docrcbyteM +{ + xor al, [rcx] + add rcx, 1 + docrcM +} + +macro docrcdwordM +{ + xor eax, [rcx] + add rcx, 4 + docrcM + docrcM + docrcM + docrcM +} + +; ============================================================= + +section '.text' code readable executable + +aP_crc32: + ; aP_crc32(const void *source, unsigned int length) + + lea r8, [aP_crctab] ; r8 -> crctab + + sub rax, rax + + test rcx, rcx + jz .c_exit + + dec rax + + test rdx, rdx + jz .c_done + + .c_align_loop: + test rcx, 3 + jz .c_aligned_now + docrcbyteM + add rdx, -1 + jnz .c_align_loop + + .c_aligned_now: + mov r10, rdx + and r10, 7 + shr rdx, 3 + jz .c_LT_eight + + .c_next_eight: + docrcdwordM + docrcdwordM + add rdx, -1 + jnz .c_next_eight + + .c_LT_eight: + mov rdx, r10 + test rdx, rdx + jz .c_done + + .c_last_loop: + docrcbyteM + add rdx, -1 + jnz .c_last_loop + + .c_done: + not eax + + .c_exit: + ret + +; ============================================================= + +section '.rdata' data readable + +aP_crctab dd 000000000h, 077073096h, 0ee0e612ch, 0990951bah, 0076dc419h + dd 0706af48fh, 0e963a535h, 09e6495a3h, 00edb8832h, 079dcb8a4h + dd 0e0d5e91eh, 097d2d988h, 009b64c2bh, 07eb17cbdh, 0e7b82d07h + dd 090bf1d91h, 01db71064h, 06ab020f2h, 0f3b97148h, 084be41deh + dd 01adad47dh, 06ddde4ebh, 0f4d4b551h, 083d385c7h, 0136c9856h + dd 0646ba8c0h, 0fd62f97ah, 08a65c9ech, 014015c4fh, 063066cd9h + dd 0fa0f3d63h, 08d080df5h, 03b6e20c8h, 04c69105eh, 0d56041e4h + dd 0a2677172h, 03c03e4d1h, 04b04d447h, 0d20d85fdh, 0a50ab56bh + dd 035b5a8fah, 042b2986ch, 0dbbbc9d6h, 0acbcf940h, 032d86ce3h + dd 045df5c75h, 0dcd60dcfh, 0abd13d59h, 026d930ach, 051de003ah + dd 0c8d75180h, 0bfd06116h, 021b4f4b5h, 056b3c423h, 0cfba9599h + dd 0b8bda50fh, 02802b89eh, 05f058808h, 0c60cd9b2h, 0b10be924h + dd 02f6f7c87h, 058684c11h, 0c1611dabh, 0b6662d3dh, 076dc4190h + dd 001db7106h, 098d220bch, 0efd5102ah, 071b18589h, 006b6b51fh + dd 09fbfe4a5h, 0e8b8d433h, 07807c9a2h, 00f00f934h, 09609a88eh + dd 0e10e9818h, 07f6a0dbbh, 0086d3d2dh, 091646c97h, 0e6635c01h + dd 06b6b51f4h, 01c6c6162h, 0856530d8h, 0f262004eh, 06c0695edh + dd 01b01a57bh, 08208f4c1h, 0f50fc457h, 065b0d9c6h, 012b7e950h + dd 08bbeb8eah, 0fcb9887ch, 062dd1ddfh, 015da2d49h, 08cd37cf3h + dd 0fbd44c65h, 04db26158h, 03ab551ceh, 0a3bc0074h, 0d4bb30e2h + dd 04adfa541h, 03dd895d7h, 0a4d1c46dh, 0d3d6f4fbh, 04369e96ah + dd 0346ed9fch, 0ad678846h, 0da60b8d0h, 044042d73h, 033031de5h + dd 0aa0a4c5fh, 0dd0d7cc9h, 05005713ch, 0270241aah, 0be0b1010h + dd 0c90c2086h, 05768b525h, 0206f85b3h, 0b966d409h, 0ce61e49fh + dd 05edef90eh, 029d9c998h, 0b0d09822h, 0c7d7a8b4h, 059b33d17h + dd 02eb40d81h, 0b7bd5c3bh, 0c0ba6cadh, 0edb88320h, 09abfb3b6h + dd 003b6e20ch, 074b1d29ah, 0ead54739h, 09dd277afh, 004db2615h + dd 073dc1683h, 0e3630b12h, 094643b84h, 00d6d6a3eh, 07a6a5aa8h + dd 0e40ecf0bh, 09309ff9dh, 00a00ae27h, 07d079eb1h, 0f00f9344h + dd 08708a3d2h, 01e01f268h, 06906c2feh, 0f762575dh, 0806567cbh + dd 0196c3671h, 06e6b06e7h, 0fed41b76h, 089d32be0h, 010da7a5ah + dd 067dd4acch, 0f9b9df6fh, 08ebeeff9h, 017b7be43h, 060b08ed5h + dd 0d6d6a3e8h, 0a1d1937eh, 038d8c2c4h, 04fdff252h, 0d1bb67f1h + dd 0a6bc5767h, 03fb506ddh, 048b2364bh, 0d80d2bdah, 0af0a1b4ch + dd 036034af6h, 041047a60h, 0df60efc3h, 0a867df55h, 0316e8eefh + dd 04669be79h, 0cb61b38ch, 0bc66831ah, 0256fd2a0h, 05268e236h + dd 0cc0c7795h, 0bb0b4703h, 0220216b9h, 05505262fh, 0c5ba3bbeh + dd 0b2bd0b28h, 02bb45a92h, 05cb36a04h, 0c2d7ffa7h, 0b5d0cf31h + dd 02cd99e8bh, 05bdeae1dh, 09b64c2b0h, 0ec63f226h, 0756aa39ch + dd 0026d930ah, 09c0906a9h, 0eb0e363fh, 072076785h, 005005713h + dd 095bf4a82h, 0e2b87a14h, 07bb12baeh, 00cb61b38h, 092d28e9bh + dd 0e5d5be0dh, 07cdcefb7h, 00bdbdf21h, 086d3d2d4h, 0f1d4e242h + dd 068ddb3f8h, 01fda836eh, 081be16cdh, 0f6b9265bh, 06fb077e1h + dd 018b74777h, 088085ae6h, 0ff0f6a70h, 066063bcah, 011010b5ch + dd 08f659effh, 0f862ae69h, 0616bffd3h, 0166ccf45h, 0a00ae278h + dd 0d70dd2eeh, 04e048354h, 03903b3c2h, 0a7672661h, 0d06016f7h + dd 04969474dh, 03e6e77dbh, 0aed16a4ah, 0d9d65adch, 040df0b66h + dd 037d83bf0h, 0a9bcae53h, 0debb9ec5h, 047b2cf7fh, 030b5ffe9h + dd 0bdbdf21ch, 0cabac28ah, 053b39330h, 024b4a3a6h, 0bad03605h + dd 0cdd70693h, 054de5729h, 023d967bfh, 0b3667a2eh, 0c4614ab8h + dd 05d681b02h, 02a6f2b94h, 0b40bbe37h, 0c30c8ea1h, 05a05df1bh + dd 02d02ef8dh + +; ============================================================= + +``` + +`aPLib/src/64bit/depack.asm`: + +```asm +;; +;; aPLib compression library - the smaller the better :) +;; +;; fasm 64-bit assembler depacker +;; +;; Copyright (c) 1998-2014 Joergen Ibsen +;; All Rights Reserved +;; +;; http://www.ibsensoftware.com/ +;; + +format MS64 COFF + +public aP_depack_asm + +; ============================================================= + +section '.text' code readable executable + +aP_depack_asm: + ; aP_depack_asm(const void *source, void *destination) + + push rbx + push rsi + push rdi + + push rdx + + mov rsi, rcx + mov rdi, rdx + + cld + mov dl, 80h + xor ebx, ebx + +literal: + movsb + mov bl, 2 +nexttag: + call getbit + jnc literal + + xor ecx, ecx + call getbit + jnc codepair + xor eax, eax + call getbit + jnc shortmatch + mov bl, 2 + inc ecx + mov al, 10h + .getmorebits: + call getbit + adc al, al + jnc .getmorebits + jnz domatch + stosb + jmp nexttag +codepair: + call getgamma_no_ecx + sub ecx, ebx + jnz normalcodepair + call getgamma + jmp domatch_lastpos + +shortmatch: + lodsb + shr eax, 1 + jz donedepacking + adc ecx, ecx + jmp domatch_with_2inc + +normalcodepair: + xchg eax, ecx + dec eax + shl eax, 8 + lodsb + call getgamma + + cmp eax, 32000 + jae short domatch_with_2inc + cmp ah, 5 + jae short domatch_with_inc + cmp eax, 7fh + ja short domatch_new_lastpos + +domatch_with_2inc: + inc ecx + +domatch_with_inc: + inc ecx + +domatch_new_lastpos: + xchg eax, r8d +domatch_lastpos: + mov eax, r8d + + mov bl, 1 + +domatch: + push rsi + mov rsi, rdi + sub rsi, rax + rep movsb + pop rsi + jmp nexttag + +getbit: + add dl, dl + jnz .stillbitsleft + mov dl, [rsi] + inc rsi + adc dl, dl + .stillbitsleft: + ret + +getgamma: + xor ecx, ecx +getgamma_no_ecx: + inc ecx + .getgammaloop: + call getbit + adc ecx, ecx + call getbit + jc .getgammaloop + ret + +donedepacking: + pop rdx + sub rdi, rdx + xchg eax, edi + + pop rdi + pop rsi + pop rbx + + ret + +; ============================================================= + +``` + +`aPLib/src/64bit/depackf.asm`: + +```asm +;; +;; aPLib compression library - the smaller the better :) +;; +;; fasm 64-bit fast assembler depacker +;; +;; Copyright (c) 1998-2014 Joergen Ibsen +;; All Rights Reserved +;; +;; http://www.ibsensoftware.com/ +;; + +format MS64 COFF + +public aP_depack_asm_fast + +; ============================================================= + +macro getbitM +{ + local .stillbitsleft + + add dl, dl + jnz .stillbitsleft + mov dl, [rsi] + inc rsi + adc dl, dl + .stillbitsleft: +} + +macro domatchM reg +{ + local .more + + mov r10, rdi + sub r10, reg + + .more: + mov al, [r10] + add r10, 1 + mov [rdi], al + add rdi, 1 + sub rcx, 1 + jnz .more +} + +macro getgammaM reg +{ + local .getmorebits + + mov reg, 1 + .getmorebits: + getbitM + adc reg, reg + getbitM + jc .getmorebits +} + +; ============================================================= + +section '.text' code readable executable + +aP_depack_asm_fast: + ; aP_depack_asm_fast(const void *source, void *destination) + + mov [rsp + 8], rsi + mov [rsp + 16], rdx + push rdi + + mov rsi, rcx + mov rdi, rdx + + cld + mov dl, 80h + +literal: + mov al, [rsi] + add rsi, 1 + mov [rdi], al + add rdi, 1 + + mov r9, 2 + +nexttag: + getbitM + jnc literal + + getbitM + jnc codepair + + xor rax, rax + getbitM + jnc shortmatch + + getbitM + adc rax, rax + getbitM + adc rax, rax + getbitM + adc rax, rax + getbitM + adc rax, rax + jz thewrite + + mov r9, rdi + sub r9, rax + mov al, [r9] + +thewrite: + mov [rdi], al + add rdi, 1 + + mov r9, 2 + jmp short nexttag + +codepair: + getgammaM rax + sub rax, r9 + mov r9, 1 + jnz normalcodepair + + getgammaM rcx + domatchM r8 + + jmp nexttag + +normalcodepair: + add rax, -1 + + shl rax, 8 + mov al, [rsi] + add rsi, 1 + + mov r8, rax + + getgammaM rcx + + cmp rax, 32000 + sbb rcx, -1 + + cmp rax, 1280 + sbb rcx, -1 + + cmp rax, 128 + adc rcx, 0 + + cmp rax, 128 + adc rcx, 0 + + domatchM rax + jmp nexttag + +shortmatch: + mov al, [rsi] + add rsi, 1 + + xor rcx, rcx + db 0c0h, 0e8h, 001h + jz donedepacking + + adc rcx, 2 + + mov r8, rax + + domatchM rax + + mov r9, 1 + jmp nexttag + +donedepacking: + mov rax, rdi + sub rax, [rsp + 24] + + mov rsi, [rsp + 16] + pop rdi + + ret + +; ============================================================= + +``` + +`aPLib/src/64bit/depacks.asm`: + +```asm +;; +;; aPLib compression library - the smaller the better :) +;; +;; fasm 64-bit safe assembler depacker +;; +;; Copyright (c) 1998-2014 Joergen Ibsen +;; All Rights Reserved +;; +;; http://www.ibsensoftware.com/ +;; + +format MS64 COFF + +public aP_depack_asm_safe + +; ============================================================= + +macro getbitM +{ + local .stillbitsleft + + add dl, dl + jnz .stillbitsleft + + sub r10, 1 ; read one byte from source + jc return_error ; + + mov dl, [rsi] + add rsi, 1 + + add dl, dl + inc dl + .stillbitsleft: +} + +macro domatchM reg +{ + local .more + + mov r8, [rsp + 32] ; r8 = dstlen + sub r8, r11 ; r8 = num written + cmp reg, r8 + ja return_error + + sub r11, rcx ; write rcx bytes to destination + jc return_error ; + + mov r8, rdi + sub r8, reg + + .more: + mov al, [r8] + add r8, 1 + mov [rdi], al + add rdi, 1 + sub rcx, 1 + jnz .more +} + +macro getgammaM reg +{ + local .getmore + mov reg, 1 + .getmore: + getbitM + adc reg, reg + jc return_error + getbitM + jc .getmore +} + +; ============================================================= + +section '.text' code readable executable + +aP_depack_asm_safe: + ; aP_depack_asm_safe(const void *source, + ; unsigned int srclen, + ; void *destination, + ; unsigned int dstlen) + + mov [rsp + 8], r9 + mov [rsp + 16], r8 + mov [rsp + 24], rbp + push rbx + push rsi + push rdi + + mov rsi, rcx + mov r10, rdx + mov rdi, r8 + mov r11, r9 + + test rsi, rsi + jz return_error + + test rdi, rdi + jz return_error + + or rbp, -1 + + cld + xor rdx, rdx + +literal: + sub r10, 1 ; read one byte from source + jc return_error ; + + mov al, [rsi] + add rsi, 1 + + sub r11, 1 ; write one byte to destination + jc return_error ; + + mov [rdi], al + add rdi, 1 + + mov rbx, 2 + +nexttag: + getbitM + jnc literal + + getbitM + jnc codepair + + xor rax, rax + + getbitM + jnc shortmatch + + getbitM + adc rax, rax + getbitM + adc rax, rax + getbitM + adc rax, rax + getbitM + adc rax, rax + jz .thewrite + + mov r8, [rsp + 32] ; r8 = dstlen + sub r8, r11 ; r8 = num written + cmp rax, r8 + ja return_error + + mov r8, rdi + sub r8, rax + mov al, [r8] + + .thewrite: + sub r11, 1 ; write one byte to destination + jc return_error ; + + mov [rdi], al + add rdi, 1 + + mov rbx, 2 + + jmp nexttag + +codepair: + getgammaM rax + + sub rax, rbx + + mov rbx, 1 + + jnz normalcodepair + + getgammaM rcx + + domatchM rbp + + jmp nexttag + +normalcodepair: + add rax, -1 + + cmp rax, 0x00fffffe + ja return_error + + shl rax, 8 + + sub r10, 1 ; read one byte from source + jc return_error ; + + mov al, [rsi] + add rsi, 1 + + mov rbp, rax + + getgammaM ecx + + cmp rax, 32000 + sbb rcx, -1 + + cmp rax, 1280 + sbb rcx, -1 + + cmp rax, 128 + adc rcx, 0 + + cmp rax, 128 + adc rcx, 0 + + domatchM rax + jmp nexttag + +shortmatch: + sub r10, 1 ; read one byte from source + jc return_error ; + + mov al, [rsi] + add rsi, 1 + + xor rcx, rcx + db 0c0h, 0e8h, 001h + jz donedepacking + + adc rcx, 2 + + mov rbp, rax + + domatchM rax + + mov rbx, 1 + + jmp nexttag + +return_error: + or rax, -1 ; return APLIB_ERROR in rax + + jmp exit + +donedepacking: + mov rax, rdi + sub rax, [rsp + 40] + +exit: + mov rbp, [rsp + 48] + pop rdi + pop rsi + pop rbx + + ret + +; ============================================================= + +``` + +`aPLib/src/64bit/scheck.asm`: + +```asm +;; +;; aPLib compression library - the smaller the better :) +;; +;; fasm 64-bit safe assembler crc checker +;; +;; Copyright (c) 1998-2014 Joergen Ibsen +;; All Rights Reserved +;; +;; http://www.ibsensoftware.com/ +;; + +format MS64 COFF + +public aPsafe_check + +extrn aP_crc32 + +; ============================================================= + +section '.text' code readable executable + +aPsafe_check: + ; aPsafe_check(const void *source) + + push rdi + sub rsp, 32 + + mov rdi, rcx ; rdi -> source + + test rcx, rcx + jz .return_error + + mov eax, [rdi] ; eax = header.tag + + cmp eax, 032335041h ; check tag == 'AP32' + jne .return_error + + mov eax, [rdi + 4] ; rax = header.header_size + cmp eax, 24 ; check header_size >= 24 + jb .return_error + + add rcx, rax ; rcx -> packed data + mov edx, [rdi + 8] ; rdx = header.packed_size + + call aP_crc32 + + cmp eax, [rdi + 12] ; check eax == header.packed_crc + + mov eax, [rdi + 16] ; rax = header.orig_size + + je .return_rax + + .return_error: + or rax, -1 ; rax = -1 + + .return_rax: + add rsp, 32 + pop rdi + + ret + +; ============================================================= + +``` + +`aPLib/src/64bit/sdepack.asm`: + +```asm +;; +;; aPLib compression library - the smaller the better :) +;; +;; fasm 64-bit safe assembler wrapper for aP_depack_asm_safe +;; +;; Copyright (c) 1998-2014 Joergen Ibsen +;; All Rights Reserved +;; +;; http://www.ibsensoftware.com/ +;; + +format MS64 COFF + +public aPsafe_depack + +extrn aP_depack_asm_safe +extrn aP_crc32 + +; ============================================================= + +section '.text' code readable executable + +aPsafe_depack: + ; aPsafe_depack(const void *source, + ; size_t srclen, + ; void *destination + ; size_t dstlen) + + mov [rsp + 8], rcx + mov [rsp + 16], rdx + mov [rsp + 24], r8 + mov [rsp + 32], r9 + push rdi + sub rsp, 32 + + mov rdi, rcx ; rdi -> source + + test rcx, rcx + jz .return_error + + test r8, r8 + jz .return_error + + cmp rdx, 24 ; check srclen >= 24 + jb .return_error ; + + mov eax, [rdi] ; eax = header.tag + + cmp eax, 032335041h ; check tag == 'AP32' + jne .return_error + + mov eax, [rdi + 4] ; rax = header.header_size + cmp eax, 24 ; check header_size >= 24 + jb .return_error + + sub rdx, rax ; rdx = srclen without header + jc .return_error ; + + cmp [rdi + 8], edx ; check header.packed_size is + ja .return_error ; within remaining srclen + + add rcx, rax ; rcx -> packed data + + mov edx, [rdi + 8] ; rdx = header.packed_size + + call aP_crc32 + + cmp eax, [rdi + 12] ; check eax == header.packed_crc + jne .return_error + + mov r9, [rsp + 72] ; r9 = dstlen + + mov edx, [rdi + 16] ; rdx = header.orig_size + cmp rdx, r9 ; check header.orig_size is ok + ja .return_error + + mov eax, [rdi + 4] ; rax = header.header_size + + mov rcx, [rsp + 48] ; rcx -> source + mov edx, [rdi + 8] ; rdx = header.packed_size + mov r8, [rsp + 64] ; r8 -> destination + + add rcx, rax ; rcx -> compressed data + + call aP_depack_asm_safe + + mov edx, [rdi + 16] ; rdx = header.orig_size + + cmp rax, rdx ; check rax == header.orig_size + jne .return_error + + mov rcx, [rsp + 64] ; rcx -> destination + + call aP_crc32 + + cmp eax, [rdi + 20] ; check eax = header.orig_crc + + mov eax, [rdi + 16] ; rax = header.orig_size + + je .return_rax + + .return_error: + or rax, -1 ; rax = -1 + + .return_rax: + add rsp, 32 + pop rdi + + ret + +; ============================================================= + +``` + +`aPLib/src/64bit/sgetsize.asm`: + +```asm +;; +;; aPLib compression library - the smaller the better :) +;; +;; fasm 64-bit safe assembler header access +;; +;; Copyright (c) 1998-2014 Joergen Ibsen +;; All Rights Reserved +;; +;; http://www.ibsensoftware.com/ +;; + +format MS64 COFF + +public aPsafe_get_orig_size + +; ============================================================= + +section '.text' code readable executable + +aPsafe_get_orig_size: + ; aPsafe_get_orig_size(const void *source) + + mov edx, [rcx] ; edx = header.tag + + or rax, -1 ; rax = -1 + + cmp edx, 032335041h ; check tag == 'AP32' + jne .return_rax + + mov edx, [rcx + 4] ; edx = header.header_size + cmp edx, 24 ; check header_size >= 24 + jb .return_rax + + mov eax, [rcx + 16] ; rax = header.orig_size + + .return_rax: + ret + +; ============================================================= + +``` + +`aPLib/src/64bit/spack.asm`: + +```asm +;; +;; aPLib compression library - the smaller the better :) +;; +;; fasm 64-bit safe assembler wrapper for aP_pack +;; +;; Copyright (c) 1998-2014 Joergen Ibsen +;; All Rights Reserved +;; +;; http://www.ibsensoftware.com/ +;; + +; header format: +; +; offs size data +; -------------------------------------- +; 0 dword tag ('AP32') +; 4 dword header_size (24 bytes) +; 8 dword packed_size +; 12 dword packed_crc +; 16 dword orig_size +; 20 dword orig_crc + +format MS64 COFF + +public aPsafe_pack + +extrn aP_pack +extrn aP_crc32 + +; ============================================================= + +section '.text' code readable executable + +aPsafe_pack: + ; aPsafe_pack(const void *source, + ; void *destination, + ; unsigned int length, + ; void *workmem, + ; int (*callback)(unsigned int, unsigned int, void *), + ; void *cbparam) + + mov [rsp + 8], rcx + mov [rsp + 16], rdx + mov [rsp + 24], r8 + mov [rsp + 32], r9 + push rdi + sub rsp, 48 + + mov rdi, rdx ; rdi -> destination + + or rax, -1 ; rax = -1 + + test rcx, rcx ; check parameters + jz .return_rax ; + test rdx, rdx ; + jz .return_rax ; + test r8, r8 ; + jz .return_rax ; + + mov edx, 032335041h + mov [rdi], edx ; set header.tag + + mov edx, 24 + mov [rdi + 4], edx ; set header.header_size + + mov rdx, r8 + mov [rdi + 16], edx ; set header.orig_size + + call aP_crc32 + + mov [rdi + 20], eax ; set header.orig_crc + + mov r10, [rsp + 96] ; r10 -> callback + mov r11, [rsp + 104] ; r11 = cbparam + + mov rcx, [rsp + 64] + mov rdx, [rsp + 72] + mov r8, [rsp + 80] + mov r9, [rsp + 88] + mov [rsp + 32], r10 + mov [rsp + 40], r11 + add rdx, 24 ; rdx -> after header + + call aP_pack + + cmp eax, -1 + je .return_rax + + mov [rdi + 8], eax ; set header.packed_size + + mov rcx, [rsp + 72] ; rcx -> destination + mov rdx, rax ; rdx = packed size + add rcx, 24 ; rcx -> after header + + call aP_crc32 + + mov [rdi + 12], eax ; set header.packed_crc + + mov eax, [rdi + 8] ; eax = header.packed_size + add rax, 24 ; rax = final size + + .return_rax: + add rsp, 48 + pop rdi + + ret + +; ============================================================= + +``` + +`aPLib/src/depack.c`: + +```c +/* + * aPLib compression library - the smaller the better :) + * + * C depacker + * + * Copyright (c) 1998-2014 Joergen Ibsen + * All Rights Reserved + * + * http://www.ibsensoftware.com/ + */ + +#include "depack.h" + +/* internal data structure */ +struct APDSTATE { + const unsigned char *source; + unsigned char *destination; + unsigned int tag; + unsigned int bitcount; +}; + +static unsigned int aP_getbit(struct APDSTATE *ud) +{ + unsigned int bit; + + /* check if tag is empty */ + if (!ud->bitcount--) { + /* load next tag */ + ud->tag = *ud->source++; + ud->bitcount = 7; + } + + /* shift bit out of tag */ + bit = (ud->tag >> 7) & 0x01; + ud->tag <<= 1; + + return bit; +} + +static unsigned int aP_getgamma(struct APDSTATE *ud) +{ + unsigned int result = 1; + + /* input gamma2-encoded bits */ + do { + result = (result << 1) + aP_getbit(ud); + } while (aP_getbit(ud)); + + return result; +} + +unsigned int aP_depack(const void *source, void *destination) +{ + struct APDSTATE ud; + unsigned int offs, len, R0, LWM; + int done; + int i; + + ud.source = (const unsigned char *) source; + ud.destination = (unsigned char *) destination; + ud.bitcount = 0; + + R0 = (unsigned int) -1; + LWM = 0; + done = 0; + + /* first byte verbatim */ + *ud.destination++ = *ud.source++; + + /* main decompression loop */ + while (!done) { + if (aP_getbit(&ud)) { + if (aP_getbit(&ud)) { + if (aP_getbit(&ud)) { + offs = 0; + + for (i = 4; i; i--) { + offs = (offs << 1) + aP_getbit(&ud); + } + + if (offs) { + *ud.destination = *(ud.destination - offs); + ud.destination++; + } + else { + *ud.destination++ = 0x00; + } + + LWM = 0; + } + else { + offs = *ud.source++; + + len = 2 + (offs & 0x0001); + + offs >>= 1; + + if (offs) { + for (; len; len--) { + *ud.destination = *(ud.destination - offs); + ud.destination++; + } + } + else { + done = 1; + } + + R0 = offs; + LWM = 1; + } + } + else { + offs = aP_getgamma(&ud); + + if ((LWM == 0) && (offs == 2)) { + offs = R0; + + len = aP_getgamma(&ud); + + for (; len; len--) { + *ud.destination = *(ud.destination - offs); + ud.destination++; + } + } + else { + if (LWM == 0) { + offs -= 3; + } + else { + offs -= 2; + } + + offs <<= 8; + offs += *ud.source++; + + len = aP_getgamma(&ud); + + if (offs >= 32000) { + len++; + } + if (offs >= 1280) { + len++; + } + if (offs < 128) { + len += 2; + } + + for (; len; len--) { + *ud.destination = *(ud.destination - offs); + ud.destination++; + } + + R0 = offs; + } + + LWM = 1; + } + } + else { + *ud.destination++ = *ud.source++; + LWM = 0; + } + } + + return (unsigned int) (ud.destination - (unsigned char *) destination); +} + +``` + +`aPLib/src/depack.h`: + +```h +/* + * aPLib compression library - the smaller the better :) + * + * C depacker, header file + * + * Copyright (c) 1998-2014 Joergen Ibsen + * All Rights Reserved + * + * http://www.ibsensoftware.com/ + */ + +#ifndef DEPACK_H_INCLUDED +#define DEPACK_H_INCLUDED + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef APLIB_ERROR +# define APLIB_ERROR ((unsigned int) (-1)) +#endif + +/* function prototype */ +unsigned int aP_depack(const void *source, void *destination); + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /* DEPACK_H_INCLUDED */ + +``` + +`aPLib/src/depacks.c`: + +```c +/* + * aPLib compression library - the smaller the better :) + * + * C safe depacker + * + * Copyright (c) 1998-2014 Joergen Ibsen + * All Rights Reserved + * + * http://www.ibsensoftware.com/ + */ + +#include "depacks.h" + +/* internal data structure */ +struct APDSSTATE { + const unsigned char *source; + unsigned int srclen; + unsigned char *destination; + unsigned int dstlen; + unsigned int tag; + unsigned int bitcount; +}; + +static int aP_getbit_safe(struct APDSSTATE *ud, unsigned int *result) +{ + unsigned int bit; + + /* check if tag is empty */ + if (!ud->bitcount--) { + if (!ud->srclen--) { + return 0; + } + + /* load next tag */ + ud->tag = *ud->source++; + ud->bitcount = 7; + } + + /* shift bit out of tag */ + bit = (ud->tag >> 7) & 0x01; + ud->tag <<= 1; + + *result = bit; + + return 1; +} + +static int aP_getgamma_safe(struct APDSSTATE *ud, unsigned int *result) +{ + unsigned int bit; + unsigned int v = 1; + + /* input gamma2-encoded bits */ + do { + if (!aP_getbit_safe(ud, &bit)) { + return 0; + } + + if (v & 0x80000000) { + return 0; + } + + v = (v << 1) + bit; + + if (!aP_getbit_safe(ud, &bit)) { + return 0; + } + } while (bit); + + *result = v; + + return 1; +} + +unsigned int aP_depack_safe(const void *source, + unsigned int srclen, + void *destination, + unsigned int dstlen) +{ + struct APDSSTATE ud; + unsigned int offs, len, R0, LWM, bit; + int done; + int i; + + if (!source || !destination) { + return APLIB_ERROR; + } + + ud.source = (const unsigned char *) source; + ud.srclen = srclen; + ud.destination = (unsigned char *) destination; + ud.dstlen = dstlen; + ud.bitcount = 0; + + R0 = (unsigned int) -1; + LWM = 0; + done = 0; + + /* first byte verbatim */ + if (!ud.srclen-- || !ud.dstlen--) { + return APLIB_ERROR; + } + *ud.destination++ = *ud.source++; + + /* main decompression loop */ + while (!done) { + if (!aP_getbit_safe(&ud, &bit)) { + return APLIB_ERROR; + } + + if (bit) { + if (!aP_getbit_safe(&ud, &bit)) { + return APLIB_ERROR; + } + + if (bit) { + if (!aP_getbit_safe(&ud, &bit)) { + return APLIB_ERROR; + } + + if (bit) { + offs = 0; + + for (i = 4; i; i--) { + if (!aP_getbit_safe(&ud, &bit)) { + return APLIB_ERROR; + } + offs = (offs << 1) + bit; + } + + if (offs) { + if (offs > (dstlen - ud.dstlen)) { + return APLIB_ERROR; + } + + if (!ud.dstlen--) { + return APLIB_ERROR; + } + + *ud.destination = *(ud.destination - offs); + ud.destination++; + } + else { + if (!ud.dstlen--) { + return APLIB_ERROR; + } + + *ud.destination++ = 0x00; + } + + LWM = 0; + } + else { + if (!ud.srclen--) { + return APLIB_ERROR; + } + + offs = *ud.source++; + + len = 2 + (offs & 0x0001); + + offs >>= 1; + + if (offs) { + if (offs > (dstlen - ud.dstlen)) { + return APLIB_ERROR; + } + + if (len > ud.dstlen) { + return APLIB_ERROR; + } + + ud.dstlen -= len; + + for (; len; len--) { + *ud.destination = *(ud.destination - offs); + ud.destination++; + } + } + else { + done = 1; + } + + R0 = offs; + LWM = 1; + } + } + else { + if (!aP_getgamma_safe(&ud, &offs)) { + return APLIB_ERROR; + } + + if ((LWM == 0) && (offs == 2)) { + offs = R0; + + if (!aP_getgamma_safe(&ud, &len)) { + return APLIB_ERROR; + } + + if (offs > (dstlen - ud.dstlen)) { + return APLIB_ERROR; + } + + if (len > ud.dstlen) { + return APLIB_ERROR; + } + + ud.dstlen -= len; + + for (; len; len--) { + *ud.destination = *(ud.destination - offs); + ud.destination++; + } + } + else { + if (LWM == 0) { + offs -= 3; + } + else { + offs -= 2; + } + + if (offs > 0x00fffffe) { + return APLIB_ERROR; + } + + if (!ud.srclen--) { + return APLIB_ERROR; + } + + offs <<= 8; + offs += *ud.source++; + + if (!aP_getgamma_safe(&ud, &len)) { + return APLIB_ERROR; + } + + if (offs >= 32000) { + len++; + } + if (offs >= 1280) { + len++; + } + if (offs < 128) { + len += 2; + } + + if (offs > (dstlen - ud.dstlen)) { + return APLIB_ERROR; + } + + if (len > ud.dstlen) { + return APLIB_ERROR; + } + + ud.dstlen -= len; + + for (; len; len--) { + *ud.destination = *(ud.destination - offs); + ud.destination++; + } + + R0 = offs; + } + + LWM = 1; + } + } + else { + if (!ud.srclen-- || !ud.dstlen--) { + return APLIB_ERROR; + } + *ud.destination++ = *ud.source++; + LWM = 0; + } + } + + return (unsigned int) (ud.destination - (unsigned char *) destination); +} + +``` + +`aPLib/src/depacks.h`: + +```h +/* + * aPLib compression library - the smaller the better :) + * + * C safe depacker, header file + * + * Copyright (c) 1998-2014 Joergen Ibsen + * All Rights Reserved + * + * http://www.ibsensoftware.com/ + */ + +#ifndef DEPACKS_H_INCLUDED +#define DEPACKS_H_INCLUDED + +#ifdef __cplusplus +extern "C" { +#endif + +#ifndef APLIB_ERROR +# define APLIB_ERROR ((unsigned int) (-1)) +#endif + +/* function prototype */ +unsigned int aP_depack_safe(const void *source, + unsigned int srclen, + void *destination, + unsigned int dstlen); + +#ifdef __cplusplus +} /* extern "C" */ +#endif + +#endif /* DEPACKS_H_INCLUDED */ + +``` + +`common.h`: + +```h +#ifndef _PETOY_COMMON_H_ +#define _PETOY_COMMON_H_ + +// 配置 +#define PETOY_VERSION "0.1.0" + + +#include +#include +#include + +#ifdef WIN32 + #pragma warning(disable:4819) + #pragma warning(disable:4996) + #define snprintf _snprintf + + #if _MSC_VER < 1500 // MSVC 2008 + #define vsnprintf _vsnprintf + #endif +#endif + +namespace petoy { + +enum EC { + SUCCESS = 0, + ERR_NO_MEM, + ERR_FILE_OPEN, + ERR_FILE_WRITE, + ERR_FILE_READ, + ERR_NOT_PE, + ERR_NOT_EXE_OR_DLL, + ERR_PACKED, +}; + +static std::string errString(EC eno) +{ + switch (eno) { + case SUCCESS: return "Success"; + case ERR_NO_MEM: return "Alloc memory failed"; + case ERR_FILE_OPEN: return "Open file failed"; + case ERR_FILE_WRITE: return "Write file failed"; + case ERR_FILE_READ: return "Read file failed"; + case ERR_NOT_PE: return "Not a PE"; + case ERR_NOT_EXE_OR_DLL: return "Not a EXE or DLL"; + case ERR_PACKED: return "Pack file failed"; + } + return "Unkown error!"; +} + +#define MAX_IO_BLOCK_SIZE (1024 * 1024) + +static EC freadFixed(FILE *f, void * _buf, size_t num_bytes) +{ + char * buf = (char *)_buf; + + while (num_bytes != 0) { + size_t block_size = num_bytes; + if (block_size > MAX_IO_BLOCK_SIZE) block_size = MAX_IO_BLOCK_SIZE; + + size_t r = fread(buf, 1, block_size, f); + if (r != block_size) + return ERR_FILE_READ; + + buf += block_size; + num_bytes -= block_size; + } + return SUCCESS; +} + +static EC fwriteFixed(FILE *f, const void * _buf, size_t num_bytes) +{ + const char * buf = (const char *)_buf; + + while (num_bytes != 0) { + size_t block_size = num_bytes; + if (block_size > MAX_IO_BLOCK_SIZE) block_size = MAX_IO_BLOCK_SIZE; + + size_t r = fwrite(buf, 1, block_size, f); + if (r != block_size) + return ERR_FILE_WRITE; + + buf += block_size; + num_bytes -= block_size; + } + return SUCCESS; +} + +static EC fwriteZero(FILE *f, size_t num_bytes) +{ + char c = 0; + + while (num_bytes--) { + size_t r = fwrite(&c, 1, 1, f); + if (r != 1) + return ERR_FILE_WRITE; + } + return SUCCESS; +} + +static size_t getLenOfFile(FILE *f) +{ + fseek(f, 0, SEEK_END); + return ftell(f); +} + +} // namespace petoy + +#endif // _PETOY_COMMON_H_ + +``` + +`main.cpp`: + +```cpp +#include "packer.h" + +using namespace petoy; + +int main(int argc, char *argv[]) +{ + char c; + EC err; + petoy::Packer p; + + printf("PE Toy, Version %s, elemeta \n", PETOY_VERSION); + + if (argc != 2) { + printf("Usage:\n\t%s \n\n", argv[0]); + goto out; + } + + err = p.load(argv[1]); + if (err != SUCCESS) + printf("Load %s error: %s(%d)\n", argv[1], errString(err).c_str(), err); + else + printf("Load %s success!\n", argv[1]); + + err = p.pack(std::string(argv[1]) + ".new.exe"); + if (err != SUCCESS) + printf("Pack %s error: %s(%d)\n", argv[1], errString(err).c_str(), err); + else + printf("Pack %s success!\n", argv[1]); + + // Exit +out: + printf("Press 'q' to Exit!\n"); + c = 0; + do { + scanf("%c", &c); + } while ('q' != c && 'Q' != c); + + return 0; +} + +``` + +`masm32/ml.err`: + +```err +FATAL +cannot open file +I/O error closing file +I/O error writing file +I/O error reading file +out of memory +assembler limit : macro parameter name table full +invalid command-line option +nesting level too deep +unmatched macro nesting +line too long +unmatched block nesting +directive must be in control block +error count exceeds 100; stopping assembly +invalid numerical command-line argument +too many arguments +statement too complex +Internal Assembler Error +missing source filename +COFF error writing file +invalid debug and browser data; file exceeds line limit +cannot find link.exe +cannot find cvpack.exe +SEVERE +memory operand not allowed in context +immediate operand not allowed +cannot have more than one ELSE clause per IF block +extra characters after statement +symbol type conflict +symbol redefinition +undefined symbol +non-benign record redefinition +syntax error +syntax error in expression +invalid type expression +distance invalid for word size of current segment +PROC, MACRO, or macro repeat directive must precede LOCAL +.MODEL must precede this directive +cannot define as public or external +segment attributes cannot change +expression expected +operator expected +invalid use of external symbol +operand must be RECORD type or field +identifier not a record +record constants may not span line breaks +instruction operands must be the same size +instruction operand must have size +invalid operand size for instruction +operands must be in same segment +constant expected +operand must be a memory expression +expression must be a code address +multiple base registers not allowed +multiple index registers not allowed +must be index or base register +invalid use of register +invalid INVOKE argument +must be in segment block +DUP too complex +too many initial values for structure +statement not allowed inside structure definition +missing operand for macro operator +line too long +segment register not allowed in context +string or text literal too long +statement too complex +identifier too long +invalid character in file +missing angle bracket or brace in literal +missing single or double quotation mark in string +empty (null) string +nondigit in number +syntax error in floating-point constant +real or BCD number not allowed +text item required +forced error +forced error : value equal to 0 +forced error : value not equal to 0 +forced error : symbol not defined +forced error : symbol defined +forced error : string blank +forced error : string not blank +forced error : strings equal +forced error : strings not equal +[ELSE]IF2/.ERR2 not allowed : single-pass assembler +expression too complex for .UNTILCXZ +can ALIGN only to power of 2 +structure alignment must be 1, 2, 4, 8, or 16 +expected +incompatible CPU mode and segment size +LOCK must be followed by a memory operation +instruction prefix not allowed +no operands allowed for this instruction +invalid instruction operands +initializer magnitude too large for specified size +cannot access symbol in given segment or group +operands have different frames +cannot access label through segment registers +jump destination too far +jump destination must specify a label +instruction does not allow NEAR indirect addressing +instruction does not allow FAR indirect addressing +instruction does not allow FAR direct addressing +jump distance not possible in current CPU mode +missing operand after unary operator +cannot mix 16- and 32-bit registers +invalid scale value +constant value too large +instruction or register not accepted in current CPU mode +reserved word expected +instruction form requires 80386/486 +END directive required at end of file +too many bits in RECORD +positive value expected +index value past end of string +count must be positive or zero +count value too large +operand must be relocatable +constant or relocatable label expected +segment, group, or segment register expected +segment expected +invalid operand for OFFSET +invalid use of external absolute +segment or group not allowed +cannot add two relocatable labels +cannot add memory expression and code label +segment exceeds 64K limit +invalid type for a data declaration +HIGH and LOW require immediate operands +N/A +cannot have implicit far jump or call to near label +use of register assumed to ERROR +only white space or comment can follow backslash +COMMENT delimiter expected +conflicting parameter definition +PROC and prototype calling conventions conflict +invalid radix tag +INVOKE argument type mismatch : argument +invalid coprocessor register +instructions and initialized data not allowed in AT segments +/AT switch requires the TINY memory model +cannot have segment address references with TINY model +language type must be specified +PROLOGUE must be macro function +EPILOGUE must be macro procedure +alternate identifier not allowed with EXTERNDEF +text macro nesting level too deep +N/A +missing macro argument +EXITM used inconsistently +macro function argument list too long +N/A +VARARG parameter must be last parameter +VARARG parameter not allowed with LOCAL +VARARG parameter requires C calling convention +ORG needs a constant or local offset +register value overwritten by INVOKE +structure too large to pass with INVOKE : argument +not overriding private proc as public +too many arguments to INVOKE +too few arguments to INVOKE +invalid data initializer +N/A +RET operand too large +too many operands to instruction +cannot have more than one .ELSE clause per .IF block +expected data label +cannot nest procedures +EXPORT must be FAR +procedure declared with two visibility attributes +macro label not defined +invalid symbol type in expression +byte register cannot be first operand +word register cannot be first operand +special register cannot be first operand +coprocessor register cannot be first operand +cannot change size of expression computations +syntax error in control-flow directive +cannot use 16-bit register with a 32-bit address +constant value out of range +missing right parenthesis +type is wrong size for register +structure cannot be instanced +non-benign structure redefinition: label incorrect +non-benign structure redefinition: too few labels +OLDSTRUCTS/NOOLDSTRUCTS state cannot be changed +non-benign structure redefinition: incorrect initializers +non-benign structure redefinition: too few initializers +non-benign structure redefinition: label has incorrect offset +structure field expected +unexpected literal found in expression +N/A +divide by zero in expression +directive must appear inside a macro +cannot expand macro function +too few bits in RECORD +macro function cannot redefine itself +N/A +invalid qualified type +floating-point initializer on an integer variable +nested structure improperly initialized +invalid use of FLAT +structure improperly initialized +improper list initialization +initializer must be a string or single item +initializer must be a single item +initializer must be a single byte +improper use of list initializer +improper literal initialization +extra characters in literal initialization +must use floating-point initializer +cannot use .EXIT for OS_OS2 with .8086 +invalid combination with segment alignment +INVOKE requires prototype for procedure +cannot include structure in self +symbol language attribute conflict +non-benign COMM redefinition +COMM variable exceeds 64K +parameter or local cannot have void type +cannot use TINY model with OS_OS2 +expression size must be 32 bits +.EXIT does not work with 32-bit segments +.STARTUP does not work with 32-bit segments +ORG directive not allowed in unions +D/T +illegal use of segment register +cannot declare scoped code label as PUBLIC +.MSFLOAT directive is obsolete : .MSFLOAT ignored +ESC instruction is obsolete : ESC ignored +missing operator in expression +missing right parenthesis in expression +missing left parenthesis in expression +reference to forward macro definition +16 bit segments not allowed with /coff option +FAR not allowed in flat model comm variables +invalid .model parameter for flat model +ALIAS name is empty +GROUP directive not allowed with /coff option +.FPO is not compatible with nested procedures +LEVEL 1 +cannot modify READONLY segment +N/A +non-unique STRUCT/UNION field used without qualification +start address on END directive ignored with .STARTUP +cannot ASSUME CS +unknown default prologue argument +too many arguments in macro call +option untranslated, directive required +invalid command-line option value, default is used +insufficent memory for /EP : /EP ignored +expected '>' on text literal +multiple .MODEL directives found : .MODEL ignored +line number information for segment without class 'CODE' +instructions and initialized data not supported in AT segments +instructions and initialized data not supported in BSS segments +directive ignored with /coff switch +/Gc switch incompatible with flat model +/AT switch incompatible with flat model +invalid command-line option +directive ignored without /coff switch +directive ignored outside a procedure +LOADDS ignored in flat model +debug information too complex for +with /coff switch, leading underscore required for start address +LEVEL 2 +@@: label defined but not referenced +expression expected, assume value 0 +EXTERNDEF previously assumed to be external +length of symbol previously assumed to be different +symbol previously assumed to not be in a group +types are different +calling convention not supported in flat model +LEVEL 3 +N/A +no return from procedure +N/A +conditional jump lengthened +procedure argument or local not referenced +expression may be pass-dependent +structure contains no members + +``` + +`masm32/windows.inc`: + +```inc +;;;; head + +comment * -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- + + WINDOWS.INC for 32 bit MASM (Version 1.6 RELEASE January 2012) + + This version is compatible with ML.EXE Version 8.0 and later. + + Project WINDOWS.INC at the Masm Forum + + http://www.masm32.com/board/index.php + + WINDOWS.INC is copyright software licenced to the user by the + MASM32 project. It is available completely free of any charges + for any person to use for purposes including writing and selling + commercial software but the file must not be included in any + commercial package and the file may not be redistributed + without express permission from the MASM32 project. + + This also includes publications that are for sale. + + WINDOWS.INC Copyright (c) The MASM32 Project 1998 - 2012 + + Short history. + Original file 1998 hutch + NT and later additions Iczelion + Server 2003 additions January 2005 + Additional UNICODE support Ramon Sala 2010 + Vista and Win7 equates January 2012 + + hutch@movsd.com + + -=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=- * + + IFNDEF __NO_NOISE__ + + IFDEF __UNICODE__ + echo + echo ************* + echo UNICODE Build + echo ************* + echo + ELSE + echo + echo *********** + echo ASCII build + echo *********** + echo + ENDIF + + ENDIF + +IFNDEF _wininc_ +_wininc_ equ <1> + +;;;; end head + +;;;; macro + + comment * --------------------------------------------- + This macro is specifically for programmers who use the + different format include files created by l2extia.exe. + NOTE : windows.inc MUST be included before any of the + include file created with l2extia.exe as they require + this macro to expand the parameters. + --------------------------------------------- * + + ArgCount MACRO number + LOCAL txt + txt equ + REPEAT number - 1 + txt CATSTR txt,<,:DWORD> + ENDM + EXITM + ENDM + + pr0 typedef PROTO + pr1 ArgCount(1) + pr2 ArgCount(2) + pr3 ArgCount(3) + pr4 ArgCount(4) + pr5 ArgCount(5) + pr6 ArgCount(6) + pr7 ArgCount(7) + pr8 ArgCount(8) + pr9 ArgCount(9) + pr10 ArgCount(10) + pr11 ArgCount(11) + pr12 ArgCount(12) + pr13 ArgCount(13) + pr14 ArgCount(14) + pr15 ArgCount(15) + pr16 ArgCount(16) + pr17 ArgCount(17) + pr18 ArgCount(18) + pr19 ArgCount(19) + pr20 ArgCount(20) + pr21 ArgCount(21) + pr22 ArgCount(22) + pr23 ArgCount(23) + pr24 ArgCount(24) + pr25 ArgCount(25) + +; 垂垂垂垂垂垂垂垂垂垂垂垂垂垂垂垂垂垂垂垂垂垂垂垂垂垂垂垂垂垂垂垂垂垂垂垂? + +;;;; end macro + +;;;; dtype + +; --------------------------- +; C and C++ type definitions +; --------------------------- +CALLBACK typedef PROTO STDCALL +WINAPI typedef PROTO STDCALL + +; 8 bit BYTE +; ~~~~~ +CHAR typedef BYTE +UCHAR typedef BYTE +;;; TBYTE typedef BYTE ; naming conflist with MASM data type + +IFDEF __UNICODE__ + TCHAR typedef WORD +ELSE + TCHAR typedef BYTE +ENDIF + +bool typedef BYTE +BOOLEAN typedef BYTE + +; 16 bit WORD +; ~~~~~~ +;;; SHORT typedef WORD +USHORT typedef WORD +ATOM typedef WORD +WCHAR typedef WORD +LANGID typedef WORD +OLECHAR typedef WORD +FILEOP_FLAGS typedef WORD + +; 32 bit DWORD +; ~~~~~~ +ABORTPROC typedef DWORD +ACCESS_MASK typedef DWORD +ACMDRIVERENUMCB typedef DWORD +ACMDRIVERPROC typedef DWORD +ACMFILTERCHOOSEHOOKPROC typedef DWORD +ACMFILTERENUMCB typedef DWORD +ACMFILTERTAGENUMCB typedef DWORD +ACMFORMATCHOOSEHOOKPROC typedef DWORD +ACMFORMATENUMCB typedef DWORD +ACMFORMATTAGENUMCB typedef DWORD +NET_API_STATUS typedef DWORD +API_RET_TYPE typedef DWORD +APPLET_PROC typedef DWORD +BOOL typedef DWORD +CALINFO_ENUMPROC typedef DWORD +COLORREF typedef DWORD +;;; CONST typedef DWORD ; naming conflist with MASM reserve word +;;; CRITICAL_SECTION typedef DWORD ; naming conflist with structure +CTRYID typedef DWORD +DATEFMT_ENUMPROC typedef DWORD +DESKTOPENUMPROC typedef DWORD +DLGPROC typedef DWORD +DRAWSTATEPROC typedef DWORD +EDITWORDBREAKPROC typedef DWORD +ENHMFENUMPROC typedef DWORD +ENUMRESLANGPROC typedef DWORD +ENUMRESNAMEPROC typedef DWORD +ENUMRESTYPEPROC typedef DWORD +FARPROC typedef DWORD +FILE_SEGMENT_ELEMENT typedef DWORD +FONTENUMPROC typedef DWORD +GOBJENUMPROC typedef DWORD +GRAYSTRINGPROC typedef DWORD +HACCEL typedef DWORD +HANDLE typedef DWORD +HBITMAP typedef DWORD +HBRUSH typedef DWORD +HCOLORSPACE typedef DWORD +HCONV typedef DWORD +HCONVLIST typedef DWORD +HCURSOR typedef DWORD +HDC typedef DWORD +HDDEDATA typedef DWORD +HDESK typedef DWORD +HDROP typedef DWORD +HDWP typedef DWORD +HENHMETAFILE typedef DWORD +HFILE typedef DWORD +HFONT typedef DWORD +HGDIOBJ typedef DWORD +HGLOBAL typedef DWORD +HHOOK typedef DWORD +HICON typedef DWORD +HIMAGELIST typedef DWORD +HIMC typedef DWORD +HINSTANCE typedef DWORD +HKEY typedef DWORD +HKL typedef DWORD +HLOCAL typedef DWORD +HMENU typedef DWORD +HMETAFILE typedef DWORD +HMODULE typedef DWORD +HMONITOR typedef DWORD +HOOKPROC typedef DWORD +HPALETTE typedef DWORD +HPEN typedef DWORD +HRGN typedef DWORD +HRSRC typedef DWORD +HSZ typedef DWORD +HTREEITEM typedef DWORD +HWINSTA typedef DWORD +HWND typedef DWORD +;;; INT typedef DWORD; naming conflist with MASM reserve word +IPADDR typedef DWORD +LCID typedef DWORD +LCSCSTYPE typedef DWORD +LCSGAMUTMATCH typedef DWORD +LCTYPE typedef DWORD +LINEDDAPROC typedef DWORD +LOCALE_ENUMPROC typedef DWORD +LONG typedef DWORD +LPARAM typedef DWORD +LPBOOL typedef DWORD +LPBYTE typedef DWORD +LPCCHOOKPROC typedef DWORD +LPCFHOOKPROC typedef DWORD +LPCOLORREF typedef DWORD +LPCRITICAL_SECTION typedef DWORD +LPCSTR typedef DWORD +LPCTSTR typedef DWORD +LPCVOID typedef DWORD +LPCWSTR typedef DWORD +LPDWORD typedef DWORD +LPFIBER_START_ROUTINE typedef DWORD +LPFRHOOKPROC typedef DWORD +LPHANDLE typedef DWORD +LPHANDLER_FUNCTION typedef DWORD +LPINT typedef DWORD +LPLONG typedef DWORD +LPOFNHOOKPROC typedef DWORD +LPOLESTR typedef DWORD +LPCOLESTR typedef DWORD +LPPAGEPAINTHOOK typedef DWORD +LPPAGESETUPHOOK typedef DWORD +LPPRINTHOOKPROC typedef DWORD +LPPROGRESS_ROUTINE typedef DWORD +LPSETUPHOOKPROC typedef DWORD +LPSTR typedef DWORD +LPSTREAM typedef DWORD +LPTHREAD_START_ROUTINE typedef DWORD +LPTSTR typedef DWORD +LPVOID typedef DWORD +LPWORD typedef DWORD +LPWSTR typedef DWORD +LRESULT typedef DWORD +;;; LUID typedef DWORD ; name conflict with structure +MCIDEVICEID typedef DWORD +PBOOL typedef DWORD +PBOOLEAN typedef DWORD +PBYTE typedef DWORD +PCHAR typedef DWORD +PCRITICAL_SECTION typedef DWORD +PCSTR typedef DWORD +PCTSTR typedef DWORD +PCWCH typedef DWORD +PCWSTR typedef DWORD +PDWORD typedef DWORD +PFLOAT typedef DWORD +PFNCALLBACK typedef DWORD +PHANDLE typedef DWORD +PHANDLER_ROUTINE typedef DWORD +PHKEY typedef DWORD +PINT typedef DWORD +PLCID typedef DWORD +PLONG typedef DWORD +PLUID typedef DWORD +PROPENUMPROC typedef DWORD +PROPENUMPROCEX typedef DWORD +PSHORT typedef DWORD +PSTR typedef DWORD +PTBYTE typedef DWORD +PTCHAR typedef DWORD +PTIMERAPCROUTINE typedef DWORD +PTSTR typedef DWORD +PUCHAR typedef DWORD +PUINT typedef DWORD +PULONG typedef DWORD +PUSHORT typedef DWORD +PVOID typedef DWORD +PWCHAR typedef DWORD +PWORD typedef DWORD +PWSTR typedef DWORD +REGISTERWORDENUMPROC typedef DWORD +REGSAM typedef DWORD +SC_HANDLE typedef DWORD +SC_LOCK typedef DWORD +SCODE typedef DWORD +SENDASYNCPROC typedef DWORD +SERVICE_STATUS_HANDLE typedef DWORD +SOCKET typedef DWORD +TIMEFMT_ENUMPROC typedef DWORD +TIMERPROC typedef DWORD +UINT typedef DWORD +ULONG typedef DWORD +WINSTAENUMPROC typedef DWORD +WNDENUMPROC typedef DWORD +WNDPROC typedef DWORD +WPARAM typedef DWORD +YIELDPROC typedef DWORD + +; 64 bit +; ~~~~~~ +LONG64 typedef QWORD +ULONG64 typedef QWORD +INT64 typedef QWORD +UINT64 typedef QWORD +WORD64 typedef QWORD +POINTER_64 typedef QWORD +LONGLONG typedef QWORD +ULONGLONG typedef QWORD + +; Floating point +; ~~~~~~~~~~~~~~ +FLOAT typedef REAL4 +DOUBLE typedef REAL8 +;;; LONG DOUBLE typedef REAL10 + +; ---------------------------------------------- + +;;;; end dtype + +;;;; winbase + +INVALID_FILE_ATTRIBUTES equ -1 +TIME_ZONE_ID_INVALID equ 0FFFFFFFFh + ; MoveMemory equ RtlMoveMemory + ; CopyMemory equ RtlCopyMemory + ; FillMemory equ RtlFillMemory + ; ZeroMemory equ RtlZeroMemory + ; SecureZeroMemory equ RtlSecureZeroMemory +FILE_FLAG_OPEN_REPARSE_POINT equ 00200000h +FILE_FLAG_OPEN_NO_RECALL equ 00100000h +FILE_FLAG_FIRST_PIPE_INSTANCE equ 00080000h +PROGRESS_CONTINUE equ 0 +PROGRESS_CANCEL equ 1 +PROGRESS_STOP equ 2 +PROGRESS_QUIET equ 3 +CALLBACK_CHUNK_FINISHED equ 00000000h +CALLBACK_STREAM_SWITCH equ 00000001h +COPY_FILE_FAIL_IF_EXISTS equ 00000001h +COPY_FILE_RESTARTABLE equ 00000002h +COPY_FILE_OPEN_SOURCE_FOR_WRITE equ 00000004h +COPY_FILE_ALLOW_DECRYPTED_DESTINATION equ 00000008h +REPLACEFILE_WRITE_THROUGH equ 00000001h +REPLACEFILE_IGNORE_MERGE_ERRORS equ 00000002h +PST_MODEM equ 00000006h +COMMPROP_INITIALIZED equ 0E73CF52Eh +CREATE_UNICODE_ENVIRONMENT equ 00000400h +CREATE_SHARED_WOW_VDM equ 00001000h +CREATE_FORCEDOS equ 00002000h +BELOW_NORMAL_PRIORITY_CLASS equ 00004000h +ABOVE_NORMAL_PRIORITY_CLASS equ 00008000h +STACK_SIZE_PARAM_IS_A_RESERVATION equ 00010000h +CREATE_BREAKAWAY_FROM_JOB equ 01000000h +CREATE_PRESERVE_CODE_AUTHZ_LEVEL equ 02000000h +CREATE_DEFAULT_ERROR_MODE equ 04000000h +CREATE_IGNORE_SYSTEM_DEFAULT equ 80000000h +DRIVE_UNKNOWN equ 0 +DRIVE_NO_ROOT_DIR equ 1 +MAXINTATOM equ 0C000h +INVALID_ATOM equ 0 +SCS_64BIT_BINARY equ 6 +FIBER_FLAG_FLOAT_SWITCH equ 1h +SEM_NOALIGNMENTFAULTEXCEPT equ 0004h +HANDLE_FLAG_INHERIT equ 00000001h +HANDLE_FLAG_PROTECT_FROM_CLOSE equ 00000002h +HINSTANCE_ERROR equ 32 +FILE_ENCRYPTABLE equ 0 +FILE_IS_ENCRYPTED equ 1 +FILE_SYSTEM_ATTR equ 2 +FILE_ROOT_DIR equ 3 +FILE_SYSTEM_DIR equ 4 +FILE_UNKNOWN equ 5 +FILE_SYSTEM_NOT_SUPPORT equ 6 +FILE_USER_DISALLOWED equ 7 +FILE_READ_ONLY equ 8 +FILE_DIR_DISALLOWED equ 9 +EFS_USE_RECOVERY_KEYS equ 1 +CREATE_FOR_IMPORT equ 1 +CREATE_FOR_DIR equ 2 +OVERWRITE_HIDDEN equ 4 +FLS_OUT_OF_INDEXES equ 0FFFFFFFFh +BACKUP_INVALID equ 00000000h +BACKUP_PROPERTY_DATA equ 00000006h +BACKUP_OBJECT_ID equ 00000007h +BACKUP_REPARSE_DATA equ 00000008h +BACKUP_SPARSE_BLOCK equ 00000009h +STREAM_NORMAL_ATTRIBUTE equ 00000000h +STREAM_CONTAINS_PROPERTIES equ 00000004h +STREAM_SPARSE_ATTRIBUTE equ 00000008h +STARTF_USEHOTKEY equ 00000200h +LOAD_IGNORE_CODE_AUTHZ_LEVEL equ 00000010h +GET_MODULE_HANDLE_EX_FLAG_PIN equ 00000001h +GET_MODULE_HANDLE_EX_FLAG_UNCHANGED_REFCOUNT equ 00000002h +GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS equ 00000004h +DDD_NO_BROADCAST_SYSTEM equ 00000008h +DDD_LUID_BROADCAST_DRIVE equ 00000010h +FIND_FIRST_EX_CASE_SENSITIVE equ 00000001h +MOVEFILE_WRITE_THROUGH equ 00000008h +MOVEFILE_CREATE_HARDLINK equ 00000010h +MOVEFILE_FAIL_IF_NOT_TRACKABLE equ 00000020h +EVENTLOG_FULL_INFO equ 0 +LOGON32_LOGON_NETWORK equ 3 +LOGON32_LOGON_UNLOCK equ 7 +LOGON32_LOGON_NETWORK_CLEARTEXT equ 8 +LOGON32_LOGON_NEW_CREDENTIALS equ 9 +LOGON32_PROVIDER_WINNT40 equ 2 +LOGON32_PROVIDER_WINNT50 equ 3 +LOGON_WITH_PROFILE equ 00000001h +LOGON_NETCREDENTIALS_ONLY equ 00000002h +LOGON_ZERO_PASSWORD_BUFFER equ 80000000h +HW_PROFILE_GUIDLEN equ 39 +MAX_PROFILE_LEN equ 80 +DOCKINFO_UNDOCKED equ 1 +DOCKINFO_DOCKED equ 2 +DOCKINFO_USER_SUPPLIED equ 4 +DOCKINFO_USER_UNDOCKED equ (DOCKINFO_USER_SUPPLIED or DOCKINFO_UNDOCKED) +DOCKINFO_USER_DOCKED equ (DOCKINFO_USER_SUPPLIED or DOCKINFO_DOCKED) +ACTCTX_FLAG_PROCESSOR_ARCHITECTURE_VALID equ 00000001h +ACTCTX_FLAG_LANGID_VALID equ 00000002h +ACTCTX_FLAG_ASSEMBLY_DIRECTORY_VALID equ 00000004h +ACTCTX_FLAG_RESOURCE_NAME_VALID equ 00000008h +ACTCTX_FLAG_SET_PROCESS_DEFAULT equ 00000010h +ACTCTX_FLAG_APPLICATION_NAME_VALID equ 00000020h +ACTCTX_FLAG_SOURCE_IS_ASSEMBLYREF equ 00000040h +ACTCTX_FLAG_HMODULE_VALID equ 00000080h +DEACTIVATE_ACTCTX_FLAG_FORCE_EARLY_DEACTIVATION equ 00000001h +FIND_ACTCTX_SECTION_KEY_RETURN_HACTCTX equ 00000001h +FIND_ACTCTX_SECTION_KEY_RETURN_FLAGS equ 00000002h +FIND_ACTCTX_SECTION_KEY_RETURN_ASSEMBLY_METADATA equ 00000004h +ACTIVATION_CONTEXT_BASIC_INFORMATION_DEFINED equ 1 +QUERY_ACTCTX_FLAG_USE_ACTIVE_ACTCTX equ 00000004h +QUERY_ACTCTX_FLAG_ACTCTX_IS_HMODULE equ 00000008h +QUERY_ACTCTX_FLAG_ACTCTX_IS_ADDRESS equ 00000010h +QUERY_ACTCTX_FLAG_NO_ADDREF equ 80000000h +COPY_FILE_COPY_SYMLINK equ 00000800h +PIPE_ACCEPT_REMOTE_CLIENTS equ 00000000h +PIPE_REJECT_REMOTE_CLIENTS equ 00000008h +NUMA_NO_PREFERRED_NODE equ -1 +INHERIT_CALLER_PRIORITY equ 00020000h +CREATE_PROTECTED_PROCESS equ 00040000h +EXTENDED_STARTUPINFO_PRESENT equ 00080000h +PROCESS_MODE_BACKGROUND_BEGIN equ 00100000h +PROCESS_MODE_BACKGROUND_END equ 00200000h +THREAD_MODE_BACKGROUND_BEGIN equ 00010000h +THREAD_MODE_BACKGROUND_END equ 00020000h +VOLUME_NAME_DOS equ 0h +VOLUME_NAME_GUID equ 1h +VOLUME_NAME_NT equ 2h +VOLUME_NAME_NONE equ 4h +FILE_NAME_NORMALIZED equ 0h +FILE_NAME_OPENED equ 8h +GetFreeSpace equ 100000h +BACKUP_TXFS_DATA equ 0000000ah +CREATE_MUTEX_INITIAL_OWNER equ 00000001h +CREATE_EVENT_MANUAL_RESET equ 00000001h +CREATE_EVENT_INITIAL_SET equ 00000002h +CREATE_WAITABLE_TIMER_MANUAL_RESET equ 00000001h +LOAD_LIBRARY_AS_IMAGE_RESOURCE equ 00000020h +LOAD_LIBRARY_AS_DATAFILE_EXCLUSIVE equ 00000040h +PROCESS_NAME_NATIVE equ 00000001h +PROC_THREAD_ATTRIBUTE_NUMBER equ 0000FFFFh +PROC_THREAD_ATTRIBUTE_THREAD equ 00010000h +PROC_THREAD_ATTRIBUTE_INPUT equ 00020000h +PROC_THREAD_ATTRIBUTE_ADDITIVE equ 00040000h +PROC_THREAD_ATTRIBUTE_REPLACE_VALUE equ 00000001h +RESOURCE_ENUM_LN equ 0001h +RESOURCE_ENUM_MUI equ 0002h +RESOURCE_ENUM_MUI_SYSTEM equ 0004h +RESOURCE_UPDATE_LN equ 0010h +RESOURCE_UPDATE_MUI equ 0020h +RESTART_MAX_CMD_LINE equ 2048 +RESTART_NO_CRASH equ 1 +RESTART_NO_HANG equ 2 +RESTART_NO_PATCH equ 4 +RESTART_NO_REBOOT equ 8 +RECOVERY_DEFAULT_PING_INTERVAL equ 5000 +SYMBOLIC_LINK_FLAG_DIRECTORY equ 1h + +;;;; end winbase + +;;;; equates + +TRUE equ 1 +FALSE equ 0 +NULL equ 0 +Normal equ 000000h +ReadOnly equ 000001h +Hidden equ 000010h +System equ 000100h +vLabel equ 001000h +SubDir equ 010000h +Archive equ 100000h +Black equ 000000h +Blue equ 0FF0000h +Green equ 00FF00h +Cyan equ 0FFFF00h +Red equ 0000FFh +Magenta equ 0FF00FFh +Yellow equ 00FFFFh +White equ 0FFFFFFh +Gray equ 080808h +MAXIMUM_SUPPORTED_EXTENSION equ 512 +ANYSIZE_ARRAY equ 1 +INVALID_HANDLE_VALUE equ -1 +DELETE equ 10000h +READ_CONTROL equ 20000h +WRITE_DAC equ 40000h +WRITE_OWNER equ 80000h +SYNCHRONIZE equ 100000h +STANDARD_RIGHTS_READ equ READ_CONTROL +STANDARD_RIGHTS_WRITE equ READ_CONTROL +STANDARD_RIGHTS_EXECUTE equ READ_CONTROL +STANDARD_RIGHTS_REQUIRED equ 0F0000h +STANDARD_RIGHTS_ALL equ 1F0000h +SPECIFIC_RIGHTS_ALL equ 0FFFFh +SID_REVISION equ 1 +SID_MAX_SUB_AUTHORITIES equ 15 +SID_RECOMMENDED_SUB_AUTHORITIES equ 1 +SidTypeUser equ 1 +SidTypeGroup equ 2 +SidTypeDomain equ 3 +SidTypeAlias equ 4 +SidTypeWellKnownGroup equ 5 +SidTypeDeletedAccount equ 6 +SidTypeInvalid equ 7 +SidTypeUnknown equ 8 +SECURITY_NULL_RID equ 0h +SECURITY_WORLD_RID equ 0h +SECURITY_LOCAL_RID equ 0h +SECURITY_CREATOR_OWNER_RID equ 0h +SECURITY_CREATOR_GROUP_RID equ 1h +SECURITY_DIALUP_RID equ 1h +SECURITY_NETWORK_RID equ 2h +SECURITY_BATCH_RID equ 3h +SECURITY_INTERACTIVE_RID equ 4h +SECURITY_SERVICE_RID equ 6h +SECURITY_ANONYMOUS_LOGON_RID equ 7h +SECURITY_LOGON_IDS_RID equ 5h +SECURITY_LOCAL_SYSTEM_RID equ 12h +SECURITY_NT_NON_UNIQUE equ 15h +SECURITY_BUILTIN_DOMAIN_RID equ 20h +DOMAIN_USER_RID_ADMIN equ 1F4h +DOMAIN_USER_RID_GUEST equ 1F5h +DOMAIN_GROUP_RID_ADMINS equ 200h +DOMAIN_GROUP_RID_USERS equ 201h +DOMAIN_GROUP_RID_GUESTS equ 202h +DOMAIN_ALIAS_RID_ADMINS equ 220h +DOMAIN_ALIAS_RID_USERS equ 221h +DOMAIN_ALIAS_RID_GUESTS equ 222h +DOMAIN_ALIAS_RID_POWER_USERS equ 223h +DOMAIN_ALIAS_RID_ACCOUNT_OPS equ 224h +DOMAIN_ALIAS_RID_SYSTEM_OPS equ 225h +DOMAIN_ALIAS_RID_PRINT_OPS equ 226h +DOMAIN_ALIAS_RID_BACKUP_OPS equ 227h +DOMAIN_ALIAS_RID_REPLICATOR equ 228h +SE_GROUP_MANDATORY equ 1h +SE_GROUP_ENABLED_BY_DEFAULT equ 2h +SE_GROUP_ENABLED equ 4h +SE_GROUP_OWNER equ 8h +SE_GROUP_LOGON_ID equ 0C0000000h +FILE_BEGIN equ 0 +FILE_CURRENT equ 1 +FILE_END equ 2 +FILE_FLAG_WRITE_THROUGH equ 80000000h +FILE_FLAG_OVERLAPPED equ 40000000h +FILE_FLAG_NO_BUFFERING equ 20000000h +FILE_FLAG_RANDOM_ACCESS equ 10000000h +FILE_FLAG_SEQUENTIAL_SCAN equ 8000000h +FILE_FLAG_DELETE_ON_CLOSE equ 4000000h +FILE_FLAG_BACKUP_SEMANTICS equ 2000000h +FILE_FLAG_POSIX_SEMANTICS equ 1000000h +CREATE_NEW equ 1 +CREATE_ALWAYS equ 2 +OPEN_EXISTING equ 3 +OPEN_ALWAYS equ 4 +TRUNCATE_EXISTING equ 5 +PIPE_ACCESS_INBOUND equ 1h +PIPE_ACCESS_OUTBOUND equ 2h +PIPE_ACCESS_DUPLEX equ 3h +PIPE_CLIENT_END equ 0h +PIPE_SERVER_END equ 1h +PIPE_WAIT equ 0h +PIPE_NOWAIT equ 1h +PIPE_READMODE_BYTE equ 0h +PIPE_READMODE_MESSAGE equ 2h +PIPE_TYPE_BYTE equ 0h +PIPE_TYPE_MESSAGE equ 4h +PIPE_UNLIMITED_INSTANCES equ 255 +SECURITY_CONTEXT_TRACKING equ 40000h +SECURITY_EFFECTIVE_ONLY equ 80000h +SECURITY_SQOS_PRESENT equ 100000h +SECURITY_VALID_SQOS_FLAGS equ 1F0000h +SP_SERIALCOMM equ 1h +PST_UNSPECIFIED equ 0h +PST_RS232 equ 1h +PST_PARALLELPORT equ 2h +PST_RS422 equ 3h +PST_RS423 equ 4h +PST_RS449 equ 5h +PST_FAX equ 21h +PST_SCANNER equ 22h +PST_NETWORK_BRIDGE equ 100h +PST_LAT equ 101h +PST_TCPIP_TELNET equ 102h +PST_X25 equ 103h +PCF_DTRDSR equ 1h +PCF_RTSCTS equ 2h +PCF_RLSD equ 4h +PCF_PARITY_CHECK equ 8h +PCF_XONXOFF equ 10h +PCF_SETXCHAR equ 20h +PCF_TOTALTIMEOUTS equ 40h +PCF_INTTIMEOUTS equ 80h +PCF_SPECIALCHARS equ 100h +PCF_16BITMODE equ 200h +DLL_PROCESS_DETACH equ 0 +DLL_PROCESS_ATTACH equ 1 +DLL_THREAD_ATTACH equ 2 +DLL_THREAD_DETACH equ 3 +SP_PARITY equ 1h +SP_BAUD equ 2h +SP_DATABITS equ 4h +SP_STOPBITS equ 8h +SP_HANDSHAKING equ 10h +SP_PARITY_CHECK equ 20h +SP_RLSD equ 40h +BAUD_075 equ 1h +BAUD_110 equ 2h +BAUD_134_5 equ 4h +BAUD_150 equ 8h +BAUD_300 equ 10h +BAUD_600 equ 20h +BAUD_1200 equ 40h +BAUD_1800 equ 80h +BAUD_2400 equ 100h +BAUD_4800 equ 200h +BAUD_7200 equ 400h +BAUD_9600 equ 800h +BAUD_14400 equ 1000h +BAUD_19200 equ 2000h +BAUD_38400 equ 4000h +BAUD_56K equ 8000h +BAUD_128K equ 10000h +BAUD_115200 equ 20000h +BAUD_57600 equ 40000h +BAUD_USER equ 10000000h +DATABITS_5 equ 1h +DATABITS_6 equ 2h +DATABITS_7 equ 4h +DATABITS_8 equ 8h +DATABITS_16 equ 10h +DATABITS_16X equ 20h +STOPBITS_10 equ 1h +STOPBITS_15 equ 2h +STOPBITS_20 equ 4h +PARITY_NONE equ 100h +PARITY_ODD equ 200h +PARITY_EVEN equ 400h +PARITY_MARK equ 800h +PARITY_SPACE equ 1000h +DTR_CONTROL_DISABLE equ 0h +DTR_CONTROL_ENABLE equ 1h +DTR_CONTROL_HANDSHAKE equ 2h +RTS_CONTROL_DISABLE equ 0h +RTS_CONTROL_ENABLE equ 1h +RTS_CONTROL_HANDSHAKE equ 2h +RTS_CONTROL_TOGGLE equ 3h +GMEM_FIXED equ 0h +GMEM_MOVEABLE equ 2h +GMEM_NOCOMPACT equ 10h +GMEM_NODISCARD equ 20h +GMEM_ZEROINIT equ 40h +GMEM_MODIFY equ 80h +GMEM_DISCARDABLE equ 100h +GMEM_NOT_BANKED equ 1000h +GMEM_SHARE equ 2000h +GMEM_DDESHARE equ 2000h +GMEM_NOTIFY equ 4000h +GMEM_LOWER equ GMEM_NOT_BANKED +GMEM_VALID_FLAGS equ 7F72h +GMEM_INVALID_HANDLE equ 8000h +GMEM_DISCARDED equ 4000h +GMEM_LOCKCOUNT equ 0FFh +GHND equ GMEM_MOVEABLE OR GMEM_ZEROINIT +GPTR equ GMEM_FIXED OR GMEM_ZEROINIT +LMEM_FIXED equ 0h +LMEM_MOVEABLE equ 2h +LMEM_NOCOMPACT equ 10h +LMEM_NODISCARD equ 20h +LMEM_ZEROINIT equ 40h +LMEM_MODIFY equ 80h +LMEM_DISCARDABLE equ 0F00h +LMEM_VALID_FLAGS equ 0F72h +LMEM_INVALID_HANDLE equ 8000h +LHND equ LMEM_MOVEABLE + LMEM_ZEROINIT +LPTR equ LMEM_FIXED + LMEM_ZEROINIT +NONZEROLHND equ LMEM_MOVEABLE +NONZEROLPTR equ LMEM_FIXED +LMEM_DISCARDED equ 4000h +LMEM_LOCKCOUNT equ 0FFh +DEBUG_PROCESS equ 1h +DEBUG_ONLY_THIS_PROCESS equ 2h +CREATE_SUSPENDED equ 4h +CREATE_SEPARATE_WOW_VDM equ 800h +DETACHED_PROCESS equ 8h +CREATE_NEW_CONSOLE equ 10h +NORMAL_PRIORITY_CLASS equ 20h +IDLE_PRIORITY_CLASS equ 40h +HIGH_PRIORITY_CLASS equ 80h +REALTIME_PRIORITY_CLASS equ 100h +CREATE_NEW_PROCESS_GROUP equ 200h +CREATE_NO_WINDOW equ 8000000h +PROFILE_USER equ 10000000h +PROFILE_KERNEL equ 20000000h +PROFILE_SERVER equ 40000000h +MAXLONG equ 7FFFFFFFh +THREAD_BASE_PRIORITY_MIN equ -2 +THREAD_BASE_PRIORITY_MAX equ 2 +THREAD_BASE_PRIORITY_LOWRT equ 15 +THREAD_BASE_PRIORITY_IDLE equ -15 +THREAD_PRIORITY_LOWEST equ THREAD_BASE_PRIORITY_MIN +THREAD_PRIORITY_BELOW_NORMAL equ THREAD_PRIORITY_LOWEST + 1 +THREAD_PRIORITY_NORMAL equ 0 +THREAD_PRIORITY_HIGHEST equ THREAD_BASE_PRIORITY_MAX +THREAD_PRIORITY_ABOVE_NORMAL equ THREAD_PRIORITY_HIGHEST - 1 +THREAD_PRIORITY_ERROR_RETURN equ MAXLONG +THREAD_PRIORITY_TIME_CRITICAL equ THREAD_BASE_PRIORITY_LOWRT +THREAD_PRIORITY_IDLE equ THREAD_BASE_PRIORITY_IDLE +APPLICATION_ERROR_MASK equ 20000000h +ERROR_SEVERITY_SUCCESS equ 0h +ERROR_SEVERITY_INFORMATIONAL equ 40000000h +ERROR_SEVERITY_WARNING equ 80000000h +ERROR_SEVERITY_ERROR equ 0C0000000h +MINCHAR equ 80h +MAXCHAR equ 7Fh +MINSHORT equ 8000h +MAXSHORT equ 7FFFh +MINLONG equ 80000000h +MAXBYTE equ 0FFh +MAXWORD equ 0FFFFh +MAXDWORD equ 0FFFFFFFFh +LANG_NEUTRAL equ 0h +LANG_BULGARIAN equ 2h +LANG_CHINESE equ 4h +LANG_CROATIAN equ 1Ah +LANG_CZECH equ 5h +LANG_DANISH equ 6h +LANG_DUTCH equ 13h +LANG_ENGLISH equ 9h +LANG_FINNISH equ 0Bh +LANG_FRENCH equ 0Ch +LANG_GERMAN equ 7h +LANG_GREEK equ 8h +LANG_HUNGARIAN equ 0Eh +LANG_ICELANDIC equ 0Fh +LANG_ITALIAN equ 10h +LANG_JAPANESE equ 11h +LANG_KOREAN equ 12h +LANG_NORWEGIAN equ 14h +LANG_POLISH equ 15h +LANG_PORTUGUESE equ 16h +LANG_ROMANIAN equ 18h +LANG_RUSSIAN equ 19h +LANG_SLOVAK equ 1Bh +LANG_SLOVENIAN equ 24h +LANG_SPANISH equ 0Ah +LANG_SWEDISH equ 1Dh +LANG_TURKISH equ 1Fh +SUBLANG_NEUTRAL equ 0h +SUBLANG_DEFAULT equ 1h +SUBLANG_SYS_DEFAULT equ 2h +SUBLANG_CHINESE_TRADITIONAL equ 1h +SUBLANG_CHINESE_SIMPLIFIED equ 2h +SUBLANG_CHINESE_HONGKONG equ 3h +SUBLANG_CHINESE_SINGAPORE equ 4h +SUBLANG_DUTCH equ 1h +SUBLANG_DUTCH_BELGIAN equ 2h +SUBLANG_ENGLISH_US equ 1h +SUBLANG_ENGLISH_UK equ 2h +SUBLANG_ENGLISH_AUS equ 3h +SUBLANG_ENGLISH_CAN equ 4h +SUBLANG_ENGLISH_NZ equ 5h +SUBLANG_ENGLISH_EIRE equ 6h +SUBLANG_FRENCH equ 1h +SUBLANG_FRENCH_BELGIAN equ 2h +SUBLANG_FRENCH_CANADIAN equ 3h +SUBLANG_FRENCH_SWISS equ 4h +SUBLANG_GERMAN equ 1h +SUBLANG_GERMAN_SWISS equ 2h +SUBLANG_GERMAN_AUSTRIAN equ 3h +SUBLANG_ITALIAN equ 1h +SUBLANG_ITALIAN_SWISS equ 2h +SUBLANG_NORWEGIAN_BOKMAL equ 1h +SUBLANG_NORWEGIAN_NYNORSK equ 2h +SUBLANG_PORTUGUESE equ 2h +SUBLANG_PORTUGUESE_BRAZILIAN equ 1h +SUBLANG_SPANISH equ 1h +SUBLANG_SPANISH_MEXICAN equ 2h +SUBLANG_SPANISH_MODERN equ 3h +SORT_DEFAULT equ 0h +SORT_JAPANESE_XJIS equ 0h +SORT_JAPANESE_UNICODE equ 1h +SORT_CHINESE_BIG5 equ 0h +SORT_CHINESE_UNICODE equ 1h +SORT_KOREAN_KSC equ 0h +SORT_KOREAN_UNICODE equ 1h +FILE_READ_DATA equ 1h +FILE_LIST_DIRECTORY equ 1h +FILE_WRITE_DATA equ 2h +FILE_ADD_FILE equ 2h +FILE_APPEND_DATA equ 4h +FILE_ADD_SUBDIRECTORY equ 4h +FILE_CREATE_PIPE_INSTANCE equ 4h +FILE_READ_EA equ 8h +FILE_READ_PROPERTIES equ FILE_READ_EA +FILE_WRITE_EA equ 10h +FILE_WRITE_PROPERTIES equ FILE_WRITE_EA +FILE_EXECUTE equ 20h +FILE_TRAVERSE equ 20h +FILE_DELETE_CHILD equ 40h +FILE_READ_ATTRIBUTES equ 80h +FILE_WRITE_ATTRIBUTES equ 100h +FILE_ALL_ACCESS equ STANDARD_RIGHTS_REQUIRED OR SYNCHRONIZE OR 1FFh +FILE_SHARE_READ equ 1h +FILE_SHARE_WRITE equ 2h +FILE_ATTRIBUTE_READONLY equ 1h +FILE_ATTRIBUTE_HIDDEN equ 2h +FILE_ATTRIBUTE_SYSTEM equ 4h +FILE_ATTRIBUTE_DIRECTORY equ 10h +FILE_ATTRIBUTE_ARCHIVE equ 20h +FILE_ATTRIBUTE_NORMAL equ 80h +FILE_ATTRIBUTE_TEMPORARY equ 100h +FILE_ATTRIBUTE_COMPRESSED equ 800h +FILE_NOTIFY_CHANGE_FILE_NAME equ 1h +FILE_NOTIFY_CHANGE_DIR_NAME equ 2h +FILE_NOTIFY_CHANGE_ATTRIBUTES equ 4h +FILE_NOTIFY_CHANGE_SIZE equ 8h +FILE_NOTIFY_CHANGE_LAST_WRITE equ 10h +FILE_NOTIFY_CHANGE_SECURITY equ 100h +MAILSLOT_NO_MESSAGE equ -1 +MAILSLOT_WAIT_FOREVER equ -1 +FILE_CASE_SENSITIVE_SEARCH equ 1h +FILE_CASE_PRESERVED_NAMES equ 2h +FILE_UNICODE_ON_DISK equ 4h +FILE_PERSISTENT_ACLS equ 8h +FILE_FILE_COMPRESSION equ 10h +FILE_VOLUME_IS_COMPRESSED equ 8000h +IO_COMPLETION_MODIFY_STATE equ 2h +IO_COMPLETION_ALL_ACCESS equ STANDARD_RIGHTS_REQUIRED OR SYNCHRONIZE OR 3h +DUPLICATE_CLOSE_SOURCE equ 1h +DUPLICATE_SAME_ACCESS equ 2h +ACCESS_SYSTEM_SECURITY equ 1000000h +MAXIMUM_ALLOWED equ 2000000h +GENERIC_READ equ 80000000h +GENERIC_WRITE equ 40000000h +GENERIC_EXECUTE equ 20000000h +GENERIC_ALL equ 10000000h +ACL_REVISION equ 2 +ACL_REVISION1 equ 1 +ACL_REVISION2 equ 2 +ACCESS_ALLOWED_ACE_TYPE equ 0h +ACCESS_DENIED_ACE_TYPE equ 1h +SYSTEM_AUDIT_ACE_TYPE equ 2h +SYSTEM_ALARM_ACE_TYPE equ 3h +HELPINFO_WINDOW equ 1 +HELPINFO_MENUITEM equ 2 +OBJECT_INHERIT_ACE equ 1h +CONTAINER_INHERIT_ACE equ 2h +NO_PROPAGATE_INHERIT_ACE equ 4h +INHERIT_ONLY_ACE equ 8h +VALID_INHERIT_FLAGS equ 0Fh +SUCCESSFUL_ACCESS_ACE_FLAG equ 40h +FAILED_ACCESS_ACE_FLAG equ 80h +AclRevisionInformation equ 1 +AclSizeInformation equ 2 +SECURITY_DESCRIPTOR_REVISION equ 1 +SECURITY_DESCRIPTOR_REVISION1 equ 1 +SECURITY_DESCRIPTOR_MIN_LENGTH equ 20 +SE_OWNER_DEFAULTED equ 1h +SE_GROUP_DEFAULTED equ 2h +SE_DACL_PRESENT equ 4h +SE_DACL_DEFAULTED equ 8h +SE_SACL_PRESENT equ 10h +SE_SACL_DEFAULTED equ 20h +SE_SELF_RELATIVE equ 8000h +SE_PRIVILEGE_ENABLED_BY_DEFAULT equ 1h +SE_PRIVILEGE_ENABLED equ 2h +SE_PRIVILEGE_USED_FOR_ACCESS equ 80000000h +PRIVILEGE_SET_ALL_NECESSARY equ 1 +SecurityAnonymous equ 1 +SecurityIdentification equ 2 +REG_OPTION_RESERVED equ 0 +REG_OPTION_NON_VOLATILE equ 0 +REG_OPTION_VOLATILE equ 1 +REG_OPTION_CREATE_LINK equ 2 +REG_OPTION_BACKUP_RESTORE equ 4 +REG_NONE equ 0 +REG_SZ equ 1 +REG_EXPAND_SZ equ 2 +REG_BINARY equ 3 +REG_DWORD equ 4 +REG_DWORD_LITTLE_ENDIAN equ 4 +REG_DWORD_BIG_ENDIAN equ 5 +REG_LINK equ 6 +REG_MULTI_SZ equ 7 +REG_RESOURCE_LIST equ 8 +REG_FULL_RESOURCE_DESCRIPTOR equ 9 +REG_RESOURCE_REQUIREMENTS_LIST equ 10 +REG_CREATED_NEW_KEY equ 1h +REG_OPENED_EXISTING_KEY equ 2h +REG_WHOLE_HIVE_VOLATILE equ 1h +REG_REFRESH_HIVE equ 2h +REG_NOTIFY_CHANGE_NAME equ 1h +REG_NOTIFY_CHANGE_ATTRIBUTES equ 2h +REG_NOTIFY_CHANGE_LAST_SET equ 4h +REG_NOTIFY_CHANGE_SECURITY equ 8h +REG_LEGAL_CHANGE_FILTER equ REG_NOTIFY_CHANGE_NAME OR REG_NOTIFY_CHANGE_ATTRIBUTES OR REG_NOTIFY_CHANGE_LAST_SET OR REG_NOTIFY_CHANGE_SECURITY +REG_LEGAL_OPTION equ REG_OPTION_RESERVED OR REG_OPTION_NON_VOLATILE OR REG_OPTION_VOLATILE OR REG_OPTION_CREATE_LINK OR REG_OPTION_BACKUP_RESTORE +KEY_QUERY_VALUE equ 1h +KEY_SET_VALUE equ 2h +KEY_CREATE_SUB_KEY equ 4h +KEY_ENUMERATE_SUB_KEYS equ 8h +KEY_NOTIFY equ 10h +KEY_CREATE_LINK equ 20h +KEY_READ equ (STANDARD_RIGHTS_READ OR KEY_QUERY_VALUE OR KEY_ENUMERATE_SUB_KEYS OR KEY_NOTIFY) AND NOT SYNCHRONIZE +KEY_WRITE equ (STANDARD_RIGHTS_WRITE OR KEY_SET_VALUE OR KEY_CREATE_SUB_KEY) AND NOT SYNCHRONIZE +KEY_EXECUTE equ KEY_READ +KEY_ALL_ACCESS equ (STANDARD_RIGHTS_ALL OR KEY_QUERY_VALUE OR KEY_SET_VALUE OR KEY_CREATE_SUB_KEY OR KEY_ENUMERATE_SUB_KEYS OR KEY_NOTIFY OR KEY_CREATE_LINK) AND NOT SYNCHRONIZE +EXCEPTION_DEBUG_EVENT equ 1 +CREATE_THREAD_DEBUG_EVENT equ 2 +CREATE_PROCESS_DEBUG_EVENT equ 3 +EXIT_THREAD_DEBUG_EVENT equ 4 +EXIT_PROCESS_DEBUG_EVENT equ 5 +LOAD_DLL_DEBUG_EVENT equ 6 +UNLOAD_DLL_DEBUG_EVENT equ 7 +OUTPUT_DEBUG_STRING_EVENT equ 8 +RIP_EVENT equ 9 +EXCEPTION_MAXIMUM_PARAMETERS equ 15 +DRIVE_REMOVABLE equ 2 +DRIVE_FIXED equ 3 +DRIVE_REMOTE equ 4 +DRIVE_CDROM equ 5 +DRIVE_RAMDISK equ 6 +FILE_TYPE_UNKNOWN equ 0h +FILE_TYPE_DISK equ 1h +FILE_TYPE_CHAR equ 2h +FILE_TYPE_PIPE equ 3h +FILE_TYPE_REMOTE equ 8000h +STD_INPUT_HANDLE equ -10 +STD_OUTPUT_HANDLE equ -11 +STD_ERROR_HANDLE equ -12 +NOPARITY equ 0 +ODDPARITY equ 1 +EVENPARITY equ 2 +MARKPARITY equ 3 +SPACEPARITY equ 4 +ONESTOPBIT equ 0 +ONE5STOPBITS equ 1 +TWOSTOPBITS equ 2 +IGNORE equ 0 +INFINITE equ -1 +CBR_110 equ 110 +CBR_300 equ 300 +CBR_600 equ 600 +CBR_1200 equ 1200 +CBR_2400 equ 2400 +CBR_4800 equ 4800 +CBR_9600 equ 9600 +CBR_14400 equ 14400 +CBR_19200 equ 19200 +CBR_38400 equ 38400 +CBR_56000 equ 56000 +CBR_57600 equ 57600 +CBR_115200 equ 115200 +CBR_128000 equ 128000 +CBR_256000 equ 256000 +CE_RXOVER equ 1h +CE_OVERRUN equ 2h +CE_RXPARITY equ 4h +CE_FRAME equ 8h +CE_BREAK equ 10h +CE_TXFULL equ 100h +CE_PTO equ 200h +CE_IOE equ 400h +CE_DNS equ 800h +CE_OOP equ 1000h +CE_MODE equ 8000h +IE_BADID equ -1 +IE_OPEN equ -2 +IE_NOPEN equ -3 +IE_MEMORY equ -4 +IE_DEFAULT equ -5 +IE_HARDWARE equ -10 +IE_BYTESIZE equ -11 +IE_BAUDRATE equ -12 +EV_RXCHAR equ 1h +EV_RXFLAG equ 2h +EV_TXEMPTY equ 4h +EV_CTS equ 8h +EV_DSR equ 10h +EV_RLSD equ 20h +EV_BREAK equ 40h +EV_ERR equ 80h +EV_RING equ 100h +EV_PERR equ 200h +EV_RX80FULL equ 400h +EV_EVENT1 equ 800h +EV_EVENT2 equ 1000h +SETXOFF equ 1 +SETXON equ 2 +SETRTS equ 3 +CLRRTS equ 4 +SETDTR equ 5 +CLRDTR equ 6 +RESETDEV equ 7 +SETBREAK equ 8 +CLRBREAK equ 9 +PURGE_TXABORT equ 1h +PURGE_RXABORT equ 2h +PURGE_TXCLEAR equ 4h +PURGE_RXCLEAR equ 8h +LPTx equ 80h +MS_CTS_ON equ 10h +MS_DSR_ON equ 20h +MS_RING_ON equ 40h +MS_RLSD_ON equ 80h +S_QUEUEEMPTY equ 0 +S_THRESHOLD equ 1 +S_ALLTHRESHOLD equ 2 +S_NORMAL equ 0 +S_LEGATO equ 1 +S_STACCATO equ 2 +S_PERIOD512 equ 0 +S_PERIOD1024 equ 1 +S_PERIOD2048 equ 2 +S_PERIODVOICE equ 3 +S_WHITE512 equ 4 +S_WHITE1024 equ 5 +S_WHITE2048 equ 6 +S_WHITEVOICE equ 7 +S_SERDVNA equ -1 +S_SEROFM equ -2 +S_SERMACT equ -3 +S_SERQFUL equ -4 +S_SERBDNT equ -5 +S_SERDLN equ -6 +S_SERDCC equ -7 +S_SERDTP equ -8 +S_SERDVL equ -9 +S_SERDMD equ -10 +S_SERDSH equ -11 +S_SERDPT equ -12 +S_SERDFQ equ -13 +S_SERDDR equ -14 +S_SERDSR equ -15 +S_SERDST equ -16 +NMPWAIT_WAIT_FOREVER equ 0FFFFh +NMPWAIT_NOWAIT equ 1h +NMPWAIT_USE_DEFAULT_WAIT equ 0h +FS_CASE_IS_PRESERVED equ FILE_CASE_PRESERVED_NAMES +FS_CASE_SENSITIVE equ FILE_CASE_SENSITIVE_SEARCH +FS_UNICODE_STORED_ON_DISK equ FILE_UNICODE_ON_DISK +FS_PERSISTENT_ACLS equ FILE_PERSISTENT_ACLS +SECTION_QUERY equ 1h +SECTION_MAP_WRITE equ 2h +SECTION_MAP_READ equ 4h +SECTION_MAP_EXECUTE equ 8h +SECTION_EXTEND_SIZE equ 10h +FILE_MAP_COPY equ SECTION_QUERY +FILE_MAP_WRITE equ SECTION_MAP_WRITE +FILE_MAP_READ equ SECTION_MAP_READ +FILE_MAP_ALL_ACCESS equ SECTION_ALL_ACCESS +OF_READ equ 0h +OF_WRITE equ 1h +OF_READWRITE equ 2h +OF_SHARE_COMPAT equ 0h +OF_SHARE_EXCLUSIVE equ 10h +OF_SHARE_DENY_WRITE equ 20h +OF_SHARE_DENY_READ equ 30h +OF_SHARE_DENY_NONE equ 40h +OF_PARSE equ 100h +OF_DELETE equ 200h +OF_VERIFY equ 400h +OF_CANCEL equ 800h +OF_CREATE equ 1000h +OF_PROMPT equ 2000h +OF_EXIST equ 4000h +OF_REOPEN equ 8000h +OFS_MAXPATHNAME equ 128 +DONT_RESOLVE_DLL_REFERENCES equ 1h +TC_NORMAL equ 0 +TC_HARDERR equ 1 +TC_GP_TRAP equ 2 +TC_SIGNAL equ 3 +MAX_LEADBYTES equ 12 +MB_PRECOMPOSED equ 1h +MB_COMPOSITE equ 2h +MB_USEGLYPHCHARS equ 4h +WC_DEFAULTCHECK equ 100h +WC_COMPOSITECHECK equ 200h +WC_DISCARDNS equ 10h +WC_SEPCHARS equ 20h +WC_DEFAULTCHAR equ 40h +CT_CTYPE1 equ 1h +CT_CTYPE2 equ 2h +CT_CTYPE3 equ 4h +C1_UPPER equ 1h +C1_LOWER equ 2h +C1_DIGIT equ 4h +C1_SPACE equ 8h +C1_PUNCT equ 10h +C1_CNTRL equ 20h +C1_BLANK equ 40h +C1_XDIGIT equ 80h +C1_ALPHA equ 100h +C2_LEFTTORIGHT equ 1h +C2_RIGHTTOLEFT equ 2h +C2_EUROPENUMBER equ 3h +C2_EUROPESEPARATOR equ 4h +C2_EUROPETERMINATOR equ 5h +C2_ARABICNUMBER equ 6h +C2_COMMONSEPARATOR equ 7h +C2_BLOCKSEPARATOR equ 8h +C2_SEGMENTSEPARATOR equ 9h +C2_WHITESPACE equ 0Ah +C2_OTHERNEUTRAL equ 0Bh +C2_NOTAPPLICABLE equ 0h +C3_NONSPACING equ 1h +C3_DIACRITIC equ 2h +C3_VOWELMARK equ 4h +C3_SYMBOL equ 8h +C3_NOTAPPLICABLE equ 0h +NORM_IGNORECASE equ 1h +NORM_IGNORENONSPACE equ 2h +NORM_IGNORESYMBOLS equ 4h +MAP_FOLDCZONE equ 10h +MAP_PRECOMPOSED equ 20h +MAP_COMPOSITE equ 40h +MAP_FOLDDIGITS equ 80h +LCMAP_LOWERCASE equ 100h +LCMAP_UPPERCASE equ 200h +LCMAP_SORTKEY equ 400h +LCMAP_BYTEREV equ 800h +SORT_STRINGSORT equ 1000h +CP_ACP equ 0 +CP_OEMCP equ 1 +CP_UTF8 equ 65001 +CTRY_DEFAULT equ 0 +CTRY_AUSTRALIA equ 61 +CTRY_AUSTRIA equ 43 +CTRY_BELGIUM equ 32 +CTRY_BRAZIL equ 55 +CTRY_CANADA equ 2 +CTRY_DENMARK equ 45 +CTRY_FINLAND equ 358 +CTRY_FRANCE equ 33 +CTRY_GERMANY equ 49 +CTRY_ICELAND equ 354 +CTRY_IRELAND equ 353 +CTRY_ITALY equ 39 +CTRY_JAPAN equ 81 +CTRY_MEXICO equ 52 +CTRY_NETHERLANDS equ 31 +CTRY_NEW_ZEALAND equ 64 +CTRY_NORWAY equ 47 +CTRY_PORTUGAL equ 351 +CTRY_PRCHINA equ 86 +CTRY_SOUTH_KOREA equ 82 +CTRY_SPAIN equ 34 +CTRY_SWEDEN equ 46 +CTRY_SWITZERLAND equ 41 +CTRY_TAIWAN equ 886 +CTRY_UNITED_KINGDOM equ 44 +CTRY_UNITED_STATES equ 1 +LOCALE_NOUSEROVERRIDE equ 80000000h +LOCALE_USER_DEFAULT equ 0400h +LOCALE_ILANGUAGE equ 1h +LOCALE_SLANGUAGE equ 2h +LOCALE_SENGLANGUAGE equ 1001h +LOCALE_SABBREVLANGNAME equ 3h +LOCALE_SNATIVELANGNAME equ 4h +LOCALE_ICOUNTRY equ 5h +LOCALE_SCOUNTRY equ 6h +LOCALE_SENGCOUNTRY equ 1002h +LOCALE_SABBREVCTRYNAME equ 7h +LOCALE_SNATIVECTRYNAME equ 8h +LOCALE_IDEFAULTLANGUAGE equ 9h +LOCALE_IDEFAULTCOUNTRY equ 0Ah +LOCALE_IDEFAULTCODEPAGE equ 0Bh +LOCALE_SLIST equ 0Ch +LOCALE_IMEASURE equ 0Dh +LOCALE_SDECIMAL equ 0Eh +LOCALE_STHOUSAND equ 0Fh +LOCALE_SGROUPING equ 10h +LOCALE_IDIGITS equ 11h +LOCALE_ILZERO equ 12h +LOCALE_SNATIVEDIGITS equ 13h +LOCALE_SCURRENCY equ 14h +LOCALE_SINTLSYMBOL equ 15h +LOCALE_SMONDECIMALSEP equ 16h +LOCALE_SMONTHOUSANDSEP equ 17h +LOCALE_SMONGROUPING equ 18h +LOCALE_ICURRDIGITS equ 19h +LOCALE_IINTLCURRDIGITS equ 1Ah +LOCALE_ICURRENCY equ 1Bh +LOCALE_INEGCURR equ 1Ch +LOCALE_SDATE equ 1Dh +LOCALE_STIME equ 1Eh +LOCALE_SSHORTDATE equ 1Fh +LOCALE_SLONGDATE equ 20h +LOCALE_STIMEFORMAT equ 1003h +LOCALE_IDATE equ 21h +LOCALE_ILDATE equ 22h +LOCALE_ITIME equ 23h +LOCALE_ICENTURY equ 24h +LOCALE_ITLZERO equ 25h +LOCALE_IDAYLZERO equ 26h +LOCALE_IMONLZERO equ 27h +LOCALE_S1159 equ 28h +LOCALE_S2359 equ 29h +LOCALE_SDAYNAME1 equ 2Ah +LOCALE_SDAYNAME2 equ 2Bh +LOCALE_SDAYNAME3 equ 2Ch +LOCALE_SDAYNAME4 equ 2Dh +LOCALE_SDAYNAME5 equ 2Eh +LOCALE_SDAYNAME6 equ 2Fh +LOCALE_SDAYNAME7 equ 30h +LOCALE_SABBREVDAYNAME1 equ 31h +LOCALE_SABBREVDAYNAME2 equ 32h +LOCALE_SABBREVDAYNAME3 equ 33h +LOCALE_SABBREVDAYNAME4 equ 34h +LOCALE_SABBREVDAYNAME5 equ 35h +LOCALE_SABBREVDAYNAME6 equ 36h +LOCALE_SABBREVDAYNAME7 equ 37h +LOCALE_SMONTHNAME1 equ 38h +LOCALE_SMONTHNAME2 equ 39h +LOCALE_SMONTHNAME3 equ 3Ah +LOCALE_SMONTHNAME4 equ 3Bh +LOCALE_SMONTHNAME5 equ 3Ch +LOCALE_SMONTHNAME6 equ 3Dh +LOCALE_SMONTHNAME7 equ 3Eh +LOCALE_SMONTHNAME8 equ 3Fh +LOCALE_SMONTHNAME9 equ 40h +LOCALE_SMONTHNAME10 equ 41h +LOCALE_SMONTHNAME11 equ 42h +LOCALE_SMONTHNAME12 equ 43h +LOCALE_SABBREVMONTHNAME1 equ 44h +LOCALE_SABBREVMONTHNAME2 equ 45h +LOCALE_SABBREVMONTHNAME3 equ 46h +LOCALE_SABBREVMONTHNAME4 equ 47h +LOCALE_SABBREVMONTHNAME5 equ 48h +LOCALE_SABBREVMONTHNAME6 equ 49h +LOCALE_SABBREVMONTHNAME7 equ 4Ah +LOCALE_SABBREVMONTHNAME8 equ 4Bh +LOCALE_SABBREVMONTHNAME9 equ 4Ch +LOCALE_SABBREVMONTHNAME10 equ 4Dh +LOCALE_SABBREVMONTHNAME11 equ 4Eh +LOCALE_SABBREVMONTHNAME12 equ 4Fh +LOCALE_SABBREVMONTHNAME13 equ 100Fh +LOCALE_SPOSITIVESIGN equ 50h +LOCALE_SNEGATIVESIGN equ 51h +LOCALE_IPOSSIGNPOSN equ 52h +LOCALE_INEGSIGNPOSN equ 53h +LOCALE_IPOSSYMPRECEDES equ 54h +LOCALE_IPOSSEPBYSPACE equ 55h +LOCALE_INEGSYMPRECEDES equ 56h +LOCALE_INEGSEPBYSPACE equ 57h +TIME_NOMINUTESORSECONDS equ 1h +TIME_NOSECONDS equ 2h +TIME_NOTIMEMARKER equ 4h +TIME_FORCE24HOURFORMAT equ 8h +DATE_SHORTDATE equ 1h +DATE_LONGDATE equ 2h +TF_FORCEDRIVE equ 80h +LOCKFILE_FAIL_IMMEDIATELY equ 1h +LOCKFILE_EXCLUSIVE_LOCK equ 2h +LNOTIFY_OUTOFMEM equ 0 +LNOTIFY_MOVE equ 1 +LNOTIFY_DISCARD equ 2 +SLE_ERROR equ 1h +SLE_MINORERROR equ 2h +SLE_WARNING equ 3h +SEM_FAILCRITICALERRORS equ 1h +SEM_NOGPFAULTERRORBOX equ 2h +SEM_NOOPENFILEERRORBOX equ 8000h +RT_CURSOR equ 1 +RT_BITMAP equ 2 +RT_ICON equ 3 +RT_MENU equ 4 +RT_DIALOG equ 5 +RT_STRING equ 6 +RT_FONTDIR equ 7 +RT_FONT equ 8 +RT_ACCELERATOR equ 9 +RT_RCDATA equ 10 +DFC_CAPTION equ 1 +DFC_MENU equ 2 +DFC_SCROLL equ 3 +DFC_BUTTON equ 4 +DFC_POPUPMENU equ 5 +DFCS_CAPTIONCLOSE equ 0000h +DFCS_CAPTIONMIN equ 0001h +DFCS_CAPTIONMAX equ 0002h +DFCS_CAPTIONRESTORE equ 0003h +DFCS_CAPTIONHELP equ 0004h +DFCS_MENUARROW equ 0000h +DFCS_MENUCHECK equ 0001h +DFCS_MENUBULLET equ 0002h +DFCS_MENUARROWRIGHT equ 0004h +DFCS_SCROLLUP equ 0000h +DFCS_SCROLLDOWN equ 0001h +DFCS_SCROLLLEFT equ 0002h +DFCS_SCROLLRIGHT equ 0003h +DFCS_SCROLLCOMBOBOX equ 0005h +DFCS_SCROLLSIZEGRIP equ 0008h +DFCS_SCROLLSIZEGRIPRIGHT equ 0010h +DFCS_BUTTONCHECK equ 0000h +DFCS_BUTTONRADIOIMAGE equ 0001h +DFCS_BUTTONRADIOMASK equ 0002h +DFCS_BUTTONRADIO equ 0004h +DFCS_BUTTON3STATE equ 0008h +DFCS_BUTTONPUSH equ 0010h +DFCS_INACTIVE equ 0100h +DFCS_PUSHED equ 0200h +DFCS_CHECKED equ 0400h +DFCS_TRANSPARENT equ 0800h +DFCS_HOT equ 1000h +DFCS_ADJUSTRECT equ 2000h +DFCS_FLAT equ 4000h +DFCS_MONO equ 8000h +DDD_RAW_TARGET_PATH equ 1h +DDD_REMOVE_DEFINITION equ 2h +DDD_EXACT_MATCH_ON_REMOVE equ 4h +MAX_PATH equ 260 +MOVEFILE_REPLACE_EXISTING equ 1h +MOVEFILE_COPY_ALLOWED equ 2h +MOVEFILE_DELAY_UNTIL_REBOOT equ 4h +TokenUser equ 1 +TokenGroups equ 2 +TokenPrivileges equ 3 +TokenOwner equ 4 +TokenPrimaryGroup equ 5 +TokenDefaultDacl equ 6 +TokenSource equ 7 +TokenType equ 8 +TokenImpersonationLevel equ 9 +TokenStatistics equ 10 +TOKEN_ADJUST_PRIVILEGES equ 20h +GET_TAPE_MEDIA_INFORMATION equ 0 +GET_TAPE_DRIVE_INFORMATION equ 1 +SET_TAPE_MEDIA_INFORMATION equ 0 +SET_TAPE_DRIVE_INFORMATION equ 1 +FORMAT_MESSAGE_ALLOCATE_BUFFER equ 100h +FORMAT_MESSAGE_IGNORE_INSERTS equ 200h +FORMAT_MESSAGE_FROM_STRING equ 400h +FORMAT_MESSAGE_FROM_HMODULE equ 800h +FORMAT_MESSAGE_FROM_SYSTEM equ 1000h +FORMAT_MESSAGE_ARGUMENT_ARRAY equ 2000h +FORMAT_MESSAGE_MAX_WIDTH_MASK equ 0FFh +TLS_OUT_OF_INDEXES equ 0FFFFh +BACKUP_DATA equ 1h +BACKUP_EA_DATA equ 2h +BACKUP_SECURITY_DATA equ 3h +BACKUP_ALTERNATE_DATA equ 4h +BACKUP_LINK equ 5h +STREAM_MODIFIED_WHEN_READ equ 1h +STREAM_CONTAINS_SECURITY equ 2h +STARTF_USESHOWWINDOW equ 1h +STARTF_USESIZE equ 2h +STARTF_USEPOSITION equ 4h +STARTF_USECOUNTCHARS equ 8h +STARTF_USEFILLATTRIBUTE equ 10h +STARTF_RUNFULLSCREEN equ 20h +STARTF_FORCEONFEEDBACK equ 40h +STARTF_FORCEOFFFEEDBACK equ 80h +STARTF_USESTDHANDLES equ 100h +SHUTDOWN_NORETRY equ 1h +MAX_DEFAULTCHAR equ 2 +CAL_ICALINTVALUE equ 1h +CAL_SCALNAME equ 2h +CAL_IYEAROFFSETRANGE equ 3h +CAL_SERASTRING equ 4h +CAL_SSHORTDATE equ 5h +CAL_SLONGDATE equ 6h +CAL_SDAYNAME1 equ 7h +CAL_SDAYNAME2 equ 8h +CAL_SDAYNAME3 equ 9h +CAL_SDAYNAME4 equ 0Ah +CAL_SDAYNAME5 equ 0Bh +CAL_SDAYNAME6 equ 0Ch +CAL_SDAYNAME7 equ 0Dh +CAL_SABBREVDAYNAME1 equ 0Eh +CAL_SABBREVDAYNAME2 equ 0Fh +CAL_SABBREVDAYNAME3 equ 10h +CAL_SABBREVDAYNAME4 equ 11h +CAL_SABBREVDAYNAME5 equ 12h +CAL_SABBREVDAYNAME6 equ 13h +CAL_SABBREVDAYNAME7 equ 14h +CAL_SMONTHNAME1 equ 15h +CAL_SMONTHNAME2 equ 16h +CAL_SMONTHNAME3 equ 17h +CAL_SMONTHNAME4 equ 18h +CAL_SMONTHNAME5 equ 19h +CAL_SMONTHNAME6 equ 1Ah +CAL_SMONTHNAME7 equ 1Bh +CAL_SMONTHNAME8 equ 1Ch +CAL_SMONTHNAME9 equ 1Dh +CAL_SMONTHNAME10 equ 1Eh +CAL_SMONTHNAME11 equ 1Fh +CAL_SMONTHNAME12 equ 20h +CAL_SMONTHNAME13 equ 21h +CAL_SABBREVMONTHNAME1 equ 22h +CAL_SABBREVMONTHNAME2 equ 23h +CAL_SABBREVMONTHNAME3 equ 24h +CAL_SABBREVMONTHNAME4 equ 25h +CAL_SABBREVMONTHNAME5 equ 26h +CAL_SABBREVMONTHNAME6 equ 27h +CAL_SABBREVMONTHNAME7 equ 28h +CAL_SABBREVMONTHNAME8 equ 29h +CAL_SABBREVMONTHNAME9 equ 2Ah +CAL_SABBREVMONTHNAME10 equ 2Bh +CAL_SABBREVMONTHNAME11 equ 2Ch +CAL_SABBREVMONTHNAME12 equ 2Dh +CAL_SABBREVMONTHNAME13 equ 2Eh +ENUM_ALL_CALENDARS equ 0FFFFh +CAL_GREGORIAN equ 1 +CAL_GREGORIAN_US equ 2 +CAL_JAPAN equ 3 +CAL_TAIWAN equ 4 +CAL_KOREA equ 5 +RIGHT_ALT_PRESSED equ 1h +LEFT_ALT_PRESSED equ 2h +RIGHT_CTRL_PRESSED equ 4h +LEFT_CTRL_PRESSED equ 8h +SHIFT_PRESSED equ 10h +NUMLOCK_ON equ 20h +SCROLLLOCK_ON equ 40h +CAPSLOCK_ON equ 80h +ENHANCED_KEY equ 100h +FROM_LEFT_1ST_BUTTON_PRESSED equ 1h +RIGHTMOST_BUTTON_PRESSED equ 2h +FROM_LEFT_2ND_BUTTON_PRESSED equ 4h +FROM_LEFT_3RD_BUTTON_PRESSED equ 8h +FROM_LEFT_4TH_BUTTON_PRESSED equ 10h +MOUSE_MOVED equ 1h +DOUBLE_CLICK equ 2h +KEY_EVENT equ 1h +MOUSE_EVENT equ 2h +MENU_EVENT equ 8h +FOCUS_EVENT equ 10h +mouse_eventC equ 2h +WINDOW_BUFFER_SIZE_EVENT equ 4h +FOREGROUND_BLUE equ 1h +FOREGROUND_GREEN equ 2h +FOREGROUND_RED equ 4h +FOREGROUND_INTENSITY equ 8h +BACKGROUND_BLUE equ 10h +BACKGROUND_GREEN equ 20h +BACKGROUND_RED equ 40h +BACKGROUND_INTENSITY equ 80h +CTRL_C_EVENT equ 0 +CTRL_BREAK_EVENT equ 1 +CTRL_CLOSE_EVENT equ 2 +CTRL_LOGOFF_EVENT equ 5 +CTRL_SHUTDOWN_EVENT equ 6 +ENABLE_PROCESSED_INPUT equ 1h +ENABLE_LINE_INPUT equ 2h +ENABLE_ECHO_INPUT equ 4h +ENABLE_WINDOW_INPUT equ 8h +ENABLE_MOUSE_INPUT equ 10h +ENABLE_PROCESSED_OUTPUT equ 1h +ENABLE_WRAP_AT_EOL_OUTPUT equ 2h +CONSOLE_TEXTMODE_BUFFER equ 1 +R2_BLACK equ 1 +R2_NOTMERGEPEN equ 2 +R2_MASKNOTPEN equ 3 +R2_NOTCOPYPEN equ 4 +R2_MASKPENNOT equ 5 +R2_NOT equ 6 +R2_XORPEN equ 7 +R2_NOTMASKPEN equ 8 +R2_MASKPEN equ 9 +R2_NOTXORPEN equ 10 +R2_NOP equ 11 +R2_MERGENOTPEN equ 12 +R2_COPYPEN equ 13 +R2_MERGEPENNOT equ 14 +R2_MERGEPEN equ 15 +R2_WHITE equ 16 +R2_LAST equ 16 +SRCCOPY equ 0CC0020h +SRCPAINT equ 0EE0086h +SRCAND equ 8800C6h +SRCINVERT equ 660046h +SRCERASE equ 440328h +NOTSRCCOPY equ 330008h +NOTSRCERASE equ 1100A6h +MERGECOPY equ 0C000CAh +MERGEPAINT equ 0BB0226h +PATCOPY equ 0F00021h +PATPAINT equ 0FB0A09h +PATINVERT equ 5A0049h +DSTINVERT equ 550009h +BLACKNESS equ 42h +WHITENESS equ 0FF0062h +GDI_ERROR equ 0FFFFh +HGDI_ERROR equ 0FFFFh +ERRORAPI equ 0 +NULLREGION equ 1 +SIMPLEREGION equ 2 +COMPLEXREGION equ 3 +RGN_AND equ 1 +RGN_OR equ 2 +RGN_XOR equ 3 +RGN_DIFF equ 4 +RGN_COPY equ 5 +RGN_MIN equ RGN_AND +RGN_MAX equ RGN_COPY +BLACKONWHITE equ 1 +WHITEONBLACK equ 2 +COLORONCOLOR equ 3 +HALFTONE equ 4 +MAXSTRETCHBLTMODE equ 4 +ALTERNATE equ 1 +WINDING equ 2 +POLYFILL_LAST equ 2 +TA_NOUPDATECP equ 0 +TA_UPDATECP equ 1 +TA_LEFT equ 0 +TA_RIGHT equ 2 +TA_CENTER equ 6 +TA_TOP equ 0 +TA_BOTTOM equ 8 +TA_BASELINE equ 24 +TA_MASK equ TA_BASELINE + TA_CENTER + TA_UPDATECP +VTA_BASELINE equ TA_BASELINE +VTA_LEFT equ TA_BOTTOM +VTA_RIGHT equ TA_TOP +VTA_CENTER equ TA_CENTER +VTA_BOTTOM equ TA_RIGHT +VTA_TOP equ TA_LEFT +ETO_GRAYED equ 1 +ETO_OPAQUE equ 2 +ETO_CLIPPED equ 4 +ASPECT_FILTERING equ 1h +DCB_RESET equ 1h +DCB_ACCUMULATE equ 2h +DCB_DIRTY equ DCB_ACCUMULATE +DCB_SET equ DCB_RESET OR DCB_ACCUMULATE +DCB_ENABLE equ 4h +DCB_DISABLE equ 8h +META_SETBKCOLOR equ 201h +META_SETBKMODE equ 102h +META_SETMAPMODE equ 103h +META_SETROP2 equ 104h +META_SETRELABS equ 105h +META_SETPOLYFILLMODE equ 106h +META_SETSTRETCHBLTMODE equ 107h +META_SETTEXTCHAREXTRA equ 108h +META_SETTEXTCOLOR equ 209h +META_SETTEXTJUSTIFICATION equ 20Ah +META_SETWINDOWORG equ 20Bh +META_SETWINDOWEXT equ 20Ch +META_SETVIEWPORTORG equ 20Dh +META_SETVIEWPORTEXT equ 20Eh +META_OFFSETWINDOWORG equ 20Fh +META_SCALEWINDOWEXT equ 410h +META_OFFSETVIEWPORTORG equ 211h +META_SCALEVIEWPORTEXT equ 412h +META_LINETO equ 213h +META_MOVETO equ 214h +META_EXCLUDECLIPRECT equ 415h +META_INTERSECTCLIPRECT equ 416h +META_ARC equ 817h +META_ELLIPSE equ 418h +META_FLOODFILL equ 419h +META_PIE equ 81Ah +META_RECTANGLE equ 41Bh +META_ROUNDRECT equ 61Ch +META_PATBLT equ 61Dh +META_SAVEDC equ 1Eh +META_SETPIXEL equ 41Fh +META_OFFSETCLIPRGN equ 220h +META_TEXTOUT equ 521h +META_BITBLT equ 922h +META_STRETCHBLT equ 0B23h +META_POLYGON equ 324h +META_POLYLINE equ 325h +META_ESCAPE equ 626h +META_RESTOREDC equ 127h +META_FILLREGION equ 228h +META_FRAMEREGION equ 429h +META_INVERTREGION equ 12Ah +META_PAINTREGION equ 12Bh +META_SELECTCLIPREGION equ 12Ch +META_SELECTOBJECT equ 12Dh +META_SETTEXTALIGN equ 12Eh +META_CHORD equ 830h +META_SETMAPPERFLAGS equ 231h +META_EXTTEXTOUT equ 0A32h +META_SETDIBTODEV equ 0D33h +META_SELECTPALETTE equ 234h +META_REALIZEPALETTE equ 35h +META_ANIMATEPALETTE equ 436h +META_SETPALENTRIES equ 37h +META_POLYPOLYGON equ 538h +META_RESIZEPALETTE equ 139h +META_DIBBITBLT equ 940h +META_DIBSTRETCHBLT equ 0B41h +META_DIBCREATEPATTERNBRUSH equ 142h +META_STRETCHDIB equ 0F43h +META_EXTFLOODFILL equ 548h +META_DELETEOBJECT equ 1F0h +META_CREATEPALETTE equ 0F7h +META_CREATEPATTERNBRUSH equ 1F9h +META_CREATEPENINDIRECT equ 2FAh +META_CREATEFONTINDIRECT equ 2FBh +META_CREATEBRUSHINDIRECT equ 2FCh +META_CREATEREGION equ 6FFh +NEWFRAME equ 1 +AbortDocC equ 2 +NEXTBAND equ 3 +SETCOLORTABLE equ 4 +GETCOLORTABLE equ 5 +FLUSHOUTPUT equ 6 +DRAFTMODE equ 7 +QUERYESCSUPPORT equ 8 +SETABORTPROC equ 9 +StartDocC equ 10 +EndDocC equ 11 +GETPHYSPAGESIZE equ 12 +GETPRINTINGOFFSET equ 13 +GETSCALINGFACTOR equ 14 +MFCOMMENT equ 15 +GETPENWIDTH equ 16 +SETCOPYCOUNT equ 17 +SELECTPAPERSOURCE equ 18 +DEVICEDATA equ 19 +PASSTHROUGH equ 19 +GETTECHNOLGY equ 20 +GETTECHNOLOGY equ 20 +SETLINECAP equ 21 +SETLINEJOIN equ 22 +SetMiterLimitC equ 23 +BANDINFO equ 24 +DRAWPATTERNRECT equ 25 +GETVECTORPENSIZE equ 26 +GETVECTORBRUSHSIZE equ 27 +ENABLEDUPLEX equ 28 +GETSETPAPERBINS equ 29 +GETSETPRINTORIENT equ 30 +ENUMPAPERBINS equ 31 +SETDIBSCALING equ 32 +EPSPRINTING equ 33 +ENUMPAPERMETRICS equ 34 +GETSETPAPERMETRICS equ 35 +POSTSCRIPT_DATA equ 37 +POSTSCRIPT_IGNORE equ 38 +MOUSETRAILS equ 39 +GETDEVICEUNITS equ 42 +GETEXTENDEDTEXTMETRICS equ 256 +GETEXTENTTABLE equ 257 +GETPAIRKERNTABLE equ 258 +GETTRACKKERNTABLE equ 259 +ExtTextOutC equ 512 +GETFACENAME equ 513 +DOWNLOADFACE equ 514 +ENABLERELATIVEWIDTHS equ 768 +ENABLEPAIRKERNING equ 769 +SETKERNTRACK equ 770 +SETALLJUSTVALUES equ 771 +SETCHARSET equ 772 +StretchBltC equ 2048 +GETSETSCREENPARAMS equ 3072 +BEGIN_PATH equ 4096 +CLIP_TO_PATH equ 4097 +END_PATH equ 4098 +EXT_DEVICE_CAPS equ 4099 +RESTORE_CTM equ 4100 +SAVE_CTM equ 4101 +SET_ARC_DIRECTION equ 4102 +SET_BACKGROUND_COLOR equ 4103 +SET_POLY_MODE equ 4104 +SET_SCREEN_ANGLE equ 4105 +SET_SPREAD equ 4106 +TRANSFORM_CTM equ 4107 +SET_CLIP_BOX equ 4108 +SET_BOUNDS equ 4109 +SET_MIRROR_MODE equ 4110 +OPENCHANNEL equ 4110 +DOWNLOADHEADER equ 4111 +CLOSECHANNEL equ 4112 +POSTSCRIPT_PASSTHROUGH equ 4115 +ENCAPSULATED_POSTSCRIPT equ 4116 +SP_NOTREPORTED equ 4000h +SP_ERROR equ -1 +SP_APPABORT equ -2 +SP_USERABORT equ -3 +SP_OUTOFDISK equ -4 +SP_OUTOFMEMORY equ -5 +PR_JOBSTATUS equ 0h +OBJ_PEN equ 1 +OBJ_BRUSH equ 2 +OBJ_DC equ 3 +OBJ_METADC equ 4 +OBJ_PAL equ 5 +OBJ_FONT equ 6 +OBJ_BITMAP equ 7 +OBJ_REGION equ 8 +OBJ_METAFILE equ 9 +OBJ_MEMDC equ 10 +OBJ_EXTPEN equ 11 +OBJ_ENHMETADC equ 12 +OBJ_ENHMETAFILE equ 13 +MWT_IDENTITY equ 1 +MWT_LEFTMULTIPLY equ 2 +MWT_RIGHTMULTIPLY equ 3 +MWT_MIN equ MWT_IDENTITY +MWT_MAX equ MWT_RIGHTMULTIPLY +BI_RGB equ 0 +BI_RLE8 equ 1 +BI_RLE4 equ 2 +BI_BITFIELDS equ 3 +NTM_REGULAR equ 40h +NTM_BOLD equ 20h +NTM_ITALIC equ 1h +TMPF_FIXED_PITCH equ 1h +TMPF_VECTOR equ 2h +TMPF_DEVICE equ 8h +TMPF_TRUETYPE equ 4h +LF_FACESIZE equ 32 +LF_FULLFACESIZE equ 64 +OUT_DEFAULT_PRECIS equ 0 +OUT_STRING_PRECIS equ 1 +OUT_CHARACTER_PRECIS equ 2 +OUT_STROKE_PRECIS equ 3 +OUT_TT_PRECIS equ 4 +OUT_DEVICE_PRECIS equ 5 +OUT_RASTER_PRECIS equ 6 +OUT_TT_ONLY_PRECIS equ 7 +OUT_OUTLINE_PRECIS equ 8 +CLIP_DEFAULT_PRECIS equ 0 +CLIP_CHARACTER_PRECIS equ 1 +CLIP_STROKE_PRECIS equ 2 +CLIP_MASK equ 0Fh +CLIP_LH_ANGLES equ 16 +CLIP_TT_ALWAYS equ 32 +CLIP_EMBEDDED equ 128 +DEFAULT_QUALITY equ 0 +DRAFT_QUALITY equ 1 +PROOF_QUALITY equ 2 +DEFAULT_PITCH equ 0 +FIXED_PITCH equ 1 +VARIABLE_PITCH equ 2 +ANSI_CHARSET equ 0 +DEFAULT_CHARSET equ 1 +SYMBOL_CHARSET equ 2 +SHIFTJIS_CHARSET equ 128 +GB2312_CHARSET equ 134 +HANGEUL_CHARSET equ 129 +CHINESEBIG5_CHARSET equ 136 +OEM_CHARSET equ 255 +FF_DONTCARE equ 0 +FF_ROMAN equ 16 +FF_SWISS equ 32 +FF_MODERN equ 48 +FF_SCRIPT equ 64 +FF_DECORATIVE equ 80 +FW_DONTCARE equ 0 +FW_THIN equ 100 +FW_EXTRALIGHT equ 200 +FW_LIGHT equ 300 +FW_NORMAL equ 400 +FW_MEDIUM equ 500 +FW_SEMIBOLD equ 600 +FW_BOLD equ 700 +FW_EXTRABOLD equ 800 +FW_HEAVY equ 900 +FW_ULTRALIGHT equ FW_EXTRALIGHT +FW_REGULAR equ FW_NORMAL +FW_DEMIBOLD equ FW_SEMIBOLD +FW_ULTRABOLD equ FW_EXTRABOLD +FW_BLACK equ FW_HEAVY +PANOSE_COUNT equ 10 +PAN_FAMILYTYPE_INDEX equ 0 +PAN_SERIFSTYLE_INDEX equ 1 +PAN_WEIGHT_INDEX equ 2 +PAN_PROPORTION_INDEX equ 3 +PAN_CONTRAST_INDEX equ 4 +PAN_STROKEVARIATION_INDEX equ 5 +PAN_ARMSTYLE_INDEX equ 6 +PAN_LETTERFORM_INDEX equ 7 +PAN_MIDLINE_INDEX equ 8 +PAN_XHEIGHT_INDEX equ 9 +PAN_CULTURE_LATIN equ 0 +PAN_ANY equ 0 +PAN_NO_FIT equ 1 +PAN_FAMILY_TEXT_DISPLAY equ 2 +PAN_FAMILY_SCRIPT equ 3 +PAN_FAMILY_DECORATIVE equ 4 +PAN_FAMILY_PICTORIAL equ 5 +PAN_SERIF_COVE equ 2 +PAN_SERIF_OBTUSE_COVE equ 3 +PAN_SERIF_SQUARE_COVE equ 4 +PAN_SERIF_OBTUSE_SQUARE_COVE equ 5 +PAN_SERIF_SQUARE equ 6 +PAN_SERIF_THIN equ 7 +PAN_SERIF_BONE equ 8 +PAN_SERIF_EXAGGERATED equ 9 +PAN_SERIF_TRIANGLE equ 10 +PAN_SERIF_NORMAL_SANS equ 11 +PAN_SERIF_OBTUSE_SANS equ 12 +PAN_SERIF_PERP_SANS equ 13 +PAN_SERIF_FLARED equ 14 +PAN_SERIF_ROUNDED equ 15 +PAN_WEIGHT_VERY_LIGHT equ 2 +PAN_WEIGHT_LIGHT equ 3 +PAN_WEIGHT_THIN equ 4 +PAN_WEIGHT_BOOK equ 5 +PAN_WEIGHT_MEDIUM equ 6 +PAN_WEIGHT_DEMI equ 7 +PAN_WEIGHT_BOLD equ 8 +PAN_WEIGHT_HEAVY equ 9 +PAN_WEIGHT_BLACK equ 10 +PAN_WEIGHT_NORD equ 11 +PAN_PROP_OLD_STYLE equ 2 +PAN_PROP_MODERN equ 3 +PAN_PROP_EVEN_WIDTH equ 4 +PAN_PROP_EXPANDED equ 5 +PAN_PROP_CONDENSED equ 6 +PAN_PROP_VERY_EXPANDED equ 7 +PAN_PROP_VERY_CONDENSED equ 8 +PAN_PROP_MONOSPACED equ 9 +PAN_CONTRAST_NONE equ 2 +PAN_CONTRAST_VERY_LOW equ 3 +PAN_CONTRAST_LOW equ 4 +PAN_CONTRAST_MEDIUM_LOW equ 5 +PAN_CONTRAST_MEDIUM equ 6 +PAN_CONTRAST_MEDIUM_HIGH equ 7 +PAN_CONTRAST_HIGH equ 8 +PAN_CONTRAST_VERY_HIGH equ 9 +PAN_STROKE_GRADUAL_DIAG equ 2 +PAN_STROKE_GRADUAL_TRAN equ 3 +PAN_STROKE_GRADUAL_VERT equ 4 +PAN_STROKE_GRADUAL_HORZ equ 5 +PAN_STROKE_RAPID_VERT equ 6 +PAN_STROKE_RAPID_HORZ equ 7 +PAN_STROKE_INSTANT_VERT equ 8 +PAN_STRAIGHT_ARMS_HORZ equ 2 +PAN_STRAIGHT_ARMS_WEDGE equ 3 +PAN_STRAIGHT_ARMS_VERT equ 4 +PAN_STRAIGHT_ARMS_SINGLE_SERIF equ 5 +PAN_STRAIGHT_ARMS_DOUBLE_SERIF equ 6 +PAN_BENT_ARMS_HORZ equ 7 +PAN_BENT_ARMS_WEDGE equ 8 +PAN_BENT_ARMS_VERT equ 9 +PAN_BENT_ARMS_SINGLE_SERIF equ 10 +PAN_BENT_ARMS_DOUBLE_SERIF equ 11 +PAN_LETT_NORMAL_CONTACT equ 2 +PAN_LETT_NORMAL_WEIGHTED equ 3 +PAN_LETT_NORMAL_BOXED equ 4 +PAN_LETT_NORMAL_FLATTENED equ 5 +PAN_LETT_NORMAL_ROUNDED equ 6 +PAN_LETT_NORMAL_OFF_CENTER equ 7 +PAN_LETT_NORMAL_SQUARE equ 8 +PAN_LETT_OBLIQUE_CONTACT equ 9 +PAN_LETT_OBLIQUE_WEIGHTED equ 10 +PAN_LETT_OBLIQUE_BOXED equ 11 +PAN_LETT_OBLIQUE_FLATTENED equ 12 +PAN_LETT_OBLIQUE_ROUNDED equ 13 +PAN_LETT_OBLIQUE_OFF_CENTER equ 14 +PAN_LETT_OBLIQUE_SQUARE equ 15 +PAN_MIDLINE_STANDARD_TRIMMED equ 2 +PAN_MIDLINE_STANDARD_POINTED equ 3 +PAN_MIDLINE_STANDARD_SERIFED equ 4 +PAN_MIDLINE_HIGH_TRIMMED equ 5 +PAN_MIDLINE_HIGH_POINTED equ 6 +PAN_MIDLINE_HIGH_SERIFED equ 7 +PAN_MIDLINE_CONSTANT_TRIMMED equ 8 +PAN_MIDLINE_CONSTANT_POINTED equ 9 +PAN_MIDLINE_CONSTANT_SERIFED equ 10 +PAN_MIDLINE_LOW_TRIMMED equ 11 +PAN_MIDLINE_LOW_POINTED equ 12 +PAN_MIDLINE_LOW_SERIFED equ 13 +PAN_XHEIGHT_CONSTANT_SMALL equ 2 +PAN_XHEIGHT_CONSTANT_STD equ 3 +PAN_XHEIGHT_CONSTANT_LARGE equ 4 +PAN_XHEIGHT_DUCKING_SMALL equ 5 +PAN_XHEIGHT_DUCKING_STD equ 6 +PAN_XHEIGHT_DUCKING_LARGE equ 7 +ELF_VENDOR_SIZE equ 4 +ELF_VERSION equ 0 +ELF_CULTURE_LATIN equ 0 +RASTER_FONTTYPE equ 1h +DEVICE_FONTTYPE equ 2h +TRUETYPE_FONTTYPE equ 4h +PC_RESERVED equ 1h +PC_EXPLICIT equ 2h +PC_NOCOLLAPSE equ 4h +TRANSPARENT equ 1 +OPAQUE equ 2 +BKMODE_LAST equ 2 +GM_COMPATIBLE equ 1 +GM_ADVANCED equ 2 +GM_LAST equ 2 +PT_CLOSEFIGURE equ 1h +PT_LINETO equ 2h +PT_BEZIERTO equ 4h +PT_MOVETO equ 6h +MM_TEXT equ 1 +MM_LOMETRIC equ 2 +MM_HIMETRIC equ 3 +MM_LOENGLISH equ 4 +MM_HIENGLISH equ 5 +MM_TWIPS equ 6 +MM_ISOTROPIC equ 7 +MM_ANISOTROPIC equ 8 +MM_MIN equ MM_TEXT +MM_MAX equ MM_ANISOTROPIC +MM_MAX_FIXEDSCALE equ MM_TWIPS +ABSOLUTE equ 1 +RELATIVE equ 2 +WHITE_BRUSH equ 0 +LTGRAY_BRUSH equ 1 +GRAY_BRUSH equ 2 +DKGRAY_BRUSH equ 3 +BLACK_BRUSH equ 4 +NULL_BRUSH equ 5 +HOLLOW_BRUSH equ NULL_BRUSH +WHITE_PEN equ 6 +BLACK_PEN equ 7 +NULL_PEN equ 8 +OEM_FIXED_FONT equ 10 +ANSI_FIXED_FONT equ 11 +ANSI_VAR_FONT equ 12 +SYSTEM_FONT equ 13 +DEVICE_DEFAULT_FONT equ 14 +DEFAULT_PALETTE equ 15 +SYSTEM_FIXED_FONT equ 16 +STOCK_LAST equ 16 +CLR_INVALID equ 0FFFFh +BS_SOLID equ 0 +BS_NULL equ 1 +BS_HOLLOW equ BS_NULL +BS_HATCHED equ 2 +BS_PATTERN equ 3 +BS_INDEXED equ 4 +BS_DIBPATTERN equ 5 +BS_DIBPATTERNPT equ 6 +BS_PATTERN8X8 equ 7 +BS_DIBPATTERN8X8 equ 8 +BS_PUSHBOX equ 0Ah +HS_HORIZONTAL equ 0 +HS_VERTICAL equ 1 +HS_FDIAGONAL equ 2 +HS_BDIAGONAL equ 3 +HS_CROSS equ 4 +HS_DIAGCROSS equ 5 +HS_FDIAGONAL1 equ 6 +HS_BDIAGONAL1 equ 7 +HS_SOLID equ 8 +HS_DENSE1 equ 9 +HS_DENSE2 equ 10 +HS_DENSE3 equ 11 +HS_DENSE4 equ 12 +HS_DENSE5 equ 13 +HS_DENSE6 equ 14 +HS_DENSE7 equ 15 +HS_DENSE8 equ 16 +HS_NOSHADE equ 17 +HS_HALFTONE equ 18 +HS_SOLIDCLR equ 19 +HS_DITHEREDCLR equ 20 +HS_SOLIDTEXTCLR equ 21 +HS_DITHEREDTEXTCLR equ 22 +HS_SOLIDBKCLR equ 23 +HS_DITHEREDBKCLR equ 24 +HS_API_MAX equ 25 +PS_SOLID equ 0 +PS_DASH equ 1 +PS_DOT equ 2 +PS_DASHDOT equ 3 +PS_DASHDOTDOT equ 4 +PS_NULL equ 5 +PS_INSIDEFRAME equ 6 +PS_USERSTYLE equ 7 +PS_ALTERNATE equ 8 +PS_STYLE_MASK equ 0Fh +PS_ENDCAP_ROUND equ 0h +PS_ENDCAP_SQUARE equ 100h +PS_ENDCAP_FLAT equ 200h +PS_ENDCAP_MASK equ 0F00h +PS_JOIN_ROUND equ 0h +PS_JOIN_BEVEL equ 1000h +PS_JOIN_MITER equ 2000h +PS_JOIN_MASK equ 0F000h +PS_COSMETIC equ 0h +PS_GEOMETRIC equ 10000h +PS_TYPE_MASK equ 0F0000h +AD_COUNTERCLOCKWISE equ 1 +AD_CLOCKWISE equ 2 +PRF_CHECKVISIBLE equ 00000001h +PRF_NONCLIENT equ 00000002h +PRF_CLIENT equ 00000004h +PRF_ERASEBKGND equ 00000008h +PRF_CHILDREN equ 00000010h +PRF_OWNED equ 00000020h +BDR_RAISEDOUTER equ 0001h +BDR_SUNKENOUTER equ 0002h +BDR_RAISEDINNER equ 0004h +BDR_SUNKENINNER equ 0008h +BDR_OUTER equ 0003h +BDR_INNER equ 000Ch +BDR_RAISED equ 0005h +BDR_SUNKEN equ 000Ah +EDGE_RAISED equ BDR_RAISEDOUTER OR BDR_RAISEDINNER +EDGE_SUNKEN equ BDR_SUNKENOUTER OR BDR_SUNKENINNER +EDGE_ETCHED equ BDR_SUNKENOUTER OR BDR_RAISEDINNER +EDGE_BUMP equ BDR_RAISEDOUTER OR BDR_SUNKENINNER +BF_LEFT equ 0001h +BF_TOP equ 0002h +BF_RIGHT equ 0004h +BF_BOTTOM equ 0008h +BF_TOPLEFT equ BF_TOP OR BF_LEFT +BF_TOPRIGHT equ BF_TOP OR BF_RIGHT +BF_BOTTOMLEFT equ BF_BOTTOM OR BF_LEFT +BF_BOTTOMRIGHT equ BF_BOTTOM OR BF_RIGHT +BF_RECT equ BF_LEFT OR BF_TOP OR BF_RIGHT OR BF_BOTTOM +BF_DIAGONAL equ 0010h +BF_DIAGONAL_ENDTOPRIGHT equ BF_DIAGONAL OR BF_TOP OR BF_RIGHT +BF_DIAGONAL_ENDTOPLEFT equ BF_DIAGONAL OR BF_TOP OR BF_LEFT +BF_DIAGONAL_ENDBOTTOMLEFT equ BF_DIAGONAL OR BF_BOTTOM OR BF_LEFT +BF_DIAGONAL_ENDBOTTOMRIGHT equ BF_DIAGONAL OR BF_BOTTOM OR BF_RIGHT +BF_MIDDLE equ 0800h +BF_SOFT equ 1000h +BF_ADJUST equ 2000h +BF_FLAT equ 4000h +BF_MONO equ 8000h +DRIVERVERSION equ 0 +TECHNOLOGY equ 2 +HORZSIZE equ 4 +VERTSIZE equ 6 +HORZRES equ 8 +VERTRES equ 10 +BITSPIXEL equ 12 +PLANES equ 14 +NUMBRUSHES equ 16 +NUMPENS equ 18 +NUMMARKERS equ 20 +NUMFONTS equ 22 +NUMCOLORS equ 24 +PDEVICESIZE equ 26 +CURVECAPS equ 28 +LINECAPS equ 30 +POLYGONALCAPS equ 32 +TEXTCAPS equ 34 +CLIPCAPS equ 36 +RASTERCAPS equ 38 +ASPECTX equ 40 +ASPECTY equ 42 +ASPECTXY equ 44 +LOGPIXELSX equ 88 +LOGPIXELSY equ 90 +SIZEPALETTE equ 104 +NUMRESERVED equ 106 +COLORRES equ 108 +PHYSICALWIDTH equ 110 +PHYSICALHEIGHT equ 111 +PHYSICALOFFSETX equ 112 +PHYSICALOFFSETY equ 113 +SCALINGFACTORX equ 114 +SCALINGFACTORY equ 115 +DT_PLOTTER equ 0 +DT_RASDISPLAY equ 1 +DT_RASPRINTER equ 2 +DT_RASCAMERA equ 3 +DT_CHARSTREAM equ 4 +DT_METAFILE equ 5 +DT_DISPFILE equ 6 +CC_NONE equ 0 +CC_CIRCLES equ 1 +CC_PIE equ 2 +CC_CHORD equ 4 +CC_ELLIPSES equ 8 +CC_WIDE equ 16 +CC_STYLED equ 32 +CC_WIDESTYLED equ 64 +CC_INTERIORS equ 128 +CC_ROUNDRECT equ 256 +LC_NONE equ 0 +LC_POLYLINE equ 2 +LC_MARKER equ 4 +LC_POLYMARKER equ 8 +LC_WIDE equ 16 +LC_STYLED equ 32 +LC_WIDESTYLED equ 64 +LC_INTERIORS equ 128 +PC_NONE equ 0 +PC_POLYGON equ 1 +PC_RECTANGLE equ 2 +PC_WINDPOLYGON equ 4 +PC_TRAPEZOID equ 4 +PC_SCANLINE equ 8 +PC_WIDE equ 16 +PC_STYLED equ 32 +PC_WIDESTYLED equ 64 +PC_INTERIORS equ 128 +CP_NONE equ 0 +CP_RECTANGLE equ 1 +CP_REGION equ 2 +TC_OP_CHARACTER equ 1h +TC_OP_STROKE equ 2h +TC_CP_STROKE equ 4h +TC_CR_90 equ 8h +TC_CR_ANY equ 10h +TC_SF_X_YINDEP equ 20h +TC_SA_DOUBLE equ 40h +TC_SA_INTEGER equ 80h +TC_SA_CONTIN equ 100h +TC_EA_DOUBLE equ 200h +TC_IA_ABLE equ 400h +TC_UA_ABLE equ 800h +TC_SO_ABLE equ 1000h +TC_RA_ABLE equ 2000h +TC_VA_ABLE equ 4000h +TC_RESERVED equ 8000h +TC_SCROLLBLT equ 10000h +RC_NONE equ 0 +RC_BITBLT equ 1 +RC_BANDING equ 2 +RC_SCALING equ 4 +RC_BITMAP64 equ 8 +RC_GDI20_OUTPUT equ 10h +RC_GDI20_STATE equ 20h +RC_SAVEBITMAP equ 40h +RC_DI_BITMAP equ 80h +RC_PALETTE equ 100h +RC_DIBTODEV equ 200h +RC_BIGFONT equ 400h +RC_STRETCHBLT equ 800h +RC_FLOODFILL equ 1000h +RC_STRETCHDIB equ 2000h +RC_OP_DX_OUTPUT equ 4000h +RC_DEVBITS equ 8000h +DIB_RGB_COLORS equ 0 +DIB_PAL_COLORS equ 1 +DIB_PAL_INDICES equ 2 +DIB_PAL_PHYSINDICES equ 2 +DIB_PAL_LOGINDICES equ 4 +SYSPAL_ERROR equ 0 +SYSPAL_STATIC equ 1 +SYSPAL_NOSTATIC equ 2 +CBM_CREATEDIB equ 2h +CBM_INIT equ 4h +FLOODFILLBORDER equ 0 +FLOODFILLSURFACE equ 1 +CCHDEVICENAME equ 32 +CCHFORMNAME equ 32 +DM_SPECVERSION equ 320h +DM_ORIENTATION equ 1h +DM_PAPERSIZE equ 2h +DM_PAPERLENGTH equ 4h +DM_PAPERWIDTH equ 8h +DM_SCALE equ 10h +DM_COPIES equ 100h +DM_DEFAULTSOURCE equ 200h +DM_PRINTQUALITY equ 400h +DM_COLOR equ 800h +DM_DUPLEX equ 1000h +DM_YRESOLUTION equ 2000h +DM_TTOPTION equ 4000h +DM_COLLATE equ 8000h +DM_FORMNAME equ 10000h +DMORIENT_PORTRAIT equ 1 +DMORIENT_LANDSCAPE equ 2 +DMPAPER_LETTER equ 1 +DMPAPER_FIRST equ DMPAPER_LETTER +DMPAPER_LETTERSMALL equ 2 +DMPAPER_TABLOID equ 3 +DMPAPER_LEDGER equ 4 +DMPAPER_LEGAL equ 5 +DMPAPER_STATEMENT equ 6 +DMPAPER_EXECUTIVE equ 7 +DMPAPER_A3 equ 8 +DMPAPER_A4 equ 9 +DMPAPER_A4SMALL equ 10 +DMPAPER_A5 equ 11 +DMPAPER_B4 equ 12 +DMPAPER_B5 equ 13 +DMPAPER_FOLIO equ 14 +DMPAPER_QUARTO equ 15 +DMPAPER_10X14 equ 16 +DMPAPER_11X17 equ 17 +DMPAPER_NOTE equ 18 +DMPAPER_ENV_9 equ 19 +DMPAPER_ENV_10 equ 20 +DMPAPER_ENV_11 equ 21 +DMPAPER_ENV_12 equ 22 +DMPAPER_ENV_14 equ 23 +DMPAPER_CSHEET equ 24 +DMPAPER_DSHEET equ 25 +DMPAPER_ESHEET equ 26 +DMPAPER_ENV_DL equ 27 +DMPAPER_ENV_C5 equ 28 +DMPAPER_ENV_C3 equ 29 +DMPAPER_ENV_C4 equ 30 +DMPAPER_ENV_C6 equ 31 +DMPAPER_ENV_C65 equ 32 +DMPAPER_ENV_B4 equ 33 +DMPAPER_ENV_B5 equ 34 +DMPAPER_ENV_B6 equ 35 +DMPAPER_ENV_ITALY equ 36 +DMPAPER_ENV_MONARCH equ 37 +DMPAPER_ENV_PERSONAL equ 38 +DMPAPER_FANFOLD_US equ 39 +DMPAPER_FANFOLD_STD_GERMAN equ 40 +DMPAPER_FANFOLD_LGL_GERMAN equ 41 +DMPAPER_LAST equ DMPAPER_FANFOLD_LGL_GERMAN +DMPAPER_USER equ 256 +DMBIN_UPPER equ 1 +DMBIN_FIRST equ DMBIN_UPPER +DMBIN_ONLYONE equ 1 +DMBIN_LOWER equ 2 +DMBIN_MIDDLE equ 3 +DMBIN_MANUAL equ 4 +DMBIN_ENVELOPE equ 5 +DMBIN_ENVMANUAL equ 6 +DMBIN_AUTO equ 7 +DMBIN_TRACTOR equ 8 +DMBIN_SMALLFMT equ 9 +DMBIN_LARGEFMT equ 10 +DMBIN_LARGECAPACITY equ 11 +DMBIN_CASSETTE equ 14 +DMBIN_LAST equ DMBIN_CASSETTE +DMBIN_USER equ 256 +DMRES_DRAFT equ -1 +DMRES_LOW equ -2 +DMRES_MEDIUM equ -3 +DMRES_HIGH equ -4 +DMCOLOR_MONOCHROME equ 1 +DMCOLOR_COLOR equ 2 +DMDUP_SIMPLEX equ 1 +DMDUP_VERTICAL equ 2 +DMDUP_HORIZONTAL equ 3 +DMTT_BITMAP equ 1 +DMTT_DOWNLOAD equ 2 +DMTT_SUBDEV equ 3 +DMCOLLATE_FALSE equ 0 +DMCOLLATE_TRUE equ 1 +DM_GRAYSCALE equ 1h +DM_INTERLACED equ 2h +RDH_RECTANGLES equ 1 +GGO_METRICS equ 0 +GGO_BITMAP equ 1 +GGO_NATIVE equ 2 +TT_POLYGON_TYPE equ 24 +TT_PRIM_LINE equ 1 +TT_PRIM_QSPLINE equ 2 +TT_AVAILABLE equ 1h +TT_ENABLED equ 2h +DM_UPDATE equ 1 +DM_COPY equ 2 +DM_PROMPT equ 4 +DM_MODIFY equ 8 +DM_IN_BUFFER equ DM_MODIFY +DM_IN_PROMPT equ DM_PROMPT +DM_OUT_BUFFER equ DM_COPY +DM_OUT_DEFAULT equ DM_UPDATE +DC_FIELDS equ 1 +DC_PAPERS equ 2 +DC_PAPERSIZE equ 3 +DC_MINEXTENT equ 4 +DC_MAXEXTENT equ 5 +DC_BINS equ 6 +DC_DUPLEX equ 7 +DC_SIZE equ 8 +DC_EXTRA equ 9 +DC_VERSION equ 10 +DC_DRIVER equ 11 +DC_BINNAMES equ 12 +DC_ENUMRESOLUTIONS equ 13 +DC_FILEDEPENDENCIES equ 14 +DC_TRUETYPE equ 15 +DC_PAPERNAMES equ 16 +DC_ORIENTATION equ 17 +DC_COPIES equ 18 +DCTT_BITMAP equ 1h +DCTT_DOWNLOAD equ 2h +DCTT_SUBDEV equ 4h +CA_NEGATIVE equ 1h +CA_LOG_FILTER equ 2h +ILLUMINANT_DEVICE_DEFAULT equ 0 +ILLUMINANT_A equ 1 +ILLUMINANT_B equ 2 +ILLUMINANT_C equ 3 +ILLUMINANT_D50 equ 4 +ILLUMINANT_D55 equ 5 +ILLUMINANT_D65 equ 6 +ILLUMINANT_D75 equ 7 +ILLUMINANT_F2 equ 8 +ILLUMINANT_MAX_INDEX equ ILLUMINANT_F2 +ILLUMINANT_TUNGSTEN equ ILLUMINANT_A +ILLUMINANT_DAYLIGHT equ ILLUMINANT_C +ILLUMINANT_FLUORESCENT equ ILLUMINANT_F2 +ILLUMINANT_NTSC equ ILLUMINANT_C +RGB_GAMMA_MIN equ 2500 +RGB_GAMMA_MAX equ 65000 +REFERENCE_WHITE_MIN equ 6000 +REFERENCE_WHITE_MAX equ 10000 +REFERENCE_BLACK_MIN equ 0 +REFERENCE_BLACK_MAX equ 4000 +COLOR_ADJ_MIN equ -100 +COLOR_ADJ_MAX equ 100 +FONTMAPPER_MAX equ 10 +ENHMETA_SIGNATURE equ 464D4520h +ENHMETA_STOCK_OBJECT equ 80000000h +EMR_HEADER equ 1 +EMR_POLYBEZIER equ 2 +EMR_POLYGON equ 3 +EMR_POLYLINE equ 4 +EMR_POLYBEZIERTO equ 5 +EMR_POLYLINETO equ 6 +EMR_POLYPOLYLINE equ 7 +EMR_POLYPOLYGON equ 8 +EMR_SETWINDOWEXTEX equ 9 +EMR_SETWINDOWORGEX equ 10 +EMR_SETVIEWPORTEXTEX equ 11 +EMR_SETVIEWPORTORGEX equ 12 +EMR_SETBRUSHORGEX equ 13 +EMR_EOF equ 14 +EMR_SETPIXELV equ 15 +EMR_SETMAPPERFLAGS equ 16 +EMR_SETMAPMODE equ 17 +EMR_SETBKMODE equ 18 +EMR_SETPOLYFILLMODE equ 19 +EMR_SETROP2 equ 20 +EMR_SETSTRETCHBLTMODE equ 21 +EMR_SETTEXTALIGN equ 22 +EMR_SETCOLORADJUSTMENT equ 23 +EMR_SETTEXTCOLOR equ 24 +EMR_SETBKCOLOR equ 25 +EMR_OFFSETCLIPRGN equ 26 +EMR_MOVETOEX equ 27 +EMR_SETMETARGN equ 28 +EMR_EXCLUDECLIPRECT equ 29 +EMR_INTERSECTCLIPRECT equ 30 +EMR_SCALEVIEWPORTEXTEX equ 31 +EMR_SCALEWINDOWEXTEX equ 32 +EMR_SAVEDC equ 33 +EMR_RESTOREDC equ 34 +EMR_SETWORLDTRANSFORM equ 35 +EMR_MODIFYWORLDTRANSFORM equ 36 +EMR_SELECTOBJECT equ 37 +EMR_CREATEPEN equ 38 +EMR_CREATEBRUSHINDIRECT equ 39 +EMR_DELETEOBJECT equ 40 +EMR_ANGLEARC equ 41 +EMR_ELLIPSE equ 42 +EMR_RECTANGLE equ 43 +EMR_ROUNDRECT equ 44 +EMR_ARC equ 45 +EMR_CHORD equ 46 +EMR_PIE equ 47 +EMR_SELECTPALETTE equ 48 +EMR_CREATEPALETTE equ 49 +EMR_SETPALETTEENTRIES equ 50 +EMR_RESIZEPALETTE equ 51 +EMR_REALIZEPALETTE equ 52 +EMR_EXTFLOODFILL equ 53 +EMR_LINETO equ 54 +EMR_ARCTO equ 55 +EMR_POLYDRAW equ 56 +EMR_SETARCDIRECTION equ 57 +EMR_SETMITERLIMIT equ 58 +EMR_BEGINPATH equ 59 +EMR_ENDPATH equ 60 +EMR_CLOSEFIGURE equ 61 +EMR_FILLPATH equ 62 +EMR_STROKEANDFILLPATH equ 63 +EMR_STROKEPATH equ 64 +EMR_FLATTENPATH equ 65 +EMR_WIDENPATH equ 66 +EMR_SELECTCLIPPATH equ 67 +EMR_ABORTPATH equ 68 +EMR_GDICOMMENT equ 70 +EMR_FILLRGN equ 71 +EMR_FRAMERGN equ 72 +EMR_INVERTRGN equ 73 +EMR_PAINTRGN equ 74 +EMR_EXTSELECTCLIPRGN equ 75 +EMR_BITBLT equ 76 +EMR_STRETCHBLT equ 77 +EMR_MASKBLT equ 78 +EMR_PLGBLT equ 79 +EMR_SETDIBITSTODEVICE equ 80 +EMR_STRETCHDIBITS equ 81 +EMR_EXTCREATEFONTINDIRECTW equ 82 +EMR_EXTTEXTOUTA equ 83 +EMR_EXTTEXTOUTW equ 84 +EMR_POLYBEZIER16 equ 85 +EMR_POLYGON16 equ 86 +EMR_POLYLINE16 equ 87 +EMR_POLYBEZIERTO16 equ 88 +EMR_POLYLINETO16 equ 89 +EMR_POLYPOLYLINE16 equ 90 +EMR_POLYPOLYGON16 equ 91 +EMR_POLYDRAW16 equ 92 +EMR_CREATEMONOBRUSH equ 93 +EMR_CREATEDIBPATTERNBRUSHPT equ 94 +EMR_EXTCREATEPEN equ 95 +EMR_POLYTEXTOUTA equ 96 +EMR_POLYTEXTOUTW equ 97 +EMR_MIN equ 1 +EMR_MAX equ 97 +STRETCH_ANDSCANS equ 1 +STRETCH_ORSCANS equ 2 +STRETCH_DELETESCANS equ 3 +STRETCH_HALFTONE equ 4 +TCI_SRCCHARSET equ 1 +TCI_SRCCODEPAGE equ 2 +TCI_SRCFONTSIG equ 3 +MONO_FONT equ 8 +JOHAB_CHARSET equ 130 +HEBREW_CHARSET equ 177 +ARABIC_CHARSET equ 178 +GREEK_CHARSET equ 161 +TURKISH_CHARSET equ 162 +THAI_CHARSET equ 222 +EASTEUROPE_CHARSET equ 238 +RUSSIAN_CHARSET equ 204 +MAC_CHARSET equ 77 +BALTIC_CHARSET equ 186 +FS_LATIN1 equ 1h +FS_LATIN2 equ 2h +FS_CYRILLIC equ 4h +FS_GREEK equ 8h +FS_TURKISH equ 10h +FS_HEBREW equ 20h +FS_ARABIC equ 40h +FS_BALTIC equ 80h +FS_THAI equ 10000h +FS_JISJAPAN equ 20000h +FS_CHINESESIMP equ 40000h +FS_WANSUNG equ 80000h +FS_CHINESETRAD equ 100000h +FS_JOHAB equ 200000h +FS_SYMBOL equ 80000000h +DEFAULT_GUI_FONT equ 17 +DM_RESERVED1 equ 800000h +DM_RESERVED2 equ 1000000h +DM_ICMMETHOD equ 2000000h +DM_ICMINTENT equ 4000000h +DM_MEDIATYPE equ 8000000h +DM_DITHERTYPE equ 10000000h +DMPAPER_ISO_B4 equ 42 +DMPAPER_JAPANESE_POSTCARD equ 43 +DMPAPER_9X11 equ 44 +DMPAPER_10X11 equ 45 +DMPAPER_15X11 equ 46 +DMPAPER_ENV_INVITE equ 47 +DMPAPER_RESERVED_48 equ 48 +DMPAPER_RESERVED_49 equ 49 +DMPAPER_LETTER_EXTRA equ 50 +DMPAPER_LEGAL_EXTRA equ 51 +DMPAPER_TABLOID_EXTRA equ 52 +DMPAPER_A4_EXTRA equ 53 +DMPAPER_LETTER_TRANSVERSE equ 54 +DMPAPER_A4_TRANSVERSE equ 55 +DMPAPER_LETTER_EXTRA_TRANSVERSE equ 56 +DMPAPER_A_PLUS equ 57 +DMPAPER_B_PLUS equ 58 +DMPAPER_LETTER_PLUS equ 59 +DMPAPER_A4_PLUS equ 60 +DMPAPER_A5_TRANSVERSE equ 61 +DMPAPER_B5_TRANSVERSE equ 62 +DMPAPER_A3_EXTRA equ 63 +DMPAPER_A5_EXTRA equ 64 +DMPAPER_B5_EXTRA equ 65 +DMPAPER_A2 equ 66 +DMPAPER_A3_TRANSVERSE equ 67 +DMPAPER_A3_EXTRA_TRANSVERSE equ 68 +DMTT_DOWNLOAD_OUTLINE equ 4 +DMICMMETHOD_NONE equ 1 +DMICMMETHOD_SYSTEM equ 2 +DMICMMETHOD_DRIVER equ 3 +DMICMMETHOD_DEVICE equ 4 +DMICMMETHOD_USER equ 256 +DMICM_SATURATE equ 1 +DMICM_CONTRAST equ 2 +DMICM_COLORMETRIC equ 3 +DMICM_USER equ 256 +DMMEDIA_STANDARD equ 1 +DMMEDIA_GLOSSY equ 2 +DMMEDIA_TRANSPARENCY equ 3 +DMMEDIA_USER equ 256 +DMDITHER_NONE equ 1 +DMDITHER_COARSE equ 2 +DMDITHER_FINE equ 3 +DMDITHER_LINEART equ 4 +DMDITHER_GRAYSCALE equ 5 +DMDITHER_USER equ 256 +GGO_GRAY2_BITMAP equ 4 +GGO_GRAY4_BITMAP equ 5 +GGO_GRAY8_BITMAP equ 6 +GGO_GLYPH_INDEX equ 80h +GCP_DBCS equ 1h +GCP_REORDER equ 2h +GCP_USEKERNING equ 8h +GCP_GLYPHSHAPE equ 10h +GCP_LIGATE equ 20h +GCP_DIACRITIC equ 100h +GCP_KASHIDA equ 400h +GCP_ERROR equ 8000h +FLI_MASK equ 103Bh +GCP_JUSTIFY equ 10000h +GCP_NODIACRITICS equ 20000h +FLI_GLYPHS equ 40000h +GCP_CLASSIN equ 80000h +GCP_MAXEXTENT equ 100000h +GCP_JUSTIFYIN equ 200000h +GCP_DISPLAYZWG equ 400000h +GCP_SYMSWAPOFF equ 800000h +GCP_NUMERICOVERRIDE equ 1000000h +GCP_NEUTRALOVERRIDE equ 2000000h +GCP_NUMERICSLATIN equ 4000000h +GCP_NUMERICSLOCAL equ 8000000h +GCPCLASS_LATIN equ 1 +GCPCLASS_HEBREW equ 2 +GCPCLASS_ARABIC equ 2 +GCPCLASS_NEUTRAL equ 3 +GCPCLASS_LOCALNUMBER equ 4 +GCPCLASS_LATINNUMBER equ 5 +GCPCLASS_LATINNUMERICTERMINATOR equ 6 +GCPCLASS_LATINNUMERICSEPARATOR equ 7 +GCPCLASS_NUMERICSEPARATOR equ 8 +GCPCLASS_PREBOUNDRTL equ 80h +GCPCLASS_PREBOUNDLTR equ 40h +DC_BINADJUST equ 19 +DC_EMF_COMPLIANT equ 20 +DC_DATATYPE_PRODUCED equ 21 +DC_COLLATE equ 22 +DCTT_DOWNLOAD_OUTLINE equ 8h +DCBA_FACEUPNONE equ 0h +DCBA_FACEUPCENTER equ 1h +DCBA_FACEUPLEFT equ 2h +DCBA_FACEUPRIGHT equ 3h +DCBA_FACEDOWNNONE equ 100h +DCBA_FACEDOWNCENTER equ 101h +DCBA_FACEDOWNLEFT equ 102h +DCBA_FACEDOWNRIGHT equ 103h +ICM_OFF equ 1 +ICM_ON equ 2 +ICM_QUERY equ 3 +EMR_SETICMMODE equ 98 +EMR_CREATECOLORSPACE equ 99 +EMR_SETCOLORSPACE equ 100 +EMR_DELETECOLORSPACE equ 101 +SB_HORZ equ 0 +SB_VERT equ 1 +SB_CTL equ 2 +SB_BOTH equ 3 +SB_LINEUP equ 0 +SB_LINELEFT equ 0 +SB_LINEDOWN equ 1 +SB_LINERIGHT equ 1 +SB_PAGEUP equ 2 +SB_PAGELEFT equ 2 +SB_PAGEDOWN equ 3 +SB_PAGERIGHT equ 3 +SB_THUMBPOSITION equ 4 +SB_THUMBTRACK equ 5 +SB_TOP equ 6 +SB_LEFT equ 6 +SB_BOTTOM equ 7 +SB_RIGHT equ 7 +SB_ENDSCROLL equ 8 +SBM_SETSCROLLINFO equ 00E9h +SBM_GETSCROLLINFO equ 00EAh +SIF_RANGE equ 0001h +SIF_PAGE equ 0002h +SIF_POS equ 0004h +SIF_DISABLENOSCROLL equ 0008h +SIF_TRACKPOS equ 0010h +SIF_ALL equ SIF_RANGE OR SIF_PAGE OR SIF_POS OR SIF_TRACKPOS +SW_HIDE equ 0 +SW_SHOWNORMAL equ 1 +SW_NORMAL equ 1 +SW_SHOWMINIMIZED equ 2 +SW_SHOWMAXIMIZED equ 3 +SW_MAXIMIZE equ 3 +SW_SHOWNOACTIVATE equ 4 +SW_SHOW equ 5 +SW_MINIMIZE equ 6 +SW_SHOWMINNOACTIVE equ 7 +SW_SHOWNA equ 8 +SW_RESTORE equ 9 +SW_SHOWDEFAULT equ 10 +SW_MAX equ 10 +HIDE_WINDOW equ 0 +SHOW_OPENWINDOW equ 1 +SHOW_ICONWINDOW equ 2 +SHOW_FULLSCREEN equ 3 +SHOW_OPENNOACTIVATE equ 4 +SW_PARENTCLOSING equ 1 +SW_OTHERZOOM equ 2 +SW_PARENTOPENING equ 3 +SW_OTHERUNZOOM equ 4 +KF_EXTENDED equ 100h +KF_DLGMODE equ 800h +KF_MENUMODE equ 1000h +KF_ALTDOWN equ 2000h +KF_REPEAT equ 4000h +KF_UP equ 8000h +VK_BACK equ 8h +VK_CANCEL equ 3h +VK_CAPITAL equ 14h +VK_CLEAR equ 0Ch +VK_CONTROL equ 11h +VK_DELETE equ 2Eh +VK_DOWN equ 28h +VK_END equ 23h +VK_ESCAPE equ 1Bh +VK_EXECUTE equ 2Bh +VK_HELP equ 2Fh +VK_HOME equ 24h +VK_INSERT equ 2Dh +VK_LBUTTON equ 1h +VK_LEFT equ 25h +VK_MBUTTON equ 4h +VK_MENU equ 12h +VK_NEXT equ 22h +VK_PAUSE equ 13h +VK_PGDN equ 22h +VK_PGUP equ 21h +VK_PRINT equ 2Ah +VK_PRIOR equ 21h +VK_RBUTTON equ 2h +VK_RETURN equ 0Dh +VK_RIGHT equ 27h +VK_SELECT equ 29h +VK_SHIFT equ 10h +VK_SNAPSHOT equ 2Ch +VK_SPACE equ 20h +VK_TAB equ 9h +VK_UP equ 26h +VK_NUMPAD0 equ 60h +VK_NUMPAD1 equ 61h +VK_NUMPAD2 equ 62h +VK_NUMPAD3 equ 63h +VK_NUMPAD4 equ 64h +VK_NUMPAD5 equ 65h +VK_NUMPAD6 equ 66h +VK_NUMPAD7 equ 67h +VK_NUMPAD8 equ 68h +VK_NUMPAD9 equ 69h +VK_MULTIPLY equ 6Ah +VK_ADD equ 6Bh +VK_SEPARATOR equ 6Ch +VK_SUBTRACT equ 6Dh +VK_DECIMAL equ 6Eh +VK_DIVIDE equ 6Fh +VK_F1 equ 70h +VK_F2 equ 71h +VK_F3 equ 72h +VK_F4 equ 73h +VK_F5 equ 74h +VK_F6 equ 75h +VK_F7 equ 76h +VK_F8 equ 77h +VK_F9 equ 78h +VK_F10 equ 79h +VK_F11 equ 7Ah +VK_F12 equ 7Bh +VK_F13 equ 7Ch +VK_F14 equ 7Dh +VK_F15 equ 7Eh +VK_F16 equ 7Fh +VK_F17 equ 80h +VK_F18 equ 81h +VK_F19 equ 82h +VK_F20 equ 83h +VK_F21 equ 84h +VK_F22 equ 85h +VK_F23 equ 86h +VK_F24 equ 87h +VK_NUMLOCK equ 90h +VK_SCROLL equ 91h +VK_LSHIFT equ 0A0h +VK_RSHIFT equ 0A1h +VK_LCONTROL equ 0A2h +VK_RCONTROL equ 0A3h +VK_LMENU equ 0A4h +VK_RMENU equ 0A5h +VK_ATTN equ 0F6h +VK_CRSEL equ 0F7h +VK_EXSEL equ 0F8h +VK_EREOF equ 0F9h +VK_PLAY equ 0FAh +VK_ZOOM equ 0FBh +VK_NONAME equ 0FCh +VK_PA1 equ 0FDh +VK_OEM_CLEAR equ 0FEh +VK_0 equ 30h +VK_1 equ 31h +VK_2 equ 32h +VK_3 equ 33h +VK_4 equ 34h +VK_5 equ 35h +VK_6 equ 36h +VK_7 equ 37h +VK_8 equ 38h +VK_9 equ 39h +VK_A equ 41h +VK_B equ 42h +VK_C equ 43h +VK_D equ 44h +VK_E equ 45h +VK_F equ 46h +VK_G equ 47h +VK_H equ 48h +VK_I equ 49h +VK_J equ 4Ah +VK_K equ 4Bh +VK_L equ 4Ch +VK_M equ 4Dh +VK_N equ 4Eh +VK_O equ 4Fh +VK_P equ 50h +VK_Q equ 51h +VK_R equ 52h +VK_S equ 53h +VK_T equ 54h +VK_U equ 55h +VK_V equ 56h +VK_W equ 57h +VK_X equ 58h +VK_Y equ 59h +VK_Z equ 5Ah +WH_MIN equ -1 +WH_MSGFILTER equ -1 +WH_JOURNALRECORD equ 0 +WH_JOURNALPLAYBACK equ 1 +WH_KEYBOARD equ 2 +WH_GETMESSAGE equ 3 +WH_CALLWNDPROC equ 4 +WH_CBT equ 5 +WH_SYSMSGFILTER equ 6 +WH_MOUSE equ 7 +WH_HARDWARE equ 8 +WH_DEBUG equ 9 +WH_SHELL equ 10 +WH_FOREGROUNDIDLE equ 11 +WH_MAX equ 11 +HC_ACTION equ 0 +HC_GETNEXT equ 1 +HC_SKIP equ 2 +HC_NOREMOVE equ 3 +HC_NOREM equ HC_NOREMOVE +HC_SYSMODALON equ 4 +HC_SYSMODALOFF equ 5 +HCBT_MOVESIZE equ 0 +HCBT_MINMAX equ 1 +HCBT_QS equ 2 +HCBT_CREATEWND equ 3 +HCBT_DESTROYWND equ 4 +HCBT_ACTIVATE equ 5 +HCBT_CLICKSKIPPED equ 6 +HCBT_KEYSKIPPED equ 7 +HCBT_SYSCOMMAND equ 8 +HCBT_SETFOCUS equ 9 +HSHELL_WINDOWCREATED equ 1 +HSHELL_WINDOWDESTROYED equ 2 +HSHELL_ACTIVATESHELLWINDOW equ 3 +HKL_PREV equ 0 +HKL_NEXT equ 1 +KLF_ACTIVATE equ 1h +KLF_SUBSTITUTE_OK equ 2h +KLF_UNLOADPREVIOUS equ 4h +KLF_REORDER equ 8h +KL_NAMELENGTH equ 9 +DESKTOP_READOBJECTS equ 1h +DESKTOP_CREATEWINDOW equ 2h +DESKTOP_CREATEMENU equ 4h +DESKTOP_HOOKCONTROL equ 8h +DESKTOP_JOURNALRECORD equ 10h +DESKTOP_JOURNALPLAYBACK equ 20h +DESKTOP_ENUMERATE equ 40h +DESKTOP_WRITEOBJECTS equ 80h +WINSTA_ENUMDESKTOPS equ 1h +WINSTA_READATTRIBUTES equ 2h +WINSTA_ACCESSCLIPBOARD equ 4h +WINSTA_CREATEDESKTOP equ 8h +WINSTA_WRITEATTRIBUTES equ 10h +WINSTA_ACCESSGLOBALATOMS equ 20h +WINSTA_EXITWINDOWS equ 40h +WINSTA_ENUMERATE equ 100h +WINSTA_READSCREEN equ 200h +GWL_WNDPROC equ -4 +GWL_HINSTANCE equ -6 +GWL_HWNDPARENT equ -8 +GWL_STYLE equ -16 +GWL_EXSTYLE equ -20 +GWL_USERDATA equ -21 +GWL_ID equ -12 +GCL_MENUNAME equ -8 +GCL_HBRBACKGROUND equ -10 +GCL_HCURSOR equ -12 +GCL_HICON equ -14 +GCL_HMODULE equ -16 +GCL_CBWNDEXTRA equ -18 +GCL_CBCLSEXTRA equ -20 +GCL_WNDPROC equ -24 +GCL_STYLE equ -26 +GCW_ATOM equ -32 +WM_USER equ 400h +WM_NULL equ 0h +WM_CREATE equ 1h +WM_DESTROY equ 2h +WM_MOVE equ 3h +WM_SIZE equ 5h +WM_ACTIVATE equ 6h +WA_INACTIVE equ 0 +WA_ACTIVE equ 1 +WA_CLICKACTIVE equ 2 +WM_SETFOCUS equ 7h +WM_KILLFOCUS equ 08h +WM_ENABLE equ 0Ah +WM_SETREDRAW equ 0Bh +WM_SETTEXT equ 0Ch +WM_GETTEXT equ 0Dh +WM_GETTEXTLENGTH equ 0Eh +WM_PAINT equ 0Fh +WM_CLOSE equ 10h +WM_QUERYENDSESSION equ 11h +WM_QUIT equ 12h +WM_QUERYOPEN equ 13h +WM_ERASEBKGND equ 14h +WM_SYSCOLORCHANGE equ 15h +WM_ENDSESSION equ 16h +WM_SHOWWINDOW equ 18h +WM_WININICHANGE equ 1Ah +WM_SETTINGCHANGE equ WM_WININICHANGE +WM_DEVMODECHANGE equ 1Bh +WM_ACTIVATEAPP equ 1Ch +WM_FONTCHANGE equ 1Dh +WM_TIMECHANGE equ 1Eh +WM_CANCELMODE equ 1Fh +WM_SETCURSOR equ 20h +WM_MOUSEACTIVATE equ 21h +WM_CHILDACTIVATE equ 22h +WM_QUEUESYNC equ 23h +WM_GETMINMAXINFO equ 24h +WM_PAINTICON equ 26h +WM_ICONERASEBKGND equ 27h +WM_NEXTDLGCTL equ 28h +WM_SPOOLERSTATUS equ 2Ah +WM_DRAWITEM equ 2Bh +WM_MEASUREITEM equ 2Ch +WM_DELETEITEM equ 2Dh +WM_VKEYTOITEM equ 2Eh +WM_CHARTOITEM equ 2Fh +WM_SETFONT equ 30h +WM_GETFONT equ 31h +WM_SETHOTKEY equ 32h +WM_GETHOTKEY equ 33h +WM_QUERYDRAGICON equ 37h +WM_COMPAREITEM equ 39h +WM_GETOBJECT equ 3Dh +WM_COMPACTING equ 41h +WM_OTHERWINDOWCREATED equ 42h +WM_OTHERWINDOWDESTROYED equ 43h +WM_COMMNOTIFY equ 44h +CN_RECEIVE equ 1h +CN_TRANSMIT equ 2h +CN_EVENT equ 4h +WM_WINDOWPOSCHANGING equ 46h +WM_WINDOWPOSCHANGED equ 47h +WM_POWER equ 48h +PWR_OK equ 1 +PWR_FAIL equ -1 +PWR_SUSPENDREQUEST equ 1 +PWR_SUSPENDRESUME equ 2 +PWR_CRITICALRESUME equ 3 +WM_COPYDATA equ 4Ah +WM_CANCELJOURNAL equ 4Bh +WM_NOTIFY equ 4Eh +WM_INPUTLANGCHANGEREQUEST equ 50h +WM_INPUTLANGCHANGE equ 51h +WM_TCARD equ 52h +WM_HELP equ 53h +WM_USERCHANGED equ 54h +WM_NOTIFYFORMAT equ 55h +WM_CONTEXTMENU equ 7Bh +WM_STYLECHANGING equ 7Ch +WM_STYLECHANGED equ 7Dh +WM_DISPLAYCHANGE equ 7Eh +WM_GETICON equ 7Fh +WM_SETICON equ 80h +WM_NCCREATE equ 81h +WM_NCDESTROY equ 82h +WM_NCCALCSIZE equ 83h +WM_NCHITTEST equ 84h +WM_NCPAINT equ 85h +WM_NCACTIVATE equ 86h +WM_GETDLGCODE equ 87h +WM_SYNCPAINT equ 88h +WM_NCMOUSEMOVE equ 0A0h +WM_NCLBUTTONDOWN equ 0A1h +WM_NCLBUTTONUP equ 0A2h +WM_NCLBUTTONDBLCLK equ 0A3h +WM_NCRBUTTONDOWN equ 0A4h +WM_NCRBUTTONUP equ 0A5h +WM_NCRBUTTONDBLCLK equ 0A6h +WM_NCMBUTTONDOWN equ 0A7h +WM_NCMBUTTONUP equ 0A8h +WM_NCMBUTTONDBLCLK equ 0A9h +WM_KEYFIRST equ 100h +WM_KEYDOWN equ 100h +WM_KEYUP equ 101h +WM_CHAR equ 102h +WM_DEADCHAR equ 103h +WM_SYSKEYDOWN equ 104h +WM_SYSKEYUP equ 105h +WM_SYSCHAR equ 106h +WM_SYSDEADCHAR equ 107h +WM_KEYLAST equ 108h +WM_INITDIALOG equ 110h +WM_COMMAND equ 111h +WM_SYSCOMMAND equ 112h +WM_TIMER equ 113h +WM_HSCROLL equ 114h +WM_VSCROLL equ 115h +WM_INITMENU equ 116h +WM_INITMENUPOPUP equ 117h +WM_MENUSELECT equ 11Fh +WM_MENUCHAR equ 120h +WM_ENTERIDLE equ 121h +WM_CTLCOLORMSGBOX equ 132h +WM_CTLCOLOREDIT equ 133h +WM_CTLCOLORLISTBOX equ 134h +WM_CTLCOLORBTN equ 135h +WM_CTLCOLORDLG equ 136h +WM_CTLCOLORSCROLLBAR equ 137h +WM_CTLCOLORSTATIC equ 138h +WM_MOUSEFIRST equ 200h +WM_MOUSEMOVE equ 200h +WM_LBUTTONDOWN equ 201h +WM_LBUTTONUP equ 202h +WM_LBUTTONDBLCLK equ 203h +WM_RBUTTONDOWN equ 204h +WM_RBUTTONUP equ 205h +WM_RBUTTONDBLCLK equ 206h +WM_MBUTTONDOWN equ 207h +WM_MBUTTONUP equ 208h +WM_MBUTTONDBLCLK equ 209h +WM_MOUSELAST equ 209h +WM_PARENTNOTIFY equ 210h +WM_ENTERMENULOOP equ 211h +WM_EXITMENULOOP equ 212h +WM_MDICREATE equ 220h +WM_MDIDESTROY equ 221h +WM_MDIACTIVATE equ 222h +WM_MDIRESTORE equ 223h +WM_MDINEXT equ 224h +WM_MDIMAXIMIZE equ 225h +WM_MDITILE equ 226h +WM_MDICASCADE equ 227h +WM_MDIICONARRANGE equ 228h +WM_MDIGETACTIVE equ 229h +WM_MDISETMENU equ 230h +WM_DROPFILES equ 233h +WM_MDIREFRESHMENU equ 234h +WM_CUT equ 300h +WM_COPY equ 301h +WM_PASTE equ 302h +WM_CLEAR equ 303h +WM_UNDO equ 304h +WM_RENDERFORMAT equ 305h +WM_RENDERALLFORMATS equ 306h +WM_DESTROYCLIPBOARD equ 307h +WM_DRAWCLIPBOARD equ 308h +WM_PAINTCLIPBOARD equ 309h +WM_VSCROLLCLIPBOARD equ 30Ah +WM_SIZECLIPBOARD equ 30Bh +WM_ASKCBFORMATNAME equ 30Ch +WM_CHANGECBCHAIN equ 30Dh +WM_HSCROLLCLIPBOARD equ 30Eh +WM_QUERYNEWPALETTE equ 30Fh +WM_PALETTEISCHANGING equ 310h +WM_PALETTECHANGED equ 311h +WM_HOTKEY equ 312h +WM_PRINT equ 317h +WM_PRINTCLIENT equ 318h +WM_PENWINFIRST equ 380h +WM_PENWINLAST equ 38Fh +ST_BEGINSWP equ 0 +ST_ENDSWP equ 1 +HTERROR equ -2 +HTTRANSPARENT equ -1 +HTNOWHERE equ 0 +HTCLIENT equ 1 +HTCAPTION equ 2 +HTSYSMENU equ 3 +HTGROWBOX equ 4 +HTSIZE equ HTGROWBOX +HTMENU equ 5 +HTHSCROLL equ 6 +HTVSCROLL equ 7 +HTMINBUTTON equ 8 +HTMAXBUTTON equ 9 +HTLEFT equ 10 +HTRIGHT equ 11 +HTTOP equ 12 +HTTOPLEFT equ 13 +HTTOPRIGHT equ 14 +HTBOTTOM equ 15 +HTBOTTOMLEFT equ 16 +HTBOTTOMRIGHT equ 17 +HTBORDER equ 18 +HTREDUCE equ HTMINBUTTON +HTZOOM equ HTMAXBUTTON +HTSIZEFIRST equ HTLEFT +HTSIZELAST equ HTBOTTOMRIGHT +HTOBJECT equ 19 +HTCLOSE equ 20 +HTHELP equ 21 +SMTO_NORMAL equ 0h +SMTO_BLOCK equ 1h +SMTO_ABORTIFHUNG equ 2h +SMTO_NOTIMEOUTIFNOTHUNG equ 8 +MA_ACTIVATE equ 1 +MA_ACTIVATEANDEAT equ 2 +MA_NOACTIVATE equ 3 +MA_NOACTIVATEANDEAT equ 4 +SIZE_RESTORED equ 0 +SIZE_MINIMIZED equ 1 +SIZE_MAXIMIZED equ 2 +SIZE_MAXSHOW equ 3 +SIZE_MAXHIDE equ 4 +SIZENORMAL equ SIZE_RESTORED +SIZEICONIC equ SIZE_MINIMIZED +SIZEFULLSCREEN equ SIZE_MAXIMIZED +SIZEZOOMSHOW equ SIZE_MAXSHOW +SIZEZOOMHIDE equ SIZE_MAXHIDE +WVR_ALIGNTOP equ 10h +WVR_ALIGNLEFT equ 20h +WVR_ALIGNBOTTOM equ 40h +WVR_ALIGNRIGHT equ 80h +WVR_HREDRAW equ 100h +WVR_VREDRAW equ 200h +WVR_REDRAW equ WVR_HREDRAW OR WVR_VREDRAW +WVR_VALIDRECTS equ 400h +MK_LBUTTON equ 1h +MK_RBUTTON equ 2h +MK_SHIFT equ 4h +MK_CONTROL equ 8h +MK_MBUTTON equ 10h +WS_OVERLAPPED equ 0h +WS_POPUP equ 80000000h +WS_CHILD equ 40000000h +WS_MINIMIZE equ 20000000h +WS_VISIBLE equ 10000000h +WS_DISABLED equ 8000000h +WS_CLIPSIBLINGS equ 4000000h +WS_CLIPCHILDREN equ 2000000h +WS_MAXIMIZE equ 1000000h +WS_CAPTION equ 0C00000h +WS_BORDER equ 800000h +WS_DLGFRAME equ 400000h +WS_VSCROLL equ 200000h +WS_HSCROLL equ 100000h +WS_SYSMENU equ 80000h +WS_THICKFRAME equ 40000h +WS_GROUP equ 20000h +WS_TABSTOP equ 10000h +WS_MINIMIZEBOX equ 20000h +WS_MAXIMIZEBOX equ 10000h +WS_TILED equ WS_OVERLAPPED +WS_ICONIC equ WS_MINIMIZE +WS_SIZEBOX equ WS_THICKFRAME +WS_OVERLAPPEDWINDOW equ WS_OVERLAPPED OR WS_CAPTION OR WS_SYSMENU OR WS_THICKFRAME OR WS_MINIMIZEBOX OR WS_MAXIMIZEBOX +WS_TILEDWINDOW equ WS_OVERLAPPEDWINDOW +WS_POPUPWINDOW equ WS_POPUP OR WS_BORDER OR WS_SYSMENU +WS_CHILDWINDOW equ WS_CHILD +WS_EX_DLGMODALFRAME equ 1h +WS_EX_NOPARENTNOTIFY equ 4h +WS_EX_TOPMOST equ 8h +WS_EX_ACCEPTFILES equ 10h +WS_EX_TRANSPARENT equ 20h +WS_EX_MDICHILD equ 00000040h +WS_EX_TOOLWINDOW equ 00000080h +WS_EX_WINDOWEDGE equ 00000100h +WS_EX_CLIENTEDGE equ 00000200h +WS_EX_CONTEXTHELP equ 00000400h +WS_EX_RIGHT equ 00001000h +WS_EX_LEFT equ 00000000h +WS_EX_RTLREADING equ 00002000h +WS_EX_LTRREADING equ 00000000h +WS_EX_LEFTSCROLLBAR equ 00004000h +WS_EX_RIGHTSCROLLBAR equ 00000000h +WS_EX_CONTROLPARENT equ 00010000h +WS_EX_STATICEDGE equ 00020000h +WS_EX_APPWINDOW equ 00040000h +WS_EX_OVERLAPPEDWINDOW equ WS_EX_WINDOWEDGE OR WS_EX_CLIENTEDGE +WS_EX_PALETTEWINDOW equ WS_EX_WINDOWEDGE OR WS_EX_TOOLWINDOW OR WS_EX_TOPMOST +CS_VREDRAW equ 1h +CS_HREDRAW equ 2h +CS_KEYCVTWINDOW equ 4h +CS_DBLCLKS equ 8h +CS_OWNDC equ 20h +CS_CLASSDC equ 40h +CS_PARENTDC equ 80h +CS_NOKEYCVT equ 100h +CS_NOCLOSE equ 200h +CS_SAVEBITS equ 800h +CS_BYTEALIGNCLIENT equ 1000h +CS_BYTEALIGNWINDOW equ 2000h +CS_PUBLICCLASS equ 4000h +CS_GLOBALCLASS equ CS_PUBLICCLASS +CS_IME equ 10000h +CF_TEXT equ 1 +CF_BITMAP equ 2 +CF_METAFILEPICT equ 3 +CF_SYLK equ 4 +CF_DIF equ 5 +CF_TIFF equ 6 +CF_OEMTEXT equ 7 +CF_DIB equ 8 +CF_PALETTE equ 9 +CF_PENDATA equ 10 +CF_RIFF equ 11 +CF_WAVE equ 12 +CF_UNICODETEXT equ 13 +CF_ENHMETAFILE equ 14 +CF_HDROP equ 15 +CF_LOCALE equ 16 +CF_MAX equ 17 +CF_OWNERDISPLAY equ 80h +CF_DSPTEXT equ 81h +CF_DSPBITMAP equ 82h +CF_DSPMETAFILEPICT equ 83h +CF_DSPENHMETAFILE equ 8Eh +CF_PRIVATEFIRST equ 200h +CF_PRIVATELAST equ 2FFh +CF_GDIOBJFIRST equ 300h +CF_GDIOBJLAST equ 3FFh +FVIRTKEY equ 1h +FNOINVERT equ 2h +FSHIFT equ 4h +FCONTROL equ 8h +FALT equ 10h +WPF_SETMINPOSITION equ 1h +WPF_RESTORETOMAXIMIZED equ 2h +ODT_MENU equ 1 +ODT_LISTBOX equ 2 +ODT_COMBOBOX equ 3 +ODT_BUTTON equ 4 +ODT_STATIC equ 5 +ODA_DRAWENTIRE equ 1h +ODA_SELECT equ 2h +ODA_FOCUS equ 4h +ODS_SELECTED equ 1h +ODS_GRAYED equ 2h +ODS_DISABLED equ 4h +ODS_CHECKED equ 8h +ODS_FOCUS equ 10h +ODS_DEFAULT equ 20h +ODS_COMBOBOXEDIT equ 1000h +ODS_HOTLIGHT equ 40h +ODS_INACTIVE equ 80h +PM_NOREMOVE equ 0h +PM_REMOVE equ 1h +PM_NOYIELD equ 2h +MOD_ALT equ 1h +MOD_CONTROL equ 2h +MOD_SHIFT equ 4h +MOD_WIN equ 8h +IDHOT_SNAPWINDOW equ -1 +IDHOT_SNAPDESKTOP equ -2 +EWX_LOGOFF equ 0 +EWX_SHUTDOWN equ 1 +EWX_REBOOT equ 2 +EWX_FORCE equ 4 +EWX_POWEROFF equ 8 +EWX_FORCEIFHUNG equ 10h +EW_RESTARTWINDOWS equ 42h +READAPI equ 0 +WRITEAPI equ 1 +READ_WRITE equ 2 +HWND_BROADCAST equ 0FFFFh +CW_USEDEFAULT equ 80000000h +HWND_MESSAGE equ -3 +HWND_DESKTOP equ 0 +SWP_NOSIZE equ 1h +SWP_NOMOVE equ 2h +SWP_NOZORDER equ 4h +SWP_NOREDRAW equ 8h +SWP_NOACTIVATE equ 10h +SWP_FRAMECHANGED equ 20h +SWP_SHOWWINDOW equ 40h +SWP_HIDEWINDOW equ 80h +SWP_NOCOPYBITS equ 100h +SWP_NOOWNERZORDER equ 200h +SWP_DRAWFRAME equ SWP_FRAMECHANGED +SWP_NOREPOSITION equ SWP_NOOWNERZORDER +SWP_DEFERERASE equ 2000h +SWP_ASYNCWINDOWPOS equ 4000h +HWND_TOP equ 0 +HWND_BOTTOM equ 1 +HWND_TOPMOST equ -1 +HWND_NOTOPMOST equ -2 +DLGWINDOWEXTRA equ 30 +KEYEVENTF_EXTENDEDKEY equ 1h +KEYEVENTF_KEYUP equ 2h +KEYEVENTF_UNICODE equ 4h +KEYEVENTF_SCANCODE equ 8h +MOUSEEVENTF_MOVE equ 1h +MOUSEEVENTF_LEFTDOWN equ 2h +MOUSEEVENTF_LEFTUP equ 4h +MOUSEEVENTF_RIGHTDOWN equ 8h +MOUSEEVENTF_RIGHTUP equ 10h +MOUSEEVENTF_MIDDLEDOWN equ 20h +MOUSEEVENTF_MIDDLEUP equ 40h +MOUSEEVENTF_WHEEL equ 800h +MOUSEEVENTF_ABSOLUTE equ 8000h +MOUSEEVENTF_XDOWN equ 100h +MOUSEEVENTF_XUP equ 200h +XBUTTON1 equ 1h +XBUTTON2 equ 2h +QS_KEY equ 1h +QS_MOUSEMOVE equ 2h +QS_MOUSEBUTTON equ 4h +QS_POSTMESSAGE equ 8h +QS_TIMER equ 10h +QS_PAINT equ 20h +QS_SENDMESSAGE equ 40h +QS_HOTKEY equ 80h +QS_ALLPOSTMESSAGE equ 100h +QS_MOUSE equ QS_MOUSEMOVE OR QS_MOUSEBUTTON +QS_INPUT equ QS_MOUSE OR QS_KEY +QS_ALLEVENTS equ QS_INPUT OR QS_POSTMESSAGE OR QS_TIMER OR QS_PAINT OR QS_HOTKEY +QS_ALLINPUT equ QS_SENDMESSAGE OR QS_PAINT OR QS_TIMER OR QS_POSTMESSAGE OR QS_MOUSEBUTTON OR QS_MOUSEMOVE OR QS_HOTKEY OR QS_KEY +SM_CXSCREEN equ 0 +SM_CYSCREEN equ 1 +SM_CXVSCROLL equ 2 +SM_CYHSCROLL equ 3 +SM_CYCAPTION equ 4 +SM_CXBORDER equ 5 +SM_CYBORDER equ 6 +SM_CXDLGFRAME equ 7 +SM_CYDLGFRAME equ 8 +SM_CYVTHUMB equ 9 +SM_CXHTHUMB equ 10 +SM_CXICON equ 11 +SM_CYICON equ 12 +SM_CXCURSOR equ 13 +SM_CYCURSOR equ 14 +SM_CYMENU equ 15 +SM_CXFULLSCREEN equ 16 +SM_CYFULLSCREEN equ 17 +SM_CYKANJIWINDOW equ 18 +SM_MOUSEPRESENT equ 19 +SM_CYVSCROLL equ 20 +SM_CXHSCROLL equ 21 +SM_DEBUG equ 22 +SM_SWAPBUTTON equ 23 +SM_RESERVED1 equ 24 +SM_RESERVED2 equ 25 +SM_RESERVED3 equ 26 +SM_RESERVED4 equ 27 +SM_CXMIN equ 28 +SM_CYMIN equ 29 +SM_CXSIZE equ 30 +SM_CYSIZE equ 31 +SM_CXFRAME equ 32 +SM_CYFRAME equ 33 +SM_CXMINTRACK equ 34 +SM_CYMINTRACK equ 35 +SM_CXDOUBLECLK equ 36 +SM_CYDOUBLECLK equ 37 +SM_CXICONSPACING equ 38 +SM_CYICONSPACING equ 39 +SM_MENUDROPALIGNMENT equ 40 +SM_PENWINDOWS equ 41 +SM_DBCSENABLED equ 42 +SM_CMOUSEBUTTONS equ 43 +SM_CXFIXEDFRAME equ SM_CXDLGFRAME +SM_CYFIXEDFRAME equ SM_CYDLGFRAME +SM_CXSIZEFRAME equ SM_CXFRAME +SM_CYSIZEFRAME equ SM_CYFRAME +SM_SECURE equ 44 +SM_CXEDGE equ 45 +SM_CYEDGE equ 46 +SM_CXMINSPACING equ 47 +SM_CYMINSPACING equ 48 +SM_CXSMICON equ 49 +SM_CYSMICON equ 50 +SM_CYSMCAPTION equ 51 +SM_CXSMSIZE equ 52 +SM_CYSMSIZE equ 53 +SM_CXMENUSIZE equ 54 +SM_CYMENUSIZE equ 55 +SM_ARRANGE equ 56 +SM_CXMINIMIZED equ 57 +SM_CYMINIMIZED equ 58 +SM_CXMAXTRACK equ 59 +SM_CYMAXTRACK equ 60 +SM_CXMAXIMIZED equ 61 +SM_CYMAXIMIZED equ 62 +SM_NETWORK equ 63 +SM_CLEANBOOT equ 67 +SM_CXDRAG equ 68 +SM_CYDRAG equ 69 +SM_SHOWSOUNDS equ 70 +SM_CXMENUCHECK equ 71 +SM_CYMENUCHECK equ 72 +SM_SLOWMACHINE equ 73 +SM_MIDEASTENABLED equ 74 +SM_MOUSEWHEELPRESENT equ 75 +SM_CMETRICS equ 75 +SM_XVIRTUALSCREEN equ 76 +SM_YVIRTUALSCREEN equ 77 +SM_CXVIRTUALSCREEN equ 78 +SM_CYVIRTUALSCREEN equ 79 +SM_CMONITORS equ 80 +SM_SAMEDISPLAYFORMAT equ 81 +TPM_LEFTBUTTON equ 0h +TPM_RIGHTBUTTON equ 2h +TPM_LEFTALIGN equ 0h +TPM_CENTERALIGN equ 4h +TPM_RIGHTALIGN equ 8h +TPM_TOPALIGN equ 0 +TPM_VCENTERALIGN equ 10h +TPM_BOTTOMALIGN equ 20h +TPM_HORIZONTAL equ 0 +TPM_VERTICAL equ 40h +TPM_NONOTIFY equ 80h +TPM_RETURNCMD equ 100h +TPM_RECURSE equ 1 +DT_TOP equ 0h +DT_LEFT equ 0h +DT_CENTER equ 1h +DT_RIGHT equ 2h +DT_VCENTER equ 4h +DT_BOTTOM equ 8h +DT_WORDBREAK equ 10h +DT_SINGLELINE equ 20h +DT_EXPANDTABS equ 40h +DT_TABSTOP equ 80h +DT_NOCLIP equ 100h +DT_EXTERNALLEADING equ 200h +DT_CALCRECT equ 400h +DT_NOPREFIX equ 800h +DT_INTERNAL equ 1000h +DT_EDITCONTROL equ 2000h +DT_PATH_ELLIPSIS equ 4000h +DT_END_ELLIPSIS equ 8000h +DT_MODIFYSTRING equ 10000h +DT_RTLREADING equ 20000h +DT_WORD_ELLIPSIS equ 40000h +DCX_WINDOW equ 1h +DCX_CACHE equ 2h +DCX_NORESETATTRS equ 4h +DCX_CLIPCHILDREN equ 8h +DCX_CLIPSIBLINGS equ 10h +DCX_PARENTCLIP equ 20h +DCX_EXCLUDERGN equ 40h +DCX_INTERSECTRGN equ 80h +DCX_EXCLUDEUPDATE equ 100h +DCX_INTERSECTUPDATE equ 200h +DCX_LOCKWINDOWUPDATE equ 400h +DCX_NORECOMPUTE equ 100000h +DCX_VALIDATE equ 200000h +RDW_INVALIDATE equ 1h +RDW_INTERNALPAINT equ 2h +RDW_ERASE equ 4h +RDW_VALIDATE equ 8h +RDW_NOINTERNALPAINT equ 10h +RDW_NOERASE equ 20h +RDW_NOCHILDREN equ 40h +RDW_ALLCHILDREN equ 80h +RDW_UPDATENOW equ 100h +RDW_ERASENOW equ 200h +RDW_FRAME equ 400h +RDW_NOFRAME equ 800h +SW_SCROLLCHILDREN equ 1h +SW_INVALIDATE equ 2h +SW_ERASE equ 4h +SW_SMOOTHSCROLL equ 10h +ESB_ENABLE_BOTH equ 0h +ESB_DISABLE_BOTH equ 3h +ESB_DISABLE_LEFT equ 1h +ESB_DISABLE_RIGHT equ 2h +ESB_DISABLE_UP equ 1h +ESB_DISABLE_DOWN equ 2h +ESB_DISABLE_LTUP equ ESB_DISABLE_LEFT +ESB_DISABLE_RTDN equ ESB_DISABLE_RIGHT +MB_OK equ 0h +MB_OKCANCEL equ 1h +MB_ABORTRETRYIGNORE equ 2h +MB_YESNOCANCEL equ 3h +MB_YESNO equ 4h +MB_RETRYCANCEL equ 5h +MB_ICONHAND equ 10h +MB_ICONQUESTION equ 20h +MB_ICONEXCLAMATION equ 30h +MB_ICONASTERISK equ 40h +MB_USERICON equ 80h +MB_ICONERROR equ MB_ICONHAND +MB_ICONINFORMATION equ MB_ICONASTERISK +MB_ICONSTOP equ MB_ICONHAND +MB_ICONWARNING equ MB_ICONEXCLAMATION +MB_DEFBUTTON1 equ 0h +MB_DEFBUTTON2 equ 100h +MB_DEFBUTTON3 equ 200h +MB_DEFBUTTON4 equ 300h +MB_APPLMODAL equ 0h +MB_SYSTEMMODAL equ 1000h +MB_TASKMODAL equ 2000h +MB_HELP equ 4000h +MB_NOFOCUS equ 8000h +MB_SETFOREGROUND equ 10000h +MB_DEFAULT_DESKTOP_ONLY equ 20000h +MB_TYPEMASK equ 0Fh +MB_ICONMASK equ 0F0h +MB_DEFMASK equ 0F00h +MB_MODEMASK equ 3000h +MB_MISCMASK equ 0C000h +MB_TOPMOST equ 40000h +MB_RIGHT equ 80000h +MB_RTLREADING equ 100000h +MB_SERVICE_NOTIFICATION equ 200000h +CTLCOLOR_MSGBOX equ 0 +CTLCOLOR_EDIT equ 1 +CTLCOLOR_LISTBOX equ 2 +CTLCOLOR_BTN equ 3 +CTLCOLOR_DLG equ 4 +CTLCOLOR_SCROLLBAR equ 5 +CTLCOLOR_STATIC equ 6 +CTLCOLOR_MAX equ 8 +COLOR_SCROLLBAR equ 0 +COLOR_BACKGROUND equ 1 +COLOR_ACTIVECAPTION equ 2 +COLOR_INACTIVECAPTION equ 3 +COLOR_MENU equ 4 +COLOR_WINDOW equ 5 +COLOR_WINDOWFRAME equ 6 +COLOR_MENUTEXT equ 7 +COLOR_WINDOWTEXT equ 8 +COLOR_CAPTIONTEXT equ 9 +COLOR_ACTIVEBORDER equ 10 +COLOR_INACTIVEBORDER equ 11 +COLOR_APPWORKSPACE equ 12 +COLOR_HIGHLIGHT equ 13 +COLOR_HIGHLIGHTTEXT equ 14 +COLOR_BTNFACE equ 15 +COLOR_BTNSHADOW equ 16 +COLOR_GRAYTEXT equ 17 +COLOR_BTNTEXT equ 18 +COLOR_INACTIVECAPTIONTEXT equ 19 +COLOR_BTNHIGHLIGHT equ 20 +COLOR_3DDKSHADOW equ 21 +COLOR_3DLIGHT equ 22 +COLOR_INFOTEXT equ 23 +COLOR_INFOBK equ 24 +COLOR_DESKTOP equ COLOR_BACKGROUND +COLOR_3DFACE equ COLOR_BTNFACE +COLOR_3DSHADOW equ COLOR_BTNSHADOW +COLOR_3DHIGHLIGHT equ COLOR_BTNHIGHLIGHT +COLOR_3DHILIGHT equ COLOR_BTNHIGHLIGHT +COLOR_BTNHILIGHT equ COLOR_BTNHIGHLIGHT +COLOR_HOTLIGHT equ 26 +COLOR_GRADIENTACTIVECAPTION equ 27 +COLOR_GRADIENTINACTIVECAPTION equ 28 +GW_HWNDFIRST equ 0 +GW_HWNDLAST equ 1 +GW_HWNDNEXT equ 2 +GW_HWNDPREV equ 3 +GW_OWNER equ 4 +GW_CHILD equ 5 +GW_MAX equ 5 +GW_ENABLEDPOPUP equ 6 +MF_INSERT equ 0h +MF_CHANGE equ 80h +MF_APPEND equ 100h +MF_DELETE equ 200h +MF_REMOVE equ 1000h +MF_BYCOMMAND equ 0h +MF_BYPOSITION equ 400h +MF_SEPARATOR equ 800h +MF_ENABLED equ 0h +MF_GRAYED equ 1h +MF_DISABLED equ 2h +MF_UNCHECKED equ 0h +MF_CHECKED equ 8h +MF_USECHECKBITMAPS equ 200h +MF_STRING equ 0h +MF_BITMAP equ 4h +MF_OWNERDRAW equ 100h +MF_POPUP equ 10h +MF_MENUBARBREAK equ 20h +MF_MENUBREAK equ 40h +MF_UNHILITE equ 0h +MF_HILITE equ 80h +MF_SYSMENU equ 2000h +MF_HELP equ 4000h +MF_MOUSESELECT equ 8000h +MF_END equ 80h +MF_DEFAULT equ 1000h +MF_RIGHTJUSTIFY equ 4000h +SC_SIZE equ 0F000h +SC_MOVE equ 0F010h +SC_MINIMIZE equ 0F020h +SC_MAXIMIZE equ 0F030h +SC_NEXTWINDOW equ 0F040h +SC_PREVWINDOW equ 0F050h +SC_CLOSE equ 0F060h +SC_VSCROLL equ 0F070h +SC_HSCROLL equ 0F080h +SC_MOUSEMENU equ 0F090h +SC_KEYMENU equ 0F100h +SC_ARRANGE equ 0F110h +SC_RESTORE equ 0F120h +SC_TASKLIST equ 0F130h +SC_SCREENSAVE equ 0F140h +SC_HOTKEY equ 0F150h +SC_ICON equ SC_MINIMIZE +SC_ZOOM equ SC_MAXIMIZE +SC_DEFAULT equ 0F160h +SC_MONITORPOWER equ 0F170h +SC_CONTEXTHELP equ 0F180h +SC_SEPARATOR equ 0F00Fh +IDC_ARROW equ 32512 +IDC_IBEAM equ 32513 +IDC_WAIT equ 32514 +IDC_CROSS equ 32515 +IDC_UPARROW equ 32516 +IDC_SIZE equ 32640 +IDC_ICON equ 32641 +IDC_SIZENWSE equ 32642 +IDC_SIZENESW equ 32643 +IDC_SIZEWE equ 32644 +IDC_SIZENS equ 32645 +IDC_SIZEALL equ 32646 +IDC_NO equ 32648 +IDC_HAND equ 32649 +IDC_APPSTARTING equ 32650 +IDC_HELP equ 32651 +OBM_CLOSE equ 32754 +OBM_UPARROW equ 32753 +OBM_DNARROW equ 32752 +OBM_RGARROW equ 32751 +OBM_LFARROW equ 32750 +OBM_REDUCE equ 32749 +OBM_ZOOM equ 32748 +OBM_RESTORE equ 32747 +OBM_REDUCED equ 32746 +OBM_ZOOMD equ 32745 +OBM_RESTORED equ 32744 +OBM_UPARROWD equ 32743 +OBM_DNARROWD equ 32742 +OBM_RGARROWD equ 32741 +OBM_LFARROWD equ 32740 +OBM_MNARROW equ 32739 +OBM_COMBO equ 32738 +OBM_UPARROWI equ 32737 +OBM_DNARROWI equ 32736 +OBM_RGARROWI equ 32735 +OBM_LFARROWI equ 32734 +OBM_OLD_CLOSE equ 32767 +OBM_SIZE equ 32766 +OBM_OLD_UPARROW equ 32765 +OBM_OLD_DNARROW equ 32764 +OBM_OLD_RGARROW equ 32763 +OBM_OLD_LFARROW equ 32762 +OBM_BTSIZE equ 32761 +OBM_CHECK equ 32760 +OBM_CHECKBOXES equ 32759 +OBM_BTNCORNERS equ 32758 +OBM_OLD_REDUCE equ 32757 +OBM_OLD_ZOOM equ 32756 +OBM_OLD_RESTORE equ 32755 +OCR_NORMAL equ 32512 +OCR_IBEAM equ 32513 +OCR_WAIT equ 32514 +OCR_CROSS equ 32515 +OCR_UP equ 32516 +OCR_SIZE equ 32640 +OCR_ICON equ 32641 +OCR_SIZENWSE equ 32642 +OCR_SIZENESW equ 32643 +OCR_SIZEWE equ 32644 +OCR_SIZENS equ 32645 +OCR_SIZEALL equ 32646 +OCR_ICOCUR equ 32647 +OCR_NO equ 32648 +OCR_HAND equ 32649 +OCR_APPSTARTING equ 32650 +OIC_SAMPLE equ 32512 +OIC_HAND equ 32513 +OIC_QUES equ 32514 +OIC_BANG equ 32515 +OIC_NOTE equ 32516 +OIC_WINLOGO equ 32517 +OIC_WARNING equ OIC_BANG +OIC_ERROR equ OIC_HAND +OIC_INFORMATION equ OIC_NOTE +ORD_LANGDRIVER equ 1 +IDI_APPLICATION equ 32512 +IDI_HAND equ 32513 +IDI_QUESTION equ 32514 +IDI_EXCLAMATION equ 32515 +IDI_ASTERISK equ 32516 +IDI_WINLOGO equ 32517 +IDI_WARNING equ IDI_EXCLAMATION +IDI_ERROR equ IDI_HAND +IDI_INFORMATION equ IDI_ASTERISK +IDOK equ 1 +IDCANCEL equ 2 +IDABORT equ 3 +IDRETRY equ 4 +IDIGNORE equ 5 +IDYES equ 6 +IDNO equ 7 +IDCLOSE equ 8 +IDHELP equ 9 +ES_LEFT equ 0h +ES_CENTER equ 1h +ES_RIGHT equ 2h +ES_MULTILINE equ 4h +ES_UPPERCASE equ 8h +ES_LOWERCASE equ 10h +ES_PASSWORD equ 20h +ES_AUTOVSCROLL equ 40h +ES_AUTOHSCROLL equ 80h +ES_NOHIDESEL equ 100h +ES_OEMCONVERT equ 400h +ES_READONLY equ 800h +ES_WANTRETURN equ 1000h +ES_NUMBER equ 2000h + +WB_LEFT equ 0 +WB_RIGHT equ 1 +WB_ISDELIMITER equ 2 +BS_PUSHBUTTON equ 0h +BS_DEFPUSHBUTTON equ 1h +BS_CHECKBOX equ 2h +BS_AUTOCHECKBOX equ 3h +BS_RADIOBUTTON equ 4h +BS_3STATE equ 5h +BS_AUTO3STATE equ 6h +BS_GROUPBOX equ 7h +BS_USERBUTTON equ 8h +BS_AUTORADIOBUTTON equ 9h +BS_OWNERDRAW equ 0Bh +BS_LEFTTEXT equ 20h +BS_BITMAP equ 80h +BS_ICON equ 40h +BS_TEXT equ 0 +BS_LEFT equ 100h +BS_RIGHT equ 200h +BS_CENTER equ 300h +BS_TOP equ 400h +BS_BOTTOM equ 800h +BS_VCENTER equ 0C00h +BS_PUSHLIKE equ 1000h +BS_MULTILINE equ 2000h +BS_NOTIFY equ 4000h +BS_FLAT equ 8000h +BS_RIGHTBUTTON equ BS_LEFTTEXT +BN_CLICKED equ 0 +BN_PAINT equ 1 +BN_HILITE equ 2 +BN_UNHILITE equ 3 +BN_DISABLE equ 4 +BN_DOUBLECLICKED equ 5 +BN_SETFOCUS equ 6 +BN_KILLFOCUS equ 7 +BN_PUSHED equ BN_HILITE +BN_UNPUSHED equ BN_UNHILITE +BN_DBLCLK equ BN_DOUBLECLICKED +BST_UNCHECKED equ 00h +BST_CHECKED equ 1 +BST_INDETERMINATE equ 2 +BST_PUSHED equ 4 +BST_FOCUS equ 8 +BM_GETCHECK equ 0F0h +BM_SETCHECK equ 0F1h +BM_GETSTATE equ 0F2h +BM_SETSTATE equ 0F3h +BM_SETSTYLE equ 0F4h +BM_CLICK equ 0F5h +BM_GETIMAGE equ 0F6h +BM_SETIMAGE equ 0F7h +SS_LEFT equ 0h +SS_CENTER equ 1h +SS_RIGHT equ 2h +SS_ICON equ 3h +SS_BLACKRECT equ 4h +SS_GRAYRECT equ 5h +SS_WHITERECT equ 6h +SS_BLACKFRAME equ 7h +SS_GRAYFRAME equ 8h +SS_WHITEFRAME equ 9h +SS_USERITEM equ 0Ah +SS_SIMPLE equ 0Bh +SS_LEFTNOWORDWRAP equ 0Ch +SS_NOPREFIX equ 80h +STM_SETICON equ 170h +STM_GETICON equ 171h +STM_MSGMAX equ 172h +WC_DIALOG equ 8002h +DWL_MSGRESULT equ 0 +DWL_DLGPROC equ 4 +DWL_USER equ 8 +DDL_READWRITE equ 0h +DDL_READONLY equ 1h +DDL_HIDDEN equ 2h +DDL_SYSTEM equ 4h +DDL_DIRECTORY equ 10h +DDL_ARCHIVE equ 20h +DDL_POSTMSGS equ 2000h +DDL_DRIVES equ 4000h +DDL_EXCLUSIVE equ 8000h +DS_ABSALIGN equ 0001h +DS_SYSMODAL equ 0002h +DS_3DLOOK equ 0004h +DS_FIXEDSYS equ 0008h +DS_NOFAILCREATE equ 0010h +DS_LOCALEDIT equ 0020h +DS_SETFONT equ 0040h +DS_MODALFRAME equ 0080h +DS_NOIDLEMSG equ 0100h +DS_SETFOREGROUND equ 0200h +DS_CONTROL equ 0400h +DS_CENTER equ 0800h +DS_CENTERMOUSE equ 1000h +DS_CONTEXTHELP equ 2000h +DM_GETDEFID equ WM_USER + 0 +DM_SETDEFID equ WM_USER + 1 +DC_HASDEFID equ 534h +DLGC_WANTARROWS equ 1h +DLGC_WANTTAB equ 2h +DLGC_WANTALLKEYS equ 4h +DLGC_WANTMESSAGE equ 4h +DLGC_HASSETSEL equ 8h +DLGC_DEFPUSHBUTTON equ 10h +DLGC_UNDEFPUSHBUTTON equ 20h +DLGC_RADIOBUTTON equ 40h +DLGC_WANTCHARS equ 80h +DLGC_STATIC equ 100h +DLGC_BUTTON equ 2000h +LB_CTLCODE equ 0 +LB_OKAY equ 0 +LB_ERR equ -1 +LB_ERRSPACE equ -2 +LBN_ERRSPACE equ -2 +LBN_SELCHANGE equ 1 +LBN_DBLCLK equ 2 +LBN_SELCANCEL equ 3 +LBN_SETFOCUS equ 4 +LBN_KILLFOCUS equ 5 +LB_ADDSTRING equ 180h +LB_INSERTSTRING equ 181h +LB_DELETESTRING equ 182h +LB_SELITEMRANGEEX equ 183h +LB_RESETCONTENT equ 184h +LB_SETSEL equ 185h +LB_SETCURSEL equ 186h +LB_GETSEL equ 187h +LB_GETCURSEL equ 188h +LB_GETTEXT equ 189h +LB_GETTEXTLEN equ 18Ah +LB_GETCOUNT equ 18Bh +LB_SELECTSTRING equ 18Ch +LB_DIR equ 18Dh +LB_GETTOPINDEX equ 18Eh +LB_FINDSTRING equ 18Fh +LB_GETSELCOUNT equ 190h +LB_GETSELITEMS equ 191h +LB_SETTABSTOPS equ 192h +LB_GETHORIZONTALEXTENT equ 193h +LB_SETHORIZONTALEXTENT equ 194h +LB_SETCOLUMNWIDTH equ 195h +LB_ADDFILE equ 196h +LB_SETTOPINDEX equ 197h +LB_GETITEMRECT equ 198h +LB_GETITEMDATA equ 199h +LB_SETITEMDATA equ 19Ah +LB_SELITEMRANGE equ 19Bh +LB_SETANCHORINDEX equ 19Ch +LB_GETANCHORINDEX equ 19Dh +LB_SETCARETINDEX equ 19Eh +LB_GETCARETINDEX equ 19Fh +LB_SETITEMHEIGHT equ 1A0h +LB_GETITEMHEIGHT equ 1A1h +LB_FINDSTRINGEXACT equ 1A2h +LB_SETLOCALE equ 1A5h +LB_GETLOCALE equ 1A6h +LB_SETCOUNT equ 1A7h +LB_MSGMAX equ 1A8h +LBS_NOTIFY equ 1h +LBS_SORT equ 2h +LBS_NOREDRAW equ 4h +LBS_MULTIPLESEL equ 8h +LBS_OWNERDRAWFIXED equ 10h +LBS_OWNERDRAWVARIABLE equ 20h +LBS_HASSTRINGS equ 40h +LBS_USETABSTOPS equ 80h +LBS_NOINTEGRALHEIGHT equ 100h +LBS_MULTICOLUMN equ 200h +LBS_WANTKEYBOARDINPUT equ 400h +LBS_EXTENDEDSEL equ 800h +LBS_DISABLENOSCROLL equ 1000h +LBS_NODATA equ 2000h +LBS_STANDARD equ LBS_NOTIFY OR LBS_SORT OR WS_VSCROLL OR WS_BORDER +CB_OKAY equ 0 +CB_ERR equ -1 +CB_ERRSPACE equ -2 +CBN_ERRSPACE equ -1 +CBN_SELCHANGE equ 1 +CBN_DBLCLK equ 2 +CBN_SETFOCUS equ 3 +CBN_KILLFOCUS equ 4 +CBN_EDITCHANGE equ 5 +CBN_EDITUPDATE equ 6 +CBN_DROPDOWN equ 7 +CBN_CLOSEUP equ 8 +CBN_SELENDOK equ 9 +CBN_SELENDCANCEL equ 10 +CBS_SIMPLE equ 1h +CBS_DROPDOWN equ 2h +CBS_DROPDOWNLIST equ 3h +CBS_OWNERDRAWFIXED equ 10h +CBS_OWNERDRAWVARIABLE equ 20h +CBS_AUTOHSCROLL equ 40h +CBS_OEMCONVERT equ 80h +CBS_SORT equ 100h +CBS_HASSTRINGS equ 200h +CBS_NOINTEGRALHEIGHT equ 400h +CBS_DISABLENOSCROLL equ 800h +CB_GETEDITSEL equ 140h +CB_LIMITTEXT equ 141h +CB_SETEDITSEL equ 142h +CB_ADDSTRING equ 143h +CB_DELETESTRING equ 144h +CB_DIR equ 145h +CB_GETCOUNT equ 146h +CB_GETCURSEL equ 147h +CB_GETLBTEXT equ 148h +CB_GETLBTEXTLEN equ 149h +CB_INSERTSTRING equ 14Ah +CB_RESETCONTENT equ 14Bh +CB_FINDSTRING equ 14Ch +CB_SELECTSTRING equ 14Dh +CB_SETCURSEL equ 14Eh +CB_SHOWDROPDOWN equ 14Fh +CB_GETITEMDATA equ 150h +CB_SETITEMDATA equ 151h +CB_GETDROPPEDCONTROLRECT equ 152h +CB_SETITEMHEIGHT equ 153h +CB_GETITEMHEIGHT equ 154h +CB_SETEXTENDEDUI equ 155h +CB_GETEXTENDEDUI equ 156h +CB_GETDROPPEDSTATE equ 157h +CB_FINDSTRINGEXACT equ 158h +CB_SETLOCALE equ 159h +CB_GETLOCALE equ 15Ah +CB_GETTOPINDEX equ 15Bh +CB_SETTOPINDEX equ 15Ch +CB_GETHORIZONTALEXTENT equ 15Dh +CB_SETHORIZONTALEXTENT equ 15Eh +CB_GETDROPPEDWIDTH equ 15Fh +CB_SETDROPPEDWIDTH equ 160h +CB_INITSTORAGE equ 161h +CB_MSGMAX equ 162h +SBS_HORZ equ 0h +SBS_VERT equ 1h +SBS_TOPALIGN equ 2h +SBS_LEFTALIGN equ 2h +SBS_BOTTOMALIGN equ 4h +SBS_RIGHTALIGN equ 4h +SBS_SIZEBOXTOPLEFTALIGN equ 2h +SBS_SIZEBOXBOTTOMRIGHTALIGN equ 4h +SBS_SIZEBOX equ 8h +SBS_SIZEGRIP equ 10h +SBM_SETPOS equ 0E0h +SBM_GETPOS equ 0E1h +SBM_SETRANGE equ 0E2h +SBM_SETRANGEREDRAW equ 0E6h +SBM_GETRANGE equ 0E3h +SBM_ENABLE_ARROWS equ 0E4h +MDIS_ALLCHILDSTYLES equ 1h +MDITILE_VERTICAL equ 0h +MDITILE_HORIZONTAL equ 1h +MDITILE_SKIPDISABLED equ 2h +HELP_CONTEXT equ 1h +HELP_QUIT equ 2h +HELP_INDEX equ 3h +HELP_CONTENTS equ 3h +HELP_HELPONHELP equ 4h +HELP_SETINDEX equ 5h +HELP_SETCONTENTS equ 5h +HELP_CONTEXTPOPUP equ 8h +HELP_FORCEFILE equ 9h +HELP_KEY equ 101h +HELP_COMMAND equ 102h +HELP_PARTIALKEY equ 105h +HELP_MULTIKEY equ 201h +HELP_SETWINPOS equ 203h +HELP_CONTEXTMENU equ 000Ah +HELP_FINDER equ 000Bh +HELP_WM_HELP equ 000Ch +HELP_SETPOPUP_POS equ 000Dh +HELP_TCARD equ 8000h +HELP_TCARD_DATA equ 0010h +HELP_TCARD_OTHER_CALLER equ 0011h +IDH_NO_HELP equ 28440 +IDH_MISSING_CONTEXT equ 28441 +IDH_GENERIC_HELP_BUTTON equ 28442 +IDH_OK equ 28443 +IDH_CANCEL equ 28444 +IDH_HELP equ 28445 +SPI_GETBEEP equ 1 +SPI_SETBEEP equ 2 +SPI_GETMOUSE equ 3 +SPI_SETMOUSE equ 4 +SPI_GETBORDER equ 5 +SPI_SETBORDER equ 6 +SPI_GETKEYBOARDSPEED equ 10 +SPI_SETKEYBOARDSPEED equ 11 +SPI_LANGDRIVER equ 12 +SPI_ICONHORIZONTALSPACING equ 13 +SPI_GETSCREENSAVETIMEOUT equ 14 +SPI_SETSCREENSAVETIMEOUT equ 15 +SPI_GETSCREENSAVEACTIVE equ 16 +SPI_SETSCREENSAVEACTIVE equ 17 +SPI_GETGRIDGRANULARITY equ 18 +SPI_SETGRIDGRANULARITY equ 19 +SPI_SETDESKWALLPAPER equ 20 +SPI_SETDESKPATTERN equ 21 +SPI_GETKEYBOARDDELAY equ 22 +SPI_SETKEYBOARDDELAY equ 23 +SPI_ICONVERTICALSPACING equ 24 +SPI_GETICONTITLEWRAP equ 25 +SPI_SETICONTITLEWRAP equ 26 +SPI_GETMENUDROPALIGNMENT equ 27 +SPI_SETMENUDROPALIGNMENT equ 28 +SPI_SETDOUBLECLKWIDTH equ 29 +SPI_SETDOUBLECLKHEIGHT equ 30 +SPI_GETICONTITLELOGFONT equ 31 +SPI_SETDOUBLECLICKTIME equ 32 +SPI_SETMOUSEBUTTONSWAP equ 33 +SPI_SETICONTITLELOGFONT equ 34 +SPI_GETFASTTASKSWITCH equ 35 +SPI_SETFASTTASKSWITCH equ 36 +SPI_SETDRAGFULLWINDOWS equ 37 +SPI_GETDRAGFULLWINDOWS equ 38 +SPI_GETNONCLIENTMETRICS equ 41 +SPI_SETNONCLIENTMETRICS equ 42 +SPI_GETMINIMIZEDMETRICS equ 43 +SPI_SETMINIMIZEDMETRICS equ 44 +SPI_GETICONMETRICS equ 45 +SPI_SETICONMETRICS equ 46 +SPI_SETWORKAREA equ 47 +SPI_GETWORKAREA equ 48 +SPI_SETPENWINDOWS equ 49 +SPI_GETFILTERKEYS equ 50 +SPI_SETFILTERKEYS equ 51 +SPI_GETTOGGLEKEYS equ 52 +SPI_SETTOGGLEKEYS equ 53 +SPI_GETMOUSEKEYS equ 54 +SPI_SETMOUSEKEYS equ 55 +SPI_GETSHOWSOUNDS equ 56 +SPI_SETSHOWSOUNDS equ 57 +SPI_GETSTICKYKEYS equ 58 +SPI_SETSTICKYKEYS equ 59 +SPI_GETACCESSTIMEOUT equ 60 +SPI_SETACCESSTIMEOUT equ 61 +SPI_GETSERIALKEYS equ 62 +SPI_SETSERIALKEYS equ 63 +SPI_GETSOUNDSENTRY equ 64 +SPI_SETSOUNDSENTRY equ 65 +SPI_GETHIGHCONTRAST equ 66 +SPI_SETHIGHCONTRAST equ 67 +SPI_GETKEYBOARDPREF equ 68 +SPI_SETKEYBOARDPREF equ 69 +SPI_GETSCREENREADER equ 70 +SPI_SETSCREENREADER equ 71 +SPI_GETANIMATION equ 72 +SPI_SETANIMATION equ 73 +SPI_GETFONTSMOOTHING equ 74 +SPI_SETFONTSMOOTHING equ 75 +SPI_SETDRAGWIDTH equ 76 +SPI_SETDRAGHEIGHT equ 77 +SPI_SETHANDHELD equ 78 +SPI_GETLOWPOWERTIMEOUT equ 79 +SPI_GETPOWEROFFTIMEOUT equ 80 +SPI_SETLOWPOWERTIMEOUT equ 81 +SPI_SETPOWEROFFTIMEOUT equ 82 +SPI_GETLOWPOWERACTIVE equ 83 +SPI_GETPOWEROFFACTIVE equ 84 +SPI_SETLOWPOWERACTIVE equ 85 +SPI_SETPOWEROFFACTIVE equ 86 +SPI_SETCURSORS equ 87 +SPI_SETICONS equ 88 +SPI_GETDEFAULTINPUTLANG equ 89 +SPI_SETDEFAULTINPUTLANG equ 90 +SPI_SETLANGTOGGLE equ 91 +SPI_GETWINDOWSEXTENSION equ 92 +SPI_SETMOUSETRAILS equ 93 +SPI_GETMOUSETRAILS equ 94 +SPI_SCREENSAVERRUNNING equ 97 +SPIF_UPDATEINIFILE equ 1h +SPIF_SENDWININICHANGE equ 2h +WM_DDE_FIRST equ 3E0h +WM_DDE_INITIATE equ WM_DDE_FIRST +WM_DDE_TERMINATE equ WM_DDE_FIRST + 1 +WM_DDE_ADVISE equ WM_DDE_FIRST + 2 +WM_DDE_UNADVISE equ WM_DDE_FIRST + 3 +WM_DDE_ACK equ WM_DDE_FIRST + 4 +WM_DDE_DATA equ WM_DDE_FIRST + 5 +WM_DDE_REQUEST equ WM_DDE_FIRST + 6 +WM_DDE_POKE equ WM_DDE_FIRST + 7 +WM_DDE_EXECUTE equ WM_DDE_FIRST + 8 +WM_DDE_LAST equ WM_DDE_FIRST + 8 +XST_NULL equ 0 +XST_INCOMPLETE equ 1 +XST_CONNECTED equ 2 +XST_INIT1 equ 3 +XST_INIT2 equ 4 +XST_REQSENT equ 5 +XST_DATARCVD equ 6 +XST_POKESENT equ 7 +XST_POKEACKRCVD equ 8 +XST_EXECSENT equ 9 +XST_EXECACKRCVD equ 10 +XST_ADVSENT equ 11 +XST_UNADVSENT equ 12 +XST_ADVACKRCVD equ 13 +XST_UNADVACKRCVD equ 14 +XST_ADVDATASENT equ 15 +XST_ADVDATAACKRCVD equ 16 +CADV_LATEACK equ 0FFFFh +ST_CONNECTED equ 1h +ST_ADVISE equ 2h +ST_ISLOCAL equ 4h +ST_BLOCKED equ 8h +ST_CLIENT equ 10h +ST_TERMINATED equ 20h +ST_INLIST equ 40h +ST_BLOCKNEXT equ 80h +ST_ISSELF equ 100h +DDE_FACK equ 8000h +DDE_FBUSY equ 4000h +DDE_FDEFERUPD equ 4000h +DDE_FACKREQ equ 8000h +DDE_FRELEASE equ 2000h +DDE_FREQUESTED equ 1000h +DDE_FAPPSTATUS equ 0FFh +DDE_FNOTPROCESSED equ 0h +DDE_FACKRESERVED equ NOT DDE_FACK OR DDE_FBUSY OR DDE_FAPPSTATUS +DDE_FADVRESERVED equ NOT DDE_FACKREQ OR DDE_FDEFERUPD +DDE_FDATRESERVED equ NOT DDE_FACKREQ OR DDE_FRELEASE OR DDE_FREQUESTED +DDE_FPOKRESERVED equ NOT DDE_FRELEASE +CP_WINANSI equ 1004 +CP_WINUNICODE equ 1200 +XTYPF_NOBLOCK equ 2h +XTYPF_NODATA equ 4h +XTYPF_ACKREQ equ 8h +XCLASS_MASK equ 0FC00h +XCLASS_BOOL equ 1000h +XCLASS_DATA equ 2000h +XCLASS_FLAGS equ 4000h +XCLASS_NOTIFICATION equ 8000h +XTYP_ERROR equ 0h OR XCLASS_NOTIFICATION OR XTYPF_NOBLOCK +XTYP_ADVDATA equ 10h OR XCLASS_FLAGS +XTYP_ADVREQ equ 20h OR XCLASS_DATA OR XTYPF_NOBLOCK +XTYP_ADVSTART equ 30h OR XCLASS_BOOL +XTYP_ADVSTOP equ 40h OR XCLASS_NOTIFICATION +XTYP_EXECUTE equ 50h OR XCLASS_FLAGS +XTYP_CONNECT equ 60h OR XCLASS_BOOL OR XTYPF_NOBLOCK +XTYP_CONNECT_CONFIRM equ 70h OR XCLASS_NOTIFICATION OR XTYPF_NOBLOCK +XTYP_XACT_COMPLETE equ 80h OR XCLASS_NOTIFICATION +XTYP_POKE equ 90h OR XCLASS_FLAGS +XTYP_REGISTER equ 0A0h OR XCLASS_NOTIFICATION OR XTYPF_NOBLOCK +XTYP_REQUEST equ 0B0h OR XCLASS_DATA +XTYP_DISCONNECT equ 0C0h OR XCLASS_NOTIFICATION OR XTYPF_NOBLOCK +XTYP_UNREGISTER equ 0D0h OR XCLASS_NOTIFICATION OR XTYPF_NOBLOCK +XTYP_WILDCONNECT equ 0E0h OR XCLASS_DATA OR XTYPF_NOBLOCK +XTYP_MASK equ 0F0h +XTYP_SHIFT equ 4 +TIMEOUT_ASYNC equ 0FFFFh +QID_SYNC equ 0FFFFh +CBR_BLOCK equ 0FFFFh +CBF_FAIL_SELFCONNECTIONS equ 1000h +CBF_FAIL_CONNECTIONS equ 2000h +CBF_FAIL_ADVISES equ 4000h +CBF_FAIL_EXECUTES equ 8000h +CBF_FAIL_POKES equ 10000h +CBF_FAIL_REQUESTS equ 20000h +CBF_FAIL_ALLSVRXACTIONS equ 3F000h +CBF_SKIP_CONNECT_CONFIRMS equ 40000h +CBF_SKIP_REGISTRATIONS equ 80000h +CBF_SKIP_UNREGISTRATIONS equ 100000h +CBF_SKIP_DISCONNECTS equ 200000h +CBF_SKIP_ALLNOTIFICATIONS equ 3C0000h +APPCMD_CLIENTONLY equ 10h +APPCMD_FILTERINITS equ 20h +APPCMD_MASK equ 0FF0h +APPCLASS_STANDARD equ 0h +APPCLASS_MASK equ 0Fh +EC_ENABLEALL equ 0 +EC_ENABLEONE equ ST_BLOCKNEXT +EC_DISABLE equ ST_BLOCKED +EC_QUERYWAITING equ 2 +DNS_REGISTER equ 1h +DNS_UNREGISTER equ 2h +DNS_FILTERON equ 4h +DNS_FILTEROFF equ 8h +HDATA_APPOWNED equ 1h +DMLERR_NO_ERROR equ 0 +DMLERR_FIRST equ 4000h +DMLERR_ADVACKTIMEOUT equ 4000h +DMLERR_BUSY equ 4001h +DMLERR_DATAACKTIMEOUT equ 4002h +DMLERR_DLL_NOT_INITIALIZED equ 4003h +DMLERR_DLL_USAGE equ 4004h +DMLERR_EXECACKTIMEOUT equ 4005h +DMLERR_INVALIDPARAMETER equ 4006h +DMLERR_LOW_MEMORY equ 4007h +DMLERR_MEMORY_ERROR equ 4008h +DMLERR_NOTPROCESSED equ 4009h +DMLERR_NO_CONV_ESTABLISHED equ 400Ah +DMLERR_POKEACKTIMEOUT equ 400Bh +DMLERR_POSTMSG_FAILED equ 400Ch +DMLERR_REENTRANCY equ 400Dh +DMLERR_SERVER_DIED equ 400Eh +DMLERR_SYS_ERROR equ 400Fh +DMLERR_UNADVACKTIMEOUT equ 4010h +DMLERR_UNFOUND_QUEUE_ID equ 4011h +DMLERR_LAST equ 4011h +MH_CREATE equ 1 +MH_KEEP equ 2 +MH_DELETE equ 3 +MH_CLEANUP equ 4 +MAX_MONITORS equ 4 +APPCLASS_MONITOR equ 1h +XTYP_MONITOR equ 0F0h OR XCLASS_NOTIFICATION OR XTYPF_NOBLOCK +MF_HSZ_INFO equ 1000000h +MF_SENDMSGS equ 2000000h +MF_POSTMSGS equ 4000000h +MF_CALLBACKS equ 8000000h +MF_ERRORS equ 10000000h +MF_LINKS equ 20000000h +MF_CONV equ 40000000h +MF_MASK equ 0FF000000h +NO_ERROR equ 0 +ERROR_SUCCESS equ 0 +ERROR_INVALID_FUNCTION equ 1 +ERROR_FILE_NOT_FOUND equ 2 +ERROR_PATH_NOT_FOUND equ 3 +ERROR_TOO_MANY_OPEN_FILES equ 4 +ERROR_ACCESS_DENIED equ 5 +ERROR_INVALID_HANDLE equ 6 +ERROR_ARENA_TRASHED equ 7 +ERROR_NOT_ENOUGH_MEMORY equ 8 +ERROR_INVALID_BLOCK equ 9 +ERROR_BAD_ENVIRONMENT equ 10 +ERROR_BAD_FORMAT equ 11 +ERROR_INVALID_ACCESS equ 12 +ERROR_INVALID_DATA equ 13 +ERROR_OUTOFMEMORY equ 14 +ERROR_INVALID_DRIVE equ 15 +ERROR_CURRENT_DIRECTORY equ 16 +ERROR_NOT_SAME_DEVICE equ 17 +ERROR_NO_MORE_FILES equ 18 +ERROR_WRITE_PROTECT equ 19 +ERROR_BAD_UNIT equ 20 +ERROR_NOT_READY equ 21 +ERROR_BAD_COMMAND equ 22 +ERROR_CRC equ 23 +ERROR_BAD_LENGTH equ 24 +ERROR_SEEK equ 25 +ERROR_NOT_DOS_DISK equ 26 +ERROR_SECTOR_NOT_FOUND equ 27 +ERROR_OUT_OF_PAPER equ 28 +ERROR_WRITE_FAULT equ 29 +ERROR_READ_FAULT equ 30 +ERROR_GEN_FAILURE equ 31 +ERROR_SHARING_VIOLATION equ 32 +ERROR_LOCK_VIOLATION equ 33 +ERROR_WRONG_DISK equ 34 +ERROR_SHARING_BUFFER_EXCEEDED equ 36 +ERROR_HANDLE_EOF equ 38 +ERROR_HANDLE_DISK_FULL equ 39 +ERROR_NOT_SUPPORTED equ 50 +ERROR_REM_NOT_LIST equ 51 +ERROR_DUP_NAME equ 52 +ERROR_BAD_NETPATH equ 53 +ERROR_NETWORK_BUSY equ 54 +ERROR_DEV_NOT_EXIST equ 55 +ERROR_TOO_MANY_CMDS equ 56 +ERROR_ADAP_HDW_ERR equ 57 +ERROR_BAD_NET_RESP equ 58 +ERROR_UNEXP_NET_ERR equ 59 +ERROR_BAD_REM_ADAP equ 60 +ERROR_PRINTQ_FULL equ 61 +ERROR_NO_SPOOL_SPACE equ 62 +ERROR_PRINT_CANCELLED equ 63 +ERROR_NETNAME_DELETED equ 64 +ERROR_NETWORK_ACCESS_DENIED equ 65 +ERROR_BAD_DEV_TYPE equ 66 +ERROR_BAD_NET_NAME equ 67 +ERROR_TOO_MANY_NAMES equ 68 +ERROR_TOO_MANY_SESS equ 69 +ERROR_SHARING_PAUSED equ 70 +ERROR_REQ_NOT_ACCEP equ 71 +ERROR_REDIR_PAUSED equ 72 +ERROR_FILE_EXISTS equ 80 +ERROR_CANNOT_MAKE equ 82 +ERROR_FAIL_I24 equ 83 +ERROR_OUT_OF_STRUCTURES equ 84 +ERROR_ALREADY_ASSIGNED equ 85 +ERROR_INVALID_PASSWORD equ 86 +ERROR_INVALID_PARAMETER equ 87 +ERROR_NET_WRITE_FAULT equ 88 +ERROR_NO_PROC_SLOTS equ 89 +ERROR_TOO_MANY_SEMAPHORES equ 100 +ERROR_EXCL_SEM_ALREADY_OWNED equ 101 +ERROR_SEM_IS_SET equ 102 +ERROR_TOO_MANY_SEM_REQUESTS equ 103 +ERROR_INVALID_AT_INTERRUPT_TIME equ 104 +ERROR_SEM_OWNER_DIED equ 105 +ERROR_SEM_USER_LIMIT equ 106 +ERROR_DISK_CHANGE equ 107 +ERROR_DRIVE_LOCKED equ 108 +ERROR_BROKEN_PIPE equ 109 +ERROR_OPEN_FAILED equ 110 +ERROR_BUFFER_OVERFLOW equ 111 +ERROR_DISK_FULL equ 112 +ERROR_NO_MORE_SEARCH_HANDLES equ 113 +ERROR_INVALID_TARGET_HANDLE equ 114 +ERROR_INVALID_CATEGORY equ 117 +ERROR_INVALID_VERIFY_SWITCH equ 118 +ERROR_BAD_DRIVER_LEVEL equ 119 +ERROR_CALL_NOT_IMPLEMENTED equ 120 +ERROR_SEM_TIMEOUT equ 121 +ERROR_INSUFFICIENT_BUFFER equ 122 +ERROR_INVALID_NAME equ 123 +ERROR_INVALID_LEVEL equ 124 +ERROR_NO_VOLUME_LABEL equ 125 +ERROR_MOD_NOT_FOUND equ 126 +ERROR_PROC_NOT_FOUND equ 127 +ERROR_WAIT_NO_CHILDREN equ 128 +ERROR_CHILD_NOT_COMPLETE equ 129 +ERROR_DIRECT_ACCESS_HANDLE equ 130 +ERROR_NEGATIVE_SEEK equ 131 +ERROR_SEEK_ON_DEVICE equ 132 +ERROR_IS_JOIN_TARGET equ 133 +ERROR_IS_JOINED equ 134 +ERROR_IS_SUBSTED equ 135 +ERROR_NOT_JOINED equ 136 +ERROR_NOT_SUBSTED equ 137 +ERROR_JOIN_TO_JOIN equ 138 +ERROR_SUBST_TO_SUBST equ 139 +ERROR_JOIN_TO_SUBST equ 140 +ERROR_SUBST_TO_JOIN equ 141 +ERROR_BUSY_DRIVE equ 142 +ERROR_SAME_DRIVE equ 143 +ERROR_DIR_NOT_ROOT equ 144 +ERROR_DIR_NOT_EMPTY equ 145 +ERROR_IS_SUBST_PATH equ 146 +ERROR_IS_JOIN_PATH equ 147 +ERROR_PATH_BUSY equ 148 +ERROR_IS_SUBST_TARGET equ 149 +ERROR_SYSTEM_TRACE equ 150 +ERROR_INVALID_EVENT_COUNT equ 151 +ERROR_TOO_MANY_MUXWAITERS equ 152 +ERROR_INVALID_LIST_FORMAT equ 153 +ERROR_LABEL_TOO_LONG equ 154 +ERROR_TOO_MANY_TCBS equ 155 +ERROR_SIGNAL_REFUSED equ 156 +ERROR_DISCARDED equ 157 +ERROR_NOT_LOCKED equ 158 +ERROR_BAD_THREADID_ADDR equ 159 +ERROR_BAD_ARGUMENTS equ 160 +ERROR_BAD_PATHNAME equ 161 +ERROR_SIGNAL_PENDING equ 162 +ERROR_MAX_THRDS_REACHED equ 164 +ERROR_LOCK_FAILED equ 167 +ERROR_BUSY equ 170 +ERROR_CANCEL_VIOLATION equ 173 +ERROR_ATOMIC_LOCKS_NOT_SUPPORTED equ 174 +ERROR_INVALID_SEGMENT_NUMBER equ 180 +ERROR_INVALID_ORDINAL equ 182 +ERROR_ALREADY_EXISTS equ 183 +ERROR_INVALID_FLAG_NUMBER equ 186 +ERROR_SEM_NOT_FOUND equ 187 +ERROR_INVALID_STARTING_CODESEG equ 188 +ERROR_INVALID_STACKSEG equ 189 +ERROR_INVALID_MODULETYPE equ 190 +ERROR_INVALID_EXE_SIGNATURE equ 191 +ERROR_EXE_MARKED_INVALID equ 192 +ERROR_BAD_EXE_FORMAT equ 193 +ERROR_ITERATED_DATA_EXCEEDS_64k equ 194 +ERROR_INVALID_MINALLOCSIZE equ 195 +ERROR_DYNLINK_FROM_INVALID_RING equ 196 +ERROR_IOPL_NOT_ENABLED equ 197 +ERROR_INVALID_SEGDPL equ 198 +ERROR_AUTODATASEG_EXCEEDS_64k equ 199 +ERROR_RING2SEG_MUST_BE_MOVABLE equ 200 +ERROR_RELOC_CHAIN_XEEDS_SEGLIM equ 201 +ERROR_INFLOOP_IN_RELOC_CHAIN equ 202 +ERROR_ENVVAR_NOT_FOUND equ 203 +ERROR_NO_SIGNAL_SENT equ 205 +ERROR_FILENAME_EXCED_RANGE equ 206 +ERROR_RING2_STACK_IN_USE equ 207 +ERROR_META_EXPANSION_TOO_LONG equ 208 +ERROR_INVALID_SIGNAL_NUMBER equ 209 +ERROR_THREAD_1_INACTIVE equ 210 +ERROR_LOCKED equ 212 +ERROR_TOO_MANY_MODULES equ 214 +ERROR_NESTING_NOT_ALLOWED equ 215 +ERROR_BAD_PIPE equ 230 +ERROR_PIPE_BUSY equ 231 +ERROR_NO_DATA equ 232 +ERROR_PIPE_NOT_CONNECTED equ 233 +ERROR_MORE_DATA equ 234 +ERROR_VC_DISCONNECTED equ 240 +ERROR_INVALID_EA_NAME equ 254 +ERROR_EA_LIST_INCONSISTENT equ 255 +ERROR_NO_MORE_ITEMS equ 259 +ERROR_CANNOT_COPY equ 266 +ERROR_DIRECTORY equ 267 +ERROR_EAS_DIDNT_FIT equ 275 +ERROR_EA_FILE_CORRUPT equ 276 +ERROR_EA_TABLE_FULL equ 277 +ERROR_INVALID_EA_HANDLE equ 278 +ERROR_EAS_NOT_SUPPORTED equ 282 +ERROR_NOT_OWNER equ 288 +ERROR_TOO_MANY_POSTS equ 298 +ERROR_MR_MID_NOT_FOUND equ 317 +ERROR_INVALID_ADDRESS equ 487 +ERROR_ARITHMETIC_OVERFLOW equ 534 +ERROR_PIPE_CONNECTED equ 535 +ERROR_PIPE_LISTENING equ 536 +ERROR_EA_ACCESS_DENIED equ 994 +ERROR_OPERATION_ABORTED equ 995 +ERROR_IO_INCOMPLETE equ 996 +ERROR_IO_PENDING equ 997 +ERROR_NOACCESS equ 998 +ERROR_SWAPERROR equ 999 +ERROR_STACK_OVERFLOW equ 1001 +ERROR_INVALID_MESSAGE equ 1002 +ERROR_CAN_NOT_COMPLETE equ 1003 +ERROR_INVALID_FLAGS equ 1004 +ERROR_UNRECOGNIZED_VOLUME equ 1005 +ERROR_FILE_INVALID equ 1006 +ERROR_FULLSCREEN_MODE equ 1007 +ERROR_NO_TOKEN equ 1008 +ERROR_BADDB equ 1009 +ERROR_BADKEY equ 1010 +ERROR_CANTOPEN equ 1011 +ERROR_CANTREAD equ 1012 +ERROR_CANTWRITE equ 1013 +ERROR_REGISTRY_RECOVERED equ 1014 +ERROR_REGISTRY_CORRUPT equ 1015 +ERROR_REGISTRY_IO_FAILED equ 1016 +ERROR_NOT_REGISTRY_FILE equ 1017 +ERROR_KEY_DELETED equ 1018 +ERROR_NO_LOG_SPACE equ 1019 +ERROR_KEY_HAS_CHILDREN equ 1020 +ERROR_CHILD_MUST_BE_VOLATILE equ 1021 +ERROR_NOTIFY_ENUM_DIR equ 1022 +ERROR_DEPENDENT_SERVICES_RUNNING equ 1051 +ERROR_INVALID_SERVICE_CONTROL equ 1052 +ERROR_SERVICE_REQUEST_TIMEOUT equ 1053 +ERROR_SERVICE_NO_THREAD equ 1054 +ERROR_SERVICE_DATABASE_LOCKED equ 1055 +ERROR_SERVICE_ALREADY_RUNNING equ 1056 +ERROR_INVALID_SERVICE_ACCOUNT equ 1057 +ERROR_SERVICE_DISABLED equ 1058 +ERROR_CIRCULAR_DEPENDENCY equ 1059 +ERROR_SERVICE_DOES_NOT_EXIST equ 1060 +ERROR_SERVICE_CANNOT_ACCEPT_CTRL equ 1061 +ERROR_SERVICE_NOT_ACTIVE equ 1062 +ERROR_FAILED_SERVICE_CONTROLLER_CONNECT equ 1063 +ERROR_EXCEPTION_IN_SERVICE equ 1064 +ERROR_DATABASE_DOES_NOT_EXIST equ 1065 +ERROR_SERVICE_SPECIFIC_ERROR equ 1066 +ERROR_PROCESS_ABORTED equ 1067 +ERROR_SERVICE_DEPENDENCY_FAIL equ 1068 +ERROR_SERVICE_LOGON_FAILED equ 1069 +ERROR_SERVICE_START_HANG equ 1070 +ERROR_INVALID_SERVICE_LOCK equ 1071 +ERROR_SERVICE_MARKED_FOR_DELETE equ 1072 +ERROR_SERVICE_EXISTS equ 1073 +ERROR_ALREADY_RUNNING_LKG equ 1074 +ERROR_SERVICE_DEPENDENCY_DELETED equ 1075 +ERROR_BOOT_ALREADY_ACCEPTED equ 1076 +ERROR_SERVICE_NEVER_STARTED equ 1077 +ERROR_DUPLICATE_SERVICE_NAME equ 1078 +ERROR_END_OF_MEDIA equ 1100 +ERROR_FILEMARK_DETECTED equ 1101 +ERROR_BEGINNING_OF_MEDIA equ 1102 +ERROR_SETMARK_DETECTED equ 1103 +ERROR_NO_DATA_DETECTED equ 1104 +ERROR_PARTITION_FAILURE equ 1105 +ERROR_INVALID_BLOCK_LENGTH equ 1106 +ERROR_DEVICE_NOT_PARTITIONED equ 1107 +ERROR_UNABLE_TO_LOCK_MEDIA equ 1108 +ERROR_UNABLE_TO_UNLOAD_MEDIA equ 1109 +ERROR_MEDIA_CHANGED equ 1110 +ERROR_BUS_RESET equ 1111 +ERROR_NO_MEDIA_IN_DRIVE equ 1112 +ERROR_NO_UNICODE_TRANSLATION equ 1113 +ERROR_DLL_INIT_FAILED equ 1114 +ERROR_SHUTDOWN_IN_PROGRESS equ 1115 +ERROR_NO_SHUTDOWN_IN_PROGRESS equ 1116 +ERROR_IO_DEVICE equ 1117 +ERROR_SERIAL_NO_DEVICE equ 1118 +ERROR_IRQ_BUSY equ 1119 +ERROR_MORE_WRITES equ 1120 +ERROR_COUNTER_TIMEOUT equ 1121 +ERROR_FLOPPY_ID_MARK_NOT_FOUND equ 1122 +ERROR_FLOPPY_WRONG_CYLINDER equ 1123 +ERROR_FLOPPY_UNKNOWN_ERROR equ 1124 +ERROR_FLOPPY_BAD_REGISTERS equ 1125 +ERROR_DISK_RECALIBRATE_FAILED equ 1126 +ERROR_DISK_OPERATION_FAILED equ 1127 +ERROR_DISK_RESET_FAILED equ 1128 +ERROR_EOM_OVERFLOW equ 1129 +ERROR_NOT_ENOUGH_SERVER_MEMORY equ 1130 +ERROR_POSSIBLE_DEADLOCK equ 1131 +ERROR_MAPPED_ALIGNMENT equ 1132 + +ERROR_OLD_WIN_VERSION equ 1150 +ERROR_SINGLE_INSTANCE_APP equ 1152 + +ERROR_INVALID_PIXEL_FORMAT equ 2000 +ERROR_BAD_DRIVER equ 2001 +ERROR_INVALID_WINDOW_STYLE equ 2002 +ERROR_METAFILE_NOT_SUPPORTED equ 2003 +ERROR_TRANSFORM_NOT_SUPPORTED equ 2004 +ERROR_CLIPPING_NOT_SUPPORTED equ 2005 +ERROR_UNKNOWN_PRINT_MONITOR equ 3000 +ERROR_PRINTER_DRIVER_IN_USE equ 3001 +ERROR_SPOOL_FILE_NOT_FOUND equ 3002 +ERROR_SPL_NO_STARTDOC equ 3003 +ERROR_SPL_NO_ADDJOB equ 3004 +ERROR_PRINT_PROCESSOR_ALREADY_INSTALLED equ 3005 +ERROR_PRINT_MONITOR_ALREADY_INSTALLED equ 3006 +ERROR_WINS_INTERNAL equ 4000 +ERROR_CAN_NOT_DEL_LOCAL_WINS equ 4001 +ERROR_STATIC_INIT equ 4002 +ERROR_INC_BACKUP equ 4003 +ERROR_FULL_BACKUP equ 4004 +ERROR_REC_NON_EXISTENT equ 4005 +ERROR_RPL_NOT_ALLOWED equ 4006 +SEVERITY_SUCCESS equ 0 +SEVERITY_ERROR equ 1 +FACILITY_NT_BIT equ 10000000h +NOERROR equ 0 +E_UNEXPECTED equ 8000FFFFh +E_NOTIMPL equ 80004001h +E_OUTOFMEMORY equ 8007000Eh +E_INVALIDARG equ 80070057h +E_NOINTERFACE equ 80004002h +E_POINTER equ 80004003h +E_HANDLE equ 80070006h +E_ABORT equ 80004004h +E_FAIL equ 80004005h +E_ACCESSDENIED equ 80070005h +CO_E_INIT_TLS equ 80004006h +CO_E_INIT_SHARED_ALLOCATOR equ 80004007h +CO_E_INIT_MEMORY_ALLOCATOR equ 80004008h +CO_E_INIT_CLASS_CACHE equ 80004009h +CO_E_INIT_RPC_CHANNEL equ 8000400Ah +CO_E_INIT_TLS_SET_CHANNEL_CONTROL equ 8000400Bh +CO_E_INIT_TLS_CHANNEL_CONTROL equ 8000400Ch +CO_E_INIT_UNACCEPTED_USER_ALLOCATOR equ 8000400Dh +CO_E_INIT_SCM_MUTEX_EXISTS equ 8000400Eh +CO_E_INIT_SCM_FILE_MAPPING_EXISTS equ 8000400Fh +CO_E_INIT_SCM_MAP_VIEW_OF_FILE equ 80004010h +CO_E_INIT_SCM_EXEC_FAILURE equ 80004011h +CO_E_INIT_ONLY_SINGLE_THREADED equ 80004012h +S_OK equ 0h +S_FALSE equ 1h +OLE_E_FIRST equ 80040000h +OLE_E_LAST equ 800400FFh +OLE_S_FIRST equ 40000h +OLE_S_LAST equ 400FFh +OLE_E_OLEVERB equ 80040000h +OLE_E_ADVF equ 80040001h +OLE_E_ENUM_NOMORE equ 80040002h +OLE_E_ADVISENOTSUPPORTED equ 80040003h +OLE_E_NOCONNECTION equ 80040004h +OLE_E_NOTRUNNING equ 80040005h +OLE_E_NOCACHE equ 80040006h +OLE_E_BLANK equ 80040007h +OLE_E_CLASSDIFF equ 80040008h +OLE_E_CANT_GETMONIKER equ 80040009h +OLE_E_CANT_BINDTOSOURCE equ 8004000Ah +OLE_E_STATIC equ 8004000Bh +OLE_E_PROMPTSAVECANCELLED equ 8004000Ch +OLE_E_INVALIDRECT equ 8004000Dh +OLE_E_WRONGCOMPOBJ equ 8004000Eh +OLE_E_INVALIDHWND equ 8004000Fh +OLE_E_NOT_INPLACEACTIVE equ 80040010h +OLE_E_CANTCONVERT equ 80040011h +OLE_E_NOSTORAGE equ 80040012h +DV_E_FORMATETC equ 80040064h +DV_E_DVTARGETDEVICE equ 80040065h +DV_E_STGMEDIUM equ 80040066h +DV_E_STATDATA equ 80040067h +DV_E_LINDEX equ 80040068h +DV_E_TYMED equ 80040069h +DV_E_CLIPFORMAT equ 8004006Ah +DV_E_DVASPECT equ 8004006Bh +DV_E_DVTARGETDEVICE_SIZE equ 8004006Ch +DV_E_NOIVIEWOBJECT equ 8004006Dh +DRAGDROP_E_FIRST equ 80040100h +DRAGDROP_E_LAST equ 8004010Fh +DRAGDROP_S_FIRST equ 40100h +DRAGDROP_S_LAST equ 4010Fh +DRAGDROP_E_NOTREGISTERED equ 80040100h +DRAGDROP_E_ALREADYREGISTERED equ 80040101h +DRAGDROP_E_INVALIDHWND equ 80040102h +CLASSFACTORY_E_FIRST equ 80040110h +CLASSFACTORY_E_LAST equ 8004011Fh +CLASSFACTORY_S_FIRST equ 40110h +CLASSFACTORY_S_LAST equ 4011Fh +CLASS_E_NOAGGREGATION equ 80040110h +CLASS_E_CLASSNOTAVAILABLE equ 80040111h +MARSHAL_E_FIRST equ 80040120h +MARSHAL_E_LAST equ 8004012Fh +MARSHAL_S_FIRST equ 40120h +MARSHAL_S_LAST equ 4012Fh +DATA_E_FIRST equ 80040130h +DATA_E_LAST equ 8004013Fh +DATA_S_FIRST equ 40130h +DATA_S_LAST equ 4013Fh +VIEW_E_FIRST equ 80040140h +VIEW_E_LAST equ 8004014Fh +VIEW_S_FIRST equ 40140h +VIEW_S_LAST equ 4014Fh +VIEW_E_DRAW equ 80040140h +REGDB_E_FIRST equ 80040150h +REGDB_E_LAST equ 8004015Fh +REGDB_S_FIRST equ 40150h +REGDB_S_LAST equ 4015Fh +REGDB_E_READREGDB equ 80040150h +REGDB_E_WRITEREGDB equ 80040151h +REGDB_E_KEYMISSING equ 80040152h +REGDB_E_INVALIDVALUE equ 80040153h +REGDB_E_CLASSNOTREG equ 80040154h +REGDB_E_IIDNOTREG equ 80040155h +CACHE_E_FIRST equ 80040170h +CACHE_E_LAST equ 8004017Fh +CACHE_S_FIRST equ 40170h +CACHE_S_LAST equ 4017Fh +CACHE_E_NOCACHE_UPDATED equ 80040170h +OLEOBJ_E_FIRST equ 80040180h +OLEOBJ_E_LAST equ 8004018Fh +OLEOBJ_S_FIRST equ 40180h +OLEOBJ_S_LAST equ 4018Fh +OLEOBJ_E_NOVERBS equ 80040180h +OLEOBJ_E_INVALIDVERB equ 80040181h +CLIENTSITE_E_FIRST equ 80040190h +CLIENTSITE_E_LAST equ 8004019Fh +CLIENTSITE_S_FIRST equ 40190h +CLIENTSITE_S_LAST equ 4019Fh +INPLACE_E_NOTUNDOABLE equ 800401A0h +INPLACE_E_NOTOOLSPACE equ 800401A1h +INPLACE_E_FIRST equ 800401A0h +INPLACE_E_LAST equ 800401AFh +INPLACE_S_FIRST equ 401A0h +INPLACE_S_LAST equ 401AFh +ENUM_E_FIRST equ 800401B0h +ENUM_E_LAST equ 800401BFh +ENUM_S_FIRST equ 401B0h +ENUM_S_LAST equ 401BFh +CONVERT10_E_FIRST equ 800401C0h +CONVERT10_E_LAST equ 800401CFh +CONVERT10_S_FIRST equ 401C0h +CONVERT10_S_LAST equ 401CFh +CONVERT10_E_OLESTREAM_GET equ 800401C0h +CONVERT10_E_OLESTREAM_PUT equ 800401C1h +CONVERT10_E_OLESTREAM_FMT equ 800401C2h +CONVERT10_E_OLESTREAM_BITMAP_TO_DIB equ 800401C3h +CONVERT10_E_STG_FMT equ 800401C4h +CONVERT10_E_STG_NO_STD_STREAM equ 800401C5h +CONVERT10_E_STG_DIB_TO_BITMAP equ 800401C6h +CLIPBRD_E_FIRST equ 800401D0h +CLIPBRD_E_LAST equ 800401DFh +CLIPBRD_S_FIRST equ 401D0h +CLIPBRD_S_LAST equ 401DFh +CLIPBRD_E_CANT_OPEN equ 800401D0h +CLIPBRD_E_CANT_EMPTY equ 800401D1h +CLIPBRD_E_CANT_SET equ 800401D2h +CLIPBRD_E_BAD_DATA equ 800401D3h +CLIPBRD_E_CANT_CLOSE equ 800401D4h +MK_E_FIRST equ 800401E0h +MK_E_LAST equ 800401EFh +MK_S_FIRST equ 401E0h +MK_S_LAST equ 401EFh +MK_E_CONNECTMANUALLY equ 800401E0h +MK_E_EXCEEDEDDEADLINE equ 800401E1h +MK_E_NEEDGENERIC equ 800401E2h +MK_E_UNAVAILABLE equ 800401E3h +MK_E_SYNTAX equ 800401E4h +MK_E_NOOBJECT equ 800401E5h +MK_E_INVALIDEXTENSION equ 800401E6h +MK_E_INTERMEDIATEINTERFACENOTSUPPORTED equ 800401E7h +MK_E_NOTBINDABLE equ 800401E8h +MK_E_NOTBOUND equ 800401E9h +MK_E_CANTOPENFILE equ 800401EAh +MK_E_MUSTBOTHERUSER equ 800401EBh +MK_E_NOINVERSE equ 800401ECh +MK_E_NOSTORAGE equ 800401EDh +MK_E_NOPREFIX equ 800401EEh +MK_E_ENUMERATION_FAILED equ 800401EFh +CO_E_FIRST equ 800401F0h +CO_E_LAST equ 800401FFh +CO_S_FIRST equ 401F0h +CO_S_LAST equ 401FFh +CO_E_NOTINITIALIZED equ 800401F0h +CO_E_ALREADYINITIALIZED equ 800401F1h +CO_E_CANTDETERMINECLASS equ 800401F2h +CO_E_CLASSSTRING equ 800401F3h +CO_E_IIDSTRING equ 800401F4h +CO_E_APPNOTFOUND equ 800401F5h +CO_E_APPSINGLEUSE equ 800401F6h +CO_E_ERRORINAPP equ 800401F7h +CO_E_DLLNOTFOUND equ 800401F8h +CO_E_ERRORINDLL equ 800401F9h +CO_E_WRONGOSFORAPP equ 800401FAh +CO_E_OBJNOTREG equ 800401FBh +CO_E_OBJISREG equ 800401FCh +CO_E_OBJNOTCONNECTED equ 800401FDh +CO_E_APPDIDNTREG equ 800401FEh +CO_E_RELEASED equ 800401FFh +OLE_S_USEREG equ 40000h +OLE_S_STATIC equ 40001h +OLE_S_MAC_CLIPFORMAT equ 40002h +DRAGDROP_S_DROP equ 40100h +DRAGDROP_S_CANCEL equ 40101h +DRAGDROP_S_USEDEFAULTCURSORS equ 40102h +DATA_S_SAMEFORMATETC equ 40130h +VIEW_S_ALREADY_FROZEN equ 40140h +CACHE_S_FORMATETC_NOTSUPPORTED equ 40170h +CACHE_S_SAMECACHE equ 40171h +CACHE_S_SOMECACHES_NOTUPDATED equ 40172h +OLEOBJ_S_INVALIDVERB equ 40180h +OLEOBJ_S_CANNOT_DOVERB_NOW equ 40181h +OLEOBJ_S_INVALIDHWND equ 40182h +INPLACE_S_TRUNCATED equ 401A0h +CONVERT10_S_NO_PRESENTATION equ 401C0h +MK_S_REDUCED_TO_SELF equ 401E2h +MK_S_ME equ 401E4h +MK_S_HIM equ 401E5h +MK_S_US equ 401E6h +MK_S_MONIKERALREADYREGISTERED equ 401E7h +CO_E_CLASS_CREATE_FAILED equ 80080001h +CO_E_SCM_ERROR equ 80080002h +CO_E_SCM_RPC_FAILURE equ 80080003h +CO_E_BAD_PATH equ 80080004h +CO_E_SERVER_EXEC_FAILURE equ 80080005h +CO_E_OBJSRV_RPC_FAILURE equ 80080006h +MK_E_NO_NORMALIZED equ 80080007h +CO_E_SERVER_STOPPING equ 80080008h +MEM_E_INVALID_ROOT equ 80080009h +MEM_E_INVALID_LINK equ 80080010h +MEM_E_INVALID_SIZE equ 80080011h +DISP_E_UNKNOWNINTERFACE equ 80020001h +DISP_E_MEMBERNOTFOUND equ 80020003h +DISP_E_PARAMNOTFOUND equ 80020004h +DISP_E_TYPEMISMATCH equ 80020005h +DISP_E_UNKNOWNNAME equ 80020006h +DISP_E_NONAMEDARGS equ 80020007h +DISP_E_BADVARTYPE equ 80020008h +DISP_E_EXCEPTION equ 80020009h +DISP_E_OVERFLOW equ 8002000Ah +DISP_E_BADINDEX equ 8002000Bh +DISP_E_UNKNOWNLCID equ 8002000Ch +DISP_E_ARRAYISLOCKED equ 8002000Dh +DISP_E_BADPARAMCOUNT equ 8002000Eh +DISP_E_PARAMNOTOPTIONAL equ 8002000Fh +DISP_E_BADCALLEE equ 80020010h +DISP_E_NOTACOLLECTION equ 80020011h +TYPE_E_BUFFERTOOSMALL equ 80028016h +TYPE_E_INVDATAREAD equ 80028018h +TYPE_E_UNSUPFORMAT equ 80028019h +TYPE_E_REGISTRYACCESS equ 8002801Ch +TYPE_E_LIBNOTREGISTERED equ 8002801Dh +TYPE_E_UNDEFINEDTYPE equ 80028027h +TYPE_E_QUALIFIEDNAMEDISALLOWED equ 80028028h +TYPE_E_INVALIDSTATE equ 80028029h +TYPE_E_WRONGTYPEKIND equ 8002802Ah +TYPE_E_ELEMENTNOTFOUND equ 8002802Bh +TYPE_E_AMBIGUOUSNAME equ 8002802Ch +TYPE_E_NAMECONFLICT equ 8002802Dh +TYPE_E_UNKNOWNLCID equ 8002802Eh +TYPE_E_DLLFUNCTIONNOTFOUND equ 8002802Fh +TYPE_E_BADMODULEKIND equ 800288BDh +TYPE_E_SIZETOOBIG equ 800288C5h +TYPE_E_DUPLICATEID equ 800288C6h +TYPE_E_INVALIDID equ 800288CFh +TYPE_E_TYPEMISMATCH equ 80028CA0h +TYPE_E_OUTOFBOUNDS equ 80028CA1h +TYPE_E_IOERROR equ 80028CA2h +TYPE_E_CANTCREATETMPFILE equ 80028CA3h +TYPE_E_CANTLOADLIBRARY equ 80029C4Ah +TYPE_E_INCONSISTENTPROPFUNCS equ 80029C83h +TYPE_E_CIRCULARTYPE equ 80029C84h +STG_E_INVALIDFUNCTION equ 80030001h +STG_E_FILENOTFOUND equ 80030002h +STG_E_PATHNOTFOUND equ 80030003h +STG_E_TOOMANYOPENFILES equ 80030004h +STG_E_ACCESSDENIED equ 80030005h +STG_E_INVALIDHANDLE equ 80030006h +STG_E_INSUFFICIENTMEMORY equ 80030008h +STG_E_INVALIDPOINTER equ 80030009h +STG_E_NOMOREFILES equ 80030012h +STG_E_DISKISWRITEPROTECTED equ 80030013h +STG_E_SEEKERROR equ 80030019h +STG_E_WRITEFAULT equ 8003001Dh +STG_E_READFAULT equ 8003001Eh +STG_E_SHAREVIOLATION equ 80030020h +STG_E_LOCKVIOLATION equ 80030021h +STG_E_FILEALREADYEXISTS equ 80030050h +STG_E_INVALIDPARAMETER equ 80030057h +STG_E_MEDIUMFULL equ 80030070h +STG_E_ABNORMALAPIEXIT equ 800300FAh +STG_E_INVALIDHEADER equ 800300FBh +STG_E_INVALIDNAME equ 800300FCh +STG_E_UNKNOWN equ 800300FDh +STG_E_UNIMPLEMENTEDFUNCTION equ 800300FEh +STG_E_INVALIDFLAG equ 800300FFh +STG_E_INUSE equ 80030100h +STG_E_NOTCURRENT equ 80030101h +STG_E_REVERTED equ 80030102h +STG_E_CANTSAVE equ 80030103h +STG_E_OLDFORMAT equ 80030104h +STG_E_OLDDLL equ 80030105h +STG_E_SHAREREQUIRED equ 80030106h +STG_E_NOTFILEBASEDSTORAGE equ 80030107h +STG_E_EXTANTMARSHALLINGS equ 80030108h +STG_S_CONVERTED equ 30200h +RPC_E_CALL_REJECTED equ 80010001h +RPC_E_CALL_CANCELED equ 80010002h +RPC_E_CANTPOST_INSENDCALL equ 80010003h +RPC_E_CANTCALLOUT_INASYNCCALL equ 80010004h +RPC_E_CANTCALLOUT_INEXTERNALCALL equ 80010005h +RPC_E_CONNECTION_TERMINATED equ 80010006h +RPC_E_SERVER_DIED equ 80010007h +RPC_E_CLIENT_DIED equ 80010008h +RPC_E_INVALID_DATAPACKET equ 80010009h +RPC_E_CANTTRANSMIT_CALL equ 8001000Ah +RPC_E_CLIENT_CANTMARSHAL_DATA equ 8001000Bh +RPC_E_CLIENT_CANTUNMARSHAL_DATA equ 8001000Ch +RPC_E_SERVER_CANTMARSHAL_DATA equ 8001000Dh +RPC_E_SERVER_CANTUNMARSHAL_DATA equ 8001000Eh +RPC_E_INVALID_DATA equ 8001000Fh +RPC_E_INVALID_PARAMETER equ 80010010h +RPC_E_CANTCALLOUT_AGAIN equ 80010011h +RPC_E_SERVER_DIED_DNE equ 80010012h +RPC_E_SYS_CALL_FAILED equ 80010100h +RPC_E_OUT_OF_RESOURCES equ 80010101h +RPC_E_ATTEMPTED_MULTITHREAD equ 80010102h +RPC_E_NOT_REGISTERED equ 80010103h +RPC_E_FAULT equ 80010104h +RPC_E_SERVERFAULT equ 80010105h +RPC_E_CHANGED_MODE equ 80010106h +RPC_E_INVALIDMETHOD equ 80010107h +RPC_E_DISCONNECTED equ 80010108h +RPC_E_RETRY equ 80010109h +RPC_E_SERVERCALL_RETRYLATER equ 8001010Ah +RPC_E_SERVERCALL_REJECTED equ 8001010Bh +RPC_E_INVALID_CALLDATA equ 8001010Ch +RPC_E_CANTCALLOUT_ININPUTSYNCCALL equ 8001010Dh +RPC_E_WRONG_THREAD equ 8001010Eh +RPC_E_THREAD_NOT_INIT equ 8001010Fh +RPC_E_UNEXPECTED equ 8001FFFFh +ERROR_BAD_USERNAME equ 2202 +ERROR_NOT_CONNECTED equ 2250 +ERROR_OPEN_FILES equ 2401 +ERROR_DEVICE_IN_USE equ 2404 +ERROR_BAD_DEVICE equ 1200 +ERROR_CONNECTION_UNAVAIL equ 1201 +ERROR_DEVICE_ALREADY_REMEMBERED equ 1202 +ERROR_NO_NET_OR_BAD_PATH equ 1203 +ERROR_BAD_PROVIDER equ 1204 +ERROR_CANNOT_OPEN_PROFILE equ 1205 +ERROR_BAD_PROFILE equ 1206 +ERROR_NOT_CONTAINER equ 1207 +ERROR_EXTENDED_ERROR equ 1208 +ERROR_INVALID_GROUPNAME equ 1209 +ERROR_INVALID_COMPUTERNAME equ 1210 +ERROR_INVALID_EVENTNAME equ 1211 +ERROR_INVALID_DOMAINNAME equ 1212 +ERROR_INVALID_SERVICENAME equ 1213 +ERROR_INVALID_NETNAME equ 1214 +ERROR_INVALID_SHARENAME equ 1215 +ERROR_INVALID_PASSWORDNAME equ 1216 +ERROR_INVALID_MESSAGENAME equ 1217 +ERROR_INVALID_MESSAGEDEST equ 1218 +ERROR_SESSION_CREDENTIAL_CONFLICT equ 1219 +ERROR_REMOTE_SESSION_LIMIT_EXCEEDED equ 1220 +ERROR_DUP_DOMAINNAME equ 1221 +ERROR_NO_NETWORK equ 1222 +ERROR_NOT_ALL_ASSIGNED equ 1300 +ERROR_SOME_NOT_MAPPED equ 1301 +ERROR_NO_QUOTAS_FOR_ACCOUNT equ 1302 +ERROR_LOCAL_USER_SESSION_KEY equ 1303 +ERROR_NULL_LM_PASSWORD equ 1304 +ERROR_UNKNOWN_REVISION equ 1305 +ERROR_REVISION_MISMATCH equ 1306 +ERROR_INVALID_OWNER equ 1307 +ERROR_INVALID_PRIMARY_GROUP equ 1308 +ERROR_NO_IMPERSONATION_TOKEN equ 1309 +ERROR_CANT_DISABLE_MANDATORY equ 1310 +ERROR_NO_LOGON_SERVERS equ 1311 +ERROR_NO_SUCH_LOGON_SESSION equ 1312 +ERROR_NO_SUCH_PRIVILEGE equ 1313 +ERROR_PRIVILEGE_NOT_HELD equ 1314 +ERROR_INVALID_ACCOUNT_NAME equ 1315 +ERROR_USER_EXISTS equ 1316 +ERROR_NO_SUCH_USER equ 1317 +ERROR_GROUP_EXISTS equ 1318 +ERROR_NO_SUCH_GROUP equ 1319 +ERROR_MEMBER_IN_GROUP equ 1320 +ERROR_MEMBER_NOT_IN_GROUP equ 1321 +ERROR_LAST_ADMIN equ 1322 +ERROR_WRONG_PASSWORD equ 1323 +ERROR_ILL_FORMED_PASSWORD equ 1324 +ERROR_PASSWORD_RESTRICTION equ 1325 +ERROR_LOGON_FAILURE equ 1326 +ERROR_ACCOUNT_RESTRICTION equ 1327 +ERROR_INVALID_LOGON_HOURS equ 1328 +ERROR_INVALID_WORKSTATION equ 1329 +ERROR_PASSWORD_EXPIRED equ 1330 +ERROR_ACCOUNT_DISABLED equ 1331 +ERROR_NONE_MAPPED equ 1332 +ERROR_TOO_MANY_LUIDS_REQUESTED equ 1333 +ERROR_LUIDS_EXHAUSTED equ 1334 +ERROR_INVALID_SUB_AUTHORITY equ 1335 +ERROR_INVALID_ACL equ 1336 +ERROR_INVALID_SID equ 1337 +ERROR_INVALID_SECURITY_DESCR equ 1338 +ERROR_BAD_INHERITANCE_ACL equ 1340 +ERROR_SERVER_DISABLED equ 1341 +ERROR_SERVER_NOT_DISABLED equ 1342 +ERROR_INVALID_ID_AUTHORITY equ 1343 +ERROR_ALLOTTED_SPACE_EXCEEDED equ 1344 +ERROR_INVALID_GROUP_ATTRIBUTES equ 1345 +ERROR_BAD_IMPERSONATION_LEVEL equ 1346 +ERROR_CANT_OPEN_ANONYMOUS equ 1347 +ERROR_BAD_VALIDATION_CLASS equ 1348 +ERROR_BAD_TOKEN_TYPE equ 1349 +ERROR_NO_SECURITY_ON_OBJECT equ 1350 +ERROR_CANT_ACCESS_DOMAIN_INFO equ 1351 +ERROR_INVALID_SERVER_STATE equ 1352 +ERROR_INVALID_DOMAIN_STATE equ 1353 +ERROR_INVALID_DOMAIN_ROLE equ 1354 +ERROR_NO_SUCH_DOMAIN equ 1355 +ERROR_DOMAIN_EXISTS equ 1356 +ERROR_DOMAIN_LIMIT_EXCEEDED equ 1357 +ERROR_INTERNAL_DB_CORRUPTION equ 1358 +ERROR_INTERNAL_ERROR equ 1359 +ERROR_GENERIC_NOT_MAPPED equ 1360 +ERROR_BAD_DESCRIPTOR_FORMAT equ 1361 +ERROR_NOT_LOGON_PROCESS equ 1362 +ERROR_LOGON_SESSION_EXISTS equ 1363 +ERROR_NO_SUCH_PACKAGE equ 1364 +ERROR_BAD_LOGON_SESSION_STATE equ 1365 +ERROR_LOGON_SESSION_COLLISION equ 1366 +ERROR_INVALID_LOGON_TYPE equ 1367 +ERROR_CANNOT_IMPERSONATE equ 1368 +ERROR_RXACT_INVALID_STATE equ 1369 +ERROR_RXACT_COMMIT_FAILURE equ 1370 +ERROR_SPECIAL_ACCOUNT equ 1371 +ERROR_SPECIAL_GROUP equ 1372 +ERROR_SPECIAL_USER equ 1373 +ERROR_MEMBERS_PRIMARY_GROUP equ 1374 +ERROR_TOKEN_ALREADY_IN_USE equ 1375 +ERROR_NO_SUCH_ALIAS equ 1376 +ERROR_MEMBER_NOT_IN_ALIAS equ 1377 +ERROR_MEMBER_IN_ALIAS equ 1378 +ERROR_ALIAS_EXISTS equ 1379 +ERROR_LOGON_NOT_GRANTED equ 1380 +ERROR_TOO_MANY_SECRETS equ 1381 +ERROR_SECRET_TOO_LONG equ 1382 +ERROR_INTERNAL_DB_ERROR equ 1383 +ERROR_TOO_MANY_CONTEXT_IDS equ 1384 +ERROR_LOGON_TYPE_NOT_GRANTED equ 1385 +ERROR_NT_CROSS_ENCRYPTION_REQUIRED equ 1386 +ERROR_NO_SUCH_MEMBER equ 1387 +ERROR_INVALID_MEMBER equ 1388 +ERROR_TOO_MANY_SIDS equ 1389 +ERROR_LM_CROSS_ENCRYPTION_REQUIRED equ 1390 +ERROR_NO_INHERITANCE equ 1391 +ERROR_FILE_CORRUPT equ 1392 +ERROR_DISK_CORRUPT equ 1393 +ERROR_NO_USER_SESSION_KEY equ 1394 +ERROR_INVALID_WINDOW_HANDLE equ 1400 +ERROR_INVALID_MENU_HANDLE equ 1401 +ERROR_INVALID_CURSOR_HANDLE equ 1402 +ERROR_INVALID_ACCEL_HANDLE equ 1403 +ERROR_INVALID_HOOK_HANDLE equ 1404 +ERROR_INVALID_DWP_HANDLE equ 1405 +ERROR_TLW_WITH_WSCHILD equ 1406 +ERROR_CANNOT_FIND_WND_CLASS equ 1407 +ERROR_WINDOW_OF_OTHER_THREAD equ 1408 +ERROR_HOTKEY_ALREADY_REGISTERED equ 1409 +ERROR_CLASS_ALREADY_EXISTS equ 1410 +ERROR_CLASS_DOES_NOT_EXIST equ 1411 +ERROR_CLASS_HAS_WINDOWS equ 1412 +ERROR_INVALID_INDEX equ 1413 +ERROR_INVALID_ICON_HANDLE equ 1414 +ERROR_PRIVATE_DIALOG_INDEX equ 1415 +ERROR_LISTBOX_ID_NOT_FOUND equ 1416 +ERROR_NO_WILDCARD_CHARACTERS equ 1417 +ERROR_CLIPBOARD_NOT_OPEN equ 1418 +ERROR_HOTKEY_NOT_REGISTERED equ 1419 +ERROR_WINDOW_NOT_DIALOG equ 1420 +ERROR_CONTROL_ID_NOT_FOUND equ 1421 +ERROR_INVALID_COMBOBOX_MESSAGE equ 1422 +ERROR_WINDOW_NOT_COMBOBOX equ 1423 +ERROR_INVALID_EDIT_HEIGHT equ 1424 +ERROR_DC_NOT_FOUND equ 1425 +ERROR_INVALID_HOOK_FILTER equ 1426 +ERROR_INVALID_FILTER_PROC equ 1427 +ERROR_HOOK_NEEDS_HMOD equ 1428 +ERROR_PUBLIC_ONLY_HOOK equ 1429 +ERROR_JOURNAL_HOOK_SET equ 1430 +ERROR_HOOK_NOT_INSTALLED equ 1431 +ERROR_INVALID_LB_MESSAGE equ 1432 +ERROR_SETCOUNT_ON_BAD_LB equ 1433 +ERROR_LB_WITHOUT_TABSTOPS equ 1434 +ERROR_DESTROY_OBJECT_OF_OTHER_THREAD equ 1435 +ERROR_CHILD_WINDOW_MENU equ 1436 +ERROR_NO_SYSTEM_MENU equ 1437 +ERROR_INVALID_MSGBOX_STYLE equ 1438 +ERROR_INVALID_SPI_VALUE equ 1439 +ERROR_SCREEN_ALREADY_LOCKED equ 1440 +ERROR_HWNDS_HAVE_DIFF_PARENT equ 1441 +ERROR_NOT_CHILD_WINDOW equ 1442 +ERROR_INVALID_GW_COMMAND equ 1443 +ERROR_INVALID_THREAD_ID equ 1444 +ERROR_NON_MDICHILD_WINDOW equ 1445 +ERROR_POPUP_ALREADY_ACTIVE equ 1446 +ERROR_NO_SCROLLBARS equ 1447 +ERROR_INVALID_SCROLLBAR_RANGE equ 1448 +ERROR_INVALID_SHOWWIN_COMMAND equ 1449 +ERROR_EVENTLOG_FILE_CORRUPT equ 1500 +ERROR_EVENTLOG_CANT_START equ 1501 +ERROR_LOG_FILE_FULL equ 1502 +ERROR_EVENTLOG_FILE_CHANGED equ 1503 +RPC_S_INVALID_STRING_BINDING equ 1700 +RPC_S_WRONG_KIND_OF_BINDING equ 1701 +RPC_S_INVALID_BINDING equ 1702 +RPC_S_PROTSEQ_NOT_SUPPORTED equ 1703 +RPC_S_INVALID_RPC_PROTSEQ equ 1704 +RPC_S_INVALID_STRING_UUID equ 1705 +RPC_S_INVALID_ENDPOINT_FORMAT equ 1706 +RPC_S_INVALID_NET_ADDR equ 1707 +RPC_S_NO_ENDPOINT_FOUND equ 1708 +RPC_S_INVALID_TIMEOUT equ 1709 +RPC_S_OBJECT_NOT_FOUND equ 1710 +RPC_S_ALREADY_REGISTERED equ 1711 +RPC_S_TYPE_ALREADY_REGISTERED equ 1712 +RPC_S_ALREADY_LISTENING equ 1713 +RPC_S_NO_PROTSEQS_REGISTERED equ 1714 +RPC_S_NOT_LISTENING equ 1715 +RPC_S_UNKNOWN_MGR_TYPE equ 1716 +RPC_S_UNKNOWN_IF equ 1717 +RPC_S_NO_BINDINGS equ 1718 +RPC_S_NO_PROTSEQS equ 1719 +RPC_S_CANT_CREATE_ENDPOINT equ 1720 +RPC_S_OUT_OF_RESOURCES equ 1721 +RPC_S_SERVER_UNAVAILABLE equ 1722 +RPC_S_SERVER_TOO_BUSY equ 1723 +RPC_S_INVALID_NETWORK_OPTIONS equ 1724 +RPC_S_NO_CALL_ACTIVE equ 1725 +RPC_S_CALL_FAILED equ 1726 +RPC_S_CALL_FAILED_DNE equ 1727 +RPC_S_PROTOCOL_ERROR equ 1728 +RPC_S_UNSUPPORTED_TRANS_SYN equ 1730 +RPC_S_UNSUPPORTED_TYPE equ 1732 +RPC_S_INVALID_TAG equ 1733 +RPC_S_INVALID_BOUND equ 1734 +RPC_S_NO_ENTRY_NAME equ 1735 +RPC_S_INVALID_NAME_SYNTAX equ 1736 +RPC_S_UNSUPPORTED_NAME_SYNTAX equ 1737 +RPC_S_UUID_NO_ADDRESS equ 1739 +RPC_S_DUPLICATE_ENDPOINT equ 1740 +RPC_S_UNKNOWN_AUTHN_TYPE equ 1741 +RPC_S_MAX_CALLS_TOO_SMALL equ 1742 +RPC_S_STRING_TOO_LONG equ 1743 +RPC_S_PROTSEQ_NOT_FOUND equ 1744 +RPC_S_PROCNUM_OUT_OF_RANGE equ 1745 +RPC_S_BINDING_HAS_NO_AUTH equ 1746 +RPC_S_UNKNOWN_AUTHN_SERVICE equ 1747 +RPC_S_UNKNOWN_AUTHN_LEVEL equ 1748 +RPC_S_INVALID_AUTH_IDENTITY equ 1749 +RPC_S_UNKNOWN_AUTHZ_SERVICE equ 1750 +EPT_S_INVALID_ENTRY equ 1751 +EPT_S_CANT_PERFORM_OP equ 1752 +EPT_S_NOT_REGISTERED equ 1753 +RPC_S_NOTHING_TO_EXPORT equ 1754 +RPC_S_INCOMPLETE_NAME equ 1755 +RPC_S_INVALID_VERS_OPTION equ 1756 +RPC_S_NO_MORE_MEMBERS equ 1757 +RPC_S_NOT_ALL_OBJS_UNEXPORTED equ 1758 +RPC_S_INTERFACE_NOT_FOUND equ 1759 +RPC_S_ENTRY_ALREADY_EXISTS equ 1760 +RPC_S_ENTRY_NOT_FOUND equ 1761 +RPC_S_NAME_SERVICE_UNAVAILABLE equ 1762 +RPC_S_INVALID_NAF_ID equ 1763 +RPC_S_CANNOT_SUPPORT equ 1764 +RPC_S_NO_CONTEXT_AVAILABLE equ 1765 +RPC_S_INTERNAL_ERROR equ 1766 +RPC_S_ZERO_DIVIDE equ 1767 +RPC_S_ADDRESS_ERROR equ 1768 +RPC_S_FP_DIV_ZERO equ 1769 +RPC_S_FP_UNDERFLOW equ 1770 +RPC_S_FP_OVERFLOW equ 1771 +RPC_X_NO_MORE_ENTRIES equ 1772 +RPC_X_SS_CHAR_TRANS_OPEN_FAIL equ 1773 +RPC_X_SS_CHAR_TRANS_SHORT_FILE equ 1774 +RPC_X_SS_IN_NULL_CONTEXT equ 1775 +RPC_X_SS_CONTEXT_DAMAGED equ 1777 +RPC_X_SS_HANDLES_MISMATCH equ 1778 +RPC_X_SS_CANNOT_GET_CALL_HANDLE equ 1779 +RPC_X_NULL_REF_POINTER equ 1780 +RPC_X_ENUM_VALUE_OUT_OF_RANGE equ 1781 +RPC_X_BYTE_COUNT_TOO_SMALL equ 1782 +RPC_X_BAD_STUB_DATA equ 1783 +ERROR_INVALID_USER_BUFFER equ 1784 +ERROR_UNRECOGNIZED_MEDIA equ 1785 +ERROR_NO_TRUST_LSA_SECRET equ 1786 +ERROR_NO_TRUST_SAM_ACCOUNT equ 1787 +ERROR_TRUSTED_DOMAIN_FAILURE equ 1788 +ERROR_TRUSTED_RELATIONSHIP_FAILURE equ 1789 +ERROR_TRUST_FAILURE equ 1790 +RPC_S_CALL_IN_PROGRESS equ 1791 +ERROR_NETLOGON_NOT_STARTED equ 1792 +ERROR_ACCOUNT_EXPIRED equ 1793 +ERROR_REDIRECTOR_HAS_OPEN_HANDLES equ 1794 +ERROR_PRINTER_DRIVER_ALREADY_INSTALLED equ 1795 +ERROR_UNKNOWN_PORT equ 1796 +ERROR_UNKNOWN_PRINTER_DRIVER equ 1797 +ERROR_UNKNOWN_PRINTPROCESSOR equ 1798 +ERROR_INVALID_SEPARATOR_FILE equ 1799 +ERROR_INVALID_PRIORITY equ 1800 +ERROR_INVALID_PRINTER_NAME equ 1801 +ERROR_PRINTER_ALREADY_EXISTS equ 1802 +ERROR_INVALID_PRINTER_COMMAND equ 1803 +ERROR_INVALID_DATATYPE equ 1804 +ERROR_INVALID_ENVIRONMENT equ 1805 +RPC_S_NO_MORE_BINDINGS equ 1806 +ERROR_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT equ 1807 +ERROR_NOLOGON_WORKSTATION_TRUST_ACCOUNT equ 1808 +ERROR_NOLOGON_SERVER_TRUST_ACCOUNT equ 1809 +ERROR_DOMAIN_TRUST_INCONSISTENT equ 1810 +ERROR_SERVER_HAS_OPEN_HANDLES equ 1811 +ERROR_RESOURCE_DATA_NOT_FOUND equ 1812 +ERROR_RESOURCE_TYPE_NOT_FOUND equ 1813 +ERROR_RESOURCE_NAME_NOT_FOUND equ 1814 +ERROR_RESOURCE_LANG_NOT_FOUND equ 1815 +ERROR_NOT_ENOUGH_QUOTA equ 1816 +RPC_S_GROUP_MEMBER_NOT_FOUND equ 1898 +EPT_S_CANT_CREATE equ 1899 +RPC_S_INVALID_OBJECT equ 1900 +ERROR_INVALID_TIME equ 1901 +ERROR_INVALID_FORM_NAME equ 1902 +ERROR_INVALID_FORM_SIZE equ 1903 +ERROR_ALREADY_WAITING equ 1904 +ERROR_PRINTER_DELETED equ 1905 +ERROR_INVALID_PRINTER_STATE equ 1906 +ERROR_NO_BROWSER_SERVERS_FOUND equ 6118 +MAXPNAMELEN equ 32 +MAXERRORLENGTH equ 128 +TIME_MS equ 1h +TIME_SAMPLES equ 2h +TIME_BYTES equ 4h +TIME_SMPTE equ 8h +TIME_MIDI equ 10h +TIME_TICKS equ 20h +MM_JOY1MOVE equ 3A0h +MM_JOY2MOVE equ 3A1h +MM_JOY1ZMOVE equ 3A2h +MM_JOY2ZMOVE equ 3A3h +MM_JOY1BUTTONDOWN equ 3B5h +MM_JOY2BUTTONDOWN equ 3B6h +MM_JOY1BUTTONUP equ 3B7h +MM_JOY2BUTTONUP equ 3B8h +MM_MCINOTIFY equ 3B9h +MM_MCISYSTEM_STRING equ 3CAh +MM_WOM_OPEN equ 3BBh +MM_WOM_CLOSE equ 3BCh +MM_WOM_DONE equ 3BDh +MM_WIM_OPEN equ 3BEh +MM_WIM_CLOSE equ 3BFh +MM_WIM_DATA equ 3C0h +MM_MIM_OPEN equ 3C1h +MM_MIM_CLOSE equ 3C2h +MM_MIM_DATA equ 3C3h +MM_MIM_LONGDATA equ 3C4h +MM_MIM_ERROR equ 3C5h +MM_MIM_LONGERROR equ 3C6h +MM_MOM_OPEN equ 3C7h +MM_MOM_CLOSE equ 3C8h +MM_MOM_DONE equ 3C9h +MMSYSERR_BASE equ 0 +WAVERR_BASE equ 32 +MIDIERR_BASE equ 64 +TIMERR_BASE equ 96 +JOYERR_BASE equ 160 +MCIERR_BASE equ 256 +MIXERR_BASE equ 1024 +MCI_STRING_OFFSET equ 512 +MCI_VD_OFFSET equ 1024 +MCI_CD_OFFSET equ 1088 +MCI_WAVE_OFFSET equ 1152 +MCI_SEQ_OFFSET equ 1216 +MMSYSERR_NOERROR equ 0 +MMSYSERR_ERROR equ MMSYSERR_BASE + 1 +MMSYSERR_BADDEVICEID equ MMSYSERR_BASE + 2 +MMSYSERR_NOTENABLED equ MMSYSERR_BASE + 3 +MMSYSERR_ALLOCATED equ MMSYSERR_BASE + 4 +MMSYSERR_INVALHANDLE equ MMSYSERR_BASE + 5 +MMSYSERR_NODRIVER equ MMSYSERR_BASE + 6 +MMSYSERR_NOMEM equ MMSYSERR_BASE + 7 +MMSYSERR_NOTSUPPORTED equ MMSYSERR_BASE + 8 +MMSYSERR_BADERRNUM equ MMSYSERR_BASE + 9 +MMSYSERR_INVALFLAG equ MMSYSERR_BASE + 10 +MMSYSERR_INVALPARAM equ MMSYSERR_BASE + 11 +MMSYSERR_HANDLEBUSY equ MMSYSERR_BASE + 12 +MMSYSERR_INVALIDALIAS equ MMSYSERR_BASE + 13 +MMSYSERR_LASTERROR equ MMSYSERR_BASE + 13 +MM_MOM_POSITIONCB equ 3CAh +MM_MCISIGNAL equ 3CBh +MM_MIM_MOREDATA equ 3CCh +MIDICAPS_STREAM equ 8h +MEVT_F_SHORT equ 0h +MEVT_F_LONG equ 80000000h +MEVT_F_CALLBACK equ 40000000h +MIDISTRM_ERROR equ -2 +MIDIPROP_SET equ 80000000h +MIDIPROP_GET equ 40000000h +MIDIPROP_TIMEDIV equ 1h +MIDIPROP_TEMPO equ 2h +MIXER_SHORT_NAME_CHARS equ 16 +MIXER_LONG_NAME_CHARS equ 64 +MIXERR_INVALLINE equ MIXERR_BASE + 0 +MIXERR_INVALCONTROL equ MIXERR_BASE + 1 +MIXERR_INVALVALUE equ MIXERR_BASE + 2 +MIXERR_LASTERROR equ MIXERR_BASE + 2 +MIXER_OBJECTF_HANDLE equ 80000000h +MIXER_OBJECTF_MIXER equ 0h +MIXER_OBJECTF_HMIXER equ MIXER_OBJECTF_HANDLE OR MIXER_OBJECTF_MIXER +MIXER_OBJECTF_WAVEOUT equ 10000000h +MIXER_OBJECTF_HWAVEOUT equ MIXER_OBJECTF_HANDLE OR MIXER_OBJECTF_WAVEOUT +MIXER_OBJECTF_WAVEIN equ 20000000h +MIXER_OBJECTF_HWAVEIN equ MIXER_OBJECTF_HANDLE OR MIXER_OBJECTF_WAVEIN +MIXER_OBJECTF_MIDIOUT equ 30000000h +MIXER_OBJECTF_HMIDIOUT equ MIXER_OBJECTF_HANDLE OR MIXER_OBJECTF_MIDIOUT +MIXER_OBJECTF_MIDIIN equ 40000000h +MIXER_OBJECTF_HMIDIIN equ MIXER_OBJECTF_HANDLE OR MIXER_OBJECTF_MIDIIN +MIXER_OBJECTF_AUX equ 50000000h +MIXERLINE_LINEF_ACTIVE equ 1h +MIXERLINE_LINEF_DISCONNECTED equ 8000h +MIXERLINE_LINEF_SOURCE equ 80000000h +MIXERLINE_COMPONENTTYPE_DST_FIRST equ 0h +MIXERLINE_COMPONENTTYPE_DST_UNDEFINED equ MIXERLINE_COMPONENTTYPE_DST_FIRST + 0 +MIXERLINE_COMPONENTTYPE_DST_DIGITAL equ MIXERLINE_COMPONENTTYPE_DST_FIRST + 1 +MIXERLINE_COMPONENTTYPE_DST_LINE equ MIXERLINE_COMPONENTTYPE_DST_FIRST + 2 +MIXERLINE_COMPONENTTYPE_DST_MONITOR equ MIXERLINE_COMPONENTTYPE_DST_FIRST + 3 +MIXERLINE_COMPONENTTYPE_DST_SPEAKERS equ MIXERLINE_COMPONENTTYPE_DST_FIRST + 4 +MIXERLINE_COMPONENTTYPE_DST_HEADPHONES equ MIXERLINE_COMPONENTTYPE_DST_FIRST + 5 +MIXERLINE_COMPONENTTYPE_DST_TELEPHONE equ MIXERLINE_COMPONENTTYPE_DST_FIRST + 6 +MIXERLINE_COMPONENTTYPE_DST_WAVEIN equ MIXERLINE_COMPONENTTYPE_DST_FIRST + 7 +MIXERLINE_COMPONENTTYPE_DST_VOICEIN equ MIXERLINE_COMPONENTTYPE_DST_FIRST + 8 +MIXERLINE_COMPONENTTYPE_DST_LAST equ MIXERLINE_COMPONENTTYPE_DST_FIRST + 8 +MIXERLINE_COMPONENTTYPE_SRC_FIRST equ 1000h +MIXERLINE_COMPONENTTYPE_SRC_UNDEFINED equ MIXERLINE_COMPONENTTYPE_SRC_FIRST + 0 +MIXERLINE_COMPONENTTYPE_SRC_DIGITAL equ MIXERLINE_COMPONENTTYPE_SRC_FIRST + 1 +MIXERLINE_COMPONENTTYPE_SRC_LINE equ MIXERLINE_COMPONENTTYPE_SRC_FIRST + 2 +MIXERLINE_COMPONENTTYPE_SRC_MICROPHONE equ MIXERLINE_COMPONENTTYPE_SRC_FIRST + 3 +MIXERLINE_COMPONENTTYPE_SRC_SYNTHESIZER equ MIXERLINE_COMPONENTTYPE_SRC_FIRST + 4 +MIXERLINE_COMPONENTTYPE_SRC_COMPACTDISC equ MIXERLINE_COMPONENTTYPE_SRC_FIRST + 5 +MIXERLINE_COMPONENTTYPE_SRC_TELEPHONE equ MIXERLINE_COMPONENTTYPE_SRC_FIRST + 6 +MIXERLINE_COMPONENTTYPE_SRC_PCSPEAKER equ MIXERLINE_COMPONENTTYPE_SRC_FIRST + 7 +MIXERLINE_COMPONENTTYPE_SRC_WAVEOUT equ MIXERLINE_COMPONENTTYPE_SRC_FIRST + 8 +MIXERLINE_COMPONENTTYPE_SRC_AUXILIARY equ MIXERLINE_COMPONENTTYPE_SRC_FIRST + 9 +MIXERLINE_COMPONENTTYPE_SRC_ANALOG equ MIXERLINE_COMPONENTTYPE_SRC_FIRST + 10 +MIXERLINE_COMPONENTTYPE_SRC_LAST equ MIXERLINE_COMPONENTTYPE_SRC_FIRST + 10 +MIXERLINE_TARGETTYPE_UNDEFINED equ 0 +MIXERLINE_TARGETTYPE_WAVEOUT equ 1 +MIXERLINE_TARGETTYPE_WAVEIN equ 2 +MIXERLINE_TARGETTYPE_MIDIOUT equ 3 +MIXERLINE_TARGETTYPE_MIDIIN equ 4 +MIXERLINE_TARGETTYPE_AUX equ 5 +MIXER_GETLINEINFOF_DESTINATION equ 0h +MIXER_GETLINEINFOF_SOURCE equ 1h +MIXER_GETLINEINFOF_LINEID equ 2h +MIXER_GETLINEINFOF_COMPONENTTYPE equ 3h +MIXER_GETLINEINFOF_TARGETTYPE equ 4h +MIXER_GETLINEINFOF_QUERYMASK equ 0Fh +MIXERCONTROL_CONTROLF_UNIFORM equ 1h +MIXERCONTROL_CONTROLF_MULTIPLE equ 2h +MIXERCONTROL_CONTROLF_DISABLED equ 80000000h +MIXERCONTROL_CT_CLASS_MASK equ 0F0000000h +MIXERCONTROL_CT_CLASS_CUSTOM equ 0h +MIXERCONTROL_CT_CLASS_METER equ 10000000h +MIXERCONTROL_CT_CLASS_SWITCH equ 20000000h +MIXERCONTROL_CT_CLASS_NUMBER equ 30000000h +MIXERCONTROL_CT_CLASS_SLIDER equ 40000000h +MIXERCONTROL_CT_CLASS_FADER equ 50000000h +MIXERCONTROL_CT_CLASS_TIME equ 60000000h +MIXERCONTROL_CT_CLASS_LIST equ 70000000h +MIXERCONTROL_CT_SUBCLASS_MASK equ 0F000000h +MIXERCONTROL_CT_SC_SWITCH_BOOLEAN equ 0h +MIXERCONTROL_CT_SC_SWITCH_BUTTON equ 1000000h +MIXERCONTROL_CT_SC_METER_POLLED equ 0h +MIXERCONTROL_CT_SC_TIME_MICROSECS equ 0h +MIXERCONTROL_CT_SC_TIME_MILLISECS equ 1000000h +MIXERCONTROL_CT_SC_LIST_SINGLE equ 0h +MIXERCONTROL_CT_SC_LIST_MULTIPLE equ 1000000h +MIXERCONTROL_CT_UNITS_MASK equ 0FF0000h +MIXERCONTROL_CT_UNITS_CUSTOM equ 0h +MIXERCONTROL_CT_UNITS_BOOLEAN equ 10000h +MIXERCONTROL_CT_UNITS_SIGNED equ 20000h +MIXERCONTROL_CT_UNITS_UNSIGNED equ 30000h +MIXERCONTROL_CT_UNITS_DECIBELS equ 40000h +MIXERCONTROL_CT_UNITS_PERCENT equ 50000h +MIXERCONTROL_CONTROLTYPE_CUSTOM equ MIXERCONTROL_CT_CLASS_CUSTOM OR MIXERCONTROL_CT_UNITS_CUSTOM +MIXERCONTROL_CONTROLTYPE_BOOLEANMETER equ MIXERCONTROL_CT_CLASS_METER OR MIXERCONTROL_CT_SC_METER_POLLED OR MIXERCONTROL_CT_UNITS_BOOLEAN +MIXERCONTROL_CONTROLTYPE_SIGNEDMETER equ MIXERCONTROL_CT_CLASS_METER OR MIXERCONTROL_CT_SC_METER_POLLED OR MIXERCONTROL_CT_UNITS_SIGNED +MIXERCONTROL_CONTROLTYPE_PEAKMETER equ MIXERCONTROL_CONTROLTYPE_SIGNEDMETER + 1 +MIXERCONTROL_CONTROLTYPE_UNSIGNEDMETER equ MIXERCONTROL_CT_CLASS_METER OR MIXERCONTROL_CT_SC_METER_POLLED OR MIXERCONTROL_CT_UNITS_UNSIGNED +MIXERCONTROL_CONTROLTYPE_BOOLEAN equ MIXERCONTROL_CT_CLASS_SWITCH OR MIXERCONTROL_CT_SC_SWITCH_BOOLEAN OR MIXERCONTROL_CT_UNITS_BOOLEAN +MIXERCONTROL_CONTROLTYPE_ONOFF equ MIXERCONTROL_CONTROLTYPE_BOOLEAN + 1 +MIXERCONTROL_CONTROLTYPE_MUTE equ MIXERCONTROL_CONTROLTYPE_BOOLEAN + 2 +MIXERCONTROL_CONTROLTYPE_MONO equ MIXERCONTROL_CONTROLTYPE_BOOLEAN + 3 +MIXERCONTROL_CONTROLTYPE_LOUDNESS equ MIXERCONTROL_CONTROLTYPE_BOOLEAN + 4 +MIXERCONTROL_CONTROLTYPE_STEREOENH equ MIXERCONTROL_CONTROLTYPE_BOOLEAN + 5 +MIXERCONTROL_CONTROLTYPE_BUTTON equ MIXERCONTROL_CT_CLASS_SWITCH OR MIXERCONTROL_CT_SC_SWITCH_BUTTON OR MIXERCONTROL_CT_UNITS_BOOLEAN +MIXERCONTROL_CONTROLTYPE_DECIBELS equ MIXERCONTROL_CT_CLASS_NUMBER OR MIXERCONTROL_CT_UNITS_DECIBELS +MIXERCONTROL_CONTROLTYPE_SIGNED equ MIXERCONTROL_CT_CLASS_NUMBER OR MIXERCONTROL_CT_UNITS_SIGNED +MIXERCONTROL_CONTROLTYPE_UNSIGNED equ MIXERCONTROL_CT_CLASS_NUMBER OR MIXERCONTROL_CT_UNITS_UNSIGNED +MIXERCONTROL_CONTROLTYPE_PERCENT equ MIXERCONTROL_CT_CLASS_NUMBER OR MIXERCONTROL_CT_UNITS_PERCENT +MIXERCONTROL_CONTROLTYPE_SLIDER equ MIXERCONTROL_CT_CLASS_SLIDER OR MIXERCONTROL_CT_UNITS_SIGNED +MIXERCONTROL_CONTROLTYPE_PAN equ MIXERCONTROL_CONTROLTYPE_SLIDER + 1 +MIXERCONTROL_CONTROLTYPE_QSOUNDPAN equ MIXERCONTROL_CONTROLTYPE_SLIDER + 2 +MIXERCONTROL_CONTROLTYPE_FADER equ MIXERCONTROL_CT_CLASS_FADER OR MIXERCONTROL_CT_UNITS_UNSIGNED +MIXERCONTROL_CONTROLTYPE_VOLUME equ MIXERCONTROL_CONTROLTYPE_FADER + 1 +MIXERCONTROL_CONTROLTYPE_BASS equ MIXERCONTROL_CONTROLTYPE_FADER + 2 +MIXERCONTROL_CONTROLTYPE_TREBLE equ MIXERCONTROL_CONTROLTYPE_FADER + 3 +MIXERCONTROL_CONTROLTYPE_EQUALIZER equ MIXERCONTROL_CONTROLTYPE_FADER + 4 +MIXERCONTROL_CONTROLTYPE_SINGLESELECT equ MIXERCONTROL_CT_CLASS_LIST OR MIXERCONTROL_CT_SC_LIST_SINGLE OR MIXERCONTROL_CT_UNITS_BOOLEAN +MIXERCONTROL_CONTROLTYPE_MUX equ MIXERCONTROL_CONTROLTYPE_SINGLESELECT + 1 +MIXERCONTROL_CONTROLTYPE_MULTIPLESELECT equ MIXERCONTROL_CT_CLASS_LIST OR MIXERCONTROL_CT_SC_LIST_MULTIPLE OR MIXERCONTROL_CT_UNITS_BOOLEAN +MIXERCONTROL_CONTROLTYPE_MIXER equ MIXERCONTROL_CONTROLTYPE_MULTIPLESELECT + 1 +MIXERCONTROL_CONTROLTYPE_MICROTIME equ MIXERCONTROL_CT_CLASS_TIME OR MIXERCONTROL_CT_SC_TIME_MICROSECS OR MIXERCONTROL_CT_UNITS_UNSIGNED +MIXERCONTROL_CONTROLTYPE_MILLITIME equ MIXERCONTROL_CT_CLASS_TIME OR MIXERCONTROL_CT_SC_TIME_MILLISECS OR MIXERCONTROL_CT_UNITS_UNSIGNED +MIXER_GETLINECONTROLSF_ALL equ 0h +MIXER_GETLINECONTROLSF_ONEBYID equ 1h +MIXER_GETLINECONTROLSF_ONEBYTYPE equ 2h +MIXER_GETLINECONTROLSF_QUERYMASK equ 0Fh +MIXER_GETCONTROLDETAILSF_VALUE equ 0h +MIXER_GETCONTROLDETAILSF_LISTTEXT equ 1h +MIXER_GETCONTROLDETAILSF_QUERYMASK equ 0Fh +MIXER_SETCONTROLDETAILSF_VALUE equ 0h +MIXER_SETCONTROLDETAILSF_CUSTOM equ 1h +MIXER_SETCONTROLDETAILSF_QUERYMASK equ 0Fh +JOY_BUTTON5 equ 10h +JOY_BUTTON6 equ 20h +JOY_BUTTON7 equ 40h +JOY_BUTTON8 equ 80h +JOY_BUTTON9 equ 100h +JOY_BUTTON10 equ 200h +JOY_BUTTON11 equ 400h +JOY_BUTTON12 equ 800h +JOY_BUTTON13 equ 1000h +JOY_BUTTON14 equ 2000h +JOY_BUTTON15 equ 4000h +JOY_BUTTON16 equ 8000h +JOY_BUTTON17 equ 10000h +JOY_BUTTON18 equ 20000h +JOY_BUTTON19 equ 40000h +JOY_BUTTON20 equ 80000h +JOY_BUTTON21 equ 100000h +JOY_BUTTON22 equ 200000h +JOY_BUTTON23 equ 400000h +JOY_BUTTON24 equ 800000h +JOY_BUTTON25 equ 1000000h +JOY_BUTTON26 equ 2000000h +JOY_BUTTON27 equ 4000000h +JOY_BUTTON28 equ 8000000h +JOY_BUTTON29 equ 10000000h +JOY_BUTTON30 equ 20000000h +JOY_BUTTON31 equ 40000000h +JOY_BUTTON32 equ 80000000h +JOY_POVCENTERED equ -1 +JOY_POVFORWARD equ 0 +JOY_POVRIGHT equ 9000 +JOY_POVBACKWARD equ 18000 +JOY_POVLEFT equ 27000 +JOY_RETURNX equ 1h +JOY_RETURNY equ 2h +JOY_RETURNZ equ 4h +JOY_RETURNR equ 8h +JOY_RETURNU equ 10h +JOY_RETURNV equ 20h +JOY_RETURNPOV equ 40h +JOY_RETURNBUTTONS equ 80h +JOY_RETURNRAWDATA equ 100h +JOY_RETURNPOVCTS equ 200h +JOY_RETURNCENTERED equ 400h +JOY_USEDEADZONE equ 800h +JOY_RETURNALL equ JOY_RETURNX OR JOY_RETURNY OR JOY_RETURNZ OR JOY_RETURNR OR JOY_RETURNU OR JOY_RETURNV OR JOY_RETURNPOV OR JOY_RETURNBUTTONS +JOY_CAL_READALWAYS equ 10000h +JOY_CAL_READXYONLY equ 20000h +JOY_CAL_READ3 equ 40000h +JOY_CAL_READ4 equ 80000h +JOY_CAL_READXONLY equ 100000h +JOY_CAL_READYONLY equ 200000h +JOY_CAL_READ5 equ 400000h +JOY_CAL_READ6 equ 800000h +JOY_CAL_READZONLY equ 1000000h +JOY_CAL_READRONLY equ 2000000h +JOY_CAL_READUONLY equ 4000000h +JOY_CAL_READVONLY equ 8000000h +WAVE_FORMAT_QUERY equ 1h +SND_PURGE equ 40h +SND_APPLICATION equ 80h +WAVE_MAPPED equ 4h +WAVE_FORMAT_DIRECT equ 8h +WAVE_FORMAT_DIRECT_QUERY equ WAVE_FORMAT_QUERY OR WAVE_FORMAT_DIRECT +MIM_MOREDATA equ MM_MIM_MOREDATA +MOM_POSITIONCB equ MM_MOM_POSITIONCB +MIDI_IO_STATUS equ 20h +DRV_LOAD equ 1h +DRV_ENABLE equ 2h +DRV_OPEN equ 3h +DRV_CLOSE equ 4h +DRV_DISABLE equ 5h +DRV_FREE equ 6h +DRV_CONFIGURE equ 7h +DRV_QUERYCONFIGURE equ 8h +DRV_INSTALL equ 9h +DRV_REMOVE equ 0Ah +DRV_EXITSESSION equ 0Bh +DRV_POWER equ 0Fh +DRV_RESERVED equ 800h +DRV_USER equ 4000h +DRVCNF_CANCEL equ 0h +DRVCNF_OK equ 1h +DRVCNF_RESTART equ 2h +DRV_CANCEL equ DRVCNF_CANCEL +DRV_OK equ DRVCNF_OK +DRV_RESTART equ DRVCNF_RESTART +DRV_MCI_FIRST equ DRV_RESERVED +DRV_MCI_LAST equ DRV_RESERVED + 0FFFh +CALLBACK_TYPEMASK equ 70000h +CALLBACK_NULL equ 0h +CALLBACK_WINDOW equ 10000h +CALLBACK_TASK equ 20000h +CALLBACK_FUNCTION equ 30000h +MM_MICROSOFT equ 1 +MM_MIDI_MAPPER equ 1 +MM_WAVE_MAPPER equ 2 +MM_SNDBLST_MIDIOUT equ 3 +MM_SNDBLST_MIDIIN equ 4 +MM_SNDBLST_SYNTH equ 5 +MM_SNDBLST_WAVEOUT equ 6 +MM_SNDBLST_WAVEIN equ 7 +MM_ADLIB equ 9 +MM_MPU401_MIDIOUT equ 10 +MM_MPU401_MIDIIN equ 11 +MM_PC_JOYSTICK equ 12 +SND_SYNC equ 0h +SND_ASYNC equ 1h +SND_NODEFAULT equ 2h +SND_MEMORY equ 4h +SND_ALIAS equ 10000h +SND_FILENAME equ 20000h +SND_RESOURCE equ 40004h +SND_ALIAS_ID equ 110000h +SND_ALIAS_START equ 0 +SND_LOOP equ 8h +SND_NOSTOP equ 10h +SND_VALID equ 1Fh +SND_NOWAIT equ 2000h +SND_VALIDFLAGS equ 17201Fh +SND_RESERVED equ 0FF000000h +SND_TYPE_MASK equ 170007h +WAVERR_BADFORMAT equ WAVERR_BASE + 0 +WAVERR_STILLPLAYING equ WAVERR_BASE + 1 +WAVERR_UNPREPARED equ WAVERR_BASE + 2 +WAVERR_SYNC equ WAVERR_BASE + 3 +WAVERR_LASTERROR equ WAVERR_BASE + 3 +WOM_OPEN equ MM_WOM_OPEN +WOM_CLOSE equ MM_WOM_CLOSE +WOM_DONE equ MM_WOM_DONE +WIM_OPEN equ MM_WIM_OPEN +WIM_CLOSE equ MM_WIM_CLOSE +WIM_DATA equ MM_WIM_DATA +WAVE_MAPPER equ -1 +WAVE_ALLOWSYNC equ 2h +WAVE_VALID equ 3h +WHDR_DONE equ 1h +WHDR_PREPARED equ 2h +WHDR_BEGINLOOP equ 4h +WHDR_ENDLOOP equ 8h +WHDR_INQUEUE equ 10h +WHDR_VALID equ 1Fh +WAVECAPS_PITCH equ 1h +WAVECAPS_PLAYBACKRATE equ 2h +WAVECAPS_VOLUME equ 4h +WAVECAPS_LRVOLUME equ 8h +WAVECAPS_SYNC equ 10h +WAVE_INVALIDFORMAT equ 0h +WAVE_FORMAT_1M08 equ 1h +WAVE_FORMAT_1S08 equ 2h +WAVE_FORMAT_1M16 equ 4h +WAVE_FORMAT_1S16 equ 8h +WAVE_FORMAT_2M08 equ 10h +WAVE_FORMAT_2S08 equ 20h +WAVE_FORMAT_2M16 equ 40h +WAVE_FORMAT_2S16 equ 80h +WAVE_FORMAT_4M08 equ 100h +WAVE_FORMAT_4S08 equ 200h +WAVE_FORMAT_4M16 equ 400h +WAVE_FORMAT_4S16 equ 800h +WAVE_FORMAT_PCM equ 1 +MIDIERR_UNPREPARED equ MIDIERR_BASE + 0 +MIDIERR_STILLPLAYING equ MIDIERR_BASE + 1 +MIDIERR_NOMAP equ MIDIERR_BASE + 2 +MIDIERR_NOTREADY equ MIDIERR_BASE + 3 +MIDIERR_NODEVICE equ MIDIERR_BASE + 4 +MIDIERR_INVALIDSETUP equ MIDIERR_BASE + 5 +MIDIERR_LASTERROR equ MIDIERR_BASE + 5 +MIM_OPEN equ MM_MIM_OPEN +MIM_CLOSE equ MM_MIM_CLOSE +MIM_DATA equ MM_MIM_DATA +MIM_LONGDATA equ MM_MIM_LONGDATA +MIM_ERROR equ MM_MIM_ERROR +MIM_LONGERROR equ MM_MIM_LONGERROR +MOM_OPEN equ MM_MOM_OPEN +MOM_CLOSE equ MM_MOM_CLOSE +MOM_DONE equ MM_MOM_DONE +MIDIMAPPER equ -1 +MIDI_MAPPER equ -1 +MIDI_CACHE_ALL equ 1 +MIDI_CACHE_BESTFIT equ 2 +MIDI_CACHE_QUERY equ 3 +MIDI_UNCACHE equ 4 +MIDI_CACHE_VALID equ MIDI_CACHE_ALL OR MIDI_CACHE_BESTFIT OR MIDI_CACHE_QUERY OR MIDI_UNCACHE +MOD_MIDIPORT equ 1 +MOD_SYNTH equ 2 +MOD_SQSYNTH equ 3 +MOD_FMSYNTH equ 4 +MOD_MAPPER equ 5 +MIDICAPS_VOLUME equ 1 +MIDICAPS_LRVOLUME equ 2 +MIDICAPS_CACHE equ 4 +MHDR_DONE equ 1 +MHDR_PREPARED equ 2 +MHDR_INQUEUE equ 4 +MHDR_VALID equ 7 +MHDR_ISSTRM equ 8 +AUX_MAPPER equ -1 +AUXCAPS_CDAUDIO equ 1 +AUXCAPS_AUXIN equ 2 +AUXCAPS_VOLUME equ 1h +AUXCAPS_LRVOLUME equ 2h +TIMERR_NOERROR equ 0 +TIMERR_NOCANDO equ TIMERR_BASE + 1 +TIMERR_STRUCT equ TIMERR_BASE + 33 +TIME_ONESHOT equ 0 +TIME_PERIODIC equ 1 +JOYERR_NOERROR equ 0 +JOYERR_PARMS equ JOYERR_BASE + 5 +JOYERR_NOCANDO equ JOYERR_BASE + 6 +JOYERR_UNPLUGGED equ JOYERR_BASE + 7 +JOY_BUTTON1 equ 1h +JOY_BUTTON2 equ 2h +JOY_BUTTON3 equ 4h +JOY_BUTTON4 equ 8h +JOY_BUTTON1CHG equ 100h +JOY_BUTTON2CHG equ 200h +JOY_BUTTON3CHG equ 400h +JOY_BUTTON4CHG equ 800h +JOYSTICKID1 equ 0 +JOYSTICKID2 equ 1 +MMIOERR_BASE equ 256 +MMIOERR_FILENOTFOUND equ MMIOERR_BASE + 1 +MMIOERR_OUTOFMEMORY equ MMIOERR_BASE + 2 +MMIOERR_CANNOTOPEN equ MMIOERR_BASE + 3 +MMIOERR_CANNOTCLOSE equ MMIOERR_BASE + 4 +MMIOERR_CANNOTREAD equ MMIOERR_BASE + 5 +MMIOERR_CANNOTWRITE equ MMIOERR_BASE + 6 +MMIOERR_CANNOTSEEK equ MMIOERR_BASE + 7 +MMIOERR_CANNOTEXPAND equ MMIOERR_BASE + 8 +MMIOERR_CHUNKNOTFOUND equ MMIOERR_BASE + 9 +MMIOERR_UNBUFFERED equ MMIOERR_BASE + 10 +MMIO_RWMODE equ 3h +MMIO_SHAREMODE equ 70h +MMIO_CREATE equ 1000h +MMIO_PARSE equ 100h +MMIO_DELETE equ 200h +MMIO_EXIST equ 4000h +MMIO_ALLOCBUF equ 10000h +MMIO_GETTEMP equ 20000h +MMIO_DIRTY equ 10000000h +MMIO_OPEN_VALID equ 3FFFFh +MMIO_READ equ 0h +MMIO_WRITE equ 1h +MMIO_READWRITE equ 2h +MMIO_COMPAT equ 0h +MMIO_EXCLUSIVE equ 10h +MMIO_DENYWRITE equ 20h +MMIO_DENYREAD equ 30h +MMIO_DENYNONE equ 40h +MMIO_FHOPEN equ 10h +MMIO_EMPTYBUF equ 10h +MMIO_TOUPPER equ 10h +MMIO_INSTALLPROC equ 10000h +MMIO_GLOBALPROC equ 10000000h +MMIO_UNICODEPROC equ 1000000h +MMIO_REMOVEPROC equ 20000h +MMIO_FINDPROC equ 40000h +MMIO_FINDCHUNK equ 10h +MMIO_FINDRIFF equ 20h +MMIO_FINDLIST equ 40h +MMIO_CREATERIFF equ 20h +MMIO_CREATELIST equ 40h +MMIO_VALIDPROC equ 11070000h +MMIOM_READ equ MMIO_READ +MMIOM_WRITE equ MMIO_WRITE +MMIOM_SEEK equ 2 +MMIOM_OPEN equ 3 +MMIOM_CLOSE equ 4 +MMIOM_WRITEFLUSH equ 5 +MMIOM_RENAME equ 6 +MMIOM_USER equ 8000h +SEEK_SET equ 0 +SEEK_CUR equ 1 +SEEK_END equ 2 +MMIO_DEFAULTBUFFER equ 8192 +MCIERR_INVALID_DEVICE_ID equ MCIERR_BASE + 1 +MCIERR_UNRECOGNIZED_KEYWORD equ MCIERR_BASE + 3 +MCIERR_UNRECOGNIZED_COMMAND equ MCIERR_BASE + 5 +MCIERR_HARDWARE equ MCIERR_BASE + 6 +MCIERR_INVALID_DEVICE_NAME equ MCIERR_BASE + 7 +MCIERR_OUT_OF_MEMORY equ MCIERR_BASE + 8 +MCIERR_DEVICE_OPEN equ MCIERR_BASE + 9 +MCIERR_CANNOT_LOAD_DRIVER equ MCIERR_BASE + 10 +MCIERR_MISSING_COMMAND_STRING equ MCIERR_BASE + 11 +MCIERR_PARAM_OVERFLOW equ MCIERR_BASE + 12 +MCIERR_MISSING_STRING_ARGUMENT equ MCIERR_BASE + 13 +MCIERR_BAD_INTEGER equ MCIERR_BASE + 14 +MCIERR_PARSER_INTERNAL equ MCIERR_BASE + 15 +MCIERR_DRIVER_INTERNAL equ MCIERR_BASE + 16 +MCIERR_MISSING_PARAMETER equ MCIERR_BASE + 17 +MCIERR_UNSUPPORTED_FUNCTION equ MCIERR_BASE + 18 +MCIERR_FILE_NOT_FOUND equ MCIERR_BASE + 19 +MCIERR_DEVICE_NOT_READY equ MCIERR_BASE + 20 +MCIERR_INTERNAL equ MCIERR_BASE + 21 +MCIERR_DRIVER equ MCIERR_BASE + 22 +MCIERR_CANNOT_USE_ALL equ MCIERR_BASE + 23 +MCIERR_MULTIPLE equ MCIERR_BASE + 24 +MCIERR_EXTENSION_NOT_FOUND equ MCIERR_BASE + 25 +MCIERR_OUTOFRANGE equ MCIERR_BASE + 26 +MCIERR_FLAGS_NOT_COMPATIBLE equ MCIERR_BASE + 28 +MCIERR_FILE_NOT_SAVED equ MCIERR_BASE + 30 +MCIERR_DEVICE_TYPE_REQUIRED equ MCIERR_BASE + 31 +MCIERR_DEVICE_LOCKED equ MCIERR_BASE + 32 +MCIERR_DUPLICATE_ALIAS equ MCIERR_BASE + 33 +MCIERR_BAD_CONSTANT equ MCIERR_BASE + 34 +MCIERR_MUST_USE_SHAREABLE equ MCIERR_BASE + 35 +MCIERR_MISSING_DEVICE_NAME equ MCIERR_BASE + 36 +MCIERR_BAD_TIME_FORMAT equ MCIERR_BASE + 37 +MCIERR_NO_CLOSING_QUOTE equ MCIERR_BASE + 38 +MCIERR_DUPLICATE_FLAGS equ MCIERR_BASE + 39 +MCIERR_INVALID_FILE equ MCIERR_BASE + 40 +MCIERR_NULL_PARAMETER_BLOCK equ MCIERR_BASE + 41 +MCIERR_UNNAMED_RESOURCE equ MCIERR_BASE + 42 +MCIERR_NEW_REQUIRES_ALIAS equ MCIERR_BASE + 43 +MCIERR_NOTIFY_ON_AUTO_OPEN equ MCIERR_BASE + 44 +MCIERR_NO_ELEMENT_ALLOWED equ MCIERR_BASE + 45 +MCIERR_NONAPPLICABLE_FUNCTION equ MCIERR_BASE + 46 +MCIERR_ILLEGAL_FOR_AUTO_OPEN equ MCIERR_BASE + 47 +MCIERR_FILENAME_REQUIRED equ MCIERR_BASE + 48 +MCIERR_EXTRA_CHARACTERS equ MCIERR_BASE + 49 +MCIERR_DEVICE_NOT_INSTALLED equ MCIERR_BASE + 50 +MCIERR_GET_CD equ MCIERR_BASE + 51 +MCIERR_SET_CD equ MCIERR_BASE + 52 +MCIERR_SET_DRIVE equ MCIERR_BASE + 53 +MCIERR_DEVICE_LENGTH equ MCIERR_BASE + 54 +MCIERR_DEVICE_ORD_LENGTH equ MCIERR_BASE + 55 +MCIERR_NO_INTEGER equ MCIERR_BASE + 56 +MCIERR_WAVE_OUTPUTSINUSE equ MCIERR_BASE + 64 +MCIERR_WAVE_SETOUTPUTINUSE equ MCIERR_BASE + 65 +MCIERR_WAVE_INPUTSINUSE equ MCIERR_BASE + 66 +MCIERR_WAVE_SETINPUTINUSE equ MCIERR_BASE + 67 +MCIERR_WAVE_OUTPUTUNSPECIFIED equ MCIERR_BASE + 68 +MCIERR_WAVE_INPUTUNSPECIFIED equ MCIERR_BASE + 69 +MCIERR_WAVE_OUTPUTSUNSUITABLE equ MCIERR_BASE + 70 +MCIERR_WAVE_SETOUTPUTUNSUITABLE equ MCIERR_BASE + 71 +MCIERR_WAVE_INPUTSUNSUITABLE equ MCIERR_BASE + 72 +MCIERR_WAVE_SETINPUTUNSUITABLE equ MCIERR_BASE + 73 +MCIERR_SEQ_DIV_INCOMPATIBLE equ MCIERR_BASE + 80 +MCIERR_SEQ_PORT_INUSE equ MCIERR_BASE + 81 +MCIERR_SEQ_PORT_NONEXISTENT equ MCIERR_BASE + 82 +MCIERR_SEQ_PORT_MAPNODEVICE equ MCIERR_BASE + 83 +MCIERR_SEQ_PORT_MISCERROR equ MCIERR_BASE + 84 +MCIERR_SEQ_TIMER equ MCIERR_BASE + 85 +MCIERR_SEQ_PORTUNSPECIFIED equ MCIERR_BASE + 86 +MCIERR_SEQ_NOMIDIPRESENT equ MCIERR_BASE + 87 +MCIERR_NO_WINDOW equ MCIERR_BASE + 90 +MCIERR_CREATEWINDOW equ MCIERR_BASE + 91 +MCIERR_FILE_READ equ MCIERR_BASE + 92 +MCIERR_FILE_WRITE equ MCIERR_BASE + 93 +MCIERR_CUSTOM_DRIVER_BASE equ MCIERR_BASE + 256 +MCI_FIRST equ 800h +MCI_OPEN equ 803h +MCI_CLOSE equ 804h +MCI_ESCAPE equ 805h +MCI_PLAY equ 806h +MCI_SEEK equ 807h +MCI_STOP equ 808h +MCI_PAUSE equ 809h +MCI_INFO equ 80Ah +MCI_GETDEVCAPS equ 80Bh +MCI_SPIN equ 80Ch +MCI_SET equ 80Dh +MCI_STEP equ 80Eh +MCI_RECORD equ 80Fh +MCI_SYSINFO equ 810h +MCI_BREAK equ 811h +MCI_SOUND equ 812h +MCI_SAVE equ 813h +MCI_STATUS equ 814h +MCI_CUE equ 830h +MCI_REALIZE equ 840h +MCI_WINDOW equ 841h +MCI_PUT equ 842h +MCI_WHERE equ 843h +MCI_FREEZE equ 844h +MCI_UNFREEZE equ 845h +MCI_LOAD equ 850h +MCI_CUT equ 851h +MCI_COPY equ 852h +MCI_PASTE equ 853h +MCI_UPDATE equ 854h +MCI_RESUME equ 855h +MCI_DELETE equ 856h +MCI_LAST equ 0FFFh +MCI_USER_MESSAGES equ 400h + MCI_FIRST +MCI_ALL_DEVICE_ID equ -1 +MCI_DEVTYPE_VCR equ 513 +MCI_DEVTYPE_VIDEODISC equ 514 +MCI_DEVTYPE_OVERLAY equ 515 +MCI_DEVTYPE_CD_AUDIO equ 516 +MCI_DEVTYPE_DAT equ 517 +MCI_DEVTYPE_SCANNER equ 518 +MCI_DEVTYPE_ANIMATION equ 519 +MCI_DEVTYPE_DIGITAL_VIDEO equ 520 +MCI_DEVTYPE_OTHER equ 521 +MCI_DEVTYPE_WAVEFORM_AUDIO equ 522 +MCI_DEVTYPE_SEQUENCER equ 523 +MCI_DEVTYPE_FIRST equ MCI_DEVTYPE_VCR +MCI_DEVTYPE_LAST equ MCI_DEVTYPE_SEQUENCER +MCI_DEVTYPE_FIRST_USER equ 1000h +MCI_MODE_NOT_READY equ MCI_STRING_OFFSET + 12 +MCI_MODE_STOP equ MCI_STRING_OFFSET + 13 +MCI_MODE_PLAY equ MCI_STRING_OFFSET + 14 +MCI_MODE_RECORD equ MCI_STRING_OFFSET + 15 +MCI_MODE_SEEK equ MCI_STRING_OFFSET + 16 +MCI_MODE_PAUSE equ MCI_STRING_OFFSET + 17 +MCI_MODE_OPEN equ MCI_STRING_OFFSET + 18 +MCI_FORMAT_MILLISECONDS equ 0 +MCI_FORMAT_HMS equ 1 +MCI_FORMAT_MSF equ 2 +MCI_FORMAT_FRAMES equ 3 +MCI_FORMAT_SMPTE_24 equ 4 +MCI_FORMAT_SMPTE_25 equ 5 +MCI_FORMAT_SMPTE_30 equ 6 +MCI_FORMAT_SMPTE_30DROP equ 7 +MCI_FORMAT_BYTES equ 8 +MCI_FORMAT_SAMPLES equ 9 +MCI_FORMAT_TMSF equ 10 +MCI_NOTIFY_SUCCESSFUL equ 1h +MCI_NOTIFY_SUPERSEDED equ 2h +MCI_NOTIFY_ABORTED equ 4h +MCI_NOTIFY_FAILURE equ 8h +MCI_NOTIFY equ 1h +MCI_WAIT equ 2h +MCI_FROM equ 4h +MCI_TO equ 8h +MCI_TRACK equ 10h +MCI_OPEN_SHAREABLE equ 100h +MCI_OPEN_ELEMENT equ 200h +MCI_OPEN_ALIAS equ 400h +MCI_OPEN_ELEMENT_ID equ 800h +MCI_OPEN_TYPE_ID equ 1000h +MCI_OPEN_TYPE equ 2000h +MCI_SEEK_TO_START equ 100h +MCI_SEEK_TO_END equ 200h +MCI_STATUS_ITEM equ 100h +MCI_STATUS_START equ 200h +MCI_STATUS_LENGTH equ 1h +MCI_STATUS_POSITION equ 2h +MCI_STATUS_NUMBER_OF_TRACKS equ 3h +MCI_STATUS_MODE equ 4h +MCI_STATUS_MEDIA_PRESENT equ 5h +MCI_STATUS_TIME_FORMAT equ 6h +MCI_STATUS_READY equ 7h +MCI_STATUS_CURRENT_TRACK equ 8h +MCI_INFO_PRODUCT equ 100h +MCI_INFO_FILE equ 200h +MCI_GETDEVCAPS_ITEM equ 100h +MCI_GETDEVCAPS_CAN_RECORD equ 1h +MCI_GETDEVCAPS_HAS_AUDIO equ 2h +MCI_GETDEVCAPS_HAS_VIDEO equ 3h +MCI_GETDEVCAPS_DEVICE_TYPE equ 4h +MCI_GETDEVCAPS_USES_FILES equ 5h +MCI_GETDEVCAPS_COMPOUND_DEVICE equ 6h +MCI_GETDEVCAPS_CAN_EJECT equ 7h +MCI_GETDEVCAPS_CAN_PLAY equ 8h +MCI_GETDEVCAPS_CAN_SAVE equ 9h +MCI_SYSINFO_QUANTITY equ 100h +MCI_SYSINFO_OPEN equ 200h +MCI_SYSINFO_NAME equ 400h +MCI_SYSINFO_INSTALLNAME equ 800h +MCI_SET_DOOR_OPEN equ 100h +MCI_SET_DOOR_CLOSED equ 200h +MCI_SET_TIME_FORMAT equ 400h +MCI_SET_AUDIO equ 800h +MCI_SET_VIDEO equ 1000h +MCI_SET_ON equ 2000h +MCI_SET_OFF equ 4000h +MCI_SET_AUDIO_ALL equ 4001h +MCI_SET_AUDIO_LEFT equ 4002h +MCI_SET_AUDIO_RIGHT equ 4003h +MCI_BREAK_KEY equ 100h +MCI_BREAK_HWND equ 200h +MCI_BREAK_OFF equ 400h +MCI_RECORD_INSERT equ 100h +MCI_RECORD_OVERWRITE equ 200h +MCI_SOUND_NAME equ 100h +MCI_SAVE_FILE equ 100h +MCI_LOAD_FILE equ 100h +MCI_VD_MODE_PARK equ MCI_VD_OFFSET + 1 +MCI_VD_MEDIA_CLV equ MCI_VD_OFFSET + 2 +MCI_VD_MEDIA_CAV equ MCI_VD_OFFSET + 3 +MCI_VD_MEDIA_OTHER equ MCI_VD_OFFSET + 4 +MCI_VD_FORMAT_TRACK equ 4001h +MCI_VD_PLAY_REVERSE equ 10000h +MCI_VD_PLAY_FAST equ 20000h +MCI_VD_PLAY_SPEED equ 40000h +MCI_VD_PLAY_SCAN equ 80000h +MCI_VD_PLAY_SLOW equ 100000h +MCI_VD_SEEK_REVERSE equ 10000h +MCI_VD_STATUS_SPEED equ 4002h +MCI_VD_STATUS_FORWARD equ 4003h +MCI_VD_STATUS_MEDIA_TYPE equ 4004h +MCI_VD_STATUS_SIDE equ 4005h +MCI_VD_STATUS_DISC_SIZE equ 4006h +MCI_VD_GETDEVCAPS_CLV equ 10000h +MCI_VD_GETDEVCAPS_CAV equ 20000h +MCI_VD_SPIN_UP equ 10000h +MCI_VD_SPIN_DOWN equ 20000h +MCI_VD_GETDEVCAPS_CAN_REVERSE equ 4002h +MCI_VD_GETDEVCAPS_FAST_RATE equ 4003h +MCI_VD_GETDEVCAPS_SLOW_RATE equ 4004h +MCI_VD_GETDEVCAPS_NORMAL_RATE equ 4005h +MCI_VD_STEP_FRAMES equ 10000h +MCI_VD_STEP_REVERSE equ 20000h +MCI_VD_ESCAPE_STRING equ 100h +MCI_WAVE_PCM equ MCI_WAVE_OFFSET + 0 +MCI_WAVE_MAPPER equ MCI_WAVE_OFFSET + 1 +MCI_WAVE_OPEN_BUFFER equ 10000h +MCI_WAVE_SET_FORMATTAG equ 10000h +MCI_WAVE_SET_CHANNELS equ 20000h +MCI_WAVE_SET_SAMPLESPERSEC equ 40000h +MCI_WAVE_SET_AVGBYTESPERSEC equ 80000h +MCI_WAVE_SET_BLOCKALIGN equ 100000h +MCI_WAVE_SET_BITSPERSAMPLE equ 200000h +MCI_WAVE_INPUT equ 400000h +MCI_WAVE_OUTPUT equ 800000h +MCI_WAVE_STATUS_FORMATTAG equ 4001h +MCI_WAVE_STATUS_CHANNELS equ 4002h +MCI_WAVE_STATUS_SAMPLESPERSEC equ 4003h +MCI_WAVE_STATUS_AVGBYTESPERSEC equ 4004h +MCI_WAVE_STATUS_BLOCKALIGN equ 4005h +MCI_WAVE_STATUS_BITSPERSAMPLE equ 4006h +MCI_WAVE_STATUS_LEVEL equ 4007h +MCI_WAVE_SET_ANYINPUT equ 4000000h +MCI_WAVE_SET_ANYOUTPUT equ 8000000h +MCI_WAVE_GETDEVCAPS_INPUTS equ 4001h +MCI_WAVE_GETDEVCAPS_OUTPUTS equ 4002h +MCI_SEQ_DIV_PPQN equ 0 + MCI_SEQ_OFFSET +MCI_SEQ_DIV_SMPTE_24 equ 1 + MCI_SEQ_OFFSET +MCI_SEQ_DIV_SMPTE_25 equ 2 + MCI_SEQ_OFFSET +MCI_SEQ_DIV_SMPTE_30DROP equ 3 + MCI_SEQ_OFFSET +MCI_SEQ_DIV_SMPTE_30 equ 4 + MCI_SEQ_OFFSET +MCI_SEQ_FORMAT_SONGPTR equ 4001h +MCI_SEQ_FILE equ 4002h +MCI_SEQ_MIDI equ 4003h +MCI_SEQ_SMPTE equ 4004h +MCI_SEQ_NONE equ 65533 +MCI_SEQ_MAPPER equ 65535 +MCI_SEQ_STATUS_TEMPO equ 4002h +MCI_SEQ_STATUS_PORT equ 4003h +MCI_SEQ_STATUS_SLAVE equ 4007h +MCI_SEQ_STATUS_MASTER equ 4008h +MCI_SEQ_STATUS_OFFSET equ 4009h +MCI_SEQ_STATUS_DIVTYPE equ 400Ah +MCI_SEQ_SET_TEMPO equ 10000h +MCI_SEQ_SET_PORT equ 20000h +MCI_SEQ_SET_SLAVE equ 40000h +MCI_SEQ_SET_MASTER equ 80000h +MCI_SEQ_SET_OFFSET equ 1000000h +MCI_ANIM_OPEN_WS equ 10000h +MCI_ANIM_OPEN_PARENT equ 20000h +MCI_ANIM_OPEN_NOSTATIC equ 40000h +MCI_ANIM_PLAY_SPEED equ 10000h +MCI_ANIM_PLAY_REVERSE equ 20000h +MCI_ANIM_PLAY_FAST equ 40000h +MCI_ANIM_PLAY_SLOW equ 80000h +MCI_ANIM_PLAY_SCAN equ 100000h +MCI_ANIM_STEP_REVERSE equ 10000h +MCI_ANIM_STEP_FRAMES equ 20000h +MCI_ANIM_STATUS_SPEED equ 4001h +MCI_ANIM_STATUS_FORWARD equ 4002h +MCI_ANIM_STATUS_HWND equ 4003h +MCI_ANIM_STATUS_HPAL equ 4004h +MCI_ANIM_STATUS_STRETCH equ 4005h +MCI_ANIM_INFO_TEXT equ 10000h +MCI_ANIM_GETDEVCAPS_CAN_REVERSE equ 4001h +MCI_ANIM_GETDEVCAPS_FAST_RATE equ 4002h +MCI_ANIM_GETDEVCAPS_SLOW_RATE equ 4003h +MCI_ANIM_GETDEVCAPS_NORMAL_RATE equ 4004h +MCI_ANIM_GETDEVCAPS_PALETTES equ 4006h +MCI_ANIM_GETDEVCAPS_CAN_STRETCH equ 4007h +MCI_ANIM_GETDEVCAPS_MAX_WINDOWS equ 4008h +MCI_ANIM_REALIZE_NORM equ 10000h +MCI_ANIM_REALIZE_BKGD equ 20000h +MCI_ANIM_WINDOW_HWND equ 10000h +MCI_ANIM_WINDOW_STATE equ 40000h +MCI_ANIM_WINDOW_TEXT equ 80000h +MCI_ANIM_WINDOW_ENABLE_STRETCH equ 100000h +MCI_ANIM_WINDOW_DISABLE_STRETCH equ 200000h +MCI_ANIM_WINDOW_DEFAULT equ 0h +MCI_ANIM_RECT equ 10000h +MCI_ANIM_PUT_SOURCE equ 20000h +MCI_ANIM_PUT_DESTINATION equ 40000h +MCI_ANIM_WHERE_SOURCE equ 20000h +MCI_ANIM_WHERE_DESTINATION equ 40000h +MCI_ANIM_UPDATE_HDC equ 20000h +MCI_OVLY_OPEN_WS equ 10000h +MCI_OVLY_OPEN_PARENT equ 20000h +MCI_OVLY_STATUS_HWND equ 4001h +MCI_OVLY_STATUS_STRETCH equ 4002h +MCI_OVLY_INFO_TEXT equ 10000h +MCI_OVLY_GETDEVCAPS_CAN_STRETCH equ 4001h +MCI_OVLY_GETDEVCAPS_CAN_FREEZE equ 4002h +MCI_OVLY_GETDEVCAPS_MAX_WINDOWS equ 4003h +MCI_OVLY_WINDOW_HWND equ 10000h +MCI_OVLY_WINDOW_STATE equ 40000h +MCI_OVLY_WINDOW_TEXT equ 80000h +MCI_OVLY_WINDOW_ENABLE_STRETCH equ 100000h +MCI_OVLY_WINDOW_DISABLE_STRETCH equ 200000h +MCI_OVLY_WINDOW_DEFAULT equ 0h +MCI_OVLY_RECT equ 10000h +MCI_OVLY_PUT_SOURCE equ 20000h +MCI_OVLY_PUT_DESTINATION equ 40000h +MCI_OVLY_PUT_FRAME equ 80000h +MCI_OVLY_PUT_VIDEO equ 100000h +MCI_OVLY_WHERE_SOURCE equ 20000h +MCI_OVLY_WHERE_DESTINATION equ 40000h +MCI_OVLY_WHERE_FRAME equ 80000h +MCI_OVLY_WHERE_VIDEO equ 100000h +CAPS1 equ 94 +C1_TRANSPARENT equ 1h +NEWTRANSPARENT equ 3 +QUERYROPSUPPORT equ 40 +SELECTDIB equ 41 +SE_ERR_SHARE equ 26 +SE_ERR_ASSOCINCOMPLETE equ 27 +SE_ERR_DDETIMEOUT equ 28 +SE_ERR_DDEFAIL equ 29 +SE_ERR_DDEBUSY equ 30 +SE_ERR_NOASSOC equ 31 +PRINTER_CONTROL_PAUSE equ 1 +PRINTER_CONTROL_RESUME equ 2 +PRINTER_CONTROL_PURGE equ 3 +PRINTER_STATUS_PAUSED equ 1h +PRINTER_STATUS_ERROR equ 2h +PRINTER_STATUS_PENDING_DELETION equ 4h +PRINTER_STATUS_PAPER_JAM equ 8h +PRINTER_STATUS_PAPER_OUT equ 10h +PRINTER_STATUS_MANUAL_FEED equ 20h +PRINTER_STATUS_PAPER_PROBLEM equ 40h +PRINTER_STATUS_OFFLINE equ 80h +PRINTER_STATUS_IO_ACTIVE equ 100h +PRINTER_STATUS_BUSY equ 200h +PRINTER_STATUS_PRINTING equ 400h +PRINTER_STATUS_OUTPUT_BIN_FULL equ 800h +PRINTER_STATUS_NOT_AVAILABLE equ 1000h +PRINTER_STATUS_WAITING equ 2000h +PRINTER_STATUS_PROCESSING equ 4000h +PRINTER_STATUS_INITIALIZING equ 8000h +PRINTER_STATUS_WARMING_UP equ 10000h +PRINTER_STATUS_TONER_LOW equ 20000h +PRINTER_STATUS_NO_TONER equ 40000h +PRINTER_STATUS_PAGE_PUNT equ 80000h +PRINTER_STATUS_USER_INTERVENTION equ 100000h +PRINTER_STATUS_OUT_OF_MEMORY equ 200000h +PRINTER_STATUS_DOOR_OPEN equ 400000h +PRINTER_ATTRIBUTE_QUEUED equ 1h +PRINTER_ATTRIBUTE_DIRECT equ 2h +PRINTER_ATTRIBUTE_DEFAULT equ 4h +PRINTER_ATTRIBUTE_SHARED equ 8h +PRINTER_ATTRIBUTE_NETWORK equ 10h +PRINTER_ATTRIBUTE_HIDDEN equ 20h +PRINTER_ATTRIBUTE_LOCAL equ 40h +NO_PRIORITY equ 0 +MAX_PRIORITY equ 99 +MIN_PRIORITY equ 1 +DEF_PRIORITY equ 1 +JOB_CONTROL_PAUSE equ 1 +JOB_CONTROL_RESUME equ 2 +JOB_CONTROL_CANCEL equ 3 +JOB_CONTROL_RESTART equ 4 +JOB_STATUS_PAUSED equ 1h +JOB_STATUS_ERROR equ 2h +JOB_STATUS_DELETING equ 4h +JOB_STATUS_SPOOLING equ 8h +JOB_STATUS_PRINTING equ 10h +JOB_STATUS_OFFLINE equ 20h +JOB_STATUS_PAPEROUT equ 40h +JOB_STATUS_PRINTED equ 80h +JOB_POSITION_UNSPECIFIED equ 0 +FORM_BUILTIN equ 1h +PRINTER_CONTROL_SET_STATUS equ 4 +PRINTER_ATTRIBUTE_WORK_OFFLINE equ 400h +PRINTER_ATTRIBUTE_ENABLE_BIDI equ 800h +JOB_CONTROL_DELETE equ 5 +JOB_STATUS_USER_INTERVENTION equ 10000h +DI_CHANNEL equ 1 +DI_READ_SPOOL_JOB equ 3 +PORT_TYPE_WRITE equ 1h +PORT_TYPE_READ equ 2h +PORT_TYPE_REDIRECTED equ 4h +PORT_TYPE_NET_ATTACHED equ 8h +PRINTER_ENUM_DEFAULT equ 1h +PRINTER_ENUM_LOCAL equ 2h +PRINTER_ENUM_CONNECTIONS equ 4h +PRINTER_ENUM_FAVORITE equ 4h +PRINTER_ENUM_NAME equ 8h +PRINTER_ENUM_REMOTE equ 10h +PRINTER_ENUM_SHARED equ 20h +PRINTER_ENUM_NETWORK equ 40h +PRINTER_ENUM_EXPAND equ 4000h +PRINTER_ENUM_CONTAINER equ 8000h +PRINTER_ENUM_ICONMASK equ 0FF0000h +PRINTER_ENUM_ICON1 equ 10000h +PRINTER_ENUM_ICON2 equ 20000h +PRINTER_ENUM_ICON3 equ 40000h +PRINTER_ENUM_ICON4 equ 80000h +PRINTER_ENUM_ICON5 equ 100000h +PRINTER_ENUM_ICON6 equ 200000h +PRINTER_ENUM_ICON7 equ 400000h +PRINTER_ENUM_ICON8 equ 800000h +PRINTER_CHANGE_ADD_PRINTER equ 1h +PRINTER_CHANGE_SET_PRINTER equ 2h +PRINTER_CHANGE_DELETE_PRINTER equ 4h +PRINTER_CHANGE_PRINTER equ 0FFh +PRINTER_CHANGE_ADD_JOB equ 100h +PRINTER_CHANGE_SET_JOB equ 200h +PRINTER_CHANGE_DELETE_JOB equ 400h +PRINTER_CHANGE_WRITE_JOB equ 800h +PRINTER_CHANGE_JOB equ 0FF00h +PRINTER_CHANGE_ADD_FORM equ 10000h +PRINTER_CHANGE_SET_FORM equ 20000h +PRINTER_CHANGE_DELETE_FORM equ 40000h +PRINTER_CHANGE_FORM equ 70000h +PRINTER_CHANGE_ADD_PORT equ 100000h +PRINTER_CHANGE_CONFIGURE_PORT equ 200000h +PRINTER_CHANGE_DELETE_PORT equ 400000h +PRINTER_CHANGE_PORT equ 700000h +PRINTER_CHANGE_ADD_PRINT_PROCESSOR equ 1000000h +PRINTER_CHANGE_DELETE_PRINT_PROCESSOR equ 4000000h +PRINTER_CHANGE_PRINT_PROCESSOR equ 7000000h +PRINTER_CHANGE_ADD_PRINTER_DRIVER equ 10000000h +PRINTER_CHANGE_DELETE_PRINTER_DRIVER equ 40000000h +PRINTER_CHANGE_PRINTER_DRIVER equ 70000000h +PRINTER_CHANGE_TIMEOUT equ 80000000h +PRINTER_CHANGE_ALL equ 7777FFFFh +PRINTER_ERROR_INFORMATION equ 80000000h +PRINTER_ERROR_WARNING equ 40000000h +PRINTER_ERROR_SEVERE equ 20000000h +PRINTER_ERROR_OUTOFPAPER equ 1h +PRINTER_ERROR_JAM equ 2h +PRINTER_ERROR_OUTOFTONER equ 4h +SERVER_ACCESS_ADMINISTER equ 1h +SERVER_ACCESS_ENUMERATE equ 2h +PRINTER_ACCESS_ADMINISTER equ 4h +PRINTER_ACCESS_USE equ 8h +JOB_ACCESS_ADMINISTER equ 10h +SERVER_ALL_ACCESS equ STANDARD_RIGHTS_REQUIRED OR SERVER_ACCESS_ADMINISTER OR SERVER_ACCESS_ENUMERATE +SERVER_READ equ STANDARD_RIGHTS_READ OR SERVER_ACCESS_ENUMERATE +SERVER_WRITE equ STANDARD_RIGHTS_WRITE OR SERVER_ACCESS_ADMINISTER OR SERVER_ACCESS_ENUMERATE +SERVER_EXECUTE equ STANDARD_RIGHTS_EXECUTE OR SERVER_ACCESS_ENUMERATE +PRINTER_ALL_ACCESS equ STANDARD_RIGHTS_REQUIRED OR PRINTER_ACCESS_ADMINISTER OR PRINTER_ACCESS_USE +PRINTER_READ equ STANDARD_RIGHTS_READ OR PRINTER_ACCESS_USE +PRINTER_WRITE equ STANDARD_RIGHTS_WRITE OR PRINTER_ACCESS_USE +PRINTER_EXECUTE equ STANDARD_RIGHTS_EXECUTE OR PRINTER_ACCESS_USE +JOB_ALL_ACCESS equ STANDARD_RIGHTS_REQUIRED OR JOB_ACCESS_ADMINISTER +JOB_READ equ STANDARD_RIGHTS_READ OR JOB_ACCESS_ADMINISTER +JOB_WRITE equ STANDARD_RIGHTS_WRITE OR JOB_ACCESS_ADMINISTER +JOB_EXECUTE equ STANDARD_RIGHTS_EXECUTE OR JOB_ACCESS_ADMINISTER +RESOURCE_CONNECTED equ 1h +RESOURCE_PUBLICNET equ 2h +RESOURCE_GLOBALNET equ 2h +RESOURCE_REMEMBERED equ 3h +RESOURCE_RECENT equ 4h +RESOURCE_CONTEXT equ 5h +RESOURCETYPE_ANY equ 0h +RESOURCETYPE_DISK equ 1h +RESOURCETYPE_PRINT equ 2h +RESOURCETYPE_UNKNOWN equ 0FFFFh +RESOURCEUSAGE_CONNECTABLE equ 1h +RESOURCEUSAGE_CONTAINER equ 2h +RESOURCEUSAGE_RESERVED equ 80000000h +RESOURCEDISPLAYTYPE_GENERIC equ 0h +RESOURCEDISPLAYTYPE_DOMAIN equ 1h +RESOURCEDISPLAYTYPE_SERVER equ 2h +RESOURCEDISPLAYTYPE_SHARE equ 3h +RESOURCEDISPLAYTYPE_FILE equ 4h +RESOURCEDISPLAYTYPE_GROUP equ 5h +CONNECT_UPDATE_PROFILE equ 1h +WN_SUCCESS equ NO_ERROR +WN_NOT_SUPPORTED equ ERROR_NOT_SUPPORTED +WN_NET_ERROR equ ERROR_UNEXP_NET_ERR +WN_MORE_DATA equ ERROR_MORE_DATA +WN_BAD_POINTER equ ERROR_INVALID_ADDRESS +WN_BAD_VALUE equ ERROR_INVALID_PARAMETER +WN_BAD_PASSWORD equ ERROR_INVALID_PASSWORD +WN_ACCESS_DENIED equ ERROR_ACCESS_DENIED +WN_FUNCTION_BUSY equ ERROR_BUSY +WN_WINDOWS_ERROR equ ERROR_UNEXP_NET_ERR +WN_BAD_USER equ ERROR_BAD_USERNAME +WN_OUT_OF_MEMORY equ ERROR_NOT_ENOUGH_MEMORY +WN_NO_NETWORK equ ERROR_NO_NETWORK +WN_EXTENDED_ERROR equ ERROR_EXTENDED_ERROR +WN_NOT_CONNECTED equ ERROR_NOT_CONNECTED +WN_OPEN_FILES equ ERROR_OPEN_FILES +WN_DEVICE_IN_USE equ ERROR_DEVICE_IN_USE +WN_BAD_NETNAME equ ERROR_BAD_NET_NAME +WN_BAD_LOCALNAME equ ERROR_BAD_DEVICE +WN_ALREADY_CONNECTED equ ERROR_ALREADY_ASSIGNED +WN_DEVICE_ERROR equ ERROR_GEN_FAILURE +WN_CONNECTION_CLOSED equ ERROR_CONNECTION_UNAVAIL +WN_NO_NET_OR_BAD_PATH equ ERROR_NO_NET_OR_BAD_PATH +WN_BAD_PROVIDER equ ERROR_BAD_PROVIDER +WN_CANNOT_OPEN_PROFILE equ ERROR_CANNOT_OPEN_PROFILE +WN_BAD_PROFILE equ ERROR_BAD_PROFILE +WN_BAD_HANDLE equ ERROR_INVALID_HANDLE +WN_NO_MORE_ENTRIES equ ERROR_NO_MORE_ITEMS +WN_NOT_CONTAINER equ ERROR_NOT_CONTAINER +WN_NO_ERROR equ NO_ERROR +NCBNAMSZ equ 16 +MAX_LANA equ 254 +NAME_FLAGS_MASK equ 87h +GROUP_NAME equ 80h +UNIQUE_NAME equ 0h +REGISTERING equ 0h +REGISTERED equ 4h +DEREGISTERED equ 5h +DUPLICATE equ 6h +DUPLICATE_DEREG equ 7h +LISTEN_OUTSTANDING equ 1h +CALL_PENDING equ 2h +SESSION_ESTABLISHED equ 3h +HANGUP_PENDING equ 4h +HANGUP_COMPLETE equ 5h +SESSION_ABORTED equ 6h +NCBCALL equ 10h +NCBLISTEN equ 11h +NCBHANGUP equ 12h +NCBSEND equ 14h +NCBRECV equ 15h +NCBRECVANY equ 16h +NCBCHAINSEND equ 17h +NCBDGSEND equ 20h +NCBDGRECV equ 21h +NCBDGSENDBC equ 22h +NCBDGRECVBC equ 23h +NCBADDNAME equ 30h +NCBDELNAME equ 31h +NCBRESET equ 32h +NCBASTAT equ 33h +NCBSSTAT equ 34h +NCBCANCEL equ 35h +NCBADDGRNAME equ 36h +NCBENUM equ 37h +NCBUNLINK equ 70h +NCBSENDNA equ 71h +NCBCHAINSENDNA equ 72h +NCBLANSTALERT equ 73h +NCBACTION equ 77h +NCBFINDNAME equ 78h +NCBTRACE equ 79h +ASYNCH equ 80h +NRC_GOODRET equ 0h +NRC_BUFLEN equ 1h +NRC_ILLCMD equ 3h +NRC_CMDTMO equ 5h +NRC_INCOMP equ 6h +NRC_BADDR equ 7h +NRC_SNUMOUT equ 8h +NRC_NORES equ 9h +NRC_SCLOSED equ 0Ah +NRC_CMDCAN equ 0Bh +NRC_DUPNAME equ 0Dh +NRC_NAMTFUL equ 0Eh +NRC_ACTSES equ 0Fh +NRC_LOCTFUL equ 11h +NRC_REMTFUL equ 12h +NRC_ILLNN equ 13h +NRC_NOCALL equ 14h +NRC_NOWILD equ 15h +NRC_INUSE equ 16h +NRC_NAMERR equ 17h +NRC_SABORT equ 18h +NRC_NAMCONF equ 19h +NRC_IFBUSY equ 21h +NRC_TOOMANY equ 22h +NRC_BRIDGE equ 23h +NRC_CANOCCR equ 24h +NRC_CANCEL equ 26h +NRC_DUPENV equ 30h +NRC_ENVNOTDEF equ 34h +NRC_OSRESNOTAV equ 35h +NRC_MAXAPPS equ 36h +NRC_NOSAPS equ 37h +NRC_NORESOURCES equ 38h +NRC_INVADDRESS equ 39h +NRC_INVDDID equ 3Bh +NRC_LOCKFAIL equ 3Ch +NRC_OPENERR equ 3Fh +NRC_SYSTEM equ 40h +NRC_PENDING equ 0FFh +EXCEPTION_EXECUTE_HANDLER equ 1 +EXCEPTION_CONTINUE_SEARCH equ 0 +EXCEPTION_CONTINUE_EXECUTION equ -1 +ctlFirst equ 400h +ctlLast equ 4FFh +psh1 equ 400h +psh2 equ 401h +psh3 equ 402h +psh4 equ 403h +psh5 equ 404h +psh6 equ 405h +psh7 equ 406h +psh8 equ 407h +psh9 equ 408h +psh10 equ 409h +psh11 equ 40Ah +psh12 equ 40Bh +psh13 equ 40Ch +psh14 equ 40Dh +psh15 equ 40Eh +pshHelp equ psh15 +psh16 equ 40Fh +chx1 equ 410h +chx2 equ 411h +chx3 equ 412h +chx4 equ 413h +chx5 equ 414h +chx6 equ 415h +chx7 equ 416h +chx8 equ 417h +chx9 equ 418h +chx10 equ 419h +chx11 equ 41Ah +chx12 equ 41Bh +chx13 equ 41Ch +chx14 equ 41Dh +chx15 equ 41Eh +chx16 equ 41Dh +rad1 equ 420h +rad2 equ 421h +rad3 equ 422h +rad4 equ 423h +rad5 equ 424h +rad6 equ 425h +rad7 equ 426h +rad8 equ 427h +rad9 equ 428h +rad10 equ 429h +rad11 equ 42Ah +rad12 equ 42Bh +rad13 equ 42Ch +rad14 equ 42Dh +rad15 equ 42Eh +rad16 equ 42Fh +grp1 equ 430h +grp2 equ 431h +grp3 equ 432h +grp4 equ 433h +frm1 equ 434h +frm2 equ 435h +frm3 equ 436h +frm4 equ 437h +rct1 equ 438h +rct2 equ 439h +rct3 equ 43Ah +rct4 equ 43Bh +ico1 equ 43Ch +ico2 equ 43Dh +ico3 equ 43Eh +ico4 equ 43Fh +stc1 equ 440h +stc2 equ 441h +stc3 equ 442h +stc4 equ 443h +stc5 equ 444h +stc6 equ 445h +stc7 equ 446h +stc8 equ 447h +stc9 equ 448h +stc10 equ 449h +stc11 equ 44Ah +stc12 equ 44Bh +stc13 equ 44Ch +stc14 equ 44Dh +stc15 equ 44Eh +stc16 equ 44Fh +stc17 equ 450h +stc18 equ 451h +stc19 equ 452h +stc20 equ 453h +stc21 equ 454h +stc22 equ 455h +stc23 equ 456h +stc24 equ 457h +stc25 equ 458h +stc26 equ 459h +stc27 equ 45Ah +stc28 equ 45Bh +stc29 equ 45Ch +stc30 equ 45Dh +stc31 equ 45Eh +stc32 equ 45Fh +lst1 equ 460h +lst2 equ 461h +lst3 equ 462h +lst4 equ 463h +lst5 equ 464h +lst6 equ 465h +lst7 equ 466h +lst8 equ 467h +lst9 equ 468h +lst10 equ 469h +lst11 equ 46Ah +lst12 equ 46Bh +lst13 equ 46Ch +lst14 equ 46Dh +lst15 equ 46Eh +lst16 equ 46Fh +cmb1 equ 470h +cmb2 equ 471h +cmb3 equ 472h +cmb4 equ 473h +cmb5 equ 474h +cmb6 equ 475h +cmb7 equ 476h +cmb8 equ 477h +cmb9 equ 478h +cmb10 equ 479h +cmb11 equ 47Ah +cmb12 equ 47Bh +cmb13 equ 47Ch +cmb14 equ 47Dh +cmb15 equ 47Eh +cmb16 equ 47Fh +edt1 equ 480h +edt2 equ 481h +edt3 equ 482h +edt4 equ 483h +edt5 equ 484h +edt6 equ 485h +edt7 equ 486h +edt8 equ 487h +edt9 equ 488h +edt10 equ 489h +edt11 equ 48Ah +edt12 equ 48Bh +edt13 equ 48Ch +edt14 equ 48Dh +edt15 equ 48Eh +edt16 equ 48Fh +scr1 equ 490h +scr2 equ 491h +scr3 equ 492h +scr4 equ 493h +scr5 equ 494h +scr6 equ 495h +scr7 equ 496h +scr8 equ 497h +FILEOPENORD equ 1536 +MULTIFILEOPENORD equ 1537 +PRINTDLGORD equ 1538 +PRNSETUPDLGORD equ 1539 +FINDDLGORD equ 1540 +REPLACEDLGORD equ 1541 +FONTDLGORD equ 1542 +FORMATDLGORD31 equ 1543 +FORMATDLGORD30 equ 1544 +HKEY_CLASSES_ROOT equ 80000000h +HKEY_CURRENT_USER equ 80000001h +HKEY_LOCAL_MACHINE equ 80000002h +HKEY_USERS equ 80000003h +HKEY_PERFORMANCE_DATA equ 80000004h +HKEY_CURRENT_CONFIG equ 80000005h +HKEY_DYN_DATA equ 80000006h +SERVICE_NO_CHANGE equ 0FFFFFFFFh +SERVICE_ACTIVE equ 1h +SERVICE_INACTIVE equ 2h +SERVICE_STATE_ALL equ SERVICE_ACTIVE OR SERVICE_INACTIVE +SERVICE_CONTROL_STOP equ 1h +SERVICE_CONTROL_PAUSE equ 2h +SERVICE_CONTROL_CONTINUE equ 3h +SERVICE_CONTROL_INTERROGATE equ 4h +SERVICE_CONTROL_SHUTDOWN equ 5h +SERVICE_STOPPED equ 1h +SERVICE_START_PENDING equ 2h +SERVICE_STOP_PENDING equ 3h +SERVICE_RUNNING equ 4h +SERVICE_CONTINUE_PENDING equ 5h +SERVICE_PAUSE_PENDING equ 6h +SERVICE_PAUSED equ 7h +SERVICE_ACCEPT_STOP equ 1h +SERVICE_ACCEPT_PAUSE_CONTINUE equ 2h +SERVICE_ACCEPT_SHUTDOWN equ 4h +SC_MANAGER_CONNECT equ 1h +SC_MANAGER_CREATE_SERVICE equ 2h +SC_MANAGER_ENUMERATE_SERVICE equ 4h +SC_MANAGER_LOCK equ 8h +SC_MANAGER_QUERY_LOCK_STATUS equ 10h +SC_MANAGER_MODIFY_BOOT_CONFIG equ 20h +SC_MANAGER_ALL_ACCESS equ STANDARD_RIGHTS_REQUIRED OR SC_MANAGER_CONNECT OR SC_MANAGER_CREATE_SERVICE OR SC_MANAGER_ENUMERATE_SERVICE OR SC_MANAGER_LOCK or SC_MANAGER_QUERY_LOCK_STATUS or SC_MANAGER_MODIFY_BOOT_CONFIG +SERVICE_QUERY_CONFIG equ 1h +SERVICE_CHANGE_CONFIG equ 2h +SERVICE_QUERY_STATUS equ 4h +SERVICE_ENUMERATE_DEPENDENTS equ 8h +SERVICE_START equ 10h +SERVICE_STOP equ 20h +SERVICE_PAUSE_CONTINUE equ 40h +SERVICE_INTERROGATE equ 80h +SERVICE_USER_DEFINED_CONTROL equ 100h +SERVICE_ALL_ACCESS equ STANDARD_RIGHTS_REQUIRED OR SERVICE_QUERY_CONFIG OR SERVICE_CHANGE_CONFIG OR SERVICE_QUERY_STATUS or SERVICE_ENUMERATE_DEPENDENTS or SERVICE_START or SERVICE_STOP or SERVICE_PAUSE_CONTINUE or SERVICE_INTERROGATE or SERVICE_USER_DEFINED_CONTROL +PERF_DATA_VERSION equ 1 +PERF_DATA_REVISION equ 1 +PERF_NO_INSTANCES equ -1 +PERF_SIZE_DWORD equ 0h +PERF_SIZE_LARGE equ 100h +PERF_SIZE_ZERO equ 200h +PERF_SIZE_VARIABLE_LEN equ 300h +PERF_TYPE_NUMBER equ 0h +PERF_TYPE_COUNTER equ 400h +PERF_TYPE_TEXT equ 800h +PERF_TYPE_ZERO equ 0C00h +PERF_NUMBER_HEX equ 0h +PERF_NUMBER_DECIMAL equ 10000h +PERF_NUMBER_DEC_1000 equ 20000h +PERF_COUNTER_VALUE equ 0h +PERF_COUNTER_RATE equ 10000h +PERF_COUNTER_FRACTION equ 20000h +PERF_COUNTER_BASE equ 30000h +PERF_COUNTER_ELAPSED equ 40000h +PERF_COUNTER_QUEUELEN equ 50000h +PERF_COUNTER_HISTOGRAM equ 60000h +PERF_TEXT_UNICODE equ 0h +PERF_TEXT_ASCII equ 10000h +PERF_TIMER_TICK equ 0h +PERF_TIMER_100NS equ 100000h +PERF_OBJECT_TIMER equ 200000h +PERF_DELTA_COUNTER equ 400000h +PERF_DELTA_BASE equ 800000h +PERF_INVERSE_COUNTER equ 1000000h +PERF_MULTI_COUNTER equ 2000000h +PERF_DISPLAY_NO_SUFFIX equ 0h +PERF_DISPLAY_PER_SEC equ 10000000h +PERF_DISPLAY_PERCENT equ 20000000h +PERF_DISPLAY_SECONDS equ 30000000h +PERF_DISPLAY_NOSHOW equ 40000000h +PERF_COUNTER_COUNTER equ PERF_SIZE_DWORD OR PERF_TYPE_COUNTER OR PERF_COUNTER_RATE OR PERF_TIMER_TICK OR PERF_DELTA_COUNTER OR PERF_DISPLAY_PER_SEC +PERF_COUNTER_TIMER equ PERF_SIZE_LARGE OR PERF_TYPE_COUNTER OR PERF_COUNTER_RATE OR PERF_TIMER_TICK OR PERF_DELTA_COUNTER OR PERF_DISPLAY_PERCENT +PERF_COUNTER_QUEUELEN_TYPE equ PERF_SIZE_DWORD OR PERF_TYPE_COUNTER OR PERF_COUNTER_QUEUELEN OR PERF_TIMER_TICK OR PERF_DELTA_COUNTER OR PERF_DISPLAY_NO_SUFFIX +PERF_COUNTER_BULK_COUNT equ PERF_SIZE_LARGE OR PERF_TYPE_COUNTER OR PERF_COUNTER_RATE OR PERF_TIMER_TICK OR PERF_DELTA_COUNTER OR PERF_DISPLAY_PER_SEC +PERF_COUNTER_TEXT equ PERF_SIZE_VARIABLE_LEN OR PERF_TYPE_TEXT OR PERF_TEXT_UNICODE OR PERF_DISPLAY_NO_SUFFIX +PERF_COUNTER_RAWCOUNT equ PERF_SIZE_DWORD OR PERF_TYPE_NUMBER OR PERF_NUMBER_DECIMAL OR PERF_DISPLAY_NO_SUFFIX +PERF_SAMPLE_FRACTION equ PERF_SIZE_DWORD OR PERF_TYPE_COUNTER OR PERF_COUNTER_FRACTION OR PERF_DELTA_COUNTER OR PERF_DELTA_BASE OR PERF_DISPLAY_PERCENT +PERF_SAMPLE_COUNTER equ PERF_SIZE_DWORD OR PERF_TYPE_COUNTER OR PERF_COUNTER_RATE OR PERF_TIMER_TICK OR PERF_DELTA_COUNTER OR PERF_DISPLAY_NO_SUFFIX +PERF_COUNTER_NODATA equ PERF_SIZE_ZERO OR PERF_DISPLAY_NOSHOW +PERF_COUNTER_TIMER_INV equ PERF_SIZE_LARGE OR PERF_TYPE_COUNTER OR PERF_COUNTER_RATE OR PERF_TIMER_TICK OR PERF_DELTA_COUNTER OR PERF_INVERSE_COUNTER OR PERF_DISPLAY_PERCENT +PERF_SAMPLE_BASE equ PERF_SIZE_DWORD OR PERF_TYPE_COUNTER OR PERF_COUNTER_BASE OR PERF_DISPLAY_NOSHOW OR 1h +PERF_AVERAGE_TIMER equ PERF_SIZE_DWORD OR PERF_TYPE_COUNTER OR PERF_COUNTER_FRACTION OR PERF_DISPLAY_SECONDS +PERF_AVERAGE_BASE equ PERF_SIZE_DWORD OR PERF_TYPE_COUNTER OR PERF_COUNTER_BASE OR PERF_DISPLAY_NOSHOW OR 2h +PERF_AVERAGE_BULK equ PERF_SIZE_LARGE OR PERF_TYPE_COUNTER OR PERF_COUNTER_FRACTION OR PERF_DISPLAY_NOSHOW +PERF_100NSEC_TIMER equ PERF_SIZE_LARGE OR PERF_TYPE_COUNTER OR PERF_COUNTER_RATE OR PERF_TIMER_100NS OR PERF_DELTA_COUNTER OR PERF_DISPLAY_PERCENT +PERF_100NSEC_TIMER_INV equ PERF_SIZE_LARGE OR PERF_TYPE_COUNTER OR PERF_COUNTER_RATE OR PERF_TIMER_100NS OR PERF_DELTA_COUNTER OR PERF_INVERSE_COUNTER OR PERF_DISPLAY_PERCENT +PERF_COUNTER_MULTI_TIMER equ PERF_SIZE_LARGE OR PERF_TYPE_COUNTER OR PERF_COUNTER_RATE OR PERF_DELTA_COUNTER OR PERF_TIMER_TICK OR PERF_MULTI_COUNTER OR PERF_DISPLAY_PERCENT +PERF_COUNTER_MULTI_TIMER_INV equ PERF_SIZE_LARGE OR PERF_TYPE_COUNTER OR PERF_COUNTER_RATE OR PERF_DELTA_COUNTER OR PERF_MULTI_COUNTER OR PERF_TIMER_TICK OR PERF_INVERSE_COUNTER OR PERF_DISPLAY_PERCENT +PERF_COUNTER_MULTI_BASE equ PERF_SIZE_LARGE OR PERF_TYPE_COUNTER OR PERF_COUNTER_BASE OR PERF_MULTI_COUNTER OR PERF_DISPLAY_NOSHOW +PERF_100NSEC_MULTI_TIMER equ PERF_SIZE_LARGE OR PERF_TYPE_COUNTER OR PERF_DELTA_COUNTER OR PERF_COUNTER_RATE OR PERF_TIMER_100NS OR PERF_MULTI_COUNTER OR PERF_DISPLAY_PERCENT +PERF_100NSEC_MULTI_TIMER_INV equ PERF_SIZE_LARGE OR PERF_TYPE_COUNTER OR PERF_DELTA_COUNTER OR PERF_COUNTER_RATE OR PERF_TIMER_100NS OR PERF_MULTI_COUNTER OR PERF_INVERSE_COUNTER OR PERF_DISPLAY_PERCENT +PERF_RAW_FRACTION equ PERF_SIZE_DWORD OR PERF_TYPE_COUNTER OR PERF_COUNTER_FRACTION OR PERF_DISPLAY_PERCENT +PERF_RAW_BASE equ PERF_SIZE_DWORD OR PERF_TYPE_COUNTER OR PERF_COUNTER_BASE OR PERF_DISPLAY_NOSHOW OR 3h +PERF_ELAPSED_TIME equ PERF_SIZE_LARGE OR PERF_TYPE_COUNTER OR PERF_COUNTER_ELAPSED OR PERF_OBJECT_TIMER OR PERF_DISPLAY_SECONDS +PERF_COUNTER_HISTOGRAM_TYPE equ 80000000h +PERF_DETAIL_NOVICE equ 100 +PERF_DETAIL_ADVANCED equ 200 +PERF_DETAIL_EXPERT equ 300 +PERF_DETAIL_WIZARD equ 400 +PERF_NO_UNIQUE_ID equ -1 +LZERROR_BADINHANDLE equ -1 +LZERROR_BADOUTHANDLE equ -2 +LZERROR_READ equ -3 +LZERROR_WRITE equ -4 +LZERROR_PUBLICLOC equ -5 +LZERROR_GLOBLOCK equ -6 +LZERROR_BADVALUE equ -7 +LZERROR_UNKNOWNALG equ -8 +VK_PROCESSKEY equ 0E5h +STYLE_DESCRIPTION_SIZE equ 32 +WM_CONVERTREQUESTEX equ 108h + +WM_IME_REQUEST equ 288h +WM_IME_STARTCOMPOSITION equ 10Dh +WM_IME_ENDCOMPOSITION equ 10Eh +WM_IME_COMPOSITION equ 10Fh +WM_IME_KEYLAST equ 10Fh +WM_IME_SETCONTEXT equ 281h +WM_IME_NOTIFY equ 282h +WM_IME_CONTROL equ 283h +WM_IME_COMPOSITIONFULL equ 284h +WM_IME_SELECT equ 285h +WM_IME_CHAR equ 286h +WM_IME_KEYDOWN equ 290h +WM_IME_KEYUP equ 291h +IMC_GETCANDIDATEPOS equ 7h +IMC_SETCANDIDATEPOS equ 8h +IMC_GETCOMPOSITIONFONT equ 9h +IMC_SETCOMPOSITIONFONT equ 0Ah +IMC_GETCOMPOSITIONWINDOW equ 0Bh +IMC_SETCOMPOSITIONWINDOW equ 0Ch +IMC_GETSTATUSWINDOWPOS equ 0Fh +IMC_SETSTATUSWINDOWPOS equ 10h +IMC_CLOSESTATUSWINDOW equ 21h +IMC_OPENSTATUSWINDOW equ 22h +NI_OPENCANDIDATE equ 10h +NI_CLOSECANDIDATE equ 11h +NI_SELECTCANDIDATESTR equ 12h +NI_CHANGECANDIDATELIST equ 13h +NI_FINALIZECONVERSIONRESULT equ 14h +NI_COMPOSITIONSTR equ 15h +NI_SETCANDIDATE_PAGESTART equ 16h +NI_SETCANDIDATE_PAGESIZE equ 17h +ISC_SHOWUICANDIDATEWINDOW equ 1h +ISC_SHOWUICOMPOSITIONWINDOW equ 80000000h +ISC_SHOWUIGUIDELINE equ 40000000h +ISC_SHOWUIALLCANDIDATEWINDOW equ 0Fh +ISC_SHOWUIALL equ 0C000000Fh +CPS_COMPLETE equ 1h +CPS_CONVERT equ 2h +CPS_REVERT equ 3h +CPS_CANCEL equ 4h +IME_CHOTKEY_IME_NONIME_TOGGLE equ 10h +IME_CHOTKEY_SHAPE_TOGGLE equ 11h +IME_CHOTKEY_SYMBOL_TOGGLE equ 12h +IME_JHOTKEY_CLOSE_OPEN equ 30h +IME_KHOTKEY_SHAPE_TOGGLE equ 50h +IME_KHOTKEY_HANJACONVERT equ 51h +IME_KHOTKEY_ENGLISH equ 52h +IME_THOTKEY_IME_NONIME_TOGGLE equ 70h +IME_THOTKEY_SHAPE_TOGGLE equ 71h +IME_THOTKEY_SYMBOL_TOGGLE equ 72h +IME_HOTKEY_DSWITCH_FIRST equ 100h +IME_HOTKEY_DSWITCH_LAST equ 11Fh +IME_ITHOTKEY_RESEND_RESULTSTR equ 200h +IME_ITHOTKEY_PREVIOUS_COMPOSITION equ 201h +IME_ITHOTKEY_UISTYLE_TOGGLE equ 202h +GCS_COMPREADSTR equ 1h +GCS_COMPREADATTR equ 2h +GCS_COMPREADCLAUSE equ 4h +GCS_COMPSTR equ 8h +GCS_COMPATTR equ 10h +GCS_COMPCLAUSE equ 20h +GCS_CURSORPOS equ 80h +GCS_DELTASTART equ 100h +GCS_RESULTREADSTR equ 200h +GCS_RESULTREADCLAUSE equ 400h +GCS_RESULTSTR equ 800h +GCS_RESULTCLAUSE equ 1000h +CS_INSERTCHAR equ 2000h +CS_NOMOVECARET equ 4000h +IME_PROP_AT_CARET equ 10000h +IME_PROP_SPECIAL_UI equ 20000h +IME_PROP_CANDLIST_START_FROM_1 equ 40000h +IME_PROP_UNICODE equ 80000h +UI_CAP_2700 equ 1h +UI_CAP_ROT90 equ 2h +UI_CAP_ROTANY equ 4h +SCS_CAP_COMPSTR equ 1h +SCS_CAP_MAKEREAD equ 2h +SELECT_CAP_CONVERSION equ 1h +SELECT_CAP_SENTENCE equ 2h +GGL_LEVEL equ 1h +GGL_INDEX equ 2h +GGL_STRING equ 3h +GGL_PRIVATE equ 4h +GL_LEVEL_NOGUIDELINE equ 0h +GL_LEVEL_FATAL equ 1h +GL_LEVEL_ERROR equ 2h +GL_LEVEL_WARNING equ 3h +GL_LEVEL_INFORMATION equ 4h +GL_ID_UNKNOWN equ 0h +GL_ID_NOMODULE equ 1h +GL_ID_NODICTIONARY equ 10h +GL_ID_CANNOTSAVE equ 11h +GL_ID_NOCONVERT equ 20h +GL_ID_TYPINGERROR equ 21h +GL_ID_TOOMANYSTROKE equ 22h +GL_ID_READINGCONFLICT equ 23h +GL_ID_INPUTREADING equ 24h +GL_ID_INPUTRADICAL equ 25h +GL_ID_INPUTCODE equ 26h +GL_ID_INPUTSYMBOL equ 27h +GL_ID_CHOOSECANDIDATE equ 28h +GL_ID_REVERSECONVERSION equ 29h +GL_ID_PRIVATE_FIRST equ 8000h +GL_ID_PRIVATE_LAST equ 0FFFFh +IGP_PROPERTY equ 4h +IGP_CONVERSION equ 8h +IGP_SENTENCE equ 0Ch +IGP_UI equ 10h +IGP_SETCOMPSTR equ 14h +IGP_SELECT equ 18h +SCS_SETSTR equ GCS_COMPREADSTR OR GCS_COMPSTR +SCS_CHANGEATTR equ GCS_COMPREADATTR OR GCS_COMPATTR +SCS_CHANGECLAUSE equ GCS_COMPREADCLAUSE OR GCS_COMPCLAUSE +ATTR_INPUT equ 0h +ATTR_TARGET_CONVERTED equ 1h +ATTR_CONVERTED equ 2h +ATTR_TARGET_NOTCONVERTED equ 3h +ATTR_INPUT_ERROR equ 4h +CFS_DEFAULT equ 0h +CFS_RECT equ 1h +CFS_POINT equ 2h +CFS_SCREEN equ 4h +CFS_FORCE_POSITION equ 20h +CFS_CANDIDATEPOS equ 40h +CFS_EXCLUDE equ 80h +GCL_CONVERSION equ 1h +GCL_REVERSECONVERSION equ 2h +GCL_REVERSE_LENGTH equ 3h +IME_CMODE_ALPHANUMERIC equ 0h +IME_CMODE_NATIVE equ 1h +IME_CMODE_CHINESE equ IME_CMODE_NATIVE +IME_CMODE_HANGEUL equ IME_CMODE_NATIVE +IME_CMODE_JAPANESE equ IME_CMODE_NATIVE +IME_CMODE_KATAKANA equ 2h +IME_CMODE_LANGUAGE equ 3h +IME_CMODE_FULLSHAPE equ 8h +IME_CMODE_ROMAN equ 10h +IME_CMODE_CHARCODE equ 20h +IME_CMODE_HANJACONVERT equ 40h +IME_CMODE_SOFTKBD equ 80h +IME_CMODE_NOCONVERSION equ 100h +IME_CMODE_EUDC equ 200h +IME_CMODE_SYMBOL equ 400h +IME_SMODE_NONE equ 0h +IME_SMODE_PLAURALCLAUSE equ 1h +IME_SMODE_SINGLECONVERT equ 2h +IME_SMODE_AUTOMATIC equ 4h +IME_SMODE_PHRASEPREDICT equ 8h +IME_CAND_UNKNOWN equ 0h +IME_CAND_READ equ 1h +IME_CAND_CODE equ 2h +IME_CAND_MEANING equ 3h +IME_CAND_RADICAL equ 4h +IME_CAND_STROKE equ 5h +IMN_CLOSESTATUSWINDOW equ 1h +IMN_OPENSTATUSWINDOW equ 2h +IMN_CHANGECANDIDATE equ 3h +IMN_CLOSECANDIDATE equ 4h +IMN_OPENCANDIDATE equ 5h +IMN_SETCONVERSIONMODE equ 6h +IMN_SETSENTENCEMODE equ 7h +IMN_SETOPENSTATUS equ 8h +IMN_SETCANDIDATEPOS equ 9h +IMN_SETCOMPOSITIONFONT equ 0Ah +IMN_SETCOMPOSITIONWINDOW equ 0Bh +IMN_SETSTATUSWINDOWPOS equ 0Ch +IMN_GUIDELINE equ 0Dh +IMN_PRIVATE equ 0Eh +IMM_ERROR_NODATA equ -1 +IMM_ERROR_GENERAL equ -2 +IME_CONFIG_GENERAL equ 1 +IME_CONFIG_REGISTERWORD equ 2 +IME_CONFIG_SELECTDICTIONARY equ 3 +IME_ESC_QUERY_SUPPORT equ 3h +IME_ESC_RESERVED_FIRST equ 4h +IME_ESC_RESERVED_LAST equ 7FFh +IME_ESC_PRIVATE_FIRST equ 800h +IME_ESC_PRIVATE_LAST equ 0FFFh +IME_ESC_SEQUENCE_TO_INTERNAL equ 1001h +IME_ESC_GET_EUDC_DICTIONARY equ 1003h +IME_ESC_SET_EUDC_DICTIONARY equ 1004h +IME_ESC_MAX_KEY equ 1005h +IME_ESC_IME_NAME equ 1006h +IME_ESC_SYNC_HOTKEY equ 1007h +IME_ESC_HANJA_MODE equ 1008h +IME_REGWORD_STYLE_EUDC equ 1h +IME_REGWORD_STYLE_USER_FIRST equ 80000000h +IME_REGWORD_STYLE_USER_LAST equ 0FFFFh +SOFTKEYBOARD_TYPE_T1 equ 1h +SOFTKEYBOARD_TYPE_C1 equ 2h +DIALOPTION_BILLING equ 40h +DIALOPTION_QUIET equ 80h +DIALOPTION_DIALTONE equ 100h +MDMVOLFLAG_LOW equ 1h +MDMVOLFLAG_MEDIUM equ 2h +MDMVOLFLAG_HIGH equ 4h +MDMVOL_LOW equ 0h +MDMVOL_MEDIUM equ 1h +MDMVOL_HIGH equ 2h +MDMSPKRFLAG_OFF equ 1h +MDMSPKRFLAG_DIAL equ 2h +MDMSPKRFLAG_ON equ 4h +MDMSPKRFLAG_CALLSETUP equ 8h +MDMSPKR_OFF equ 0h +MDMSPKR_DIAL equ 1h +MDMSPKR_ON equ 2h +MDMSPKR_CALLSETUP equ 3h +MDM_COMPRESSION equ 1h +MDM_ERROR_CONTROL equ 2h +MDM_FORCED_EC equ 4h +MDM_CELLULAR equ 8h +MDM_FLOWCONTROL_HARD equ 10h +MDM_FLOWCONTROL_SOFT equ 20h +MDM_CCITT_OVERRIDE equ 40h +MDM_SPEED_ADJUST equ 80h +MDM_TONE_DIAL equ 100h +MDM_BLIND_DIAL equ 200h +MDM_V23_OVERRIDE equ 400h +ABM_NEW equ 0h +ABM_REMOVE equ 1h +ABM_QUERYPOS equ 2h +ABM_SETPOS equ 3h +ABM_GETSTATE equ 4h +ABM_GETTASKBARPOS equ 5h +ABM_ACTIVATE equ 6h +ABM_GETAUTOHIDEBAR equ 7h +ABM_SETAUTOHIDEBAR equ 8h +ABM_WINDOWPOSCHANGED equ 9h +ABN_STATECHANGE equ 0h +ABN_POSCHANGED equ 1h +ABN_FULLSCREENAPP equ 2h +ABN_WINDOWARRANGE equ 3h +ABS_AUTOHIDE equ 1h +ABS_ALWAYSONTOP equ 2h +ABE_LEFT equ 0 +ABE_TOP equ 1 +ABE_RIGHT equ 2 +ABE_BOTTOM equ 3 +EIRESID equ -1 +FO_MOVE equ 1h +FO_COPY equ 2h +FO_DELETE equ 3h +FO_RENAME equ 4h +FOF_MULTIDESTFILES equ 1h +FOF_CONFIRMMOUSE equ 2h +FOF_SILENT equ 4h +FOF_RENAMEONCOLLISION equ 8h +FOF_NOCONFIRMATION equ 10h +FOF_WANTMAPPINGHANDLE equ 20h +FOF_ALLOWUNDO equ 40h +FOF_FILESONLY equ 80h +FOF_SIMPLEPROGRESS equ 100h +FOF_NOCONFIRMMKDIR equ 200h +PO_DELETE equ 13h +PO_RENAME equ 14h +PO_PORTCHANGE equ 20h +PO_REN_PORT equ 34h +SE_ERR_FNF equ 2 +SE_ERR_PNF equ 3 +SE_ERR_ACCESSDENIED equ 5 +SE_ERR_OOM equ 8 +SE_ERR_DLLNOTFOUND equ 32 +SEE_MASK_CLASSNAME equ 1h +SEE_MASK_CLASSKEY equ 3h +SEE_MASK_IDLIST equ 4h +SEE_MASK_INVOKEIDLIST equ 0Ch +SEE_MASK_ICON equ 10h +SEE_MASK_HOTKEY equ 20h +SEE_MASK_NOCLOSEPROCESS equ 40h +SEE_MASK_CONNECTNETDRV equ 80h +SEE_MASK_FLAG_DDEWAIT equ 100h +SEE_MASK_DOENVSUBST equ 200h +SEE_MASK_FLAG_NO_UI equ 400h +NIM_ADD equ 0h +NIM_MODIFY equ 1h +NIM_DELETE equ 2h +NIF_MESSAGE equ 1h +NIF_ICON equ 2h +NIF_TIP equ 4h +SHGFI_ICON equ 100h +SHGFI_DISPLAYNAME equ 200h +SHGFI_TYPENAME equ 400h +SHGFI_ATTRIBUTES equ 800h +SHGFI_ICONLOCATION equ 1000h +SHGFI_EXETYPE equ 2000h +SHGFI_SYSICONINDEX equ 4000h +SHGFI_LINKOVERLAY equ 8000h +SHGFI_SELECTED equ 10000h +SHGFI_LARGEICON equ 0h +SHGFI_SMALLICON equ 1h +SHGFI_OPENICON equ 2h +SHGFI_SHELLICONSIZE equ 4h +SHGFI_PIDL equ 8h +SHGFI_USEFILEATTRIBUTES equ 10h +SHGNLI_PIDL equ 1h +SHGNLI_PREFIXNAME equ 2h +VS_VERSION_INFO equ 1 +VS_USER_DEFINED equ 100 +VS_FFI_SIGNATURE equ 0FEEF04BDh +VS_FFI_STRUCVERSION equ 10000h +VS_FFI_FILEFLAGSMASK equ 3Fh +VS_FF_DEBUG equ 1h +VS_FF_PRERELEASE equ 2h +VS_FF_PATCHED equ 4h +VS_FF_PRIVATEBUILD equ 8h +VS_FF_INFOINFERRED equ 10h +VS_FF_SPECIALBUILD equ 20h +VOS_UNKNOWN equ 0h +VOS_DOS equ 10000h +VOS_OS216 equ 20000h +VOS_OS232 equ 30000h +VOS_NT equ 40000h +VOS__BASE equ 0h +VOS__WINDOWS16 equ 1h +VOS__PM16 equ 2h +VOS__PM32 equ 3h +VOS__WINDOWS32 equ 4h +VOS_DOS_WINDOWS16 equ 10001h +VOS_DOS_WINDOWS32 equ 10004h +VOS_OS216_PM16 equ 20002h +VOS_OS232_PM32 equ 30003h +VOS_NT_WINDOWS32 equ 40004h +VFT_UNKNOWN equ 0h +VFT_APP equ 1h +VFT_DLL equ 2h +VFT_DRV equ 3h +VFT_FONT equ 4h +VFT_VXD equ 5h +VFT_STATIC_LIB equ 7h +VFT2_UNKNOWN equ 0h +VFT2_DRV_PRINTER equ 1h +VFT2_DRV_KEYBOARD equ 2h +VFT2_DRV_LANGUAGE equ 3h +VFT2_DRV_DISPLAY equ 4h +VFT2_DRV_MOUSE equ 5h +VFT2_DRV_NETWORK equ 6h +VFT2_DRV_SYSTEM equ 7h +VFT2_DRV_INSTALLABLE equ 8h +VFT2_DRV_SOUND equ 9h +VFT2_DRV_COMM equ 0Ah +VFT2_DRV_INPUTMETHOD equ 0Bh +VFT2_FONT_RASTER equ 1h +VFT2_FONT_VECTOR equ 2h +VFT2_FONT_TRUETYPE equ 3h +VFFF_ISSHAREDFILE equ 1h +VFF_CURNEDEST equ 1h +VFF_FILEINUSE equ 2h +VFF_BUFFTOOSMALL equ 4h +VIFF_FORCEINSTALL equ 1h +VIFF_DONTDELETEOLD equ 2h +VIF_TEMPFILE equ 1h +VIF_MISMATCH equ 2h +VIF_SRCOLD equ 4h +VIF_DIFFLANG equ 8h +VIF_DIFFCODEPG equ 10h +VIF_DIFFTYPE equ 20h +VIF_WRITEPROT equ 40h +VIF_FILEINUSE equ 80h +VIF_OUTOFSPACE equ 100h +VIF_ACCESSVIOLATION equ 200h +VIF_SHARINGVIOLATION equ 400h +VIF_CANNOTCREATE equ 800h +VIF_CANNOTDELETE equ 1000h +VIF_CANNOTRENAME equ 2000h +VIF_CANNOTDELETECUR equ 4000h +VIF_OUTOFMEMORY equ 8000h +VIF_CANNOTREADSRC equ 10000h +VIF_CANNOTREADDST equ 20000h +VIF_BUFFTOOSMALL equ 40000h +PROCESS_HEAP_REGION equ 1h +PROCESS_HEAP_UNCOMMITTED_RANGE equ 2h +PROCESS_HEAP_ENTRY_BUSY equ 4h +PROCESS_HEAP_ENTRY_MOVEABLE equ 10h +PROCESS_HEAP_ENTRY_DDESHARE equ 20h +SCS_32BIT_BINARY equ 0 +SCS_DOS_BINARY equ 1 +SCS_WOW_BINARY equ 2 +SCS_PIF_BINARY equ 3 +SCS_POSIX_BINARY equ 4 +SCS_OS216_BINARY equ 5 +LOGON32_LOGON_INTERACTIVE equ 2 +LOGON32_LOGON_BATCH equ 4 +LOGON32_LOGON_SERVICE equ 5 +LOGON32_PROVIDER_DEFAULT equ 0 +LOGON32_PROVIDER_WINNT35 equ 1 +VER_PLATFORM_WIN32s equ 0 +VER_PLATFORM_WIN32_WINDOWS equ 1 +VER_PLATFORM_WIN32_NT equ 2 +AC_LINE_OFFLINE equ 0h +AC_LINE_ONLINE equ 1h +AC_LINE_BACKUP_POWER equ 2h +AC_LINE_UNKNOWN equ 0FFh +BATTERY_FLAG_HIGH equ 1h +BATTERY_FLAG_LOW equ 2h +BATTERY_FLAG_CRITICAL equ 4h +BATTERY_FLAG_CHARGING equ 8h +BATTERY_FLAG_NO_BATTERY equ 80h +BATTERY_FLAG_UNKNOWN equ 0FFh +BATTERY_PERCENTAGE_UNKNOWN equ 0FFh +BATTERY_LIFE_UNKNOWN equ 0FFFFh +CDM_FIRST equ WM_USER + 100 +CDM_LAST equ WM_USER + 200 +CDM_GETSPEC equ CDM_FIRST + 0h +CDM_GETFILEPATH equ CDM_FIRST + 1h +CDM_GETFOLDERPATH equ CDM_FIRST + 2h +CDM_GETFOLDERIDLIST equ CDM_FIRST + 3h +CDM_SETCONTROLTEXT equ CDM_FIRST + 4h +CDM_HIDECONTROL equ CDM_FIRST + 5h +CDM_SETDEFEXT equ CDM_FIRST + 6h +SIMULATED_FONTTYPE equ 8000h +PRINTER_FONTTYPE equ 4000h +SCREEN_FONTTYPE equ 2000h +BOLD_FONTTYPE equ 100h +ITALIC_FONTTYPE equ 200h +REGULAR_FONTTYPE equ 400h +WM_PSD_PAGESETUPDLG equ WM_USER +WM_PSD_FULLPAGERECT equ WM_USER + 1 +WM_PSD_MINMARGINRECT equ WM_USER + 2 +WM_PSD_MARGINRECT equ WM_USER + 3 +WM_PSD_GREEKTEXTRECT equ WM_USER + 4 +WM_PSD_ENVSTAMPRECT equ WM_USER + 5 +WM_PSD_YAFULLPAGERECT equ WM_USER + 6 +PSD_DEFAULTMINMARGINS equ 0h +PSD_INWININIINTLMEASURE equ 0h +PSD_MINMARGINS equ 1h +PSD_MARGINS equ 2h +PSD_INTHOUSANDTHSOFINCHES equ 4h +PSD_INHUNDREDTHSOFMILLIMETERS equ 8h +PSD_DISABLEMARGINS equ 10h +PSD_DISABLEPRINTER equ 20h +PSD_NOWARNING equ 80h +PSD_DISABLEORIENTATION equ 100h +PSD_RETURNDEFAULT equ 400h +PSD_DISABLEPAPER equ 200h +PSD_SHOWHELP equ 800h +PSD_ENABLEPAGESETUPHOOK equ 2000h +PSD_ENABLEPAGESETUPTEMPLATE equ 8000h +PSD_ENABLEPAGESETUPTEMPLATEHANDLE equ 20000h +PSD_ENABLEPAGEPAINTHOOK equ 40000h +PSD_DISABLEPAGEPAINTING equ 80000h +NM_FIRST equ 0- 0 +NM_LAST equ 0-99 +DBG_CONTINUE equ 00010002h +DBG_TERMINATE_THREAD equ 40010003h +DBG_TERMINATE_PROCESS equ 40010004h +DBG_CONTROL_C equ 40010005h +DBG_CONTROL_BREAK equ 40010008h +DBG_EXCEPTION_NOT_HANDLED equ 80010001h +SIZE_OF_80387_REGISTERS equ 80 +STATUS_WAIT_0 equ 00000000h +STATUS_ABANDONED_WAIT_0 equ 00000080h +STATUS_USER_APC equ 000000C0h +STATUS_TIMEOUT equ 00000102h +STATUS_PENDING equ 00000103h +STATUS_DATATYPE_MISALIGNMENT equ 80000002h +STATUS_BREAKPOINT equ 80000003h +STATUS_SINGLE_STEP equ 80000004h +STATUS_ACCESS_VIOLATION equ 0C0000005h +STATUS_IN_PAGE_ERROR equ 0C0000006h +STATUS_NO_MEMORY equ 0C0000017h +STATUS_ILLEGAL_INSTRUCTION equ 0C000001Dh +STATUS_NONCONTINUABLE_EXCEPTION equ 0C0000025h +STATUS_INVALID_DISPOSITION equ 0C0000026h +STATUS_ARRAY_BOUNDS_EXCEEDED equ 0C000008Ch +STATUS_FLOAT_DENORMAL_OPERAND equ 0C000008Dh +STATUS_FLOAT_DIVIDE_BY_ZERO equ 0C000008Eh +STATUS_FLOAT_INEXACT_RESULT equ 0C000008Fh +STATUS_FLOAT_INVALID_OPERATION equ 0C0000090h +STATUS_FLOAT_OVERFLOW equ 0C0000091h +STATUS_FLOAT_STACK_CHECK equ 0C0000092h +STATUS_FLOAT_UNDERFLOW equ 0C0000093h +STATUS_INTEGER_DIVIDE_BY_ZERO equ 0C0000094h +STATUS_INTEGER_OVERFLOW equ 0C0000095h +STATUS_PRIVILEGED_INSTRUCTION equ 0C0000096h +STATUS_STACK_OVERFLOW equ 0C00000FDh +STATUS_CONTROL_C_EXIT equ 0C000013Ah +WAIT_FAILED equ -1 +WAIT_OBJECT_0 equ STATUS_WAIT_0 +WAIT_ABANDONED equ STATUS_ABANDONED_WAIT_0 +WAIT_ABANDONED_0 equ STATUS_ABANDONED_WAIT_0 +WAIT_TIMEOUT equ STATUS_TIMEOUT +WAIT_IO_COMPLETION equ STATUS_USER_APC +STILL_ACTIVE equ STATUS_PENDING + +EXCEPTION_CONTINUABLE equ 0 +EXCEPTION_NONCONTINUABLE equ 1h +EXCEPTION_ACCESS_VIOLATION equ STATUS_ACCESS_VIOLATION +EXCEPTION_DATATYPE_MISALIGNMENT equ STATUS_DATATYPE_MISALIGNMENT +EXCEPTION_BREAKPOINT equ STATUS_BREAKPOINT +EXCEPTION_SINGLE_STEP equ STATUS_SINGLE_STEP +EXCEPTION_ARRAY_BOUNDS_EXCEEDED equ STATUS_ARRAY_BOUNDS_EXCEEDED +EXCEPTION_FLT_DENORMAL_OPERAND equ STATUS_FLOAT_DENORMAL_OPERAND +EXCEPTION_FLT_DIVIDE_BY_ZERO equ STATUS_FLOAT_DIVIDE_BY_ZERO +EXCEPTION_FLT_INEXACT_RESULT equ STATUS_FLOAT_INEXACT_RESULT +EXCEPTION_FLT_INVALID_OPERATION equ STATUS_FLOAT_INVALID_OPERATION +EXCEPTION_FLT_OVERFLOW equ STATUS_FLOAT_OVERFLOW +EXCEPTION_FLT_STACK_CHECK equ STATUS_FLOAT_STACK_CHECK +EXCEPTION_FLT_UNDERFLOW equ STATUS_FLOAT_UNDERFLOW +EXCEPTION_INT_DIVIDE_BY_ZERO equ STATUS_INTEGER_DIVIDE_BY_ZERO +EXCEPTION_INT_OVERFLOW equ STATUS_INTEGER_OVERFLOW +EXCEPTION_ILLEGAL_INSTRUCTION equ STATUS_ILLEGAL_INSTRUCTION +EXCEPTION_PRIV_INSTRUCTION equ STATUS_PRIVILEGED_INSTRUCTION +EXCEPTION_IN_PAGE_ERROR equ STATUS_IN_PAGE_ERROR +CONTEXT_i386 equ 00010000h +CONTEXT_i486 equ 00010000h +CONTEXT_CONTROL equ CONTEXT_i386 OR 00000001h +CONTEXT_INTEGER equ CONTEXT_i386 OR 00000002h +CONTEXT_SEGMENTS equ CONTEXT_i386 OR 00000004h +CONTEXT_FLOATING_POINT equ CONTEXT_i386 OR 00000008h +CONTEXT_DEBUG_REGISTERS equ CONTEXT_i386 OR 00000010h +CONTEXT_FULL equ CONTEXT_CONTROL OR CONTEXT_INTEGER OR CONTEXT_SEGMENTS +PAGE_NOACCESS equ 1 +PAGE_READONLY equ 2 +PAGE_READWRITE equ 4 +PAGE_WRITECOPY equ 8 +PAGE_EXECUTE equ 10h +PAGE_EXECUTE_READ equ 20h +PAGE_EXECUTE_READWRITE equ 40h +PAGE_EXECUTE_WRITECOPY equ 80h +PAGE_GUARD equ 100h +PAGE_NOCACHE equ 200h +MEM_COMMIT equ 1000h +MEM_RESERVE equ 2000h +MEM_DECOMMIT equ 4000h +MEM_RELEASE equ 8000h +MEM_FREE equ 10000h +MEM_PRIVATE equ 20000h +MEM_MAPPED equ 40000h +MEM_RESET equ 80000h +MEM_TOP_DOWN equ 100000h +SEC_FILE equ 800000h +SEC_IMAGE equ 1000000h +SEC_RESERVE equ 4000000h +SEC_COMMIT equ 8000000h +SEC_NOCACHE equ 10000000h +MEM_IMAGE equ + +IMAGE_DIRECTORY_ENTRY_EXPORT equ 0 +IMAGE_DIRECTORY_ENTRY_IMPORT equ 1 +IMAGE_DIRECTORY_ENTRY_RESOURCE equ 2 +IMAGE_DIRECTORY_ENTRY_EXCEPTION equ 3 +IMAGE_DIRECTORY_ENTRY_SECURITY equ 4 +IMAGE_DIRECTORY_ENTRY_BASERELOC equ 5 +IMAGE_DIRECTORY_ENTRY_DEBUG equ 6 +IMAGE_DIRECTORY_ENTRY_COPYRIGHT equ 7 +IMAGE_DIRECTORY_ENTRY_GLOBALPTR equ 8 +IMAGE_DIRECTORY_ENTRY_TLS equ 9 +IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG equ 10 +IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT equ 11 +IMAGE_DIRECTORY_ENTRY_IAT equ 12 +IMAGE_NUMBEROF_DIRECTORY_ENTRIES equ 16 +IMAGE_BITMAP equ 0 +IMAGE_ICON equ 1 +IMAGE_CURSOR equ 2 +IMAGE_ENHMETAFILE equ 3 +PROCESSOR_INTEL_386 equ 386 +PROCESSOR_INTEL_486 equ 486 +PROCESSOR_INTEL_PENTIUM equ 586 +PROCESSOR_MIPS_R4000 equ 4000 +PROCESSOR_ALPHA_21064 equ 21064 + +FXPT2DOT30 equ +MMVERSION equ +SECURITY_CONTEXT_TRACKING_MODE equ +MAX_JOYSTICKOEMVXDNAME equ 260 +FOURCC equ + +LOAD_LIBRARY_AS_DATAFILE equ 2 +LOAD_WITH_ALTERED_SEARCH_PATH equ 8 + +EVENT_MODIFY_STATE equ 2 + +LMA_ALPHA equ 2 +LMA_COLORKEY equ 1 + +comment * ----------------------------------------- + +Additional equates for win2k XP from "gunner" (Rob) + + ----------------------------------------- * + +COINIT_APARTMENTTHREADED equ 2 +COINIT_MULTITHREADED equ 0 +COINIT_DISABLE_OLE1DDE equ 4 +COINIT_SPEED_OVER_MEMORY equ 8 + +REST_NONE equ 00000000h +REST_NORUN equ 00000001h +REST_NOCLOSE equ 00000002h +REST_NOSAVESET equ 00000004h +REST_NOFILEMENU equ 00000008h +REST_NOSETFOLDERS equ 00000010h +REST_NOSETTASKBAR equ 00000020h +REST_NODESKTOP equ 00000040h +REST_NOFIND equ 00000080h +REST_NODRIVES equ 00000100h +REST_NODRIVEAUTORUN equ 00000200h +REST_NODRIVETYPEAUTORUN equ 00000400h +REST_NONETHOOD equ 00000800h +REST_STARTBANNER equ 00001000h +REST_RESTRICTRUN equ 00002000h +REST_NOPRINTERTABS equ 00004000h +REST_NOPRINTERDELETE equ 00008000h +REST_NOPRINTERADD equ 00010000h +REST_NOSTARTMENUSUBFOLDERS equ 00020000h +REST_MYDOCSONNET equ 00040000h +REST_NOEXITTODOS equ 00080000h +REST_ENFORCESHELLEXTSECURITY equ 00100000h +REST_LINKRESOLVEIGNORELINKINFO equ 00200000h +REST_NOCOMMONGROUPS equ 00400000h +REST_SEPARATEDESKTOPPROCESS equ 00800000h +REST_NOWEB equ 01000000h +REST_NOTRAYCONTEXTMENU equ 02000000h +REST_NOVIEWCONTEXTMENU equ 04000000h +REST_NONETCONNECTDISCONNECT equ 08000000h +REST_STARTMENULOGOFF equ 10000000h +REST_NOSETTINGSASSIST equ 20000000h +REST_NOINTERNETICON equ 40000001h +REST_NORECENTDOCSHISTORY equ 40000002h +REST_NORECENTDOCSMENU equ 40000003h +REST_NOACTIVEDESKTOP equ 40000004h +REST_NOACTIVEDESKTOPCHANGES equ 40000005h +REST_NOFAVORITESMENU equ 40000006h +REST_CLEARRECENTDOCSONEXIT equ 40000007h +REST_CLASSICSHELL equ 40000008h +REST_NOCUSTOMIZEWEBVIEW equ 40000009h +REST_NOHTMLWALLPAPER equ 40000010h +REST_NOCHANGINGWALLPAPER equ 40000011h +REST_NODESKCOMP equ 40000012h +REST_NOADDDESKCOMP equ 40000013h +REST_NODELDESKCOMP equ 40000014h +REST_NOCLOSEDESKCOMP equ 40000015h +REST_NOCLOSE_DRAGDROPBAND equ 40000016h +REST_NOMOVINGBAND equ 40000017h +REST_NOEDITDESKCOMP equ 40000018h +REST_NORESOLVESEARCH equ 40000019h +REST_NORESOLVETRACK equ 4000001Ah +REST_FORCECOPYACLWITHFILE equ 4000001Bh +REST_NOLOGO3CHANNELNOTIFY equ 4000001Ch +REST_NOFORGETSOFTWAREUPDATE equ 4000001Dh +REST_NOSETACTIVEDESKTOP equ 4000001Eh +REST_NOUPDATEWINDOWS equ 4000001Fh +REST_NOCHANGESTARMENU equ 40000020h +REST_NOFOLDEROPTIONS equ 40000021h +REST_HASFINDCOMPUTERS equ 40000022h +REST_INTELLIMENUS equ 40000023h +REST_RUNDLGMEMCHECKBOX equ 40000024h +REST_ARP_ShowPostSetup equ 40000025h +REST_NOCSC equ 40000026h +REST_NOCONTROLPANEL equ 40000027h +REST_ENUMWORKGROUP equ 40000028h +REST_ARP_NOARP equ 40000029h +REST_ARP_NOREMOVEPAGE equ 4000002Ah +REST_ARP_NOADDPAGE equ 4000002Bh +REST_ARP_NOWINSETUPPAGE equ 4000002Ch +REST_GREYMSIADS equ 4000002Dh +REST_NOCHANGEMAPPEDDRIVELABEL equ 4000002Eh +REST_NOCHANGEMAPPEDDRIVECOMMENT equ 4000002Fh +REST_MaxRecentDocs equ 40000030h +REST_NONETWORKCONNECTIONS equ 40000031h +REST_FORCESTARTMENULOGOFF equ 40000032h +REST_NOWEBVIEW equ 40000033h +REST_NOCUSTOMIZETHISFOLDER equ 40000034h +REST_NOENCRYPTION equ 40000035h +; Do NOT use me 40000036h +REST_DONTSHOWSUPERHIDDEN equ 40000037h +REST_NOSHELLSEARCHBUTTON equ 40000038h +REST_NOHARDWARETAB equ 40000039h +REST_NORUNASINSTALLPROMPT equ 4000003Ah +REST_PROMPTRUNASINSTALLNETPATH equ 4000003Bh +REST_NOMANAGEMYCOMPUTERVERB equ 4000003Ch +REST_NORECENTDOCSNETHOOD equ 4000003Dh +REST_DISALLOWRUN equ 4000003Eh +REST_NOWELCOMESCREEN equ 4000003Fh +REST_RESTRICTCPL equ 40000040h +REST_DISALLOWCPL equ 40000041h +REST_NOSMBALLOONTIP equ 40000042h +REST_NOSMHELP equ 40000043h +REST_NOWINKEYS equ 40000044h +REST_NOENCRYPTONMOVE equ 40000045h +REST_NOLOCALMACHINERUN equ 40000046h +REST_NOCURRENTUSERRUN equ 40000047h +REST_NOLOCALMACHINERUNONCE equ 40000048h +REST_NOCURRENTUSERRUNONCE equ 40000049h +REST_FORCEACTIVEDESKTOPON equ 4000004Ah +REST_NOCOMPUTERSNEARME equ 4000004Bh +REST_NOVIEWONDRIVE equ 4000004Ch +REST_NONETCRAWL equ 4000004Dh +REST_NOSHAREDDOCUMENTS equ 4000004Eh +REST_NOSMMYDOCS equ 4000004Fh +REST_NOSMMYPICS equ 40000050h +REST_ALLOWBITBUCKDRIVES equ 40000051h +REST_NONLEGACYSHELLMODE equ 40000052h +REST_NOCONTROLPANELBARRICADE equ 40000053h +REST_NOSTARTPAGE equ 40000054h +REST_NOAUTOTRAYNOTIFY equ 40000055h +REST_NOTASKGROUPING equ 40000056h +REST_NOCDBURNING equ 40000057h +REST_MYCOMPNOPROP equ 40000058h +REST_MYDOCSNOPROP equ 40000059h +REST_NOSTARTPANEL equ 4000005Ah +REST_NODISPLAYAPPEARANCEPAGE equ 4000005Bh +REST_NOTHEMESTAB equ 4000005Ch +REST_NOVISUALSTYLECHOICE equ 4000005Dh +REST_NOSIZECHOICE equ 4000005Eh +REST_NOCOLORCHOICE equ 4000005Fh +REST_SETVISUALSTYLE equ 40000060h +REST_STARTRUNNOHOMEPATH equ 40000061h +REST_NOUSERNAMEINSTARTPANEL equ 40000062h +REST_NOMYCOMPUTERICON equ 40000063h +REST_NOSMNETWORKPLACES equ 40000064h +REST_NOSMPINNEDLIST equ 40000065h +REST_NOSMMYMUSIC equ 40000066h +REST_NOSMEJECTPC equ 40000067h +REST_NOSMMOREPROGRAMS equ 40000068h +REST_NOSMMFUPROGRAMS equ 40000069h +REST_NOTRAYITEMSDISPLAY equ 4000006Ah +REST_NOTOOLBARSONTASKBAR equ 4000006Bh +REST_NOSMCONFIGUREPROGRAMS equ 4000006Fh +REST_HIDECLOCK equ 40000070h +REST_NOLOWDISKSPACECHECKS equ 40000071h +REST_NOENTIRENETWORK equ 40000072h +REST_NODESKTOPCLEANUP equ 40000073h +REST_BITBUCKNUKEONDELETE equ 40000074h +REST_BITBUCKCONFIRMDELETE equ 40000075h +REST_BITBUCKNOPROP equ 40000076h +REST_NODISPBACKGROUND equ 40000077h +REST_NODISPSCREENSAVEPG equ 40000078h +REST_NODISPSETTINGSPG equ 40000079h +REST_NODISPSCREENSAVEPREVIEW equ 4000007Ah +REST_NODISPLAYCPL equ 4000007Bh +REST_HIDERUNASVERB equ 4000007Ch +REST_NOTHUMBNAILCACHE equ 4000007Dh +REST_NOSTRCMPLOGICAL equ 4000007Eh +REST_NOPUBLISHWIZARD equ 4000007Fh +REST_NOONLINEPRINTSWIZARD equ 40000080h +REST_NOWEBSERVICES equ 40000081h +REST_ALLOWUNHASHEDWEBVIEW equ 40000082h +REST_ALLOWLEGACYWEBVIEW equ 40000083h +REST_REVERTWEBVIEWSECURITY equ 40000084h +REST_INHERITCONSOLEHANDLES equ 40000086h +REST_NODISCONNECT equ 41000001h +REST_NOSECURITY equ 41000002h +REST_NOFILEASSOCIATE equ 41000003h + + +;;;; end equates + +;;;; wingdi + +; ************************* wingdi.h equates ****************************** + +NOMIRRORBITMAP equ 80000000h +CAPTUREBLT equ 40000000h +RGN_ERROR equ ERROR +LAYOUT_RTL equ 00000001h +LAYOUT_BTT equ 00000002h +LAYOUT_VBH equ 00000004h +LAYOUT_ORIENTATIONMASK equ (LAYOUT_RTL or LAYOUT_BTT or LAYOUT_VBH) +LAYOUT_BITMAPORIENTATIONPRESERVED equ 00000008h +TA_RTLREADING equ 256 +ETO_GLYPH_INDEX equ 0010h +ETO_RTLREADING equ 0080h +ETO_NUMERICSLOCAL equ 0400h +ETO_NUMERICSLATIN equ 0800h +ETO_IGNORELANGUAGE equ 1000h +ETO_PDY equ 2000h +META_SETLAYOUT equ 0149h +ABORTDOC equ 2 +ENDDOC equ 11 +METAFILE_DRIVER equ 2049 +QUERYDIBSUPPORT equ 3073 +POSTSCRIPT_IDENTIFY equ 4117 +POSTSCRIPT_INJECTION equ 4118 +CHECKJPEGFORMAT equ 4119 +CHECKPNGFORMAT equ 4120 +GET_PS_FEATURESETTING equ 4121 +SPCLPASSTHROUGH2 equ 4568 +PSIDENT_GDICENTRIC equ 0 +PSIDENT_PSCENTRIC equ 1 +PSINJECT_BEGINSTREAM equ 1 +PSINJECT_PSADOBE equ 2 +PSINJECT_PAGESATEND equ 3 +PSINJECT_PAGES equ 4 +PSINJECT_DOCNEEDEDRES equ 5 +PSINJECT_DOCSUPPLIEDRES equ 6 +PSINJECT_PAGEORDER equ 7 +PSINJECT_ORIENTATION equ 8 +PSINJECT_BOUNDINGBOX equ 9 +PSINJECT_DOCUMENTPROCESSCOLORS equ 10 +PSINJECT_COMMENTS equ 11 +PSINJECT_BEGINDEFAULTS equ 12 +PSINJECT_ENDDEFAULTS equ 13 +PSINJECT_BEGINPROLOG equ 14 +PSINJECT_ENDPROLOG equ 15 +PSINJECT_BEGINSETUP equ 16 +PSINJECT_ENDSETUP equ 17 +PSINJECT_TRAILER equ 18 +PSINJECT_EOF equ 19 +PSINJECT_ENDSTREAM equ 20 +PSINJECT_DOCUMENTPROCESSCOLORSATEND equ 21 +PSINJECT_PAGENUMBER equ 100 +PSINJECT_BEGINPAGESETUP equ 101 +PSINJECT_ENDPAGESETUP equ 102 +PSINJECT_PAGETRAILER equ 103 +PSINJECT_PLATECOLOR equ 104 +PSINJECT_SHOWPAGE equ 105 +PSINJECT_PAGEBBOX equ 106 +PSINJECT_ENDPAGECOMMENTS equ 107 +PSINJECT_VMSAVE equ 200 +PSINJECT_VMRESTORE equ 201 +FEATURESETTING_NUP equ 0 +FEATURESETTING_OUTPUT equ 1 +FEATURESETTING_PSLEVEL equ 2 +FEATURESETTING_CUSTPAPER equ 3 +FEATURESETTING_MIRROR equ 4 +FEATURESETTING_NEGATIVE equ 5 +FEATURESETTING_PROTOCOL equ 6 +FEATURESETTING_PRIVATE_BEGIN equ 1000h +FEATURESETTING_PRIVATE_END equ 1FFFh +PSPROTOCOL_ASCII equ 0 +PSPROTOCOL_BCP equ 1 +PSPROTOCOL_TBCP equ 2 +PSPROTOCOL_BINARY equ 3 +QDI_SETDIBITS equ 1 +QDI_GETDIBITS equ 2 +QDI_DIBTOSCREEN equ 4 +QDI_STRETCHDIB equ 8 +OBJ_COLORSPACE equ 14 +CS_ENABLE equ 00000001h +CS_DISABLE equ 00000002h +CS_DELETE_TRANSFORM equ 00000003h +LCS_SIGNATURE equ 'PSOC' +LCS_sRGB equ 'sRGB' +LCS_WINDOWS_COLOR_SPACE equ 'Win ' +LCS_CALIBRATED_RGB equ 00000000h +LCS_GM_BUSINESS equ 00000001h +LCS_GM_GRAPHICS equ 00000002h +LCS_GM_IMAGES equ 00000004h +LCS_GM_ABS_COLORIMETRIC equ 00000008h +CM_OUT_OF_GAMUT equ 255 +CM_IN_GAMUT equ 0 +ICM_ADDPROFILE equ 1 +ICM_DELETEPROFILE equ 2 +ICM_QUERYPROFILE equ 3 +ICM_SETDEFAULTPROFILE equ 4 +ICM_REGISTERICMATCHER equ 5 +ICM_UNREGISTERICMATCHER equ 6 +ICM_QUERYMATCH equ 7 +PROFILE_LINKED equ 'LINK' +PROFILE_EMBEDDED equ 'MBED' +BI_JPEG equ 4 +BI_PNG equ 5 +TCI_SRCLOCALE equ 1000h +NTM_NONNEGATIVE_AC equ 00010000h +NTM_PS_OPENTYPE equ 00020000h +NTM_TT_OPENTYPE equ 00040000h +NTM_MULTIPLEMASTER equ 00080000h +NTM_TYPE1 equ 00100000h +NTM_DSIG equ 00200000h +OUT_SCREEN_OUTLINE_PRECIS equ 9 +OUT_PS_ONLY_PRECIS equ 10 +NONANTIALIASED_QUALITY equ 3 +ANTIALIASED_QUALITY equ 4 +CLEARTYPE_QUALITY equ 5 +CLEARTYPE_NATURAL_QUALITY equ 6 +HANGUL_CHARSET equ 129 +VIETNAMESE_CHARSET equ 163 +FS_VIETNAMESE equ 00000100h +DC_BRUSH equ 18 +DC_PEN equ 19 +BS_MONOPATTERN equ 9 +VREFRESH equ 116 +DESKTOPVERTRES equ 117 +DESKTOPHORZRES equ 118 +BLTALIGNMENT equ 119 +SHADEBLENDCAPS equ 120 +COLORMGMTCAPS equ 121 +PC_POLYPOLYGON equ 256 +PC_PATHS equ 512 +SB_NONE equ 00000000h +SB_CONST_ALPHA equ 00000001h +SB_PIXEL_ALPHA equ 00000002h +SB_PREMULT_ALPHA equ 00000004h +SB_GRAD_RECT equ 00000010h +SB_GRAD_TRI equ 00000020h +CM_NONE equ 00000000h +CM_DEVICE_ICM equ 00000001h +CM_GAMMA_RAMP equ 00000002h +CM_CMYK_COLOR equ 00000004h +SYSPAL_NOSTATIC256 equ 3 +DM_POSITION equ 00000020h +DM_NUP equ 00000040h +DM_DISPLAYORIENTATION equ 00000080h +DM_LOGPIXELS equ 00020000h +DM_BITSPERPEL equ 00040000h +DM_PELSWIDTH equ 00080000h +DM_PELSHEIGHT equ 00100000h +DM_DISPLAYFLAGS equ 00200000h +DM_DISPLAYFREQUENCY equ 00400000h +DM_PANNINGWIDTH equ 08000000h +DM_PANNINGHEIGHT equ 10000000h +DM_DISPLAYFIXEDOUTPUT equ 20000000h +DMPAPER_DBL_JAPANESE_POSTCARD equ 69 +DMPAPER_A6 equ 70 +DMPAPER_JENV_KAKU2 equ 71 +DMPAPER_JENV_KAKU3 equ 72 +DMPAPER_JENV_CHOU3 equ 73 +DMPAPER_JENV_CHOU4 equ 74 +DMPAPER_LETTER_ROTATED equ 75 +DMPAPER_A3_ROTATED equ 76 +DMPAPER_A4_ROTATED equ 77 +DMPAPER_A5_ROTATED equ 78 +DMPAPER_B4_JIS_ROTATED equ 79 +DMPAPER_B5_JIS_ROTATED equ 80 +DMPAPER_JAPANESE_POSTCARD_ROTATED equ 81 +DMPAPER_DBL_JAPANESE_POSTCARD_ROTATED equ 82 +DMPAPER_A6_ROTATED equ 83 +DMPAPER_JENV_KAKU2_ROTATED equ 84 +DMPAPER_JENV_KAKU3_ROTATED equ 85 +DMPAPER_JENV_CHOU3_ROTATED equ 86 +DMPAPER_JENV_CHOU4_ROTATED equ 87 +DMPAPER_B6_JIS equ 88 +DMPAPER_B6_JIS_ROTATED equ 89 +DMPAPER_12X11 equ 90 +DMPAPER_JENV_YOU4 equ 91 +DMPAPER_JENV_YOU4_ROTATED equ 92 +DMPAPER_P16K equ 93 +DMPAPER_P32K equ 94 +DMPAPER_P32KBIG equ 95 +DMPAPER_PENV_1 equ 96 +DMPAPER_PENV_2 equ 97 +DMPAPER_PENV_3 equ 98 +DMPAPER_PENV_4 equ 99 +DMPAPER_PENV_5 equ 100 +DMPAPER_PENV_6 equ 101 +DMPAPER_PENV_7 equ 102 +DMPAPER_PENV_8 equ 103 +DMPAPER_PENV_9 equ 104 +DMPAPER_PENV_10 equ 105 +DMPAPER_P16K_ROTATED equ 106 +DMPAPER_P32K_ROTATED equ 107 +DMPAPER_P32KBIG_ROTATED equ 108 +DMPAPER_PENV_1_ROTATED equ 109 +DMPAPER_PENV_2_ROTATED equ 110 +DMPAPER_PENV_3_ROTATED equ 111 +DMPAPER_PENV_4_ROTATED equ 112 +DMPAPER_PENV_5_ROTATED equ 113 +DMPAPER_PENV_6_ROTATED equ 114 +DMPAPER_PENV_7_ROTATED equ 115 +DMPAPER_PENV_8_ROTATED equ 116 +DMPAPER_PENV_9_ROTATED equ 117 +DMPAPER_PENV_10_ROTATED equ 118 +DMBIN_FORMSOURCE equ 15 +DMDO_DEFAULT equ 0 +DMDO_90 equ 1 +DMDO_180 equ 2 +DMDO_270 equ 3 +DMDFO_DEFAULT equ 0 +DMDFO_STRETCH equ 1 +DMDFO_CENTER equ 2 +DMDISPLAYFLAGS_TEXTMODE equ 00000004h +DMNUP_SYSTEM equ 1 +DMNUP_ONEUP equ 2 +DMICM_COLORIMETRIC equ 3 +DMICM_ABS_COLORIMETRIC equ 4 +DMDITHER_ERRORDIFFUSION equ 5 +DMDITHER_RESERVED6 equ 6 +DMDITHER_RESERVED7 equ 7 +DMDITHER_RESERVED8 equ 8 +DMDITHER_RESERVED9 equ 9 +DISPLAY_DEVICE_ATTACHED_TO_DESKTOP equ 00000001h +DISPLAY_DEVICE_MULTI_DRIVER equ 00000002h +DISPLAY_DEVICE_PRIMARY_DEVICE equ 00000004h +DISPLAY_DEVICE_MIRRORING_DRIVER equ 00000008h +DISPLAY_DEVICE_VGA_COMPATIBLE equ 00000010h +DISPLAY_DEVICE_REMOVABLE equ 00000020h +DISPLAY_DEVICE_MODESPRUNED equ 08000000h +DISPLAY_DEVICE_REMOTE equ 04000000h +DISPLAY_DEVICE_DISCONNECT equ 02000000h +DISPLAY_DEVICE_ACTIVE equ 00000001h +DISPLAY_DEVICE_ATTACHED equ 00000002h +SYSRGN equ 4 +GGO_BEZIER equ 3 +GGO_UNHINTED equ 0100h +TT_PRIM_CSPLINE equ 3 +GCPCLASS_POSTBOUNDLTR equ 20h +GCPCLASS_POSTBOUNDRTL equ 10h +GCPGLYPH_LINKBEFORE equ 8000h +GCPGLYPH_LINKAFTER equ 4000h +PFD_TYPE_RGBA equ 0 +PFD_TYPE_COLORINDEX equ 1 +PFD_MAIN_PLANE equ 0 +PFD_OVERLAY_PLANE equ 1 +PFD_UNDERLAY_PLANE equ (-1) +PFD_DOUBLEBUFFER equ 00000001h +PFD_STEREO equ 00000002h +PFD_DRAW_TO_WINDOW equ 00000004h +PFD_DRAW_TO_BITMAP equ 00000008h +PFD_SUPPORT_GDI equ 00000010h +PFD_SUPPORT_OPENGL equ 00000020h +PFD_GENERIC_FORMAT equ 00000040h +PFD_NEED_PALETTE equ 00000080h +PFD_NEED_SYSTEM_PALETTE equ 00000100h +PFD_SWAP_EXCHANGE equ 00000200h +PFD_SWAP_COPY equ 00000400h +PFD_SWAP_LAYER_BUFFERS equ 00000800h +PFD_GENERIC_ACCELERATED equ 00001000h +PFD_SUPPORT_DIRECTDRAW equ 00002000h +PFD_DEPTH_DONTCARE equ 20000000h +PFD_DOUBLEBUFFER_DONTCARE equ 40000000h +PFD_STEREO_DONTCARE equ 80000000h +DC_MANUFACTURER equ 23 +DC_MODEL equ 24 +DC_PERSONALITY equ 25 +DC_PRINTRATE equ 26 +DC_PRINTRATEUNIT equ 27 +PRINTRATEUNIT_PPM equ 1 +PRINTRATEUNIT_CPS equ 2 +PRINTRATEUNIT_LPM equ 3 +PRINTRATEUNIT_IPM equ 4 +DC_PRINTERMEM equ 28 +DC_MEDIAREADY equ 29 +DC_STAPLE equ 30 +DC_PRINTRATEPPM equ 31 +DC_COLORDEVICE equ 32 +DC_NUP equ 33 +DC_MEDIATYPENAMES equ 34 +DC_MEDIATYPES equ 35 +GS_8BIT_INDICES equ 00000001h +GGI_MARK_NONEXISTING_GLYPHS equ 0001h +MM_MAX_NUMAXES equ 16 +FR_PRIVATE equ 10h +FR_NOT_ENUM equ 20h +MM_MAX_AXES_NAMELEN equ 16 +AC_SRC_OVER equ 00h +AC_SRC_ALPHA equ 01h +GRADIENT_FILL_RECT_H equ 00000000h +GRADIENT_FILL_RECT_V equ 00000001h +GRADIENT_FILL_TRIANGLE equ 00000002h +GRADIENT_FILL_OP_FLAG equ 000000ffh +DI_APPBANDING equ 00000001h +DI_ROPS_READ_DESTINATION equ 00000002h +ICM_DONE_OUTSIDEDC equ 4 +EMR_GLSRECORD equ 102 +EMR_GLSBOUNDEDRECORD equ 103 +EMR_PIXELFORMAT equ 104 +EMR_RESERVED_105 equ 105 +EMR_RESERVED_106 equ 106 +EMR_RESERVED_107 equ 107 +EMR_RESERVED_108 equ 108 +EMR_RESERVED_109 equ 109 +EMR_RESERVED_110 equ 110 +EMR_COLORCORRECTPALETTE equ 111 +EMR_SETICMPROFILEA equ 112 +EMR_SETICMPROFILEW equ 113 +EMR_ALPHABLEND equ 114 +EMR_SETLAYOUT equ 115 +EMR_TRANSPARENTBLT equ 116 +EMR_RESERVED_117 equ 117 +EMR_GRADIENTFILL equ 118 +EMR_RESERVED_119 equ 119 +EMR_RESERVED_120 equ 120 +EMR_COLORMATCHTOTARGETW equ 121 +EMR_CREATECOLORSPACEW equ 122 +SETICMPROFILE_EMBEDED equ 00000001h +CREATECOLORSPACE_EMBEDED equ 00000001h +COLORMATCHTOTARGET_EMBEDED equ 00000001h +GDICOMMENT_IDENTIFIER equ 43494447h +GDICOMMENT_WINDOWS_METAFILE equ 80000001h +GDICOMMENT_BEGINGROUP equ 00000002h +GDICOMMENT_ENDGROUP equ 00000003h +GDICOMMENT_MULTIFORMATS equ 40000004h +EPS_SIGNATURE equ 46535045h +GDICOMMENT_UNICODE_STRING equ 00000040h +GDICOMMENT_UNICODE_END equ 00000080h +WGL_FONT_LINES equ 0 +WGL_FONT_POLYGONS equ 1 +LPD_DOUBLEBUFFER equ 00000001h +LPD_STEREO equ 00000002h +LPD_SUPPORT_GDI equ 00000010h +LPD_SUPPORT_OPENGL equ 00000020h +LPD_SHARE_DEPTH equ 00000040h +LPD_SHARE_STENCIL equ 00000080h +LPD_SHARE_ACCUM equ 00000100h +LPD_SWAP_EXCHANGE equ 00000200h +LPD_SWAP_COPY equ 00000400h +LPD_TRANSPARENT equ 00001000h +LPD_TYPE_RGBA equ 0 +LPD_TYPE_COLORINDEX equ 1 +WGL_SWAP_MAIN_PLANE equ 00000001h +WGL_SWAP_OVERLAY1 equ 00000002h +WGL_SWAP_OVERLAY2 equ 00000004h +WGL_SWAP_OVERLAY3 equ 00000008h +WGL_SWAP_OVERLAY4 equ 00000010h +WGL_SWAP_OVERLAY5 equ 00000020h +WGL_SWAP_OVERLAY6 equ 00000040h +WGL_SWAP_OVERLAY7 equ 00000080h +WGL_SWAP_OVERLAY8 equ 00000100h +WGL_SWAP_OVERLAY9 equ 00000200h +WGL_SWAP_OVERLAY10 equ 00000400h +WGL_SWAP_OVERLAY11 equ 00000800h +WGL_SWAP_OVERLAY12 equ 00001000h +WGL_SWAP_OVERLAY13 equ 00002000h +WGL_SWAP_OVERLAY14 equ 00004000h +WGL_SWAP_OVERLAY15 equ 00008000h +WGL_SWAP_UNDERLAY1 equ 00010000h +WGL_SWAP_UNDERLAY2 equ 00020000h +WGL_SWAP_UNDERLAY3 equ 00040000h +WGL_SWAP_UNDERLAY4 equ 00080000h +WGL_SWAP_UNDERLAY5 equ 00100000h +WGL_SWAP_UNDERLAY6 equ 00200000h +WGL_SWAP_UNDERLAY7 equ 00400000h +WGL_SWAP_UNDERLAY8 equ 00800000h +WGL_SWAP_UNDERLAY9 equ 01000000h +WGL_SWAP_UNDERLAY10 equ 02000000h +WGL_SWAP_UNDERLAY11 equ 04000000h +WGL_SWAP_UNDERLAY12 equ 08000000h +WGL_SWAP_UNDERLAY13 equ 10000000h +WGL_SWAP_UNDERLAY14 equ 20000000h +WGL_SWAP_UNDERLAY15 equ 40000000h +WGL_SWAPMULTIPLE_MAX equ 16 + +ERROR equ 0 +STARTDOC equ 10 +SETMITERLIMIT equ 23 +EXTTEXTOUT equ 512 +STRETCHBLT equ 2048 + +ETO_REVERSE_INDEX_MAP equ 10000h +GDIPLUS_TS_QUERYVER equ 4122 +GDIPLUS_TS_RECORD equ 4123 +MILCORE_TS_QUERYVER_RESULT_FALSE equ 0h +MILCORE_TS_QUERYVER_RESULT_TRUE equ 7FFFFFFFh +DISPLAY_DEVICE_TS_COMPATIBLE equ 00200000h +DISPLAY_DEVICE_UNSAFE_MODES_ON equ 00080000h +PFD_DIRECT3D_ACCELERATED equ 00004000h +PFD_SUPPORT_COMPOSITION equ 00008000h +GDIREGISTERDDRAWPACKETVERSION equ 1h + + +;;;; end wingdi + +;;;; win32st + +POINT STRUCT + x DWORD ? + y DWORD ? +POINT ENDS + +POINTL STRUCT + x DWORD ? + y DWORD ? +POINTL ENDS + +POINTS STRUCT + x WORD ? + y WORD ? +POINTS ENDS + +RECT STRUCT + left dd ? + top dd ? + right dd ? + bottom dd ? +RECT ENDS + +SIZEL STRUCT + x DWORD ? + y DWORD ? +SIZEL ENDS + +_SIZE STRUCT + x DWORD ? + y DWORD ? +_SIZE ENDS + +MSG STRUCT + hwnd DWORD ? + message DWORD ? + wParam DWORD ? + lParam DWORD ? + time DWORD ? + pt POINT <> +MSG ENDS + +SID_AND_ATTRIBUTES STRUCT + Sid DWORD ? + Attributes DWORD ? +SID_AND_ATTRIBUTES ENDS + +SID_IDENTIFIER_AUTHORITY STRUCT + Value BYTE 6 dup(?) +SID_IDENTIFIER_AUTHORITY ENDS + +OVERLAPPED STRUCT + Internal DWORD ? + InternalHigh DWORD ? + loffset DWORD ? + OffsetHigh DWORD ? + hEvent DWORD ? +OVERLAPPED ENDS + +SECURITY_ATTRIBUTES STRUCT + nLength DWORD ? + lpSecurityDescriptor DWORD ? + bInheritHandle DWORD ? +SECURITY_ATTRIBUTES ENDS + +PROCESS_INFORMATION STRUCT + hProcess DWORD ? + hThread DWORD ? + dwProcessId DWORD ? + dwThreadId DWORD ? +PROCESS_INFORMATION ENDS + +FILETIME STRUCT + dwLowDateTime DWORD ? + dwHighDateTime DWORD ? +FILETIME ENDS + +SYSTEMTIME STRUCT + wYear WORD ? + wMonth WORD ? + wDayOfWeek WORD ? + wDay WORD ? + wHour WORD ? + wMinute WORD ? + wSecond WORD ? + wMilliseconds WORD ? +SYSTEMTIME ENDS + +COMMPROP STRUCT + wPacketiLength WORD ? + wPacketVersion WORD ? + dwServiceMask DWORD ? + dwReserved1 DWORD ? + dwMaxTxQueue DWORD ? + dwMaxRxQueue DWORD ? + dwMaxBaud DWORD ? + dwProvSubType DWORD ? + dwProvCapabilities DWORD ? + dwSettableParams DWORD ? + dwSettableBaud DWORD ? + wSettableData WORD ? + wSettableStopParity WORD ? + dwCurrentTxQueue DWORD ? + dwCurrentRxQueue DWORD ? + dwProvSpec1 DWORD ? + dwProvSpec2 DWORD ? + wcProvChar WORD ? +COMMPROP ENDS + +COMRECORD RECORD fCtsHold:1, fDsrHold:1,fRlsdHold:1,fXoffHold:1,fXoffSent:1,fEof:1,fTxim:1,fReserved:25 + +COMSTAT STRUCT + comrec COMRECORD <> + cbInQue DWORD ? + cbOutQue DWORD ? +COMSTAT ENDS + +COMMTIMEOUTS STRUCT + ReadIntervalTimeout DWORD ? + ReadTotalTimeoutMultiplier DWORD ? + ReadTotalTimeoutConstant DWORD ? + WriteTotalTimeoutMultiplier DWORD ? + WriteTotalTimeoutConstant DWORD ? +COMMTIMEOUTS ENDS + +SYSTEM_INFO STRUCT + wProcessorArchitecture WORD ? + wReserved WORD ? + dwPageSize DWORD ? + lpMinimumApplicationAddress DWORD ? + lpMaximumApplicationAddress DWORD ? + dwActiveProcessorMask DWORD ? + dwNumberOfProcessors DWORD ? + dwProcessorType DWORD ? + dwAllocationGranularity DWORD ? + wProcessorLevel WORD ? + wProcessorRevision WORD ? +SYSTEM_INFO ENDS + +MEMORYSTATUS STRUCT + dwLength DWORD ? + dwMemoryLoad DWORD ? + dwTotalPhys DWORD ? + dwAvailPhys DWORD ? + dwTotalPageFile DWORD ? + dwAvailPageFile DWORD ? + dwTotalVirtual DWORD ? + dwAvailVirtual DWORD ? +MEMORYSTATUS ENDS + +TPMPARAMS STRUCT + cbSize DWORD ? + rcExclude RECT <> +TPMPARAMS ENDS + + +GENERIC_MAPPING STRUCT + GenericRead DWORD ? + GenericWrite DWORD ? + GenericExecute DWORD ? + GenericAll DWORD ? +GENERIC_MAPPING ENDS + +LUID STRUCT + LowPart DWORD ? + HighPart DWORD ? +LUID ENDS + +ACL STRUCT + AclRevision BYTE ? + Sbz1 BYTE ? + AclSize WORD ? + AceCount WORD ? + Sbz2 WORD ? +ACL ENDS + +ACE_HEADER STRUCT + AceType db ? + AceFlags db ? + AceSize dw ? +ACE_HEADER ENDS + +ACCESS_ALLOWED_ACE STRUCT + Header ACE_HEADER <> + imask DWORD ? + SidStart DWORD ? +ACCESS_ALLOWED_ACE ENDS + +ACCESS_DENIED_ACE STRUCT + Header ACE_HEADER <> + imask DWORD ? + SidStart DWORD ? +ACCESS_DENIED_ACE ENDS + +SYSTEM_AUDIT_ACE STRUCT + Header ACE_HEADER <> + imask DWORD ? + SidStart DWORD ? +SYSTEM_AUDIT_ACE ENDS + +SYSTEM_ALARM_ACE STRUCT + Header ACE_HEADER <> + imask DWORD ? + SidStart DWORD ? +SYSTEM_ALARM_ACE ENDS + +ACL_REVISION_INFORMATION STRUCT + AclRevision DWORD ? +ACL_REVISION_INFORMATION ENDS + +ACL_SIZE_INFORMATION STRUCT + AceCount DWORD ? + AclBytesInUse DWORD ? + AclBytesFree DWORD ? +ACL_SIZE_INFORMATION ENDS + +SECURITY_DESCRIPTOR STRUCT + Revision BYTE ? + Sbz1 BYTE ? + Control WORD ? + Owner DWORD ? + lGroup DWORD ? + Sacl DWORD ? + Dacl DWORD ? +SECURITY_DESCRIPTOR ENDS + +LUID_AND_ATTRIBUTES STRUCT + Luid LUID <> + Attributes dd ? +LUID_AND_ATTRIBUTES ENDS + +PRIVILEGE_SET STRUCT + PrivilegeCount DWORD ? + Control DWORD ? + Privilege LUID_AND_ATTRIBUTES ANYSIZE_ARRAY dup(<>) +PRIVILEGE_SET ENDS + +EXCEPTION_RECORD STRUCT + ExceptionCode DWORD ? + ExceptionFlags DWORD ? + pExceptionRecord DWORD ? + ExceptionAddress DWORD ? + NumberParameters DWORD ? + ExceptionInformation DWORD EXCEPTION_MAXIMUM_PARAMETERS dup(?) +EXCEPTION_RECORD ENDS + +EXCEPTION_DEBUG_INFO STRUCT + pExceptionRecord EXCEPTION_RECORD + dwFirstChance DWORD ? +EXCEPTION_DEBUG_INFO ENDS + +CREATE_THREAD_DEBUG_INFO STRUCT + hThread DWORD ? + lpThreadLocalBase DWORD ? + lpStartAddress DWORD ? +CREATE_THREAD_DEBUG_INFO ENDS + +CREATE_PROCESS_DEBUG_INFO STRUCT + hFile DWORD ? + hProcess DWORD ? + hThread DWORD ? + lpBaseOfImage DWORD ? + dwDebugInfoFileOffset DWORD ? + nDebugInfoSize DWORD ? + lpThreadLocalBase DWORD ? + lpStartAddress DWORD ? + lpImageName DWORD ? + fUnicode WORD ? +CREATE_PROCESS_DEBUG_INFO ENDS + +EXIT_THREAD_DEBUG_INFO STRUCT + dwExitCode DWORD ? +EXIT_THREAD_DEBUG_INFO ENDS + +EXIT_PROCESS_DEBUG_INFO STRUCT + dwExitCode DWORD ? +EXIT_PROCESS_DEBUG_INFO ENDS + +LOAD_DLL_DEBUG_INFO STRUCT + hFile DWORD ? + lpBaseOfDll DWORD ? + dwDebugInfoFileOffset DWORD ? + nDebugInfoSize DWORD ? + lpImageName DWORD ? + fUnicode WORD ? +LOAD_DLL_DEBUG_INFO ENDS + +UNLOAD_DLL_DEBUG_INFO STRUCT + lpBaseOfDll DWORD ? +UNLOAD_DLL_DEBUG_INFO ENDS + +OUTPUT_DEBUG_STRING_INFO STRUCT + lpDebugStringData DWORD ? + fUnicode WORD ? + nDebugStringiLength WORD ? +OUTPUT_DEBUG_STRING_INFO ENDS + +RIP_INFO STRUCT + dwError DWORD ? + dwType DWORD ? +RIP_INFO ENDS + +OFSTRUCT STRUCT + cBytes BYTE ? + fFixedDisk BYTE ? + nErrCode WORD ? + Reserved1 WORD ? + Reserved2 WORD ? + szPathName BYTE OFS_MAXPATHNAME dup(?) +OFSTRUCT ENDS + +WNDCLASSEXA STRUCT + cbSize DWORD ? + style DWORD ? + lpfnWndProc DWORD ? + cbClsExtra DWORD ? + cbWndExtra DWORD ? + hInstance DWORD ? + hIcon DWORD ? + hCursor DWORD ? + hbrBackground DWORD ? + lpszMenuName DWORD ? + lpszClassName DWORD ? + hIconSm DWORD ? +WNDCLASSEXA ENDS + +WNDCLASSEXW STRUCT + cbSize DWORD ? + style DWORD ? + lpfnWndProc DWORD ? + cbClsExtra DWORD ? + cbWndExtra DWORD ? + hInstance DWORD ? + hIcon DWORD ? + hCursor DWORD ? + hbrBackground DWORD ? + lpszMenuName DWORD ? + lpszClassName DWORD ? + hIconSm DWORD ? +WNDCLASSEXW ENDS + +IFDEF __UNICODE__ + WNDCLASSEX equ +ELSE + WNDCLASSEX equ +ENDIF + +WNDCLASSA STRUCT + style DWORD ? + lpfnWndProc DWORD ? + cbClsExtra DWORD ? + cbWndExtra DWORD ? + hInstance DWORD ? + hIcon DWORD ? + hCursor DWORD ? + hbrBackground DWORD ? + lpszMenuName DWORD ? + lpszClassName DWORD ? +WNDCLASSA ENDS + +WNDCLASSW STRUCT + style DWORD ? + lpfnWndProc DWORD ? + cbClsExtra DWORD ? + cbWndExtra DWORD ? + hInstance DWORD ? + hIcon DWORD ? + hCursor DWORD ? + hbrBackground DWORD ? + lpszMenuName DWORD ? + lpszClassName DWORD ? +WNDCLASSW ENDS + +IFDEF __UNICODE__ + WNDCLASS equ +ELSE + WNDCLASS equ +ENDIF + +RTL_CRITICAL_SECTION STRUCT + DebugInfo DWORD ? + LockCount LONG ? + RecursionCount LONG ? + OwningThread HANDLE ? + LockSemaphore HANDLE ? + SpinCount DWORD ? +RTL_CRITICAL_SECTION ENDS + +CRITICAL_SECTION equ + +BY_HANDLE_FILE_INFORMATION STRUCT + dwFileAttributes DWORD ? + ftCreationTime FILETIME <> + ftLastAccessTime FILETIME <> + ftLastWriteTime FILETIME <> + dwVolumeSerialNumber DWORD ? + nFileSizeHigh DWORD ? + nFileSizeLow DWORD ? + nNumberOfLinks DWORD ? + nFileIndexHigh DWORD ? + nFileIndexLow DWORD ? +BY_HANDLE_FILE_INFORMATION ENDS + +MEMORY_BASIC_INFORMATION STRUCT + BaseAddress DWORD ? + AllocationBase DWORD ? + AllocationProtect DWORD ? + RegionSize DWORD ? + State DWORD ? + Protect DWORD ? + lType DWORD ? +MEMORY_BASIC_INFORMATION ENDS + +EVENTLOGRECORD STRUCT + iLength DWORD ? + Reserved DWORD ? + RecordNumber DWORD ? + TimeGenerated DWORD ? + TimeWritten DWORD ? + EventID DWORD ? + EventType WORD ? + NumStrings WORD ? + EventCategory WORD ? + ReservedFlags WORD ? + ClosingRecordNumber DWORD ? + StringOffset DWORD ? + UserSidiLength DWORD ? + UserSidOffset DWORD ? + DataiLength DWORD ? + DataOffset DWORD ? +EVENTLOGRECORD ENDS + +TOKEN_GROUPS STRUCT + GroupCount DWORD ? + Groups SID_AND_ATTRIBUTES ANYSIZE_ARRAY dup(<>) +TOKEN_GROUPS ENDS + +TOKEN_PRIVILEGES STRUCT + PrivilegeCount DWORD ? + Privileges LUID_AND_ATTRIBUTES ANYSIZE_ARRAY dup(<>) +TOKEN_PRIVILEGES ENDS + +FLOATING_SAVE_AREA STRUCT + ControlWord DWORD ? + StatusWord DWORD ? + TagWord DWORD ? + ErrorOffset DWORD ? + ErrorSelector DWORD ? + DataOffset DWORD ? + DataSelector DWORD ? + RegisterArea BYTE SIZE_OF_80387_REGISTERS dup(?) + Cr0NpxState DWORD ? +FLOATING_SAVE_AREA ENDS + +CONTEXT STRUCT + ContextFlags DWORD ? + iDr0 DWORD ? + iDr1 DWORD ? + iDr2 DWORD ? + iDr3 DWORD ? + iDr6 DWORD ? + iDr7 DWORD ? + FloatSave FLOATING_SAVE_AREA <> + regGs DWORD ? + regFs DWORD ? + regEs DWORD ? + regDs DWORD ? + regEdi DWORD ? + regEsi DWORD ? + regEbx DWORD ? + regEdx DWORD ? + regEcx DWORD ? + regEax DWORD ? + regEbp DWORD ? + regEip DWORD ? + regCs DWORD ? + regFlag DWORD ? + regEsp DWORD ? + regSs DWORD ? + ExtendedRegisters db MAXIMUM_SUPPORTED_EXTENSION dup(?) +CONTEXT ENDS + +EXCEPTION_POINTERS STRUCT + pExceptionRecord DWORD ? + ContextRecord DWORD ? +EXCEPTION_POINTERS ENDS + +LDT_BYTES STRUCT + BaseMid BYTE ? + Flags1 BYTE ? + Flags2 BYTE ? + BaseHi BYTE ? +LDT_BYTES ENDS + +TIME_ZONE_INFORMATION STRUCT + Bias DWORD ? + StandardName WORD 32 dup(?) + StandardDate SYSTEMTIME <> + StandardBias DWORD ? + DaylightName WORD 32 dup(?) + DaylightDate SYSTEMTIME <> + DaylightBias DWORD ? +TIME_ZONE_INFORMATION ENDS + +LARGE_INTEGER UNION + STRUCT + LowPart DWORD ? + HighPart DWORD ? + ENDS + QuadPart QWORD ? +LARGE_INTEGER ENDS + +WIN32_STREAM_ID STRUCT + dwStreamID DWORD ? + dwStreamAttributes DWORD ? + dwSize LARGE_INTEGER <> + dwStreamNameSize DWORD ? + cStreamName BYTE ANYSIZE_ARRAY dup(?) +WIN32_STREAM_ID ENDS + +STARTUPINFOA STRUCT + cb DWORD ? + lpReserved DWORD ? + lpDesktop DWORD ? + lpTitle DWORD ? + dwX DWORD ? + dwY DWORD ? + dwXSize DWORD ? + dwYSize DWORD ? + dwXCountChars DWORD ? + dwYCountChars DWORD ? + dwFillAttribute DWORD ? + dwFlags DWORD ? + wShowWindow WORD ? + cbReserved2 WORD ? + lpReserved2 DWORD ? + hStdInput DWORD ? + hStdOutput DWORD ? + hStdError DWORD ? +STARTUPINFOA ENDS + +STARTUPINFOW STRUCT + cb DWORD ? + lpReserved DWORD ? + lpDesktop DWORD ? + lpTitle DWORD ? + dwX DWORD ? + dwY DWORD ? + dwXSize DWORD ? + dwYSize DWORD ? + dwXCountChars DWORD ? + dwYCountChars DWORD ? + dwFillAttribute DWORD ? + dwFlags DWORD ? + wShowWindow WORD ? + cbReserved2 WORD ? + lpReserved2 DWORD ? + hStdInput DWORD ? + hStdOutput DWORD ? + hStdError DWORD ? +STARTUPINFOW ENDS + +IFDEF __UNICODE__ + STARTUPINFO equ +ELSE + STARTUPINFO equ +ENDIF + +WIN32_FIND_DATAA STRUCT + dwFileAttributes DWORD ? + ftCreationTime FILETIME <> + ftLastAccessTime FILETIME <> + ftLastWriteTime FILETIME <> + nFileSizeHigh DWORD ? + nFileSizeLow DWORD ? + dwReserved0 DWORD ? + dwReserved1 DWORD ? + cFileName BYTE MAX_PATH dup (?) + cAlternateFileName BYTE 14 dup (?) +WIN32_FIND_DATAA ENDS + +WIN32_FIND_DATAW STRUCT + dwFileAttributes DWORD ? + ftCreationTime FILETIME <> + ftLastAccessTime FILETIME <> + ftLastWriteTime FILETIME <> + nFileSizeHigh DWORD ? + nFileSizeLow DWORD ? + dwReserved0 DWORD ? + dwReserved1 DWORD ? + cFileName WORD MAX_PATH dup (?) + cAlternateFileName WORD 14 dup (?) +WIN32_FIND_DATAW ENDS + +IFDEF __UNICODE__ + WIN32_FIND_DATA equ +ELSE + WIN32_FIND_DATA equ +ENDIF + +CPINFO STRUCT + MaxCharSize DWORD ? + DefaultChar BYTE MAX_DEFAULTCHAR dup(?) + LeadByte BYTE MAX_LEADBYTES dup(?) +CPINFO ENDS + +NUMBERFMTA STRUCT + NumDigits DWORD ? + LeadingZero DWORD ? + Grouping DWORD ? + lpDecimalSep DWORD ? + lpThousandSep DWORD ? + NegativeOrder DWORD ? +NUMBERFMTA ENDS + +NUMBERFMTW STRUCT + NumDigits DWORD ? + LeadingZero DWORD ? + Grouping DWORD ? + lpDecimalSep DWORD ? + lpThousandSep DWORD ? + NegativeOrder DWORD ? +NUMBERFMTW ENDS + +IFDEF __UNICODE__ + NUMBERFMT equ +ELSE + NUMBERFMT equ +ENDIF + +CURRENCYFMTA STRUCT + NumDigits DWORD ? + LeadingZero DWORD ? + Grouping DWORD ? + lpDecimalSep DWORD ? + lpThousandSep DWORD ? + NegativeOrder DWORD ? + PositiveOrder DWORD ? + lpCurrencySymbol DWORD ? +CURRENCYFMTA ENDS + +CURRENCYFMTW STRUCT + NumDigits DWORD ? + LeadingZero DWORD ? + Grouping DWORD ? + lpDecimalSep DWORD ? + lpThousandSep DWORD ? + NegativeOrder DWORD ? + PositiveOrder DWORD ? + lpCurrencySymbol DWORD ? +CURRENCYFMTW ENDS + +IFDEF __UNICODE__ + CURRENCYFMT equ +ELSE + CURRENCYFMT equ +ENDIF + +COORD STRUCT + x WORD ? + y WORD ? +COORD ENDS + +SMALL_RECT STRUCT + Left WORD ? + Top WORD ? + Right WORD ? + Bottom WORD ? +SMALL_RECT ENDS + +CHARTYPE UNION + UnicodeChar WORD ? + AsciiChar db ? +CHARTYPE ENDS + +MOUSE_EVENT_RECORD STRUCT + dwMousePosition COORD <> + dwButtonState DWORD ? + dwControlKeyState DWORD ? + dwEventFlags DWORD ? +MOUSE_EVENT_RECORD ENDS + +KEY_EVENT_RECORD STRUCT + bKeyDown DWORD ? + wRepeatCount WORD ? + wVirtualKeyCode WORD ? + wVirtualScanCode WORD ? + UNION + UnicodeChar WORD ? + AsciiChar BYTE ? + ENDS + dwControlKeyState DWORD ? +KEY_EVENT_RECORD ENDS + +WINDOW_BUFFER_SIZE_RECORD STRUCT + dwSize COORD <> +WINDOW_BUFFER_SIZE_RECORD ENDS + +MENU_EVENT_RECORD STRUCT + dwCommandId DWORD ? +MENU_EVENT_RECORD ENDS + +FOCUS_EVENT_RECORD STRUCT + bSetFocus DWORD ? +FOCUS_EVENT_RECORD ENDS + +INPUT_RECORD STRUCT + EventType WORD ? + two_byte_alignment WORD ? + UNION + KeyEvent KEY_EVENT_RECORD <> + MouseEvent MOUSE_EVENT_RECORD <> + WindowBufferSizeEvent WINDOW_BUFFER_SIZE_RECORD <> + MenuEvent MENU_EVENT_RECORD <> + FocusEvent FOCUS_EVENT_RECORD <> + ENDS +INPUT_RECORD ENDS + +CHAR_INFO STRUCT + Char CHARTYPE <> + Attributes WORD ? +CHAR_INFO ENDS + +CONSOLE_SCREEN_BUFFER_INFO STRUCT + dwSize COORD <> + dwCursorPosition COORD <> + wAttributes WORD ? + srWindow SMALL_RECT <> + dwMaximumWindowSize COORD <> +CONSOLE_SCREEN_BUFFER_INFO ENDS + +CONSOLE_CURSOR_INFO STRUCT + dwSize DWORD ? + bVisible DWORD ? +CONSOLE_CURSOR_INFO ENDS + +XFORM STRUCT + eM11 DWORD ? + eM12 DWORD ? + eM21 DWORD ? + eM22 DWORD ? + ex DWORD ? + ey DWORD ? +XFORM ENDS + +BITMAP STRUCT + bmType DWORD ? + bmWidth DWORD ? + bmHeight DWORD ? + bmWidthBytes DWORD ? + bmPlanes WORD ? + bmBitsPixel WORD ? + bmBits DWORD ? +BITMAP ENDS + +RGBTRIPLE STRUCT + rgbtBlue BYTE ? + rgbtGreen BYTE ? + rgbtRed BYTE ? +RGBTRIPLE ENDS + +RGBQUAD STRUCT + rgbBlue BYTE ? + rgbGreen BYTE ? + rgbRed BYTE ? + rgbReserved BYTE ? +RGBQUAD ENDS + +BITMAPCOREHEADER STRUCT + bcSize DWORD ? + bcWidth WORD ? + bcHeight WORD ? + bcPlanes WORD ? + bcBitCount WORD ? +BITMAPCOREHEADER ENDS + +BITMAPINFOHEADER STRUCT + biSize DWORD ? + biWidth DWORD ? + biHeight DWORD ? + biPlanes WORD ? + biBitCount WORD ? + biCompression DWORD ? + biSizeImage DWORD ? + biXPelsPerMeter DWORD ? + biYPelsPerMeter DWORD ? + biClrUsed DWORD ? + biClrImportant DWORD ? +BITMAPINFOHEADER ENDS + +BITMAPINFO STRUCT + bmiHeader BITMAPINFOHEADER <> + bmiColors RGBQUAD <> +BITMAPINFO ENDS + +BITMAPCOREINFO STRUCT + bmciHeader BITMAPCOREHEADER <> + bmciColors RGBTRIPLE <> +BITMAPCOREINFO ENDS + +BITMAPFILEHEADER STRUCT + bfType WORD ? + bfSize DWORD ? + bfReserved1 WORD ? + bfReserved2 WORD ? + bfOffBits DWORD ? +BITMAPFILEHEADER ENDS + +HANDLETABLE STRUCT + objectHandle DWORD ? +HANDLETABLE ENDS + +METARECORD STRUCT + rdSize DWORD ? + rdFunction WORD ? + rdParm1 WORD ? +METARECORD ENDS + +METAFILEPICT STRUCT + imm DWORD ? + xExt DWORD ? + yExt DWORD ? + hMF DWORD ? +METAFILEPICT ENDS + +METAHEADER STRUCT + mtType WORD ? + mtHeaderSize WORD ? + mtVersion WORD ? + mtSize DWORD ? + mtNoObjects WORD ? + mtMaxRecord DWORD ? + mtNoParameters WORD ? +METAHEADER ENDS + +ENHMETARECORD STRUCT + iType DWORD ? + nSize DWORD ? + dParm1 DWORD ? +ENHMETARECORD ENDS + +RECTL STRUCT + left LONG ? + top LONG ? + right LONG ? + bottom LONG ? +RECTL ENDS + +ENHMETAHEADER STRUCT + iType DWORD ? + nSize DWORD ? + rclBounds RECTL <> + rclFrame RECTL <> + dSignature DWORD ? + nVersion DWORD ? + nBytes DWORD ? + nRecords DWORD ? + nHandles WORD ? + sReserved WORD ? + nDescription DWORD ? + offDescription DWORD ? + nPalEntries DWORD ? + szlDevice SIZEL <> + szlMillimeters SIZEL <> + cbPixelFormat DWORD ? + offPixelFormat DWORD ? + bOpenGL DWORD ? +ENHMETAHEADER ENDS + +TEXTMETRICA STRUCT + tmHeight DWORD ? + tmAscent DWORD ? + tmDescent DWORD ? + tmInternalLeading DWORD ? + tmExternalLeading DWORD ? + tmAveCharWidth DWORD ? + tmMaxCharWidth DWORD ? + tmWeight DWORD ? + tmOverhang DWORD ? + tmDigitizedAspectX DWORD ? + tmDigitizedAspectY DWORD ? + tmFirstChar BYTE ? + tmLastChar BYTE ? + tmDefaultChar BYTE ? + tmBreakChar BYTE ? + tmItalic BYTE ? + tmUnderlined BYTE ? + tmStruckOut BYTE ? + tmPitchAndFamily BYTE ? + tmCharSet BYTE ? +TEXTMETRICA ENDS + +TEXTMETRICW STRUCT + tmHeight DWORD ? + tmAscent DWORD ? + tmDescent DWORD ? + tmInternalLeading DWORD ? + tmExternalLeading DWORD ? + tmAveCharWidth DWORD ? + tmMaxCharWidth DWORD ? + tmWeight DWORD ? + tmOverhang DWORD ? + tmDigitizedAspectX DWORD ? + tmDigitizedAspectY DWORD ? + tmFirstChar WORD ? + tmLastChar WORD ? + tmDefaultChar WORD ? + tmBreakChar WORD ? + tmItalic BYTE ? + tmUnderlined BYTE ? + tmStruckOut BYTE ? + tmPitchAndFamily BYTE ? + tmCharSet BYTE ? +TEXTMETRICW ENDS + +IFDEF __UNICODE__ + TEXTMETRIC equ +ELSE + TEXTMETRIC equ +ENDIF + +NEWTEXTMETRICA STRUCT + tmHeight DWORD ? + tmAscent DWORD ? + tmDescent DWORD ? + tmInternalLeading DWORD ? + tmExternalLeading DWORD ? + tmAveCharWidth DWORD ? + tmMaxCharWidth DWORD ? + tmWeight DWORD ? + tmOverhang DWORD ? + tmDigitizedAspectX DWORD ? + tmDigitizedAspectY DWORD ? + tmFirstChar BYTE ? + tmLastChar BYTE ? + tmDefaultChar BYTE ? + tmBreakChar BYTE ? + tmItalic BYTE ? + tmUnderlined BYTE ? + tmStruckOut BYTE ? + tmPitchAndFamily BYTE ? + tmCharSet BYTE ? + ntmFlags DWORD ? + ntmSizeEM DWORD ? + ntmCellHeight DWORD ? + ntmAveWidth DWORD ? +NEWTEXTMETRICA ENDS + +NEWTEXTMETRICW STRUCT + tmHeight DWORD ? + tmAscent DWORD ? + tmDescent DWORD ? + tmInternalLeading DWORD ? + tmExternalLeading DWORD ? + tmAveCharWidth DWORD ? + tmMaxCharWidth DWORD ? + tmWeight DWORD ? + tmOverhang DWORD ? + tmDigitizedAspectX DWORD ? + tmDigitizedAspectY DWORD ? + tmFirstChar WORD ? + tmLastChar WORD ? + tmDefaultChar WORD ? + tmBreakChar WORD ? + tmItalic BYTE ? + tmUnderlined BYTE ? + tmStruckOut BYTE ? + tmPitchAndFamily BYTE ? + tmCharSet BYTE ? + ntmFlags DWORD ? + ntmSizeEM DWORD ? + ntmCellHeight DWORD ? + ntmAveWidth DWORD ? +NEWTEXTMETRICW ENDS + +IFDEF __UNICODE__ + NEWTEXTMETRIC equ +ELSE + NEWTEXTMETRIC equ +ENDIF + +PELARRAY STRUCT + paXCount DWORD ? + paYCount DWORD ? + paXExt DWORD ? + paYExt DWORD ? + paRGBs BYTE ? +PELARRAY ENDS + +LOGBRUSH STRUCT + lbStyle DWORD ? + lbColor DWORD ? + lbHatch DWORD ? +LOGBRUSH ENDS + +LOGPEN STRUCT + lopnStyle DWORD ? + lopnWidth POINT <> + lopnColor DWORD ? +LOGPEN ENDS + +EXTLOGPEN STRUCT + elpPenStyle DWORD ? + elpWidth DWORD ? + elpBrushStyle DWORD ? + elpColor DWORD ? + elpHatch DWORD ? + elpNumEntries DWORD ? + elpStyleEntry DWORD ? +EXTLOGPEN ENDS + +PALETTEENTRY STRUCT + peRed BYTE ? + peGreen BYTE ? + peBlue BYTE ? + peFlags BYTE ? +PALETTEENTRY ENDS + +LOGPALETTE STRUCT + palVersion WORD ? + palNumEntries WORD ? + palPalEntry PALETTEENTRY <> +LOGPALETTE ENDS + +LOGFONTA STRUCT + lfHeight DWORD ? + lfWidth DWORD ? + lfEscapement DWORD ? + lfOrientation DWORD ? + lfWeight DWORD ? + lfItalic BYTE ? + lfUnderline BYTE ? + lfStrikeOut BYTE ? + lfCharSet BYTE ? + lfOutPrecision BYTE ? + lfClipPrecision BYTE ? + lfQuality BYTE ? + lfPitchAndFamily BYTE ? + lfFaceName BYTE LF_FACESIZE dup(?) +LOGFONTA ENDS + +LOGFONTW STRUCT + lfHeight DWORD ? + lfWidth DWORD ? + lfEscapement DWORD ? + lfOrientation DWORD ? + lfWeight DWORD ? + lfItalic BYTE ? + lfUnderline BYTE ? + lfStrikeOut BYTE ? + lfCharSet BYTE ? + lfOutPrecision BYTE ? + lfClipPrecision BYTE ? + lfQuality BYTE ? + lfPitchAndFamily BYTE ? + lfFaceName WORD LF_FACESIZE dup(?) +LOGFONTW ENDS + +IFDEF __UNICODE__ + LOGFONT equ +ELSE + LOGFONT equ +ENDIF + +NONCLIENTMETRICSA STRUCT + cbSize DWORD ? + iBorderWidth DWORD ? + iScrollWidth DWORD ? + iScrollHeight DWORD ? + iCaptionWidth DWORD ? + iCaptionHeight DWORD ? + lfCaptionFont LOGFONTA <> + iSMCaptionWidth DWORD ? + iSMCaptionHeight DWORD ? + lfSMCaptionFont LOGFONTA <> + iMenuWidth DWORD ? + iMenuHeight DWORD ? + lfMenuFont LOGFONTA <> + lfStatusFont LOGFONTA <> + lfMessageFont LOGFONTA <> +NONCLIENTMETRICSA ENDS + +NONCLIENTMETRICSW STRUCT + cbSize DWORD ? + iBorderWidth DWORD ? + iScrollWidth DWORD ? + iScrollHeight DWORD ? + iCaptionWidth DWORD ? + iCaptionHeight DWORD ? + lfCaptionFont LOGFONTW <> + iSMCaptionWidth DWORD ? + iSMCaptionHeight DWORD ? + lfSMCaptionFont LOGFONTW <> + iMenuWidth DWORD ? + iMenuHeight DWORD ? + lfMenuFont LOGFONTW <> + lfStatusFont LOGFONTW <> + lfMessageFont LOGFONTW <> +NONCLIENTMETRICSW ENDS + +IFDEF __UNICODE__ + NONCLIENTMETRICS equ +ELSE + NONCLIENTMETRICS equ +ENDIF + +ENUMLOGFONTA STRUCT + elfLogFont LOGFONTA <> + elfFullName BYTE LF_FULLFACESIZE dup(?) + elfStyle BYTE LF_FACESIZE dup(?) +ENUMLOGFONTA ENDS + +ENUMLOGFONTW STRUCT + elfLogFont LOGFONTW <> + elfFullName WORD LF_FULLFACESIZE dup(?) + elfStyle WORD LF_FACESIZE dup(?) +ENUMLOGFONTW ENDS + +IFDEF __UNICODE__ + ENUMLOGFONT equ +ELSE + ENUMLOGFONT equ +ENDIF + +PANOSE STRUCT + bFamilyType BYTE ? + bSerifStyle BYTE ? + bWeight BYTE ? + bProportion BYTE ? + bContrast BYTE ? + bStrokeVariation BYTE ? + bArmStyle BYTE ? + bLetterform BYTE ? + bMidline BYTE ? + bXHeight BYTE ? +PANOSE ENDS + +EXTLOGFONTA STRUCT + elfLogFont LOGFONTA <> + elfFullName BYTE LF_FULLFACESIZE dup(?) + elfStyle BYTE LF_FACESIZE dup(?) + elfVersion DWORD ? + elfStyleSize DWORD ? + elfMatch DWORD ? + elfReserved DWORD ? + elfVendorId BYTE ELF_VENDOR_SIZE dup(?) + elfCulture DWORD ? + elfPanose PANOSE <> +EXTLOGFONTA ENDS + +EXTLOGFONTW STRUCT + elfLogFont LOGFONTW <> + elfFullName WORD LF_FULLFACESIZE dup(?) + elfStyle WORD LF_FACESIZE dup(?) + elfVersion DWORD ? + elfStyleSize DWORD ? + elfMatch DWORD ? + elfReserved DWORD ? + elfVendorId BYTE ELF_VENDOR_SIZE dup(?) + elfCulture DWORD ? + elfPanose PANOSE <> +EXTLOGFONTW ENDS + +IFDEF __UNICODE__ + EXTLOGFONT equ +ELSE + EXTLOGFONT equ +ENDIF + +DEVMODE STRUCT + dmDeviceName BYTE CCHDEVICENAME dup(?) + dmSpecVersion WORD ? + dmDriverVersion WORD ? + dmSize WORD ? + dmDriverExtra WORD ? + dmFields DWORD ? + union + struct + dmOrientation dw ? + dmPaperSize dw ? + dmPaperLength dw ? + dmPaperWidth dw ? + ends + dmPosition POINTL <> + ends + dmScale WORD ? + dmCopies WORD ? + dmDefaultSource WORD ? + dmPrintQuality WORD ? + dmColor WORD ? + dmDuplex WORD ? + dmYResolution WORD ? + dmTTOption WORD ? + dmCollate WORD ? + dmFormName BYTE CCHFORMNAME dup (?) + dmLogPixels WORD ? + dmBitsPerPel DWORD ? + dmPelsWidth DWORD ? + dmPelsHeight DWORD ? + dmDisplayFlags DWORD ? + dmDisplayFrequency DWORD ? + dmICMMethod DWORD ? + dmICMIntent DWORD ? + dmMediaType DWORD ? + dmDitherType DWORD ? + dmReserved1 DWORD ? + dmReserved2 DWORD ? +DEVMODE ENDS + +RGNDATAHEADER STRUCT + dwSize DWORD ? + iType DWORD ? + nCount DWORD ? + nRgnSize DWORD ? + rcBound RECT <> +RGNDATAHEADER ENDS + +RGNDATA STRUCT + rdh RGNDATAHEADER <> + Buffer BYTE ? +RGNDATA ENDS + +ABC STRUCT + abcA DWORD ? + abcB DWORD ? + abcC DWORD ? +ABC ENDS + +ABCFLOAT STRUCT + abcfA DWORD ? + abcfB DWORD ? + abcfC DWORD ? +ABCFLOAT ENDS + +OUTLINETEXTMETRICA STRUCT + otmSize DWORD ? + otmTextMetrics TEXTMETRICA <> + otmFiller BYTE ? + otmPanoseNumber PANOSE <> + otmfsSelection DWORD ? + otmfsType DWORD ? + otmsCharSlopeRise DWORD ? + otmsCharSlopeRun DWORD ? + otmItalicAngle DWORD ? + otmEMSquare DWORD ? + otmAscent DWORD ? + otmDescent DWORD ? + otmLineGap DWORD ? + otmsCapEmHeight DWORD ? + otmsXHeight DWORD ? + otmrcFontBox RECT <> + otmMacAscent DWORD ? + otmMacDescent DWORD ? + otmMacLineGap DWORD ? + otmusMinimumPPEM DWORD ? + otmptSubscriptSize POINT <> + otmptSubscriptOffset POINT <> + otmptSuperscriptSize POINT <> + otmptSuperscriptOffset POINT <> + otmsStrikeoutSize DWORD ? + otmsStrikeoutPosition DWORD ? + otmsUnderscoreSize DWORD ? + otmsUnderscorePosition DWORD ? + otmpFamilyName DWORD ? + otmpFaceName DWORD ? + otmpStyleName DWORD ? + otmpFullName DWORD ? +OUTLINETEXTMETRICA ENDS + +OUTLINETEXTMETRICW STRUCT + otmSize DWORD ? + otmTextMetrics TEXTMETRICW <> + otmFiller BYTE ? + otmPanoseNumber PANOSE <> + otmfsSelection DWORD ? + otmfsType DWORD ? + otmsCharSlopeRise DWORD ? + otmsCharSlopeRun DWORD ? + otmItalicAngle DWORD ? + otmEMSquare DWORD ? + otmAscent DWORD ? + otmDescent DWORD ? + otmLineGap DWORD ? + otmsCapEmHeight DWORD ? + otmsXHeight DWORD ? + otmrcFontBox RECT <> + otmMacAscent DWORD ? + otmMacDescent DWORD ? + otmMacLineGap DWORD ? + otmusMinimumPPEM DWORD ? + otmptSubscriptSize POINT <> + otmptSubscriptOffset POINT <> + otmptSuperscriptSize POINT <> + otmptSuperscriptOffset POINT <> + otmsStrikeoutSize DWORD ? + otmsStrikeoutPosition DWORD ? + otmsUnderscoreSize DWORD ? + otmsUnderscorePosition DWORD ? + otmpFamilyName DWORD ? + otmpFaceName DWORD ? + otmpStyleName DWORD ? + otmpFullName DWORD ? +OUTLINETEXTMETRICW ENDS + +IFDEF __UNICODE__ + OUTLINETEXTMETRIC equ +ELSE + OUTLINETEXTMETRIC equ +ENDIF + +POLYTEXTA STRUCT + x DWORD ? + y DWORD ? + n DWORD ? + lpStr DWORD ? + uiFlags DWORD ? + icl RECT <> + pdx DWORD ? +POLYTEXTA ENDS + +POLYTEXTW STRUCT + x DWORD ? + y DWORD ? + n DWORD ? + lpStr DWORD ? + uiFlags DWORD ? + icl RECT <> + pdx DWORD ? +POLYTEXTW ENDS + +IFDEF __UNICODE__ + POLYTEXT equ +ELSE + POLYTEXT equ +ENDIF + +FIXED STRUCT + fract WORD ? + Value WORD ? +FIXED ENDS + +MAT2 STRUCT + eM11 FIXED <> + eM12 FIXED <> + eM21 FIXED <> + eM22 FIXED <> +MAT2 ENDS + +GLYPHMETRICS STRUCT + gmBlackBoxX DWORD ? + gmBlackBoxY DWORD ? + gmptGlyphOrigin POINT <> + gmCellIncX WORD ? + gmCellIncY WORD ? +GLYPHMETRICS ENDS + +POINTFX STRUCT + x FIXED <> + y FIXED <> +POINTFX ENDS + +TTPOLYCURVE STRUCT + wType WORD ? + cpfx WORD ? + apfx POINTFX <> +TTPOLYCURVE ENDS + +TTPOLYGONHEADER STRUCT + cb DWORD ? + dwType DWORD ? + pfxStart POINTFX <> +TTPOLYGONHEADER ENDS + +RASTERIZER_STATUS STRUCT + nSize WORD ? + wFlags WORD ? + nLanguageID WORD ? +RASTERIZER_STATUS ENDS + +COLORADJUSTMENT STRUCT + caSize WORD ? + caFlags WORD ? + caIlluminantIndex WORD ? + caRedGamma WORD ? + caGreenGamma WORD ? + caBlueGamma WORD ? + caReferenceBlack WORD ? + caReferenceWhite WORD ? + caContrast WORD ? + caBrightness WORD ? + caColorfulness WORD ? + caRedGreenTint WORD ? +COLORADJUSTMENT ENDS + +DOCINFOA STRUCT + cbSize DWORD ? + lpszDocName DWORD ? + lpszOutput DWORD ? + lpszDatatype DWORD ? + fwType DWORD ? +DOCINFOA ENDS + +DOCINFOW STRUCT + cbSize DWORD ? + lpszDocName DWORD ? + lpszOutput DWORD ? + lpszDatatype DWORD ? + fwType DWORD ? +DOCINFOW ENDS + +IFDEF __UNICODE__ + DOCINFO equ +ELSE + DOCINFO equ +ENDIF + +KERNINGPAIR STRUCT + wFirst WORD ? + wSecond WORD ? + iKernAmount DWORD ? +KERNINGPAIR ENDS + +EMR STRUCT + iType DWORD ? + nSize DWORD ? +EMR ENDS + +EMRTEXT STRUCT + ptlReference POINTL <> + nchars DWORD ? + offString DWORD ? + fOptions DWORD ? + ircl RECTL <> + offDx DWORD ? +EMRTEXT ENDS + +EMRABORTPATH STRUCT + emr EMR <> +EMRABORTPATH ENDS + +EMRBEGINPATH equ +EMRENDPATH equ +EMRCLOSEFIGURE equ +EMRFLATTENPATH equ +EMRWIDENPATH equ +EMRSETMETARGN equ +EMREMRSAVEDC equ +EMRREALIZEPALETTE equ + +EMRSELECTCLIPPATH STRUCT + emr EMR <> + iMode DWORD ? +EMRSELECTCLIPPATH ENDS + +EMRSETBKMODE equ +EMRSETMAPMODE equ +EMRSETPOLYFILLMODE equ +EMRSETROP2 equ +EMRSETSTRETCHBLTMODE equ +EMRSETTEXTALIGN equ + +EMRSETMITERLIMIT STRUCT + emr EMR <> + eMiterLimit DWORD ? +EMRSETMITERLIMIT ENDS + +EMRRESTOREDC STRUCT + emr EMR <> + iRelative DWORD ? +EMRRESTOREDC ENDS + +EMRSETARCDIRECTION STRUCT + emr EMR <> + iArcDirection DWORD ? +EMRSETARCDIRECTION ENDS + +EMRSETMAPPERFLAGS STRUCT + emr EMR <> + dwFlags DWORD ? +EMRSETMAPPERFLAGS ENDS + +EMRSETTEXTCOLOR STRUCT + emr EMR <> + crColor COLORREF ? +EMRSETTEXTCOLOR ENDS + +EMRSETBKCOLOR equ + +EMRSELECTOBJECT STRUCT + emr EMR <> + ihObject DWORD ? +EMRSELECTOBJECT ENDS + +EMRDELETEOBJECT equ + +EMRSELECTCOLORSPACE STRUCT + emr EMR <> + ihCS DWORD ? +EMRSELECTCOLORSPACE ENDS + +EMRDELETECOLORSPACE equ + +EMRSELECTPALETTE STRUCT + emr EMR <> + ihPal DWORD ? +EMRSELECTPALETTE ENDS + +EMRRESIZEPALETTE STRUCT + emr EMR <> + ihPal DWORD ? + cEntries DWORD ? +EMRRESIZEPALETTE ENDS + +EMRSETPALETTEENTRIES STRUCT + emr EMR <> + ihPal DWORD ? + iStart DWORD ? + cEntries DWORD ? + aPalEntries PALETTEENTRY <> +EMRSETPALETTEENTRIES ENDS + +EMRSETCOLORADJUSTMENT STRUCT + emr EMR <> + ColorAdjustment COLORADJUSTMENT <> +EMRSETCOLORADJUSTMENT ENDS + +EMRGDICOMMENT STRUCT + emr EMR <> + cbData DWORD ? + xData1 BYTE ? +EMRGDICOMMENT ENDS + +EMREOF STRUCT + emr EMR <> + nPalEntries DWORD ? + offPalEntries DWORD ? + nSizeLast DWORD ? +EMREOF ENDS + +EMRLINETO STRUCT + emr EMR <> + ptl POINTL <> +EMRLINETO ENDS + +EMRMOVETOEX equ + +EMROFFSETCLIPRGN STRUCT + emr EMR <> + ptlOffset POINTL <> +EMROFFSETCLIPRGN ENDS + +EMRFILLPATH STRUCT + emr EMR <> + rclBounds RECTL <> +EMRFILLPATH ENDS + +EMRSTROKEANDFILLPATH equ +EMRSTROKEPATH equ + +EMREXCLUDECLIPRECT STRUCT + emr EMR <> + rclClip RECTL <> +EMREXCLUDECLIPRECT ENDS + +EMRINTERSECTCLIPRECT equ + +EMRSETVIEWPORTORGEX STRUCT + emr EMR <> + ptlOrigin POINTL <> +EMRSETVIEWPORTORGEX ENDS + +EMRSETWINDOWORGEX equ +EMRSETBRUSHORGEX equ + +EMRSETVIEWPORTEXTEX STRUCT + emr EMR <> + szlExtent SIZEL <> +EMRSETVIEWPORTEXTEX ENDS + +EMRSETWINDOWEXTEX equ + +EMRSCALEVIEWPORTEXTEX STRUCT + emr EMR <> + xNum DWORD ? + xDenom DWORD ? + yNum DWORD ? + yDemon DWORD ? +EMRSCALEVIEWPORTEXTEX ENDS + +EMRSCALEWINDOWEXTEX equ + +EMRSETWORLDTRANSFORM STRUCT + emr EMR <> + xform XFORM <> +EMRSETWORLDTRANSFORM ENDS + +EMRMODIFYWORLDTRANSFORM STRUCT + emr EMR <> + xform XFORM <> + iMode DWORD ? +EMRMODIFYWORLDTRANSFORM ENDS + +EMRSETPIXELV STRUCT + emr EMR <> + ptlPixel POINTL <> + crColor COLORREF ? +EMRSETPIXELV ENDS + +EMREXTFLOODFILL STRUCT + emr EMR <> + ptlStart POINTL <> + crColor COLORREF ? + iMode DWORD ? +EMREXTFLOODFILL ENDS + +EMRELLIPSE STRUCT + emr EMR <> + rclBox RECTL <> +EMRELLIPSE ENDS + +EMRRECTANGLE equ + +EMRROUNDRECT STRUCT + emr EMR <> + rclBox RECTL <> + szlCorner SIZEL <> +EMRROUNDRECT ENDS + +EMRARC STRUCT + emr EMR <> + rclBox RECTL <> + ptlStart POINTL <> + ptlEnd POINTL <> +EMRARC ENDS + +EMRARCTO equ +EMRCHORD equ +EMRPIE equ + +EMRANGLEARC STRUCT + emr EMR <> + ptlCenter POINTL <> + nRadius DWORD ? + eStartAngle DWORD ? + eSweepAngle DWORD ? +EMRANGLEARC ENDS + +EMRPOLYLINE STRUCT + emr EMR <> + rclBounds RECTL <> + cptl DWORD ? + aptl POINTL <> +EMRPOLYLINE ENDS + +EMRPOLYBEZIER equ +EMRPOLYGON equ +EMRPOLYBEZIERTO equ + +EMRPOLYLINE16 STRUCT + emr EMR <> + rclBounds RECTL <> + cpts DWORD ? + apts POINTS <> +EMRPOLYLINE16 ENDS + +EMRPOLYBEZIER16 equ +EMRPOLYGON16 equ +EMRPLOYBEZIERTO16 equ +EMRPOLYLINETO16 equ + +EMRPOLYDRAW STRUCT + emr EMR <> + rclBounds RECTL <> + cptl DWORD ? + aptl POINTL <> + abTypes1 BYTE ? +EMRPOLYDRAW ENDS + +EMRPOLYDRAW16 STRUCT + emr EMR <> + rclBounds RECTL <> + cpts DWORD ? + apts POINTS <> + abTypes BYTE ? +EMRPOLYDRAW16 ENDS + +EMRPOLYPOLYLINE STRUCT + emr EMR <> + rclBounds RECTL <> + nPolys DWORD ? + cptl DWORD ? + aPolyCounts DWORD ? + aptl POINTL <> +EMRPOLYPOLYLINE ENDS + +EMRPOLYPOLYGON equ + +EMRPOLYPOLYLINE16 STRUCT + emr EMR <> + rclBounds RECTL <> + nPolys DWORD ? + cpts DWORD ? + aPolyCounts DWORD ? + apts POINTS <> +EMRPOLYPOLYLINE16 ENDS + +EMRPOLYPOLYGON16 equ + +EMRINVERTRGN STRUCT + emr EMR <> + rclBounds RECTL <> + cbRgnData DWORD ? + RgnData BYTE ? +EMRINVERTRGN ENDS + +EMRPAINTRGN equ + +EMRFILLRGN STRUCT + emr EMR <> + rclBounds RECTL <> + cbRgnData DWORD ? + ihBrush DWORD ? + RgnData BYTE ? +EMRFILLRGN ENDS + +EMRFRAMERGN STRUCT + emr EMR <> + rclBounds RECTL <> + cbRgnData DWORD ? + ihBrush DWORD ? + szlStroke SIZEL <> + RgnData BYTE ? +EMRFRAMERGN ENDS + +EMREXTSELECTCLIPRGN STRUCT + emr EMR <> + cbRgnData DWORD ? + iMode DWORD ? + RgnData BYTE ? +EMREXTSELECTCLIPRGN ENDS + +EMREXTTEXTOUTA STRUCT + emr EMR <> + rclBounds RECTL <> + iGraphicsMode DWORD ? + exScale DWORD ? + eyScale DWORD ? + emrtext EMRTEXT <> +EMREXTTEXTOUTA ENDS + +EMREXTTEXTOUTW STRUCT + emr EMR <> + rclBounds RECTL <> + iGraphicsMode DWORD ? + exScale DWORD ? + eyScale DWORD ? + emrtext EMRTEXT <> +EMREXTTEXTOUTW ENDS + +IFDEF __UNICODE__ + EMREXTTEXTOUT equ +ELSE + EMREXTTEXTOUT equ +ENDIF + +EMRBITBLT STRUCT + emr EMR <> + rclBounds RECTL <> + xDest DWORD ? + yDest DWORD ? + cxDest DWORD ? + cyDest DWORD ? + dwRop DWORD ? + xSrc DWORD ? + ySrc DWORD ? + xformSrc XFORM <> + crBkColorSrc COLORREF ? + iUsageSrc DWORD ? + offBmiSrc DWORD ? + cbBmiSrc DWORD ? + offBitsSrc DWORD ? + cbBitsSrc DWORD ? +EMRBITBLT ENDS + +EMRSTRETCHBLT STRUCT + emr EMR <> + rclBounds RECTL <> + xDest DWORD ? + yDest DWORD ? + cxDest DWORD ? + cyDest DWORD ? + dwRop DWORD ? + xSrc DWORD ? + ySrc DWORD ? + xformSrc XFORM <> + crBkColorSrc COLORREF ? + iUsageSrc DWORD ? + offBmiSrc DWORD ? + cbBmiSrc DWORD ? + offBitsSrc DWORD ? + cbBitsSrc DWORD ? + cxSrc DWORD ? + cySrc DWORD ? +EMRSTRETCHBLT ENDS + +EMRMASKBLT STRUCT + emr EMR <> + rclBounds RECTL <> + xDest DWORD ? + yDest DWORD ? + cxDest DWORD ? + cyDest DWORD ? + dwRop DWORD ? + xSrc2 DWORD ? + cyDest2 DWORD ? + dwRop2 DWORD ? + xSrc DWORD ? + ySrc DWORD ? + xformSrc XFORM <> + crBkColorSrc COLORREF ? + iUsageSrc DWORD ? + offBmiSrc DWORD ? + cbBmiSrc DWORD ? + offBitsSrc DWORD ? + cbBitsSrc DWORD ? + xMask DWORD ? + yMask DWORD ? + iUsageMask DWORD ? + offBmiMask DWORD ? + cbBmiMask DWORD ? + offBitsMask DWORD ? + cbBitsMask DWORD ? +EMRMASKBLT ENDS + +EMRPLGBLT STRUCT + emr EMR <> + rclBounds RECTL <> + aptlDest POINTL 3 dup(<>) + xSrc DWORD ? + ySrc DWORD ? + cxSrc DWORD ? + cySrc DWORD ? + xformSrc XFORM <> + crBkColorSrc COLORREF ? + iUsageSrc DWORD ? + offBmiSrc DWORD ? + cbBmiSrc DWORD ? + offBitsSrc DWORD ? + cbBitsSrc DWORD ? + xMask DWORD ? + yMask DWORD ? + iUsageMask DWORD ? + offBmiMask DWORD ? + cbBmiMask DWORD ? + offBitsMask DWORD ? + cbBitsMask DWORD ? +EMRPLGBLT ENDS + +EMRSETDIBITSTODEVICE STRUCT + emr EMR <> + rclBounds RECTL <> + xDest DWORD ? + yDest DWORD ? + xSrc DWORD ? + ySrc DWORD ? + cxSrc DWORD ? + cySrc DWORD ? + offBmiSrc DWORD ? + cbBmiSrc DWORD ? + offBitsSrc DWORD ? + cbBitsSrc DWORD ? + iUsageSrc DWORD ? + iStartScan DWORD ? + cScans DWORD ? +EMRSETDIBITSTODEVICE ENDS + +EMRSTRETCHDIBITS STRUCT + emr EMR <> + rclBounds RECTL <> + xDest DWORD ? + yDest DWORD ? + xSrc DWORD ? + ySrc DWORD ? + cxSrc DWORD ? + cySrc DWORD ? + offBmiSrc DWORD ? + cbBmiSrc DWORD ? + offBitsSrc DWORD ? + cbBitsSrc DWORD ? + iUsageSrc DWORD ? + dwRop DWORD ? + cxDest DWORD ? + cyDest DWORD ? +EMRSTRETCHDIBITS ENDS + +EMRCREATEPALETTE STRUCT + emr EMR <> + ihPal DWORD ? + lgpl LOGPALETTE <> +EMRCREATEPALETTE ENDS + +EMRCREATEPEN STRUCT + emr EMR <> + ihPen DWORD ? + lopn LOGPEN <> +EMRCREATEPEN ENDS + +EMREXTCREATEPEN STRUCT + emr EMR <> + ihPen DWORD ? + offBmi DWORD ? + cbBmi DWORD ? + offBits DWORD ? + cbBits DWORD ? + elp EXTLOGPEN <> +EMREXTCREATEPEN ENDS + +EMRCREATEBRUSHINDIRECT STRUCT + emr EMR <> + ihBrush DWORD ? + lb LOGBRUSH <> +EMRCREATEBRUSHINDIRECT ENDS + +EMRCREATEMONOBRUSH STRUCT + emr EMR <> + ihBrush DWORD ? + iUsage DWORD ? + offBmi DWORD ? + cbBmi DWORD ? + offBits DWORD ? + cbBits DWORD ? +EMRCREATEMONOBRUSH ENDS + +EMRCREATEDIBPATTERNBRUSHPT STRUCT + emr EMR <> + ihBursh DWORD ? + iUsage DWORD ? + offBmi DWORD ? + cbBmi DWORD ? + offBits DWORD ? + cbBits DWORD ? +EMRCREATEDIBPATTERNBRUSHPT ENDS + +CIEXYZ STRUCT + ciexyzX FXPT2DOT30 ? + ciexyzY FXPT2DOT30 ? + ciexyzZ FXPT2DOT30 ? +CIEXYZ ENDS + +CIEXYZTRIPLE STRUCT + ciexyzRed CIEXYZ <> + ciexyzGreen CIEXYZ <> + ciexyzBlue CIEXYZ <> +CIEXYZTRIPLE ENDS + +BITMAPV4HEADER STRUCT + bV4Size DWORD ? + bV4Width DWORD ? + bV4Height DWORD ? + bV4Planes WORD ? + bV4BitCount WORD ? + bV4V4Compression DWORD ? + bV4SizeImage DWORD ? + bV4XPelsPerMeter DWORD ? + bV4YPelsPerMeter DWORD ? + bV4ClrUsed DWORD ? + bV4ClrImportant DWORD ? + bV4RedMask DWORD ? + bV4GreenMask DWORD ? + bV4BlueMask DWORD ? + bV4AlphaMask DWORD ? + bV4CSType DWORD ? + bV4Endpoints CIEXYZTRIPLE <> + bV4GammaRed DWORD ? + bV4GammaGreen DWORD ? + bV4GammaBlue DWORD ? +BITMAPV4HEADER ENDS + +FONTSIGNATURE STRUCT + fsUsb4 DWORD 4 dup(?) + fsCsb2 DWORD 2 dup(?) +FONTSIGNATURE ENDS + +CHARSETINFO STRUCT + ciCharset DWORD ? + ciACP DWORD ? + xlfs FONTSIGNATURE <> +CHARSETINFO ENDS + +LOCALESIGNATURE STRUCT + lsUsb4 DWORD 4 dup(?) + lsCsbDefault DWORD 2 dup(?) + lsCsbSupported DWORD 2 dup(?) +LOCALESIGNATURE ENDS + +NEWTEXTMETRICEXA STRUCT + ntmTm NEWTEXTMETRICA <> + ntmFontSig FONTSIGNATURE <> +NEWTEXTMETRICEXA ENDS + +NEWTEXTMETRICEXW STRUCT + ntmTm NEWTEXTMETRICW <> + ntmFontSig FONTSIGNATURE <> +NEWTEXTMETRICEXW ENDS + +IFDEF __UNICODE__ + NEWTEXTMETRICEX equ +ELSE + NEWTEXTMETRICEX equ +ENDIF + +ENUMLOGFONTEXA STRUCT + elfLogFont LOGFONTA <> + elfFullName BYTE LF_FULLFACESIZE dup(?) + elfStyle BYTE LF_FACESIZE dup(?) + elfScript BYTE LF_FACESIZE dup(?) +ENUMLOGFONTEXA ENDS + +ENUMLOGFONTEXW STRUCT + elfLogFont LOGFONTW <> + elfFullName WORD LF_FULLFACESIZE dup(?) + elfStyle WORD LF_FACESIZE dup(?) + elfScript WORD LF_FACESIZE dup(?) +ENUMLOGFONTEXW ENDS + +IFDEF __UNICODE__ + ENUMLOGFONTEX equ +ELSE + ENUMLOGFONTEX equ +ENDIF + +GCP_RESULTSA STRUCT + lStructSize DWORD ? + lpOutString DWORD ? + lpOrder DWORD ? + lpDX DWORD ? + lpCaretPos DWORD ? + lpClass DWORD ? + lpGlyphs DWORD ? + nGlyphs DWORD ? + nMaxFit DWORD ? +GCP_RESULTSA ENDS + +GCP_RESULTSW STRUCT + lStructSize DWORD ? + lpOutString DWORD ? + lpOrder DWORD ? + lpDX DWORD ? + lpCaretPos DWORD ? + lpClass DWORD ? + lpGlyphs DWORD ? + nGlyphs DWORD ? + nMaxFit DWORD ? +GCP_RESULTSW ENDS + +IFDEF __UNICODE__ + GCP_RESULTS equ +ELSE + GCP_RESULTS equ +ENDIF + +LOGCOLORSPACEA STRUCT + lcsSignature DWORD ? + lcsVersion DWORD ? + lcsSize DWORD ? + lcsCSType LCSCSTYPE ? + lcsIntent LCSGAMUTMATCH ? + lcsEndPoints CIEXYZTRIPLE <> + lcsGammaRed DWORD ? + lcsGammaGreen DWORD ? + lcsGammaBlue DWORD ? + lcsFileName BYTE MAX_PATH dup (?) +LOGCOLORSPACEA ENDS + +LOGCOLORSPACEW STRUCT + lcsSignature DWORD ? + lcsVersion DWORD ? + lcsSize DWORD ? + lcsCSType LCSCSTYPE ? + lcsIntent LCSGAMUTMATCH ? + lcsEndpoints CIEXYZTRIPLE <> + lcsGammaRed DWORD ? + lcsGammaGreen DWORD ? + lcsGammaBlue DWORD ? + lcsFilename WORD MAX_PATH dup(?) +LOGCOLORSPACEW ENDS + +IFDEF __UNICODE__ + LOGCOLORSPACE equ +ELSE + LOGCOLORSPACE equ +ENDIF + +EMRCREATECOLORSPACEA STRUCT + emr EMR <> + ihCS DWORD ? + lcs LOGCOLORSPACEA <> + dwFlags DWORD ? + cbData DWORD ? + Data BYTE 1 Dup(?) +EMRCREATECOLORSPACEA ENDS + +EMRCREATECOLORSPACEW STRUCT + emr EMR <> + ihCS DWORD ? + lcs LOGCOLORSPACEW <> + dwFlags DWORD ? + cbData DWORD ? + Data BYTE 1 Dup(?) +EMRCREATECOLORSPACEW ENDS + +IFDEF __UNICODE__ + EMRCREATECOLORSPACE equ +ELSE + EMRCREATECOLORSPACE equ +ENDIF + +CBTACTIVATESTRUCT STRUCT + fMouse DWORD ? + hWndActive DWORD ? +CBTACTIVATESTRUCT ENDS + +EVENTMSG STRUCT + message DWORD ? + paramL DWORD ? + paramH DWORD ? + time DWORD ? + hwnd DWORD ? +EVENTMSG ENDS + +CWPSTRUCT STRUCT + lParam DWORD ? + wParam DWORD ? + message DWORD ? + hwnd DWORD ? +CWPSTRUCT ENDS + +DEBUGHOOKINFO STRUCT + hModuleHook DWORD ? + Reserved DWORD ? + lParam DWORD ? + wParam DWORD ? + code DWORD ? +DEBUGHOOKINFO ENDS + +MOUSEHOOKSTRUCT STRUCT + pt POINT <> + hwnd DWORD ? + wHitTestCode DWORD ? + dwExtraInfo DWORD ? +MOUSEHOOKSTRUCT ENDS + +MINMAXINFO STRUCT + ptReserved POINT <> + ptMaxSize POINT <> + ptMaxPosition POINT <> + ptMinTrackSize POINT <> + ptMaxTrackSize POINT <> +MINMAXINFO ENDS + +COPYDATASTRUCT STRUCT + dwData DWORD ? + cbData DWORD ? + lpData DWORD ? +COPYDATASTRUCT ENDS + +WINDOWPOS STRUCT + hwnd DWORD ? + hWndInsertAfter DWORD ? + x DWORD ? + y DWORD ? + lx DWORD ? + cy DWORD ? + flags DWORD ? +WINDOWPOS ENDS + +ACCEL STRUCT WORD + fVirt BYTE ? + key WORD ? + cmd WORD ? +ACCEL ENDS + +PAINTSTRUCT STRUCT + hdc DWORD ? + fErase DWORD ? + rcPaint RECT <> + fRestore DWORD ? + fIncUpdate DWORD ? + rgbReserved BYTE 32 dup(?) +PAINTSTRUCT ENDS + +CREATESTRUCTA STRUCT + lpCreateParams DWORD ? + hInstance DWORD ? + hMenu DWORD ? + hWndParent DWORD ? + ly DWORD ? + lx DWORD ? + y DWORD ? + x DWORD ? + style DWORD ? + lpszName DWORD ? + lpszClass DWORD ? + ExStyle DWORD ? +CREATESTRUCTA ENDS + +CREATESTRUCTW STRUCT + lpCreateParams DWORD ? + hInstance DWORD ? + hMenu DWORD ? + hWndParent DWORD ? + ly DWORD ? + lx DWORD ? + y DWORD ? + x DWORD ? + style DWORD ? + lpszName DWORD ? + lpszClass DWORD ? + ExStyle DWORD ? +CREATESTRUCTW ENDS + +IFDEF __UNICODE__ + CREATESTRUCT equ +ELSE + CREATESTRUCT equ +ENDIF + +CBT_CREATEWNDA STRUCT + lpcs DWORD ? + hWndInsertAfter DWORD ? +CBT_CREATEWNDA ENDS + +CBT_CREATEWNDW STRUCT + lpcs DWORD ? + hWndInsertAfter DWORD ? +CBT_CREATEWNDW ENDS + +IFDEF __UNICODE__ + CBT_CREATEWND equ +ELSE + CBT_CREATEWND equ +ENDIF + +WINDOWPLACEMENT STRUCT + iLength DWORD ? + flags DWORD ? + showCmd DWORD ? + ptMinPosition POINT <> + ptMaxPosition POINT <> + rcNormalPosition RECT <> +WINDOWPLACEMENT ENDS + +MEASUREITEMSTRUCT STRUCT + CtlType DWORD ? + CtlID DWORD ? + itemID DWORD ? + itemWidth DWORD ? + itemHeight DWORD ? + itemData DWORD ? +MEASUREITEMSTRUCT ENDS + +DRAWITEMSTRUCT STRUCT + CtlType DWORD ? + CtlID DWORD ? + itemID DWORD ? + itemAction DWORD ? + itemState DWORD ? + hwndItem DWORD ? + hdc DWORD ? + rcItem RECT <> + itemData DWORD ? +DRAWITEMSTRUCT ENDS + +DELETEITEMSTRUCT STRUCT + CtlType DWORD ? + CtlID DWORD ? + itemID DWORD ? + hwndItem DWORD ? + itemData DWORD ? +DELETEITEMSTRUCT ENDS + +COMPAREITEMSTRUCT STRUCT + CtlType DWORD ? + CtlID DWORD ? + hwndItem DWORD ? + itemID1 DWORD ? + itemData1 DWORD ? + itemID2 DWORD ? + itemData2 DWORD ? + dwLocaleId DWORD ? +COMPAREITEMSTRUCT ENDS + +DLGTEMPLATE STRUCT DWORD + style DWORD ? + dwExtendedStyle DWORD ? + cdit WORD ? + x WORD ? + y WORD ? + lx WORD ? + ly WORD ? +DLGTEMPLATE ENDS + +DLGITEMTEMPLATE STRUCT + style DWORD ? + dwExtendedStyle DWORD ? + x WORD ? + y WORD ? + lx WORD ? + cy WORD ? + id WORD ? +DLGITEMTEMPLATE ENDS + +MENUITEMTEMPLATEHEADER STRUCT + versionNumber WORD ? + loffset WORD ? +MENUITEMTEMPLATEHEADER ENDS + +MENUITEMTEMPLATE STRUCT + mtOption WORD ? + mtID WORD ? + mtString WORD ? +MENUITEMTEMPLATE ENDS + +ICONINFO STRUCT + fIcon DWORD ? + xHotspot DWORD ? + yHotspot DWORD ? + hbmMask DWORD ? + hbmColor DWORD ? +ICONINFO ENDS + +MDICREATESTRUCTA STRUCT + szClass DWORD ? + szTitle DWORD ? + hOwner DWORD ? + x DWORD ? + y DWORD ? + lx DWORD ? + ly DWORD ? + style DWORD ? + lParam DWORD ? +MDICREATESTRUCTA ENDS + +MDICREATESTRUCTW STRUCT + szClass DWORD ? + szTitle DWORD ? + hOwner DWORD ? + x DWORD ? + y DWORD ? + lx DWORD ? + ly DWORD ? + style DWORD ? + lParam DWORD ? +MDICREATESTRUCTW ENDS + +IFDEF __UNICODE__ + MDICREATESTRUCT equ +ELSE + MDICREATESTRUCT equ +ENDIF + +CLIENTCREATESTRUCT STRUCT + hWindowMenu DWORD ? + idFirstChild DWORD ? +CLIENTCREATESTRUCT ENDS + +MULTIKEYHELPA STRUCT + mkSize DWORD ? + mkKeylist BYTE ? + szKeyphrase BYTE ? +MULTIKEYHELPA ENDS + +MULTIKEYHELPW STRUCT + mkSize DWORD ? + mkKeylist WORD ? + szKeyphrase WORD ? +MULTIKEYHELPW ENDS + +IFDEF __UNICODE__ + MULTIKEYHELP EQU +ELSE + MULTIKEYHELP EQU +ENDIF + +HELPWININFOA STRUCT + wStructSize DWORD ? + x DWORD ? + y DWORD ? + lx DWORD ? + ly DWORD ? + wMax DWORD ? + rgchMember BYTE 2 dup (?) +HELPWININFOA ENDS + +HELPWININFOW STRUCT + wStructSize DWORD ? + x DWORD ? + y DWORD ? + lx DWORD ? + ly DWORD ? + wMax DWORD ? + rgchMember WORD 2 dup (?) +HELPWININFOW ENDS + +IFDEF __UNICODE__ + HELPWININFO equ +ELSE + HELPWININFO equ +ENDIF + +DDEACK STRUCT + dw ? +DDEACK ENDS + +DDEADVISE STRUCT + dd ? +DDEADVISE ENDS + +DDEDATA STRUCT + dd ? + db ? +DDEDATA ENDS + +DDEPOKE STRUCT + dd ? + db ? +DDEPOKE ENDS + +DDELN STRUCT + dd ? +DDELN ENDS + +DDEUP STRUCT + dd ? + db ? +DDEUP ENDS + +HSZPAIR STRUCT + hszSvc DWORD ? + hszTopic DWORD ? +HSZPAIR ENDS + +SECURITY_QUALITY_OF_SERVICE STRUCT + iLength DWORD ? + Impersonationlevel DWORD ? + ContextTrackingMode BYTE ? + EffectiveOnly BYTE ? +SECURITY_QUALITY_OF_SERVICE ENDS + +CONVCONTEXT STRUCT + cb DWORD ? + wFlags DWORD ? + wCountryID DWORD ? + iCodePage DWORD ? + dwLangID DWORD ? + dwSecurity DWORD ? + qos SECURITY_QUALITY_OF_SERVICE <> +CONVCONTEXT ENDS + +CONVINFO STRUCT + cb DWORD ? + hUser DWORD ? + hConvPartner DWORD ? + hszSvcPartner DWORD ? + hszServiceReq DWORD ? + hszTopic DWORD ? + hszItem DWORD ? + wFmt DWORD ? + wType DWORD ? + wStatus DWORD ? + wConvst DWORD ? + wLastError DWORD ? + hConvList DWORD ? + ConvCtxt CONVCONTEXT <> + hwnd DWORD ? + hwndPartner DWORD ? +CONVINFO ENDS + +DDEML_MSG_HOOK_DATA STRUCT + uiLo DWORD ? + uiHi DWORD ? + cbData DWORD ? + xData DWORD 8 dup(?) +DDEML_MSG_HOOK_DATA ENDS + +MONMSGSTRUCT STRUCT + cb DWORD ? + hwndTo DWORD ? + dwTime DWORD ? + htask DWORD ? + wMsg DWORD ? + wParam DWORD ? + lParam DWORD ? + dmhd DDEML_MSG_HOOK_DATA <> +MONMSGSTRUCT ENDS + +MONCBSTRUCT STRUCT + cb DWORD ? + dwTime DWORD ? + htask DWORD ? + dwRet DWORD ? + wType DWORD ? + wFmt DWORD ? + hConv DWORD ? + hsz1 DWORD ? + hsz2 DWORD ? + hData DWORD ? + dwData1 DWORD ? + dwData2 DWORD ? + cc CONVCONTEXT <> + cbData DWORD ? + xData8 DWORD ? +MONCBSTRUCT ENDS + +MONHSZSTRUCTA STRUCT + cb DWORD ? + fsAction DWORD ? + dwTime DWORD ? + hsz DWORD ? + htask DWORD ? + xstr BYTE ? +MONHSZSTRUCTA ENDS + +MONHSZSTRUCTW STRUCT + cb DWORD ? + fsAction DWORD ? + dwTime DWORD ? + hsz DWORD ? + htask DWORD ? + xstr WORD ? +MONHSZSTRUCTW ENDS + +IFDEF __UNICODE__ + MONHSZSTRUCT equ +ELSE + MONHSZSTRUCT equ +ENDIF + +MONERRSTRUCT STRUCT + cb DWORD ? + wLastError DWORD ? + dwTime DWORD ? + htask DWORD ? +MONERRSTRUCT ENDS + +MONLINKSTRUCT STRUCT + cb DWORD ? + dwTime DWORD ? + htask DWORD ? + fEstablished DWORD ? + fNoData DWORD ? + hszSvc DWORD ? + hszTopic DWORD ? + hszItem DWORD ? + wFmt DWORD ? + fServer DWORD ? + hConvServer DWORD ? + hConvClient DWORD ? +MONLINKSTRUCT ENDS + +MONCONVSTRUCT STRUCT + cb DWORD ? + fConnect DWORD ? + dwTime DWORD ? + htask DWORD ? + hszSvc DWORD ? + hszTopic DWORD ? + hConvClient DWORD ? + hConvServer DWORD ? +MONCONVSTRUCT ENDS + +smpte STRUCT + hour BYTE ? + minute BYTE ? + sec BYTE ? + frame BYTE ? + fps BYTE ? + dummy BYTE ? + pad BYTE 2 dup(?) +smpte ENDS + +midi STRUCT + songptrpos DWORD ? +midi ENDS + +MMUNION UNION + ms DWORD ? + sample DWORD ? + cb DWORD ? + ticks DWORD ? + smp smpte <> + midi1 midi <> +MMUNION ENDS + +MMTIME STRUCT + wType DWORD ? + u MMUNION <> +MMTIME ENDS + +MIDIEVENT STRUCT + dwDeltaTime DWORD ? + dwStreamID DWORD ? + dwEvent DWORD ? + dwParms DWORD ? +MIDIEVENT ENDS + +MIDISTRMBUFFVER STRUCT + dwVersion DWORD ? + dwMid DWORD ? + dwOEMVersion DWORD ? +MIDISTRMBUFFVER ENDS + +MIDIPROPTIMEDIV STRUCT + cbStruct DWORD ? + dwTimeDiv DWORD ? +MIDIPROPTIMEDIV ENDS + +MIDIPROPTEMPO STRUCT + cbStruct DWORD ? + dwTempo DWORD ? +MIDIPROPTEMPO ENDS + +MIXERCAPSA STRUCT + wMid WORD ? + wPid WORD ? + vDriverVersion MMVERSION ? + szPname BYTE MAXPNAMELEN dup (?) + fdwSupport DWORD ? + cDestinations DWORD ? +MIXERCAPSA ENDS + +MIXERCAPSW STRUCT + wMid WORD ? + wPid WORD ? + vDriverVersion MMVERSION ? + szPname WORD MAXPNAMELEN dup (?) + fdwSupport DWORD ? + cDestinations DWORD ? +MIXERCAPSW ENDS + +IFDEF __UNICODE__ + MIXERCAPS equ +ELSE + MIXERCAPS equ +ENDIF + +Target STRUCT + dwType DWORD ? + dwDeviceID DWORD ? + wMid WORD ? + wPid WORD ? + vDriverVersion MMVERSION ? + szPname BYTE MAXPNAMELEN dup (?) +Target ENDS + + +MIXERLINECONTROLSA STRUCT + cbStruct DWORD ? + dwLineID DWORD ? + union + dwControlID DWORD ? + dwControlType DWORD ? + ends + cControls DWORD ? + cbmxctrl DWORD ? + pamxctrl DWORD ? +MIXERLINECONTROLSA ENDS + +MIXERLINECONTROLSW STRUCT + cbStruct DWORD ? + dwLineID DWORD ? + union + dwControlID DWORD ? + dwControlType DWORD ? + ends + cControls DWORD ? + cbmxctrl DWORD ? + pamxctrl DWORD ? +MIXERLINECONTROLSW ENDS + +IFDEF __UNICODE__ + MIXERLINECONTROLS equ +ELSE + MIXERLINECONTROLS equ +ENDIF + +MIXERCONTROLDETAILS STRUCT + cbStruct DWORD ? + dwControlID DWORD ? + cChannels DWORD ? + union + hwndOwner DWORD ? + cMultipleItems DWORD ? + ends + cbDetails DWORD ? + paDetails DWORD ? +MIXERCONTROLDETAILS ENDS + +MIXERCONTROLDETAILS_BOOLEAN STRUCT + fValue DWORD ? +MIXERCONTROLDETAILS_BOOLEAN ENDS + +MIXERCONTROLDETAILS_SIGNED STRUCT + lValue DWORD ? +MIXERCONTROLDETAILS_SIGNED ENDS + +MIXERCONTROLDETAILS_UNSIGNED STRUCT + dwValue DWORD ? +MIXERCONTROLDETAILS_UNSIGNED ENDS + +JOYINFOEX STRUCT + dwSize DWORD ? + dwFlags DWORD ? + dwXpos DWORD ? + dwYpos DWORD ? + dwZpos DWORD ? + dwRpos DWORD ? + dwUpos DWORD ? + dwVpos DWORD ? + dwButtons DWORD ? + dwButtonNumber DWORD ? + dwPOV DWORD ? + dwReserved1 DWORD ? + dwReserved2 DWORD ? +JOYINFOEX ENDS + +DRVCONFIGINFOEX STRUCT + dwDCISize DWORD ? + lpszDCISectionName DWORD ? + lpszDCIAliasName DWORD ? + dnDevNode DWORD ? +DRVCONFIGINFOEX ENDS + +DRVCONFIGINFO STRUCT + dwDCISize DWORD ? + lpszDCISectionName DWORD ? + lpszDCIAliasName DWORD ? +DRVCONFIGINFO ENDS + +WAVEHDR STRUCT + lpData DWORD ? + dwBufferLength DWORD ? + dwBytesRecorded DWORD ? + dwUser DWORD ? + dwFlags DWORD ? + dwLoops DWORD ? + lpNext DWORD ? + Reserved DWORD ? +WAVEHDR ENDS + +WAVEOUTCAPSA STRUCT + wMid WORD ? + wPid WORD ? + vDriverVersion MMVERSION ? + szPname BYTE MAXPNAMELEN dup (?) + dwFormats DWORD ? + wChannels WORD ? + wReserved1 WORD ? + dwSupport DWORD ? +WAVEOUTCAPSA ENDS + +WAVEOUTCAPSW STRUCT + wMid WORD ? + wPid WORD ? + vDriverVersion MMVERSION ? + szPname WORD MAXPNAMELEN dup (?) + dwFormats DWORD ? + wChannels WORD ? + wReserved1 WORD ? + dwSupport DWORD ? +WAVEOUTCAPSW ENDS + +IFDEF __UNICODE__ + WAVEOUTCAPS equ +ELSE + WAVEOUTCAPS equ +ENDIF + +WAVEINCAPSA STRUCT + wMid WORD ? + wPid WORD ? + vDriverVersion MMVERSION ? + szPname BYTE MAXPNAMELEN dup (?) + dwFormats DWORD ? + wChannels WORD ? + wReserved1 WORD ? +WAVEINCAPSA ENDS + +WAVEINCAPSW STRUCT + wMid WORD ? + wPid WORD ? + vDriverVersion MMVERSION ? + szPname WORD MAXPNAMELEN dup (?) + dwFormats DWORD ? + wChannels WORD ? + wReserved1 WORD ? +WAVEINCAPSW ENDS + +IFDEF __UNICODE__ + WAVEINCAPS equ +ELSE + WAVEINCAPS equ +ENDIF + +WAVEFORMAT STRUCT + wFormatTag WORD ? + nChannels WORD ? + nSamplesPerSec DWORD ? + nAvgBytesPerSec DWORD ? + nBlockAlign WORD ? +WAVEFORMAT ENDS + +PCMWAVEFORMAT STRUCT + wf WAVEFORMAT <> + wBitsPerSample WORD ? +PCMWAVEFORMAT ENDS + +MIDIOUTCAPSA STRUCT + wMid WORD ? + wPid WORD ? + vDriverVersion MMVERSION ? + szPname BYTE MAXPNAMELEN dup (?) + wTechnology WORD ? + wVoices WORD ? + wNotes WORD ? + wChannelMask WORD ? + dwSupport DWORD ? +MIDIOUTCAPSA ENDS + +MIDIOUTCAPSW STRUCT + wMid WORD ? + wPid WORD ? + vDriverVersion MMVERSION ? + szPname WORD MAXPNAMELEN dup (?) + wTechnology WORD ? + wVoices WORD ? + wNotes WORD ? + wChannelMask WORD ? + dwSupport DWORD ? +MIDIOUTCAPSW ENDS + +IFDEF __UNICODE__ + MIDIOUTCAPS equ +ELSE + MIDIOUTCAPS equ +ENDIF + +MIDIINCAPSA STRUCT + wMid WORD ? + wPid WORD ? + vDriverVersion MMVERSION ? + szPname BYTE MAXPNAMELEN dup (?) + dwSupport DWORD ? +MIDIINCAPSA ENDS + +MIDIINCAPSW STRUCT + wMid WORD ? + wPid WORD ? + vDriverVersion MMVERSION ? + szPname WORD MAXPNAMELEN dup (?) + dwSupport DWORD ? +MIDIINCAPSW ENDS + +IFDEF __UNICODE__ + MIDIINCAPS equ +ELSE + MIDIINCAPS equ +ENDIF + +MIDIHDR STRUCT + lpData DWORD ? + dwBufferiLength DWORD ? + dwBytesRecorded DWORD ? + dwUser DWORD ? + dwFlags DWORD ? + lpNext DWORD ? + Reserved DWORD ? + dwOffset DWORD ? + dwReserved DWORD 8 dup(?) +MIDIHDR ENDS + +AUXCAPSA STRUCT + wMid WORD ? + wPid WORD ? + vDriverVersion MMVERSION ? + szPname BYTE MAXPNAMELEN dup (?) + wTechnology WORD ? + dwSupport DWORD ? +AUXCAPSA ENDS + +AUXCAPSW STRUCT + wMid WORD ? + wPid WORD ? + vDriverVersion MMVERSION ? + szPname WORD MAXPNAMELEN dup (?) + wTechnology WORD ? + dwSupport DWORD ? +AUXCAPSW ENDS + +IFDEF __UNICODE__ + AUXCAPS equ +ELSE + AUXCAPS equ +ENDIF + +TIMECAPS STRUCT + wPeriodMin DWORD ? + wPeriodMax DWORD ? +TIMECAPS ENDS + +JOYCAPSA STRUCT + wMid WORD ? + wPid WORD ? + szPname BYTE MAXPNAMELEN dup (?) + wXmin WORD ? + wXmax WORD ? + wYmin WORD ? + wYmax WORD ? + wZmin WORD ? + wZmax WORD ? + wNumButtons WORD ? + wPeriodMin WORD ? + wPeriodMax WORD ? + wRmin DWORD ? + wRmax DWORD ? + wUmin DWORD ? + wUmax DWORD ? + wVmin DWORD ? + wVmax DWORD ? + wCaps DWORD ? + wMaxAxes DWORD ? + wNumAxes DWORD ? + wMaxButtons DWORD ? + szRegKey BYTE MAXPNAMELEN dup(?) + szOEMVxD BYTE MAX_JOYSTICKOEMVXDNAME dup(?) +JOYCAPSA ENDS + +JOYCAPSW STRUCT + wMid WORD ? + wPid WORD ? + szPname WORD MAXPNAMELEN dup (?) + wXmin WORD ? + wXmax WORD ? + wYmin WORD ? + wYmax WORD ? + wZmin WORD ? + wZmax WORD ? + wNumButtons WORD ? + wPeriodMin WORD ? + wPeriodMax WORD ? + wRmin DWORD ? + wRmax DWORD ? + wUmin DWORD ? + wUmax DWORD ? + wVmin DWORD ? + wVmax DWORD ? + wCaps DWORD ? + wMaxAxes DWORD ? + wNumAxes DWORD ? + wMaxButtons DWORD ? + szRegKey WORD MAXPNAMELEN dup(?) + szOEMVxD WORD MAX_JOYSTICKOEMVXDNAME dup(?) +JOYCAPSW ENDS + +IFDEF __UNICODE__ + JOYCAPS equ +ELSE + JOYCAPS equ +ENDIF + +JOYINFO STRUCT + wXpos WORD ? + wYpos WORD ? + wZpos WORD ? + wButtons WORD ? +JOYINFO ENDS + +MMIOINFO STRUCT + dwFlags DWORD ? + fccIOProc DWORD ? + pIOProc DWORD ? + wErrorRet DWORD ? + htask DWORD ? + cchBuffer DWORD ? + pchBuffer DWORD ? + pchNext DWORD ? + pchEndRead DWORD ? + pchEndWrite DWORD ? + lBufOffset DWORD ? + lDiskOffset DWORD ? + adwInfo DWORD 3 dup(?) + dwReserved1 DWORD ? + dwReserved2 DWORD ? + hmmio DWORD ? +MMIOINFO ENDS + +MMCKINFO STRUCT + ckid DWORD ? + ckSize DWORD ? + fccType DWORD ? + dwDataOffset DWORD ? + dwFlags DWORD ? +MMCKINFO ENDS + +MCI_GENERIC_PARMS STRUCT + dwCallback DWORD ? +MCI_GENERIC_PARMS ENDS + +MCI_OPEN_PARMS STRUCT + dwCallback DWORD ? + wDeviceID DWORD ? + lpstrDeviceType DWORD ? + lpstrElementName DWORD ? + lpstrAlias DWORD ? +MCI_OPEN_PARMS ENDS + +MCI_PLAY_PARMS STRUCT + dwCallback DWORD ? + dwFrom DWORD ? + dwTo DWORD ? +MCI_PLAY_PARMS ENDS + +MCI_SEEK_PARMS STRUCT + dwCallback DWORD ? + dwTo DWORD ? +MCI_SEEK_PARMS ENDS + +MCI_STATUS_PARMS STRUCT + dwCallback DWORD ? + dwReturn DWORD ? + dwItem DWORD ? + dwTrack DWORD ? +MCI_STATUS_PARMS ENDS + +MCI_INFO_PARMSA STRUCT + dwCallback DWORD ? + lpstrReturn DWORD ? + dwRetSize DWORD ? +MCI_INFO_PARMSA ENDS + +MCI_INFO_PARMSW STRUCT + dwCallback DWORD ? + lpstrReturn DWORD ? + dwRetSize DWORD ? +MCI_INFO_PARMSW ENDS + +IFDEF __UNICODE__ + MCI_INFO_PARMS equ +ELSE + MCI_INFO_PARMS equ +ENDIF + +MCI_GETDEVCAPS_PARMS STRUCT + dwCallback DWORD ? + dwReturn DWORD ? + dwItem DWORD ? +MCI_GETDEVCAPS_PARMS ENDS + +MCI_SYSINFO_PARMSA STRUCT + dwCallback DWORD ? + lpstrReturn DWORD ? + dwRetSize DWORD ? + dwNumber DWORD ? + wDeviceType DWORD ? +MCI_SYSINFO_PARMSA ENDS + +MCI_SYSINFO_PARMSW STRUCT + dwCallback DWORD ? + lpstrReturn DWORD ? + dwRetSize DWORD ? + dwNumber DWORD ? + wDeviceType DWORD ? +MCI_SYSINFO_PARMSW ENDS + +IFDEF __UNICODE__ + MCI_SYSINFO_PARMS equ +ELSE + MCI_SYSINFO_PARMS equ +ENDIF + +MCI_SET_PARMS STRUCT + dwCallback DWORD ? + dwTimeFormat DWORD ? + dwAudio DWORD ? +MCI_SET_PARMS ENDS + +MCI_BREAK_PARMS STRUCT + dwCallback DWORD ? + nVirtKey DWORD ? + hwndBreak DWORD ? +MCI_BREAK_PARMS ENDS + +MCI_SOUND_PARMS STRUCT + dwCallback DWORD ? + lpstrSoundName DWORD ? +MCI_SOUND_PARMS ENDS + +MCI_SAVE_PARMSA STRUCT + dwCallback DWORD ? + lpFileName DWORD ? +MCI_SAVE_PARMSA ENDS + +MCI_SAVE_PARMSW STRUCT + dwCallback DWORD ? + lpFileName DWORD ? +MCI_SAVE_PARMSW ENDS + +IFDEF __UNICODE__ + MCI_SAVE_PARMS equ +ELSE + MCI_SAVE_PARMS equ +ENDIF + +MCI_LOAD_PARMSA STRUCT + dwCallback DWORD ? + lpFileName DWORD ? +MCI_LOAD_PARMSA ENDS + +MCI_LOAD_PARMSW STRUCT + dwCallback DWORD ? + lpFileName DWORD ? +MCI_LOAD_PARMSW ENDS + +IFDEF __UNICODE__ + MCI_LOAD_PARMS equ +ELSE + MCI_LOAD_PARMS equ +ENDIF + +MCI_RECORD_PARMS STRUCT + dwCallback DWORD ? + dwFrom DWORD ? + dwTo DWORD ? +MCI_RECORD_PARMS ENDS + +MCI_VD_PLAY_PARMS STRUCT + dwCallback DWORD ? + dwFrom DWORD ? + dwTo DWORD ? + dwSpeed DWORD ? +MCI_VD_PLAY_PARMS ENDS + +MCI_VD_STEP_PARMS STRUCT + dwCallback DWORD ? + dwFrames DWORD ? +MCI_VD_STEP_PARMS ENDS + +MCI_VD_ESCAPE_PARMSA STRUCT + dwCallback DWORD ? + lpstrCommand DWORD ? +MCI_VD_ESCAPE_PARMSA ENDS + +MCI_VD_ESCAPE_PARMSW STRUCT + dwCallback DWORD ? + lpstrCommand DWORD ? +MCI_VD_ESCAPE_PARMSW ENDS + +IFDEF __UNICODE__ + MCI_VD_ESCAPE_PARMS equ +ELSE + MCI_VD_ESCAPE_PARMS equ +ENDIF + +MCI_WAVE_OPEN_PARMSA STRUCT + dwCallback DWORD ? + wDeviceID DWORD ? + lpstrDeviceType DWORD ? + lpstrElementName DWORD ? + lpstrAlias DWORD ? + dwBufferSeconds DWORD ? +MCI_WAVE_OPEN_PARMSA ENDS + +MCI_WAVE_OPEN_PARMSW STRUCT + dwCallback DWORD ? + wDeviceID DWORD ? + lpstrDeviceType DWORD ? + lpstrElementName DWORD ? + lpstrAlias DWORD ? + dwBufferSeconds DWORD ? +MCI_WAVE_OPEN_PARMSW ENDS + +IFDEF __UNICODE__ + MCI_WAVE_OPEN_PARMS equ +ELSE + MCI_WAVE_OPEN_PARMS equ +ENDIF + +MCI_WAVE_DELETE_PARMS STRUCT + dwCallback DWORD ? + dwFrom DWORD ? + dwTo DWORD ? +MCI_WAVE_DELETE_PARMS ENDS + +MCI_WAVE_SET_PARMS STRUCT + dwCallback DWORD ? + dwTimeFormat DWORD ? + dwAudio DWORD ? + wInput DWORD ? + wOutput DWORD ? + wFormatTag WORD ? + wReserved2 WORD ? + nChannels WORD ? + wReserved3 WORD ? + nSamplesPerSec DWORD ? + nAvgBytesPerSec DWORD ? + nBlockAlign WORD ? + wReserved4 WORD ? + wBitsPerSample WORD ? + wReserved5 WORD ? +MCI_WAVE_SET_PARMS ENDS + +MCI_SEQ_SET_PARMS STRUCT + dwCallback DWORD ? + dwTimeFormat DWORD ? + dwAudio DWORD ? + dwTempo DWORD ? + dwPort DWORD ? + dwSlave DWORD ? + dwMaster DWORD ? + dwOffset DWORD ? +MCI_SEQ_SET_PARMS ENDS + +MCI_ANIM_OPEN_PARMSA STRUCT + dwCallback DWORD ? + wDeviceID DWORD ? + lpstrDeviceType DWORD ? + lpstrElementName DWORD ? + lpstrAlias DWORD ? + dwStyle DWORD ? + hWndParent DWORD ? +MCI_ANIM_OPEN_PARMSA ENDS + +MCI_ANIM_OPEN_PARMSW STRUCT + dwCallback DWORD ? + wDeviceID DWORD ? + lpstrDeviceType DWORD ? + lpstrElementName DWORD ? + lpstrAlias DWORD ? + dwStyle DWORD ? + hWndParent DWORD ? +MCI_ANIM_OPEN_PARMSW ENDS + +IFDEF __UNICODE__ + MCI_ANIM_OPEN_PARMS equ +ELSE + MCI_ANIM_OPEN_PARMS equ +ENDIF + +MCI_ANIM_PLAY_PARMS STRUCT + dwCallback DWORD ? + dwFrom DWORD ? + dwTo DWORD ? + dwSpeed DWORD ? +MCI_ANIM_PLAY_PARMS ENDS + +MCI_ANIM_STEP_PARMS STRUCT + dwCallback DWORD ? + dwFrames DWORD ? +MCI_ANIM_STEP_PARMS ENDS + +MCI_ANIM_WINDOW_PARMS STRUCT + dwCallback DWORD ? + hwnd DWORD ? + nCmdShow DWORD ? + lpstrText DWORD ? +MCI_ANIM_WINDOW_PARMS ENDS + +MCI_ANIM_RECT_PARMS STRUCT + dwCallback DWORD ? + rc RECT <> +MCI_ANIM_RECT_PARMS ENDS + +MCI_ANIM_UPDATE_PARMS STRUCT + dwCallback DWORD ? + rc RECT <> + hdc DWORD ? +MCI_ANIM_UPDATE_PARMS ENDS + +MCI_OVLY_OPEN_PARMSA STRUCT + dwCallback DWORD ? + wDeviceID DWORD ? + lpstrDeviceType DWORD ? + lpstrElementName DWORD ? + lpstrAlias DWORD ? + dwStyle DWORD ? + hWndParent DWORD ? +MCI_OVLY_OPEN_PARMSA ENDS + +MCI_OVLY_OPEN_PARMSW STRUCT + dwCallback DWORD ? + wDeviceID DWORD ? + lpstrDeviceType DWORD ? + lpstrElementName DWORD ? + lpstrAlias DWORD ? + dwStyle DWORD ? + hWndParent DWORD ? +MCI_OVLY_OPEN_PARMSW ENDS + +IFDEF __UNICODE__ + MCI_OVLY_OPEN_PARMS equ +ELSE + MCI_OVLY_OPEN_PARMS equ +ENDIF + +MCI_OVLY_WINDOW_PARMSA STRUCT + dwCallback DWORD ? + hwnd DWORD ? + nCmdShow DWORD ? + lpstrText DWORD ? +MCI_OVLY_WINDOW_PARMSA ENDS + +MCI_OVLY_WINDOW_PARMSW STRUCT + dwCallback DWORD ? + hwnd DWORD ? + nCmdShow DWORD ? + lpstrText DWORD ? +MCI_OVLY_WINDOW_PARMSW ENDS + +IFDEF __UNICODE__ + MCI_OVLY_WINDOW_PARMS equ +ELSE + MCI_OVLY_WINDOW_PARMS equ +ENDIF + +MCI_OVLY_RECT_PARMS STRUCT + dwCallback DWORD ? + rc RECT <> +MCI_OVLY_RECT_PARMS ENDS + +MCI_OVLY_SAVE_PARMSA STRUCT + dwCallback DWORD ? + lpFileName DWORD ? + rc RECT <> +MCI_OVLY_SAVE_PARMSA ENDS + +MCI_OVLY_SAVE_PARMSW STRUCT + dwCallback DWORD ? + lpFileName DWORD ? + rc RECT <> +MCI_OVLY_SAVE_PARMSW ENDS + +IFDEF __UNICODE__ + MCI_OVLY_SAVE_PARMS equ +ELSE + MCI_OVLY_SAVE_PARMS equ +ENDIF + +MCI_OVLY_LOAD_PARMSA STRUCT + dwCallback DWORD ? + lpFileName DWORD ? + rc RECT <> +MCI_OVLY_LOAD_PARMSA ENDS + +MCI_OVLY_LOAD_PARMSW STRUCT + dwCallback DWORD ? + lpFileName DWORD ? + rc RECT <> +MCI_OVLY_LOAD_PARMSW ENDS + +IFDEF __UNICODE__ + MCI_OVLY_LOAD_PARMS equ +ELSE + MCI_OVLY_LOAD_PARMS equ +ENDIF + +PRINTER_INFO_1W STRUCT + flags DWORD ? + pDescription DWORD ? + pName DWORD ? + pComment DWORD ? +PRINTER_INFO_1W ENDS + +PRINTER_INFO_1A STRUCT + flags DWORD ? + pDescription DWORD ? + pName DWORD ? + pComment DWORD ? +PRINTER_INFO_1A ENDS + +IFDEF __UNICODE__ + PRINTER_INFO_1 equ +ELSE + PRINTER_INFO_1 equ +ENDIF + +PRINTER_INFO_2A STRUCT + pServerName DWORD ? + pPrinterName DWORD ? + pShareName DWORD ? + pPortName DWORD ? + pDriverName DWORD ? + pComment DWORD ? + pLocation DWORD ? + pDevMode DWORD ? + pSepFile DWORD ? + pPrintProcessor DWORD ? + pDatatype DWORD ? + pParameters DWORD ? + pSecurityDescriptor DWORD ? + Attributes DWORD ? + Priority DWORD ? + DefaultPriority DWORD ? + StartTime DWORD ? + UntilTime DWORD ? + Status DWORD ? + cJobs DWORD ? + AveragePPM DWORD ? +PRINTER_INFO_2A ENDS + +PRINTER_INFO_2W STRUCT + pServerName DWORD ? + pPrinterName DWORD ? + pShareName DWORD ? + pPortName DWORD ? + pDriverName DWORD ? + pComment DWORD ? + pLocation DWORD ? + pDevMode DWORD ? + pSepFile DWORD ? + pPrintProcessor DWORD ? + pDatatype DWORD ? + pParameters DWORD ? + pSecurityDescriptor DWORD ? + Attributes DWORD ? + Priority DWORD ? + DefaultPriority DWORD ? + StartTime DWORD ? + UntilTime DWORD ? + Status DWORD ? + cJobs DWORD ? + AveragePPM DWORD ? +PRINTER_INFO_2W ENDS + +IFDEF __UNICODE__ + PRINTER_INFO_2 equ +ELSE + PRINTER_INFO_2 equ +ENDIF + +PRINTER_INFO_3 STRUCT + pSecurityDescriptor DWORD ? +PRINTER_INFO_3 ENDS + +PRINTER_INFO_4A STRUCT + pPrinterName DWORD ? + pServerName DWORD ? + Attributes DWORD ? +PRINTER_INFO_4A ENDS + +PRINTER_INFO_4W STRUCT + pPrinterName DWORD ? + pServerName DWORD ? + Attributes DWORD ? +PRINTER_INFO_4W ENDS + +IFDEF __UNICODE__ + PRINTER_INFO_4 equ +ELSE + PRINTER_INFO_4 equ +ENDIF + +JOB_INFO_1W STRUCT + JobId DWORD ? + pPrinterName DWORD ? + pMachineName DWORD ? + pUserName DWORD ? + pDocument DWORD ? + pDatatype DWORD ? + pStatus DWORD ? + Status DWORD ? + Priority DWORD ? + Position DWORD ? + TotalPages DWORD ? + PagesPrinted DWORD ? + Submitted SYSTEMTIME <> +JOB_INFO_1W ENDS + +JOB_INFO_1A STRUCT + JobId DWORD ? + pPrinterName DWORD ? + pMachineName DWORD ? + pUserName DWORD ? + pDocument DWORD ? + pDatatype DWORD ? + pStatus DWORD ? + Status DWORD ? + Priority DWORD ? + Position DWORD ? + TotalPages DWORD ? + PagesPrinted DWORD ? + Submitted SYSTEMTIME <> +JOB_INFO_1A ENDS + +IFDEF __UNICODE__ + JOB_INFO_1 equ +ELSE + JOB_INFO_1 equ +ENDIF + +JOB_INFO_2W STRUCT + JobId DWORD ? + pPrinterName DWORD ? + pMachineName DWORD ? + pUserName DWORD ? + pDocument DWORD ? + pNotifyName DWORD ? + pDatatype DWORD ? + pPrintProcessor DWORD ? + pParameters DWORD ? + pDriverName DWORD ? + pDevMode DWORD ? + pStatus DWORD ? + pSecurityDescriptor DWORD ? + Status DWORD ? + Priority DWORD ? + Position DWORD ? + StartTime DWORD ? + UntilTime DWORD ? + TotalPages DWORD ? + isize DWORD ? + Submitted SYSTEMTIME <> + time DWORD ? + PagesPrinted DWORD ? +JOB_INFO_2W ENDS + +JOB_INFO_2A STRUCT + JobId DWORD ? + pPrinterName DWORD ? + pMachineName DWORD ? + pUserName DWORD ? + pDocument DWORD ? + pNotifyName DWORD ? + pDatatype DWORD ? + pPrintProcessor DWORD ? + pParameters DWORD ? + pDriverName DWORD ? + pDevMode DWORD ? + pStatus DWORD ? + pSecurityDescriptor DWORD ? + Status DWORD ? + Priority DWORD ? + Position DWORD ? + StartTime DWORD ? + UntilTime DWORD ? + TotalPages DWORD ? + isize DWORD ? + Submitted SYSTEMTIME <> + time DWORD ? + PagesPrinted DWORD ? +JOB_INFO_2A ENDS + +IFDEF __UNICODE__ + JOB_INFO_2 equ +ELSE + JOB_INFO_2 equ +ENDIF + +ADDJOB_INFO_1W STRUCT + Path DWORD ? + JobId DWORD ? +ADDJOB_INFO_1W ENDS + +ADDJOB_INFO_1A STRUCT + Path DWORD ? + JobId DWORD ? +ADDJOB_INFO_1A ENDS + +IFDEF __UNICODE__ + ADDJOB_INFO_1 equ +ELSE + ADDJOB_INFO_1 equ +ENDIF + +DRIVER_INFO_1W STRUCT + pName DWORD ? +DRIVER_INFO_1W ENDS + +DRIVER_INFO_1A STRUCT + pName DWORD ? +DRIVER_INFO_1A ENDS + +IFDEF __UNICODE__ + DRIVER_INFO_1 equ +ELSE + DRIVER_INFO_1 equ +ENDIF + +DRIVER_INFO_2W STRUCT + cVersion DWORD ? + pName DWORD ? + pEnvironment DWORD ? + pDriverPath DWORD ? + pDataFile DWORD ? + pConfigFile DWORD ? +DRIVER_INFO_2W ENDS + +DRIVER_INFO_2A STRUCT + cVersion DWORD ? + pName DWORD ? + pEnvironment DWORD ? + pDriverPath DWORD ? + pDataFile DWORD ? + pConfigFile DWORD ? +DRIVER_INFO_2A ENDS + +IFDEF __UNICODE__ + DRIVER_INFO_2 equ +ELSE + DRIVER_INFO_2 equ +ENDIF + +DOC_INFO_1W STRUCT + pDocName DWORD ? + pOutputFile DWORD ? + pDatatype DWORD ? +DOC_INFO_1W ENDS + +DOC_INFO_1A STRUCT + pDocName DWORD ? + pOutputFile DWORD ? + pDatatype DWORD ? +DOC_INFO_1A ENDS + +IFDEF __UNICODE__ + DOC_INFO_1 equ +ELSE + DOC_INFO_1 equ +ENDIF + +FORM_INFO_1W STRUCT + Flags DWORD ? + pName DWORD ? + iSize SIZEL <> + ImageableArea RECTL <> +FORM_INFO_1W ENDS + +FORM_INFO_1A STRUCT + Flags DWORD ? + pName DWORD ? + iSize SIZEL <> + ImageableArea RECTL <> +FORM_INFO_1A ENDS + +IFDEF __UNICODE__ + FORM_INFO_1 equ +ELSE + FORM_INFO_1 equ +ENDIF + +PRINTPROCESSOR_INFO_1W STRUCT + pName DWORD ? +PRINTPROCESSOR_INFO_1W ENDS + +PRINTPROCESSOR_INFO_1A STRUCT + pName DWORD ? +PRINTPROCESSOR_INFO_1A ENDS + +IFDEF __UNICODE__ + PRINTPROCESSOR_INFO_1 equ +ELSE + PRINTPROCESSOR_INFO_1 equ +ENDIF + +PORT_INFO_1W STRUCT + pName DWORD ? +PORT_INFO_1W ENDS + +PORT_INFO_1A STRUCT + pName DWORD ? +PORT_INFO_1A ENDS + +IFDEF __UNICODE__ + PORT_INFO_1 equ +ELSE + PORT_INFO_1 equ +ENDIF + +MONITOR_INFO_1W STRUCT + pName DWORD ? +MONITOR_INFO_1W ENDS + +MONITOR_INFO_1A STRUCT + pName DWORD ? +MONITOR_INFO_1A ENDS + +IFDEF __UNICODE__ + MONITOR_INFO_1 equ +ELSE + MONITOR_INFO_1 equ +ENDIF + +MONITOR_INFO_2W STRUCT + pName DWORD ? + pEnvironment DWORD ? + pDLLName DWORD ? +MONITOR_INFO_2W ENDS + +MONITOR_INFO_2A STRUCT + pName DWORD ? + pEnvironment DWORD ? + pDLLName DWORD ? +MONITOR_INFO_2A ENDS + +IFDEF __UNICODE__ + MONITOR_INFO_2 equ +ELSE + MONITOR_INFO_2 equ +ENDIF + +DATATYPES_INFO_1W STRUCT + pName DWORD ? +DATATYPES_INFO_1W ENDS + +DATATYPES_INFO_1A STRUCT + pName DWORD ? +DATATYPES_INFO_1A ENDS + +IFDEF __UNICODE__ + DATATYPES_INFO_1 equ +ELSE + DATATYPES_INFO_1 equ +ENDIF + +PRINTER_DEFAULTSW STRUCT + pDatatype DWORD ? + pDevMode DWORD ? + DesiredAccess ACCESS_MASK ? +PRINTER_DEFAULTSW ENDS + +PRINTER_DEFAULTSA STRUCT + pDatatype DWORD ? + pDevMode DWORD ? + DesiredAccess ACCESS_MASK ? +PRINTER_DEFAULTSA ENDS + +IFDEF __UNICODE__ + PRINTER_DEFAULTS equ +ELSE + PRINTER_DEFAULTS equ +ENDIF + +PRINTER_INFO_5W STRUCT + pPrinterName DWORD ? + pPortName DWORD ? + Attributes DWORD ? + DeviceNotSelectedTimeout DWORD ? + TransmissionRetryTimeout DWORD ? +PRINTER_INFO_5W ENDS + +PRINTER_INFO_5A STRUCT + pPrinterName DWORD ? + pPortName DWORD ? + Attributes DWORD ? + DeviceNotSelectedTimeout DWORD ? + TransmissionRetryTimeout DWORD ? +PRINTER_INFO_5A ENDS + +IFDEF __UNICODE__ + PRINTER_INFO_5 equ +ELSE + PRINTER_INFO_5 equ +ENDIF + +DRIVER_INFO_3W STRUCT + cVersion DWORD ? + pName DWORD ? + pEnvironment DWORD ? + pDriverPath DWORD ? + pDataFile DWORD ? + pConfigFile DWORD ? + pHelpFile DWORD ? + pDependentFiles DWORD ? + pMonitorName DWORD ? + pDefaultDataType DWORD ? +DRIVER_INFO_3W ENDS + +DRIVER_INFO_3A STRUCT + cVersion DWORD ? + pName DWORD ? + pEnvironment DWORD ? + pDriverPath DWORD ? + pDataFile DWORD ? + pConfigFile DWORD ? + pHelpFile DWORD ? + pDependentFiles DWORD ? + pMonitorName DWORD ? + pDefaultDataType DWORD ? +DRIVER_INFO_3A ENDS + +IFDEF __UNICODE__ + DRIVER_INFO_3 equ +ELSE + DRIVER_INFO_3 equ +ENDIF + +DOC_INFO_2W STRUCT + pDocName DWORD ? + pOutputFile DWORD ? + pDatatype DWORD ? + dwMode DWORD ? + JobId DWORD ? +DOC_INFO_2W ENDS + +DOC_INFO_2A STRUCT + pDocName DWORD ? + pOutputFile DWORD ? + pDatatype DWORD ? + dwMode DWORD ? + JobId DWORD ? +DOC_INFO_2A ENDS + +IFDEF __UNICODE__ + DOC_INFO_2 equ +ELSE + DOC_INFO_2 equ +ENDIF + +PORT_INFO_2W STRUCT + pPortName DWORD ? + pMonitorName DWORD ? + pDescription DWORD ? + fPortType DWORD ? + Reserved DWORD ? +PORT_INFO_2W ENDS + +PORT_INFO_2A STRUCT + pPortName DWORD ? + pMonitorName DWORD ? + pDescription DWORD ? + fPortType DWORD ? + Reserved DWORD ? +PORT_INFO_2A ENDS + +IFDEF __UNICODE__ + PORT_INFO_2 equ +ELSE + PORT_INFO_2 equ +ENDIF + +PROVIDOR_INFO_1W STRUCT + pName DWORD ? + pEnvironment DWORD ? + pDLLName DWORD ? +PROVIDOR_INFO_1W ENDS + +PROVIDOR_INFO_1A STRUCT + pName DWORD ? + pEnvironment DWORD ? + pDLLName DWORD ? +PROVIDOR_INFO_1A ENDS + +IFDEF __UNICODE__ + PROVIDOR_INFO_1 equ +ELSE + PROVIDOR_INFO_1 equ +ENDIF + +NETRESOURCEW STRUCT + dwScope DWORD ? + dwType DWORD ? + dwDisplayType DWORD ? + dwUsage DWORD ? + lpLocalName DWORD ? + lpRemoteName DWORD ? + lpComment DWORD ? + lpProvider DWORD ? +NETRESOURCEW ENDS + +NETRESOURCEA STRUCT + dwScope DWORD ? + dwType DWORD ? + dwDisplayType DWORD ? + dwUsage DWORD ? + lpLocalName DWORD ? + lpRemoteName DWORD ? + lpComment DWORD ? + lpProvider DWORD ? +NETRESOURCEA ENDS + +IFDEF __UNICODE__ + NETRESOURCE equ +ELSE + NETRESOURCE equ +ENDIF + +NCB STRUCT + ncb_command BYTE ? + ncb_retcode BYTE ? + ncb_lsn BYTE ? + ncb_num BYTE ? + ncb_buffer DWORD ? + ncb_length WORD ? + ncb_callname BYTE NCBNAMSZ dup (?) + ncb_name BYTE NCBNAMSZ dup (?) + ncb_rto BYTE ? + ncb_sto BYTE ? + ncb_post DWORD ? + ncb_lana_num BYTE ? + ncb_cmd_cplt BYTE ? + ncb_reserve BYTE 10 DUP(?) + ncb_event DWORD ? +NCB ENDS + +ADAPTER_STATUS STRUCT + adapter_address BYTE 6 dup (?) + rev_major BYTE ? + reserved0 BYTE ? + adapter_type BYTE ? + rev_minor BYTE ? + duration WORD ? + frmr_recv WORD ? + frmr_xmit WORD ? + iframe_recv_err WORD ? + xmit_aborts WORD ? + xmit_success DWORD ? + recv_success DWORD ? + iframe_xmit_err WORD ? + recv_buff_unavail WORD ? + t1_timeouts WORD ? + ti_timeouts WORD ? + rserved1 DWORD ? + free_ncbs WORD ? + max_cfg_ncbs WORD ? + max_ncbs WORD ? + xmit_buf_unavail WORD ? + max_dgram_isize WORD ? + pending_sess WORD ? + max_cfg_sess WORD ? + max_sess WORD ? + max_sess_pkt_isize WORD ? + name_count WORD ? +ADAPTER_STATUS ENDS + +NAME_BUFFER STRUCT + xname BYTE NCBNAMSZ dup (?) + name_num BYTE ? + name_flags BYTE ? +NAME_BUFFER ENDS + +SESSION_HEADER STRUCT + sess_name BYTE ? + num_sess BYTE ? + rcv_dg_outstanding BYTE ? + rcv_any_outstanding BYTE ? +SESSION_HEADER ENDS + +SESSION_BUFFER STRUCT + lsn BYTE ? + State BYTE ? + local_name BYTE NCBNAMSZ dup (?) + remote_name BYTE NCBNAMSZ dup (?) + rcvs_outstanding BYTE ? + sends_outstanding BYTE ? +SESSION_BUFFER ENDS + +LANA_ENUM STRUCT + iLength BYTE ? + lana BYTE MAX_LANA+1 DUP(?) +LANA_ENUM ENDS + +FIND_NAME_HEADER STRUCT + node_count WORD ? + Reserved BYTE ? + unique_group BYTE ? +FIND_NAME_HEADER ENDS + +FIND_NAME_BUFFER STRUCT + iLength BYTE ? + access_control BYTE ? + frame_control BYTE ? + destination_addr BYTE 6 DUP(?) + source_addr BYTE 6 DUP(?) + routing_info BYTE 18 DUP(?) +FIND_NAME_BUFFER ENDS + +ACTION_HEADER STRUCT + transport_id DWORD ? + action_code WORD ? + Reserved WORD ? +ACTION_HEADER ENDS + +CRGB STRUCT + bRed BYTE ? + bGreen BYTE ? + bBlue BYTE ? + bExtra BYTE ? +CRGB ENDS + +SERVICE_STATUS STRUCT + dwServiceType DWORD ? + dwCurrentState DWORD ? + dwControlsAccepted DWORD ? + dwWin32ExitCode DWORD ? + dwServiceSpecificExitCode DWORD ? + dwCheckPoint DWORD ? + dwWaitHint DWORD ? +SERVICE_STATUS ENDS + +ENUM_SERVICE_STATUSW STRUCT + lpServiceName DWORD ? + lpDisplayName DWORD ? + ServiceStatus SERVICE_STATUS <> +ENUM_SERVICE_STATUSW ENDS + +ENUM_SERVICE_STATUSA STRUCT + lpServiceName DWORD ? + lpDisplayName DWORD ? + ServiceStatus SERVICE_STATUS <> +ENUM_SERVICE_STATUSA ENDS + +IFDEF __UNICODE__ + ENUM_SERVICE_STATUS equ +ELSE + ENUM_SERVICE_STATUS equ +ENDIF + +QUERY_SERVICE_LOCK_STATUSW STRUCT + fIsLocked DWORD ? + lpLockOwner DWORD ? + dwLockDuration DWORD ? +QUERY_SERVICE_LOCK_STATUSW ENDS + +QUERY_SERVICE_LOCK_STATUSA STRUCT + fIsLocked DWORD ? + lpLockOwner DWORD ? + dwLockDuration DWORD ? +QUERY_SERVICE_LOCK_STATUSA ENDS + +IFDEF __UNICODE__ + QUERY_SERVICE_LOCK_STATUS equ +ELSE + QUERY_SERVICE_LOCK_STATUS equ +ENDIF + +QUERY_SERVICE_CONFIGW STRUCT + dwServiceType DWORD ? + dwStartType DWORD ? + dwErrorControl DWORD ? + lpBinaryPathName DWORD ? + lpLoadOrderGroup DWORD ? + dwTagId DWORD ? + lpDependencies DWORD ? + lpServiceStartName DWORD ? + lpDisplayName DWORD ? +QUERY_SERVICE_CONFIGW ENDS + +QUERY_SERVICE_CONFIGA STRUCT + dwServiceType DWORD ? + dwStartType DWORD ? + dwErrorControl DWORD ? + lpBinaryPathName DWORD ? + lpLoadOrderGroup DWORD ? + dwTagId DWORD ? + lpDependencies DWORD ? + lpServiceStartName DWORD ? + lpDisplayName DWORD ? +QUERY_SERVICE_CONFIGA ENDS + +IFDEF __UNICODE__ + QUERY_SERVICE_CONFIG equ +ELSE + QUERY_SERVICE_CONFIG equ +ENDIF + +SERVICE_TABLE_ENTRYW STRUCT + lpServiceName DWORD ? + lpServiceProc DWORD ? +SERVICE_TABLE_ENTRYW ENDS + +SERVICE_TABLE_ENTRYA STRUCT + lpServiceName DWORD ? + lpServiceProc DWORD ? +SERVICE_TABLE_ENTRYA ENDS + +IFDEF __UNICODE__ + SERVICE_TABLE_ENTRY equ +ELSE + SERVICE_TABLE_ENTRY equ +ENDIF + +PERF_DATA_BLOCK STRUCT + Signature WORD 4 dup (?) + LittleEndian DWORD ? + Version DWORD ? + Revision DWORD ? + TotalByteiLength DWORD ? + HeaderiLength DWORD ? + NumObjectTypes DWORD ? + DefaultObject DWORD ? + SystemTime SYSTEMTIME <> + Padding DWORD ? + PerfTime LARGE_INTEGER <> + PerfFreq LARGE_INTEGER <> + PerTime100nSec LARGE_INTEGER <> + SystemNameiLength DWORD ? + SystemNameOffset DWORD ? +PERF_DATA_BLOCK ENDS + +PERF_OBJECT_TYPE STRUCT + TotalByteiLength DWORD ? + DefinitioniLength DWORD ? + HeaderiLength DWORD ? + ObjectNameTitleIndex DWORD ? + ObjectNameTitle DWORD ? + ObjectHelpTitleIndex DWORD ? + ObjectHelpTitle DWORD ? + DetailLevel DWORD ? + NumCounters DWORD ? + DefaultCounter DWORD ? + NumInstances DWORD ? + CodePage DWORD ? + PerfTime LARGE_INTEGER <> + PerfFreq LARGE_INTEGER <> +PERF_OBJECT_TYPE ENDS + +PERF_COUNTER_DEFINITION STRUCT + ByteiLength DWORD ? + CounterNameTitleIndex DWORD ? + CounterNameTitle DWORD ? + CounterHelpTitleIndex DWORD ? + CounterHelpTitle DWORD ? + DefaultScale DWORD ? + DetailLevel DWORD ? + CounterType DWORD ? + CounterSize DWORD ? + CounterOffset DWORD ? +PERF_COUNTER_DEFINITION ENDS + +PERF_INSTANCE_DEFINITION STRUCT + ByteiLength DWORD ? + ParentObjectTitleIndex DWORD ? + ParentObjectInstance DWORD ? + UniqueID DWORD ? + NameOffset DWORD ? + NameiLength DWORD ? +PERF_INSTANCE_DEFINITION ENDS + +PERF_COUNTER_BLOCK STRUCT + ByteiLength DWORD ? +PERF_COUNTER_BLOCK ENDS + +COMPOSITIONFORM STRUCT + dwStyle DWORD ? + ptCurrentPos POINT <> + rcArea RECT <> +COMPOSITIONFORM ENDS + +CANDIDATEFORM STRUCT + dwIndex DWORD ? + dwStyle DWORD ? + ptCurrentPos POINT <> + rcArea RECT <> +CANDIDATEFORM ENDS + +CANDIDATELIST STRUCT + dwSize DWORD ? + dwStyle DWORD ? + dwCount DWORD ? + dwSelection DWORD ? + dwPageStart DWORD ? + dwPageSize DWORD ? + dwOffset1 DWORD ? +CANDIDATELIST ENDS + +STYLEBUFA STRUCT + dwStyle DWORD ? + szDescription BYTE STYLE_DESCRIPTION_SIZE dup (?) +STYLEBUFA ENDS + +STYLEBUFW STRUCT + dwStyle DWORD ? + szDescription WORD STYLE_DESCRIPTION_SIZE dup (?) +STYLEBUFW ENDS + +IFDEF __UNICODE__ + STYLEBUF equ +ELSE + STYLEBUF equ +ENDIF + +MODEMDEVCAPS STRUCT + dwActualSize DWORD ? + dwRequiredSize DWORD ? + dwDevSpecificOffset DWORD ? + dwDevSpecificSize DWORD ? + dwModemProviderVersion DWORD ? + dwModemManufacturerOffset DWORD ? + dwModemManufacturerSize DWORD ? + dwModemModelOffset DWORD ? + dwModemModelSize DWORD ? + dwModemVersionOffset DWORD ? + dwModemVersionSize DWORD ? + dwDialOptions DWORD ? + dwCallSetupFailTimer DWORD ? + dwInactivityTimeout DWORD ? + dwSpeakerVolume DWORD ? + dwSpeakerMode DWORD ? + dwModemOptions DWORD ? + dwMaxDTERate DWORD ? + dwMaxDCERate DWORD ? + abVariablePortion BYTE ? +MODEMDEVCAPS ENDS + +MODEMSETTINGS STRUCT + dwActualSize DWORD ? + dwRequiredSize DWORD ? + dwDevSpecificOffset DWORD ? + dwDevSpecificSize DWORD ? + dwCallSetupFailTimer DWORD ? + dwInactivityTimeout DWORD ? + dwSpeakerVolume DWORD ? + dwSpeakerMode DWORD ? + dwPreferredModemOptions DWORD ? + dwNegotiatedModemOptions DWORD ? + dwNegotiatedDCERate DWORD ? + abVariablePortion BYTE ? +MODEMSETTINGS ENDS + +DRAGINFOA STRUCT + uSize DWORD ? + pt POINT <> + fNC DWORD ? + lpFileList DWORD ? + grfKeyState DWORD ? +DRAGINFOA ENDS + +DRAGINFOW STRUCT + uSize DWORD ? + pt POINT <> + fNC DWORD ? + lpFileList DWORD ? + grfKeyState DWORD ? +DRAGINFOW ENDS + +IFDEF __UNICODE__ + DRAGINFO equ +ELSE + DRAGINFO equ +ENDIF + +APPBARDATA STRUCT + cbSize DWORD ? + hwnd DWORD ? + uCallbackMessage DWORD ? + uEdge DWORD ? + rc RECT <> + lParam DWORD ? +APPBARDATA ENDS + +SHELLEXECUTEINFOW STRUCT + cbSize DWORD ? + fMask DWORD ? + hwnd DWORD ? + lpVerb DWORD ? + lpFile DWORD ? + lpParameters DWORD ? + lpDirectory DWORD ? + nShow DWORD ? + hInstApp DWORD ? + lpIDList DWORD ? + lpClass DWORD ? + hkeyClass DWORD ? + dwHotKey DWORD ? + union + hIcon DWORD ? + hMonitor DWORD ? + ends + hProcess DWORD ? +SHELLEXECUTEINFOW ENDS + +SHELLEXECUTEINFOA STRUCT + cbSize DWORD ? + fMask DWORD ? + hwnd DWORD ? + lpVerb DWORD ? + lpFile DWORD ? + lpParameters DWORD ? + lpDirectory DWORD ? + nShow DWORD ? + hInstApp DWORD ? + lpIDList DWORD ? + lpClass DWORD ? + hkeyClass DWORD ? + dwHotKey DWORD ? + union + hIcon DWORD ? + hMonitor DWORD ? + ends + hProcess DWORD ? +SHELLEXECUTEINFOA ENDS + +IFDEF __UNICODE__ + SHELLEXECUTEINFO equ +ELSE + SHELLEXECUTEINFO equ +ENDIF + + ; Structures from ShellAPI.h + +SHFILEOPSTRUCTA STRUCT + hwnd DWORD ? + wFunc DWORD ? + pFrom DWORD ? + pTo DWORD ? + fFlags WORD ? + fAnyOperationsAborted DWORD ? + hNameMappings DWORD ? + lpszProgressTitle DWORD ? +SHFILEOPSTRUCTA ENDS + +SHFILEOPSTRUCTW STRUCT + hwnd DWORD ? + wFunc DWORD ? + pFrom DWORD ? + pTo DWORD ? + fFlags WORD ? + fAnyOperationsAborted DWORD ? + hNameMappings DWORD ? + lpszProgressTitle DWORD ? +SHFILEOPSTRUCTW ENDS + +IFDEF __UNICODE__ + SHFILEOPSTRUCT equ +ELSE + SHFILEOPSTRUCT equ +ENDIF + +SHNAMEMAPPINGA STRUCT + pszOldPath DWORD ? + pszNewPath DWORD ? + cchOldPath DWORD ? + cchNewPath DWORD ? +SHNAMEMAPPINGA ENDS + +SHNAMEMAPPINGW STRUCT + pszOldPath DWORD ? + pszNewPath DWORD ? + cchOldPath DWORD ? + cchNewPath DWORD ? +SHNAMEMAPPINGW ENDS + +IFDEF __UNICODE__ + SHNAMEMAPPING equ +ELSE + SHNAMEMAPPING equ +ENDIF + +SHSTOCKICONINFO STRUCT + cbSize DWORD ? + hIcon DWORD ? + iSysImageIndex DWORD ? + iIcon DWORD ? + szPath WORD MAX_PATH dup (?) +SHSTOCKICONINFO ENDS + +OPEN_PRINTER_PROPS_INFOA STRUCT + dwSize DWORD ? + pszSheetName DWORD ? + uSheetIndex DWORD ? + dwFlags DWORD ? + bModal DWORD ? +OPEN_PRINTER_PROPS_INFOA ENDS + +OPEN_PRINTER_PROPS_INFOW STRUCT + dwSize DWORD ? + pszSheetName DWORD ? + uSheetIndex DWORD ? + dwFlags DWORD ? + bModal DWORD ? +OPEN_PRINTER_PROPS_INFOW ENDS + +IFDEF __UNICODE__ + OPEN_PRINTER_PROPS_INFO equ +ELSE + OPEN_PRINTER_PROPS_INFO equ +ENDIF + +GUID STRUCT + Data1 dd ? + Data2 dw ? + Data3 dw ? + Data4 db 8 dup(?) +GUID ENDS + +NOTIFYICONDATAA STRUCT + cbSize DWORD ? + hwnd DWORD ? + uID DWORD ? + uFlags DWORD ? + uCallbackMessage DWORD ? + hIcon DWORD ? + szTip BYTE 64 dup (?) + BYTE 64 dup (?) + dwState DWORD ? + dwStateMask DWORD ? + szInfo BYTE 256 dup(?) + union DUMMYUNIONNAME + uTimeout DWORD ? + uVersion DWORD ? + ends + szInfoTitle BYTE 64 dup(?) + dwInfoFlags DWORD ? + guidItem GUID <> + hBalloonIcon DWORD ? +NOTIFYICONDATAA ENDS + +NOTIFYICONDATAW STRUCT + cbSize DWORD ? + hwnd DWORD ? + uID DWORD ? + uFlags DWORD ? + uCallbackMessage DWORD ? + hIcon DWORD ? + szTip WORD 64 dup (?) + WORD 64 dup (?) + dwState DWORD ? + dwStateMask DWORD ? + szInfo WORD 256 dup(?) + union DUMMYUNIONNAME + uTimeout DWORD ? + uVersion DWORD ? + ends + szInfoTitle WORD 64 dup(?) + dwInfoFlags DWORD ? + guidItem GUID <> + hBalloonIcon DWORD ? +NOTIFYICONDATAW ENDS + +IFDEF __UNICODE__ + NOTIFYICONDATA equ +ELSE + NOTIFYICONDATA equ +ENDIF + +SHFILEINFOA STRUCT + hIcon DWORD ? + iIcon DWORD ? + dwAttributes DWORD ? + szDisplayName BYTE MAX_PATH DUP(?) + szTypeName BYTE 80 dup(?) +SHFILEINFOA ENDS + +SHFILEINFOW STRUCT + hIcon DWORD ? + iIcon DWORD ? + dwAttributes DWORD ? + szDisplayName WORD MAX_PATH DUP(?) + szTypeName WORD 80 dup(?) +SHFILEINFOW ENDS + +IFDEF __UNICODE__ + SHFILEINFO equ +ELSE + SHFILEINFO equ +ENDIF + +VS_FIXEDFILEINFO STRUCT + dwSignature DWORD ? + dwStrucVersion DWORD ? + dwFileVersionMS DWORD ? + dwFileVersionLS DWORD ? + dwProductVersionMS DWORD ? + dwProductVersionLS DWORD ? + dwFileFlagsMask DWORD ? + dwFileFlags DWORD ? + dwFileOS DWORD ? + dwFileType DWORD ? + dwFileSubtype DWORD ? + dwFileDateMS DWORD ? + dwFileDateLS DWORD ? +VS_FIXEDFILEINFO ENDS + +ICONMETRICSA STRUCT + cbSize DWORD ? + iHorzSpacing DWORD ? + iVertSpacing DWORD ? + iTitleWrap DWORD ? + lfFont LOGFONTA <> +ICONMETRICSA ENDS + +ICONMETRICSW STRUCT + cbSize DWORD ? + iHorzSpacing DWORD ? + iVertSpacing DWORD ? + iTitleWrap DWORD ? + lfFont LOGFONTW <> +ICONMETRICSW ENDS + +IFDEF __UNICODE__ + ICONMETRICS equ +ELSE + ICONMETRICS equ +ENDIF + +HELPINFO STRUCT + cbSize DWORD ? + iContextType DWORD ? + iCtrlId DWORD ? + hItemHandle DWORD ? + dwContextId DWORD ? + MousePos POINT <> +HELPINFO ENDS + +ANIMATIONINFO STRUCT + cbSize DWORD ? + iMinAnimate DWORD ? +ANIMATIONINFO ENDS + +MINIMIZEDMETRICS STRUCT + cbSize DWORD ? + iWidth DWORD ? + iHorzGap DWORD ? + iVertGap DWORD ? + iArrange DWORD ? +MINIMIZEDMETRICS ENDS + +OSVERSIONINFOA STRUCT + dwOSVersionInfoSize DWORD ? + dwMajorVersion DWORD ? + dwMinorVersion DWORD ? + dwBuildNumber DWORD ? + dwPlatformId DWORD ? + szCSDVersion BYTE 128 dup (?) +OSVERSIONINFOA ENDS + +OSVERSIONINFOW STRUCT + dwOSVersionInfoSize DWORD ? + dwMajorVersion DWORD ? + dwMinorVersion DWORD ? + dwBuildNumber DWORD ? + dwPlatformId DWORD ? + szCSDVersion WORD 128 dup (?) +OSVERSIONINFOW ENDS + +IFDEF __UNICODE__ + OSVERSIONINFO equ +ELSE + OSVERSIONINFO equ +ENDIF + +SYSTEM_POWER_STATUS STRUCT + ACLineStatus BYTE ? + BatteryFlag BYTE ? + BatteryLifePercent BYTE ? + Reserved1 BYTE ? + BatteryLifeTime DWORD ? + BatteryFullLifeTime DWORD ? +SYSTEM_POWER_STATUS ENDS + +PAGESETUPDLGA STRUCT + lStructSize DWORD ? + hwndOwner DWORD ? + hDevMode DWORD ? + hDevNames DWORD ? + union + Flags DWORD ? + flags dd ? + ends + ptPaperSize POINT <> + rtMinMargin RECT <> + rtMargin RECT <> + hInstance DWORD ? + lCustData DWORD ? + lpfnPageSetupHook DWORD ? + lpfnPagePaintHook DWORD ? + lpPageSetupTemplateName DWORD ? + hPageSetupTemplate DWORD ? +PAGESETUPDLGA ENDS + +PAGESETUPDLGW STRUCT + lStructSize DWORD ? + hwndOwner DWORD ? + hDevMode DWORD ? + hDevNames DWORD ? + union + Flags DWORD ? + flags dd ? + ends + ptPaperSize POINT <> + rtMinMargin RECT <> + rtMargin RECT <> + hInstance DWORD ? + lCustData DWORD ? + lpfnPageSetupHook DWORD ? + lpfnPagePaintHook DWORD ? + lpPageSetupTemplateName DWORD ? + hPageSetupTemplate DWORD ? +PAGESETUPDLGW ENDS + +IFDEF __UNICODE__ + PAGESETUPDLG equ +ELSE + PAGESETUPDLG equ +ENDIF + +BITRECORD RECORD fBinary:1,fParity:1,fOutxCtsFlow:1,fOutxDsrFlow:1,fDtrControl:2,fDsrSensitivity:1,fTXContinueOnXoff:1,fOutX:1,fInX:1,fErrorChar:1,fNull:1,fRtsControl:2,fAbortOnError:1,fDummy2:17 + +DCB STRUCT + DCBlength DWORD ? + BaudRate DWORD ? + fbits BITRECORD <> + wReserved WORD ? + XonLim WORD ? + XoffLim WORD ? + ByteSize BYTE ? + Parity BYTE ? + StopBits BYTE ? + XonChar BYTE ? + XoffChar BYTE ? + ErrorChar BYTE ? + EofChar BYTE ? + EvtChar BYTE ? + wReserved1 WORD ? +DCB ENDS + + +COMMCONFIG STRUCT + dwSize DWORD ? + wVersion WORD ? + wReserved WORD ? + dcbx DCB <> + dwProviderSubType DWORD ? + dwProviderOffset DWORD ? + dwProviderSize DWORD ? + wcProviderData WORD ? +COMMCONFIG ENDS + +PIXELFORMATDESCRIPTOR STRUCT + nSize WORD ? + nVersion WORD ? + dwFlags DWORD ? + iPixelType BYTE ? + cColorBits BYTE ? + cRedBits BYTE ? + cRedShift BYTE ? + cGreenBits BYTE ? + cGreenShift BYTE ? + cBlueBits BYTE ? + cBlueShift BYTE ? + cAlphaBits BYTE ? + cAlphaShift BYTE ? + cAccumBits BYTE ? + cAccumRedBits BYTE ? + cAccumGreenBits BYTE ? + cAccumBlueBits BYTE ? + cAccumAlphaBits BYTE ? + cDepthBits BYTE ? + cStencilBits BYTE ? + cAuxBuffers BYTE ? + iLayerType BYTE ? + bReserved BYTE ? + dwLayerMask DWORD ? + dwVisibleMask DWORD ? + dwDamageMask DWORD ? +PIXELFORMATDESCRIPTOR ENDS + +DRAWTEXTPARAMS STRUCT + cbSize DWORD ? + iTabiLength DWORD ? + iLeftMargin DWORD ? + iRightMargin DWORD ? + uiiLengthDrawn DWORD ? +DRAWTEXTPARAMS ENDS + +MENUITEMINFOW STRUCT + cbSize DWORD ? + fMask DWORD ? + fType DWORD ? + fState DWORD ? + wID DWORD ? + hSubMenu DWORD ? + hbmpChecked DWORD ? + hbmpUnchecked DWORD ? + dwItemData DWORD ? + dwTypeData DWORD ? + cch DWORD ? +MENUITEMINFOW ENDS + +MENUITEMINFOA STRUCT + cbSize DWORD ? + fMask DWORD ? + fType DWORD ? + fState DWORD ? + wID DWORD ? + hSubMenu DWORD ? + hbmpChecked DWORD ? + hbmpUnchecked DWORD ? + dwItemData DWORD ? + dwTypeData DWORD ? + cch DWORD ? +MENUITEMINFOA ENDS + +IFDEF __UNICODE__ + MENUITEMINFO equ +ELSE + MENUITEMINFO equ +ENDIF + +SCROLLINFO STRUCT + cbSize DWORD ? + fMask DWORD ? + nMin DWORD ? + nMax DWORD ? + nPage DWORD ? + nPos DWORD ? + nTrackPos DWORD ? +SCROLLINFO ENDS + +DEBUGSTRUCT UNION + Exception EXCEPTION_DEBUG_INFO <{?,?,?,?,?,EXCEPTION_MAXIMUM_PARAMETERS dup(?)},?> + CreateThread CREATE_THREAD_DEBUG_INFO + CreateProcessInfo CREATE_PROCESS_DEBUG_INFO + ExitThread EXIT_THREAD_DEBUG_INFO + ExitProcess EXIT_PROCESS_DEBUG_INFO + LoadDll LOAD_DLL_DEBUG_INFO + UnloadDll UNLOAD_DLL_DEBUG_INFO + DebugString OUTPUT_DEBUG_STRING_INFO + RipInfo RIP_INFO +DEBUGSTRUCT ENDS + +DEBUG_EVENT STRUCT + dwDebugEventCode DWORD ? + dwProcessId DWORD ? + dwThreadId DWORD ? + u DEBUGSTRUCT <> +DEBUG_EVENT ENDS + +IMAGE_DATA_DIRECTORY STRUCT + VirtualAddress DWORD ? + isize DWORD ? +IMAGE_DATA_DIRECTORY ENDS + +IMAGE_OPTIONAL_HEADER32 STRUCT + Magic WORD ? + MajorLinkerVersion BYTE ? + MinorLinkerVersion BYTE ? + SizeOfCode DWORD ? + SizeOfInitializedData DWORD ? + SizeOfUninitializedData DWORD ? + AddressOfEntryPoint DWORD ? + BaseOfCode DWORD ? + BaseOfData DWORD ? + ImageBase DWORD ? + SectionAlignment DWORD ? + FileAlignment DWORD ? + MajorOperatingSystemVersion WORD ? + MinorOperatingSystemVersion WORD ? + MajorImageVersion WORD ? + MinorImageVersion WORD ? + MajorSubsystemVersion WORD ? + MinorSubsystemVersion WORD ? + Win32VersionValue DWORD ? + SizeOfImage DWORD ? + SizeOfHeaders DWORD ? + CheckSum DWORD ? + Subsystem WORD ? + DllCharacteristics WORD ? + SizeOfStackReserve DWORD ? + SizeOfStackCommit DWORD ? + SizeOfHeapReserve DWORD ? + SizeOfHeapCommit DWORD ? + LoaderFlags DWORD ? + NumberOfRvaAndSizes DWORD ? + DataDirectory IMAGE_DATA_DIRECTORY IMAGE_NUMBEROF_DIRECTORY_ENTRIES dup(<>) +IMAGE_OPTIONAL_HEADER32 ENDS + +IMAGE_OPTIONAL_HEADER equ + +IMAGE_FILE_HEADER STRUCT + Machine WORD ? + NumberOfSections WORD ? + TimeDateStamp DWORD ? + PointerToSymbolTable DWORD ? + NumberOfSymbols DWORD ? + SizeOfOptionalHeader WORD ? + Characteristics WORD ? +IMAGE_FILE_HEADER ENDS + +IMAGE_NT_HEADERS STRUCT + Signature DWORD ? + FileHeader IMAGE_FILE_HEADER <> + OptionalHeader IMAGE_OPTIONAL_HEADER32 <> +IMAGE_NT_HEADERS ENDS + +IMAGE_EXPORT_DIRECTORY STRUCT + Characteristics DWORD ? + TimeDateStamp DWORD ? + MajorVersion WORD ? + MinorVersion WORD ? + nName DWORD ? + nBase DWORD ? + NumberOfFunctions DWORD ? + NumberOfNames DWORD ? + AddressOfFunctions DWORD ? + AddressOfNames DWORD ? + AddressOfNameOrdinals DWORD ? +IMAGE_EXPORT_DIRECTORY ENDS + +IMAGE_DOS_HEADER STRUCT + e_magic WORD ? + e_cblp WORD ? + e_cp WORD ? + e_crlc WORD ? + e_cparhdr WORD ? + e_minalloc WORD ? + e_maxalloc WORD ? + e_ss WORD ? + e_sp WORD ? + e_csum WORD ? + e_ip WORD ? + e_cs WORD ? + e_lfarlc WORD ? + e_ovno WORD ? + e_res WORD 4 dup(?) + e_oemid WORD ? + e_oeminfo WORD ? + e_res2 WORD 10 dup(?) + e_lfanew DWORD ? +IMAGE_DOS_HEADER ENDS + +; ----------------------------------------- +; additional structures 24th November 2002 +; ----------------------------------------- +_GUID STRUCT + Data1 DWORD ? + Data2 WORD ? + Data3 WORD ? + Data4 BYTE 8 dup (?) +_GUID ENDS + +QUOTA_LIMITS STRUCT + PagedPoolLimit DWORD ? + NonPagedPoolLimit DWORD ? + MinimumWorkingSetSize DWORD ? + MaximumWorkingSetSize DWORD ? + PagefileLimit DWORD ? + TimeLimit LARGE_INTEGER <> +QUOTA_LIMITS ENDS + +JOBOBJECT_BASIC_ACCOUNTING_INFORMATION STRUCT + TotalUserTime LARGE_INTEGER <> + TotalKernelTime LARGE_INTEGER <> + ThisPeriodTotalUserTime LARGE_INTEGER <> + ThisPeriodTotalKernelTime LARGE_INTEGER <> + TotalPageFaultCount DWORD ? + TotalProcesses DWORD ? + ActiveProcesses DWORD ? + TotalTerminatedProcesses DWORD ? +JOBOBJECT_BASIC_ACCOUNTING_INFORMATION ENDS + +JOBOBJECT_BASIC_LIMIT_INFORMATION STRUCT + PerProcessUserTimeLimit LARGE_INTEGER <> + PerJobUserTimeLimit LARGE_INTEGER <> + LimitFlags DWORD ? + MinimumWorkingSetSize DWORD ? + MaximumWorkingSetSize DWORD ? + ActiveProcessLimit DWORD ? + Affinity DWORD ? + PriorityClass DWORD ? +JOBOBJECT_BASIC_LIMIT_INFORMATION ENDS + +JOBOBJECT_BASIC_PROCESS_ID_LIST STRUCT + NumberOfAssignedProcesses DWORD ? + NumberOfProcessIdsInList DWORD ? + ProcessIdList DWORD 1 dup (?) +JOBOBJECT_BASIC_PROCESS_ID_LIST ENDS + +JOBOBJECT_BASIC_UI_RESTRICTIONS STRUCT + UIRestrictionsClass DWORD ? +JOBOBJECT_BASIC_UI_RESTRICTIONS ENDS + +JOBOBJECT_END_OF_JOB_TIME_INFORMATION STRUCT + EndOfJobTimeAction DWORD ? +JOBOBJECT_END_OF_JOB_TIME_INFORMATION ENDS + +JOBOBJECT_ASSOCIATE_COMPLETION_PORT STRUCT + CompletionKey DWORD ? + CompletionPort DWORD ? +JOBOBJECT_ASSOCIATE_COMPLETION_PORT ENDS + +IMAGE_OS2_HEADER STRUCT + ne_magic WORD ? + ne_ver BYTE ? + ne_rev BYTE ? + ne_enttab WORD ? + ne_cbenttab WORD ? + ne_crc DWORD ? + ne_flags WORD ? + ne_autodata WORD ? + ne_heap WORD ? + ne_stack WORD ? + ne_csip DWORD ? + ne_sssp DWORD ? + ne_cseg WORD ? + ne_cmod WORD ? + ne_cbnrestab WORD ? + ne_segtab WORD ? + ne_rsrctab WORD ? + ne_restab WORD ? + ne_modtab WORD ? + ne_imptab WORD ? + ne_nrestab DWORD ? + ne_cmovent WORD ? + ne_align WORD ? + ne_cres WORD ? + ne_exetyp BYTE ? + ne_flagsothers BYTE ? + ne_pretthunks WORD ? + ne_psegrefbytes WORD ? + ne_swaparea WORD ? + ne_expver WORD ? +IMAGE_OS2_HEADER ENDS + +IMAGE_NT_HEADERS32 STRUCT + Signature DWORD ? + FileHeader IMAGE_FILE_HEADER <> + OptionalHeader IMAGE_OPTIONAL_HEADER32 <> +IMAGE_NT_HEADERS32 ENDS + +IMAGE_STUB_DIRECTORY STRUCT + SecondaryImportAddressTable DWORD ? + ExpectedISA WORD 2 dup (?) + StubAddressTable DWORD 2 dup (?) +IMAGE_STUB_DIRECTORY ENDS + +RECOVERY_AGENT_INFORMATIONA STRUCT + NextEntryOffset DWORD ? + AgentNameLength DWORD ? + AgentInformation BYTE 1 dup (?) +RECOVERY_AGENT_INFORMATIONA ENDS + +RECOVERY_AGENT_INFORMATIONW STRUCT + NextEntryOffset DWORD ? + AgentNameLength DWORD ? + AgentInformation WORD 1 dup (?) +RECOVERY_AGENT_INFORMATIONW ENDS + +IFDEF __UNICODE__ + RECOVERY_AGENT_INFORMATION equ +ELSE + RECOVERY_AGENT_INFORMATION equ +ENDIF + +WIN32_FILE_ATTRIBUTE_DATA STRUCT + dwFileAttributes DWORD ? + ftCreationTime FILETIME <> + ftLastAccessTime FILETIME <> + ftLastWriteTime FILETIME <> + nFileSizeHigh DWORD ? + nFileSizeLow DWORD ? +WIN32_FILE_ATTRIBUTE_DATA ENDS + +OSVERSIONINFOEXA STRUCT + dwOSVersionInfoSize DWORD ? + dwMajorVersion DWORD ? + dwMinorVersion DWORD ? + dwBuildNumber DWORD ? + dwPlatformId DWORD ? + szCSDVersion BYTE 128 dup (?) + wServicePackMajor WORD ? + wServicePackMinor WORD ? + wSuiteMask WORD ? + wProductType BYTE ? + wReserved BYTE ? +OSVERSIONINFOEXA ENDS + +OSVERSIONINFOEXW STRUCT + dwOSVersionInfoSize DWORD ? + dwMajorVersion DWORD ? + dwMinorVersion DWORD ? + dwBuildNumber DWORD ? + dwPlatformId DWORD ? + szCSDVersion WORD 128 dup (?) + wServicePackMajor WORD ? + wServicePackMinor WORD ? + wSuiteMask WORD ? + wProductType BYTE ? + wReserved BYTE ? +OSVERSIONINFOEXW ENDS + +IFDEF __UNICODE__ + OSVERSIONINFOEX equ +ELSE + OSVERSIONINFOEX equ +ENDIF + +WIN_CERTIFICATE STRUCT + dwLength DWORD ? + wRevision WORD ? + wCertificateType WORD ? + bCertificate BYTE 1 dup (?) +WIN_CERTIFICATE ENDS + +DRAWPATRECT STRUCT + ptPosition POINT <> + ptSize POINT <> + wStyle WORD ? + wPattern WORD ? +DRAWPATRECT ENDS + +PSINJECTDATA STRUCT + DataBytes DWORD ? + InjectionPoint DWORD ? + Flags DWORD ? + Reserved DWORD ? +PSINJECTDATA ENDS + +DISPLAY_DEVICEA STRUCT + cb DWORD ? + DeviceName BYTE 32 dup (?) + DeviceString BYTE 128 dup (?) + StateFlags DWORD ? + DeviceID BYTE 128 dup (?) + DeviceKey BYTE 128 dup (?) +DISPLAY_DEVICEA ENDS + +DISPLAY_DEVICEW STRUCT + cb DWORD ? + DeviceName WORD 32 dup (?) + DeviceString WORD 128 dup (?) + StateFlags DWORD ? + DeviceID WORD 128 dup (?) + DeviceKey WORD 128 dup (?) +DISPLAY_DEVICEW ENDS + +IFDEF __UNICODE__ + DISPLAY_DEVICE equ +ELSE + DISPLAY_DEVICE equ +ENDIF + +TRIVERTEX STRUCT + x DWORD ? + y DWORD ? + Red WORD ? + Green WORD ? + Blue WORD ? + Alpha WORD ? +TRIVERTEX ENDS + +GRADIENT_TRIANGLE STRUCT + Vertex1 DWORD ? + Vertex2 DWORD ? + Vertex3 DWORD ? +GRADIENT_TRIANGLE ENDS + +GRADIENT_RECT STRUCT + UpperLeft DWORD ? + LowerRight DWORD ? +GRADIENT_RECT ENDS + +BLENDFUNCTION STRUCT + BlendOp BYTE ? + BlendFlags BYTE ? + SourceConstantAlpha BYTE ? + AlphaFormat BYTE ? +BLENDFUNCTION ENDS + +DIBSECTION STRUCT + dsBm BITMAP <> + dsBmih BITMAPINFOHEADER <> + dsBitfields DWORD 3 dup (?) + dshSection DWORD ? + dsOffset DWORD ? +DIBSECTION ENDS + +EMRFORMAT STRUCT + dSignature DWORD ? + nVersion DWORD ? + cbData DWORD ? + offData DWORD ? +EMRFORMAT ENDS + +EMRGLSRECORD STRUCT + emr EMR <> + cbData DWORD ? + Data BYTE 1 dup (?) +EMRGLSRECORD ENDS + +EMRGLSBOUNDEDRECORD STRUCT + emr EMR <> + rclBounds RECTL <> + cbData DWORD ? + Data BYTE 1 dup (?) +EMRGLSBOUNDEDRECORD ENDS + +EMRPIXELFORMAT STRUCT + emr EMR <> + pfd PIXELFORMATDESCRIPTOR <> +EMRPIXELFORMAT ENDS + +EMRSETICMPROFILE STRUCT + emr EMR <> + dwFlags DWORD ? + cbName DWORD ? + cbData DWORD ? + Data BYTE 1 dup (?) +EMRSETICMPROFILE ENDS + +POINTFLOAT STRUCT + x FLOAT ? + y FLOAT ? +POINTFLOAT ENDS + +GLYPHMETRICSFLOAT STRUCT + gmfBlackBoxX FLOAT ? + gmfBlackBoxY FLOAT ? + gmfptGlyphOrigin POINTFLOAT <> + gmfCellIncX FLOAT ? + gmfCellIncY FLOAT ? +GLYPHMETRICSFLOAT ENDS + +LAYERPLANEDESCRIPTOR STRUCT + nSize WORD ? + nVersion WORD ? + dwFlags DWORD ? + iPixelType BYTE ? + cColorBits BYTE ? + cRedBits BYTE ? + cRedShift BYTE ? + cGreenBits BYTE ? + cGreenShift BYTE ? + cBlueBits BYTE ? + cBlueShift BYTE ? + cAlphaBits BYTE ? + cAlphaShift BYTE ? + cAccumBits BYTE ? + cAccumRedBits BYTE ? + cAccumGreenBits BYTE ? + cAccumBlueBits BYTE ? + cAccumAlphaBits BYTE ? + cDepthBits BYTE ? + cStencilBits BYTE ? + cAuxBuffers BYTE ? + iLayerPlane BYTE ? + bReserved BYTE ? + crTransparent DWORD ? +LAYERPLANEDESCRIPTOR ENDS + +CPINFOEXA STRUCT + MaxCharSize DWORD ? + DefaultChar BYTE 2 dup (?) + LeadByte BYTE 12 dup (?) + UnicodeDefaultChar WORD ? + CodePage DWORD ? + CodePageName BYTE 260 dup (?) +CPINFOEXA ENDS + +CPINFOEXW STRUCT + MaxCharSize DWORD ? + DefaultChar BYTE 2 dup (?) + LeadByte BYTE 12 dup (?) + UnicodeDefaultChar WORD ? + CodePage DWORD ? + CodePageName WORD 260 dup (?) +CPINFOEXW ENDS + +IFDEF __UNICODE__ + CPINFOEX equ +ELSE + CPINFOEX equ +ENDIF + +PVALUEW STRUCT + pv_valuename DWORD ? + pv_valuelen DWORD ? + pv_value_context DWORD ? + pv_type DWORD ? +PVALUEW ENDS + +PVALUEA STRUCT + pv_valuename DWORD ? + pv_valuelen DWORD ? + pv_value_context DWORD ? + pv_type DWORD ? +PVALUEA ENDS + +IFDEF __UNICODE__ + PVALUE equ +ELSE + PVALUE equ +ENDIF + +VALENTW STRUCT + ve_valuename DWORD ? + ve_valuelen DWORD ? + ve_valueptr DWORD ? + ve_type DWORD ? +VALENTW ENDS + +VALENTA STRUCT + ve_valuename DWORD ? + ve_valuelen DWORD ? + ve_valueptr DWORD ? + ve_type DWORD ? +VALENTA ENDS + +IFDEF __UNICODE__ + VALENT equ +ELSE + VALENT equ +ENDIF + +DISCDLGSTRUCTW STRUCT + cbStructure DWORD ? + hwndOwner DWORD ? + lpLocalName DWORD ? + lpRemoteName DWORD ? + dwFlags DWORD ? +DISCDLGSTRUCTW ENDS + +DISCDLGSTRUCTA STRUCT + cbStructure DWORD ? + hwndOwner DWORD ? + lpLocalName DWORD ? + lpRemoteName DWORD ? + dwFlags DWORD ? +DISCDLGSTRUCTA ENDS + +IFDEF __UNICODE__ + DISCDLGSTRUCT equ +ELSE + DISCDLGSTRUCT equ +ENDIF + +UNIVERSAL_NAME_INFOW STRUCT + lpUniversalName DWORD ? +UNIVERSAL_NAME_INFOW ENDS + +UNIVERSAL_NAME_INFOA STRUCT + lpUniversalName DWORD ? +UNIVERSAL_NAME_INFOA ENDS + +IFDEF __UNICODE__ + UNIVERSAL_NAME_INFO equ +ELSE + UNIVERSAL_NAME_INFO equ +ENDIF + +REMOTE_NAME_INFOW STRUCT + lpUniversalName DWORD ? + lpConnectionName DWORD ? + lpRemainingPath DWORD ? +REMOTE_NAME_INFOW ENDS + +REMOTE_NAME_INFOA STRUCT + lpUniversalName DWORD ? + lpConnectionName DWORD ? + lpRemainingPath DWORD ? +REMOTE_NAME_INFOA ENDS + +IFDEF __UNICODE__ + REMOTE_NAME_INFO equ +ELSE + REMOTE_NAME_INFO equ +ENDIF + +NETINFOSTRUCT STRUCT + cbStructure DWORD ? + dwProviderVersion DWORD ? + dwStatus DWORD ? + dwCharacteristics DWORD ? + dwHandle DWORD ? + wNetType WORD ? + dwPrinters DWORD ? + dwDrives DWORD ? +NETINFOSTRUCT ENDS + +NETCONNECTINFOSTRUCT STRUCT + cbStructure DWORD ? + dwFlags DWORD ? + dwSpeed DWORD ? + dwDelay DWORD ? + dwOptDataSize DWORD ? +NETCONNECTINFOSTRUCT ENDS + +MENUINFO STRUCT + cbSize DWORD ? + fMask DWORD ? + dwStyle DWORD ? + cyMax DWORD ? + hbrBack DWORD ? + dwContextHelpID DWORD ? + dwMenuData DWORD ? +MENUINFO ENDS + + ; Structures from WinUser.h + +WTSSESSION_NOTIFICATION STRUCT + cbSize DWORD ? + dwSessionId DWORD ? +WTSSESSION_NOTIFICATION ENDS + +SHELLHOOKINFO STRUCT + hwnd DWORD ? + rc RECT <> +SHELLHOOKINFO ENDS + +KBDLLHOOKSTRUCT STRUCT + vkCode DWORD ? + scanCode DWORD ? + flags DWORD ? + time DWORD ? + dwExtraInfo DWORD ? +KBDLLHOOKSTRUCT ENDS + +MSLLHOOKSTRUCT STRUCT + pt POINT <> + mouseData DWORD ? + flags DWORD ? + time DWORD ? + dwExtraInfo DWORD ? +MSLLHOOKSTRUCT ENDS + +MOUSEHOOKSTRUCTEX STRUCT + mouseData DWORD ? +MOUSEHOOKSTRUCTEX ENDS + +MOUSEMOVEPOINT STRUCT + x DWORD ? + y DWORD ? + time DWORD ? + dwExtraInfo DWORD ? +MOUSEMOVEPOINT ENDS + +POWERBROADCAST_SETTING STRUCT + PowerSetting GUID <> + DataLength DWORD ? + Data BYTE 1 dup (?) +POWERBROADCAST_SETTING ENDS + +BSMINFO STRUCT + cbSize DWORD ? + hdesk DWORD ? + hwnd DWORD ? + luid DWORD ? +BSMINFO ENDS + +MOUSEINPUT STRUCT + _dx DWORD ? + dy DWORD ? + mouseData DWORD ? + dwFlags DWORD ? + time DWORD ? + dwExtraInfo DWORD ? +MOUSEINPUT ENDS + +KEYBDINPUT STRUCT + wVk WORD ? + wScan WORD ? + dwFlags DWORD ? + time DWORD ? + dwExtraInfo DWORD ? +KEYBDINPUT ENDS + +HARDWAREINPUT STRUCT + uMsg DWORD ? + wParamL WORD ? + wParamH WORD ? +HARDWAREINPUT ENDS + +LASTINPUTINFO STRUCT + cbSize DWORD ? + dwTime DWORD ? +LASTINPUTINFO ENDS + +MENUGETOBJECTINFO STRUCT + dwFlags DWORD ? + uPos DWORD ? + hmenu DWORD ? + riid DWORD ? + pvObj DWORD ? +MENUGETOBJECTINFO ENDS + +MSGBOXPARAMSA STRUCT + cbSize DWORD ? + hwndOwner DWORD ? + hInstance DWORD ? + lpszText DWORD ? + lpszCaption DWORD ? + dwStyle DWORD ? + lpszIcon DWORD ? + dwContextHelpId DWORD ? + lpfnMsgBoxCallback DWORD ? + dwLanguageId DWORD ? +MSGBOXPARAMSA ENDS + +MSGBOXPARAMSW STRUCT + cbSize DWORD ? + hwndOwner DWORD ? + hInstance DWORD ? + lpszText DWORD ? + lpszCaption DWORD ? + dwStyle DWORD ? + lpszIcon DWORD ? + dwContextHelpId DWORD ? + lpfnMsgBoxCallback DWORD ? + dwLanguageId DWORD ? +MSGBOXPARAMSW ENDS + +IFDEF __UNICODE__ + MSGBOXPARAMS equ +ELSE + MSGBOXPARAMS equ +ENDIF + +ICONINFOEXA STRUCT + cbSize DWORD ? + fIcon DWORD ? + xHotspot DWORD ? + yHotspot DWORD ? + hbmMask DWORD ? + hbmColor DWORD ? + wResID WORD ? + szModName BYTE MAX_PATH dup (?) + szResName BYTE MAX_PATH dup (?) +ICONINFOEXA ENDS + +ICONINFOEXW STRUCT + cbSize DWORD ? + fIcon DWORD ? + xHotspot DWORD ? + yHotspot DWORD ? + hbmMask DWORD ? + hbmColor DWORD ? + wResID WORD ? + szModName WORD MAX_PATH dup (?) + szResName WORD MAX_PATH dup (?) +ICONINFOEXW ENDS + +IFDEF __UNICODE__ + ICONINFOEX equ +ELSE + ICONINFOEX equ +ENDIF + +AUDIODESCRIPTION STRUCT + cbSize DWORD ? + Enabled DWORD ? + Locale DWORD ? +AUDIODESCRIPTION ENDS + +MONITORINFO STRUCT + cbSize DWORD ? + rcMonitor RECT <> + rcWork RECT <> + dwFlags DWORD ? +MONITORINFO ENDS + +MONITORINFOEXA STRUCT + szDevice BYTE CCHDEVICENAME dup (?) +MONITORINFOEXA ENDS + +MONITORINFOEXW STRUCT + szDevice WORD CCHDEVICENAME dup (?) +MONITORINFOEXW ENDS + +IFDEF __UNICODE__ + MONITORINFOEX equ +ELSE + MONITORINFOEX equ +ENDIF + +GUITHREADINFO STRUCT + cbSize DWORD ? + flags DWORD ? + hwndActive DWORD ? + hwndFocus DWORD ? + hwndCapture DWORD ? + hwndMenuOwner DWORD ? + hwndMoveSize DWORD ? + hwndCaret DWORD ? + rcCaret RECT <> +GUITHREADINFO ENDS + +CURSORINFO STRUCT + cbSize DWORD ? + flags DWORD ? + hCursor DWORD ? + ptScreenPos POINT <> +CURSORINFO ENDS + +MENUBARINFO STRUCT + cbSize DWORD ? + rcBar RECT <> + hMenu DWORD ? + hwndMenu DWORD ? + fBarFocused DWORD ? + fFocused DWORD ? +MENUBARINFO ENDS + +COMBOBOXINFO STRUCT + cbSize DWORD ? + rcItem RECT <> + rcButton RECT <> + stateButton DWORD ? + hwndCombo DWORD ? + hwndItem DWORD ? + hwndList DWORD ? +COMBOBOXINFO ENDS + +ALTTABINFO STRUCT + cbSize DWORD ? + cItems DWORD ? + cColumns DWORD ? + cRows DWORD ? + iColFocus DWORD ? + iRowFocus DWORD ? + cxItem DWORD ? + cyItem DWORD ? + ptStart POINT <> +ALTTABINFO ENDS + +RAWINPUTHEADER STRUCT + dwType DWORD ? + dwSize DWORD ? + hDevice DWORD ? + wParam DWORD ? +RAWINPUTHEADER ENDS + +RAWKEYBOARD STRUCT + MakeCode WORD ? + Flags WORD ? + Reserved WORD ? + VKey WORD ? + Message DWORD ? + ExtraInformation DWORD ? +RAWKEYBOARD ENDS + +RAWHID STRUCT + dwSizeHid DWORD ? + dwCount DWORD ? + bRawData BYTE 1 dup (?) +RAWHID ENDS + +RID_DEVICE_INFO_MOUSE STRUCT + dwId DWORD ? + dwNumberOfButtons DWORD ? + dwSampleRate DWORD ? + fHasHorizontalWheel DWORD ? +RID_DEVICE_INFO_MOUSE ENDS + +RID_DEVICE_INFO_KEYBOARD STRUCT + dwType DWORD ? + dwSubType DWORD ? + dwKeyboardMode DWORD ? + dwNumberOfFunctionKeys DWORD ? + dwNumberOfIndicators DWORD ? + dwNumberOfKeysTotal DWORD ? +RID_DEVICE_INFO_KEYBOARD ENDS + +RID_DEVICE_INFO_HID STRUCT + dwVendorId DWORD ? + dwProductId DWORD ? + dwVersionNumber DWORD ? + usUsagePage WORD ? + usUsage WORD ? +RID_DEVICE_INFO_HID ENDS + +RAWINPUTDEVICE STRUCT + usUsagePage WORD ? + usUsage WORD ? + dwFlags DWORD ? + hwndTarget DWORD ? +RAWINPUTDEVICE ENDS + +RAWINPUTDEVICELIST STRUCT + hDevice DWORD ? + dwType DWORD ? +RAWINPUTDEVICELIST ENDS + + +;;;; end win32st + +;;;; winuser + +; *************** equates and structures from winuser.h ******************* + +DIFFERENCE equ 11 +RT_GROUP_CURSOR equ RT_CURSOR + DIFFERENCE +RT_GROUP_ICON equ RT_ICON + DIFFERENCE +RT_VERSION equ 16 +RT_DLGINCLUDE equ 17 +RT_PLUGPLAY equ 19 +RT_VXD equ 20 +RT_ANICURSOR equ 21 +RT_ANIICON equ 22 +RT_HTML equ 23 +AW_HOR_POSITIVE equ 1h +AW_HOR_NEGATIVE equ 2h +AW_VER_POSITIVE equ 4h +AW_VER_NEGATIVE equ 8h +AW_CENTER equ 10h +AW_HIDE equ 10000h +AW_ACTIVATE equ 20000h +AW_SLIDE equ 40000h +AW_BLEND equ 80000h +VK_KANA equ 15h +VK_HANGEUL equ 15h +VK_HANGUL equ 15h +VK_JUNJA equ 17h +VK_FINAL equ 18h +VK_HANJA equ 19h +VK_KANJI equ 19h +VK_CONVERT equ 1Ch +VK_NONCONVERT equ 1Dh +VK_ACCEPT equ 1Eh +VK_MODECHANGE equ 1Fh +VK_LWIN equ 5Bh +VK_RWIN equ 5Ch +VK_APPS equ 5Dh +WH_CALLWNDPROCRET equ 12 +WH_KEYBOARD_LL equ 13 +WH_MOUSE_LL equ 14 +WH_MINHOOK equ WH_MIN +WH_MAXHOOK equ WH_MAX +MSGF_DIALOGBOX equ 0 +MSGF_MESSAGEBOX equ 1 +MSGF_MENU equ 2 +MSGF_SCROLLBAR equ 5 +MSGF_NEXTWINDOW equ 6 +MSGF_MAX equ 8 +MSGF_USER equ 4096 +HSHELL_WINDOWACTIVATED equ 4 +HSHELL_GETMINRECT equ 5 +HSHELL_REDRAW equ 6 +HSHELL_TASKMAN equ 7 +HSHELL_LANGUAGE equ 8 +HSHELL_ACCESSIBILITYSTATE equ 11 +ACCESS_STICKYKEYS equ 1 +ACCESS_FILTERKEYS equ 2 +ACCESS_MOUSEKEYS equ 3 +LLKHF_EXTENDED equ 1 +LLKHF_INJECTED equ 10h +LLKHF_ALTDOWN equ 20h +LLKHF_UP equ 80h +LLMHF_INJECTED equ 1 +KLF_REPLACELANG equ 10h +KLF_NOTELLSHELL equ 80h +KLF_SETFORPROCESS equ 100h +GMMP_USE_DISPLAY_POINTS equ 1 +GMMP_USE_DRIVER_POINTS equ 2 +DESKTOP_SWITCHDESKTOP equ 100h +DF_ALLOWOTHERACCOUNTHOOK equ 1 +WSF_VISIBLE equ 1 +UOI_FLAGS equ 1 +UOI_NAME equ 2 +UOI_TYPE equ 3 +UOI_USER_SID equ 4 +GCL_HICONSM equ -34 +NFR_ANSI equ 1 +NFR_UNICODE equ 2 +NF_QUERY equ 3 +NF_REQUERY equ 4 +WM_MENURBUTTONUP equ 122h +WM_MENUDRAG equ 0123h +WM_MENUGETOBJECT equ 124h +WM_UNINITMENUPOPUP equ 125h +WM_MENUCOMMAND equ 126h +WM_MOUSEWHEEL equ 20Ah +WHEEL_DELTA equ 120 +WHEEL_PAGESCROLL equ UINT_MAX +WM_NEXTMENU equ 213h +WM_SIZING equ 214h +WM_CAPTURECHANGED equ 215h +WM_MOVING equ 216h +WM_POWERBROADCAST equ 218h +PBT_APMQUERYSUSPEND equ 0 +PBT_APMQUERYSTANDBY equ 1 +PBT_APMQUERYSUSPENDFAILED equ 2 +PBT_APMQUERYSTANDBYFAILED equ 3 +PBT_APMSUSPEND equ 4 +PBT_APMSTANDBY equ 5 +PBT_APMRESUMECRITICAL equ 6 +PBT_APMRESUMESUSPEND equ 7 +PBT_APMRESUMESTANDBY equ 8 +PBTF_APMRESUMEFROMFAILURE equ 1 +PBT_APMBATTERYLOW equ 9 +PBT_APMPOWERSTATUSCHANGE equ 0Ah +PBT_APMOEMEVENT equ 0Bh +PBT_APMRESUMEAUTOMATIC equ 12h +WM_DEVICECHANGE equ 219h +WM_ENTERSIZEMOVE equ 231h +WM_EXITSIZEMOVE equ 232h +WM_MOUSEHOVER equ 2A1h +WM_MOUSELEAVE equ 2A3h +WM_HANDHELDFIRST equ 358h +WM_HANDHELDLAST equ 35Fh +WM_AFXFIRST equ 360h +WM_AFXLAST equ 37Fh +WM_APP equ 8000h +WMSZ_LEFT equ 1 +WMSZ_RIGHT equ 2 +WMSZ_TOP equ 3 +WMSZ_TOPLEFT equ 4 +WMSZ_TOPRIGHT equ 5 +WMSZ_BOTTOM equ 6 +WMSZ_BOTTOMLEFT equ 7 +WMSZ_BOTTOMRIGHT equ 8 +ICON_SMALL equ 0 +ICON_BIG equ 1 +TME_HOVER equ 1 +TME_LEAVE equ 2 +TME_QUERY equ 40000000h +TME_CANCEL equ 80000000h +DC_ACTIVE equ 1 +DC_SMALLCAP equ 2 +DC_ICON equ 4 +DC_TEXT equ 8 +DC_INBUTTON equ 10h +DC_GRADIENT equ 20h +IDANI_OPEN equ 1 +IDANI_CLOSE equ 2 +IDANI_CAPTION equ 3 +ENDSESSION_LOGOFF equ 80000000h +BSM_ALLCOMPONENTS equ 0 +BSM_VXDS equ 1 +BSM_NETDRIVER equ 2 +BSM_INSTALLABLEDRIVERS equ 4 +BSM_APPLICATIONS equ 8 +BSM_ALLDESKTOPS equ 10h +BSF_QUERY equ 1 +BSF_IGNORECURRENTTASK equ 2 +BSF_FLUSHDISK equ 4 +BSF_NOHANG equ 8 +BSF_POSTMESSAGE equ 10h +BSF_FORCEIFHUNG equ 20h +BSF_NOTIMEOUTIFNOTHUNG equ 40h +BROADCAST_QUERY_DENY equ 424D5144h +DEVICE_NOTIFY_WINDOW_HANDLE equ 0 +ISMEX_NOSEND equ 0 +ISMEX_SEND equ 1h +ISMEX_NOTIFY equ 2h +ISMEX_CALLBACK equ 4h +ISMEX_REPLIED equ 8h +FLASHW_STOP equ 0 +FLASHW_CAPTION equ 1 +FLASHW_TRAY equ 2 +FLASHW_ALL equ FLASHW_CAPTION + FLASHW_TRAY +FLASHW_TIMER equ 4 +FLASHW_TIMERNOFG equ 0Ch +INPUT_MOUSE equ 0 +INPUT_KEYBOARD equ 1 +INPUT_HARDWARE equ 2 +MWMO_WAITALL equ 1 +MWMO_ALERTABLE equ 2 +MWMO_INPUTAVAILABLE equ 4 +MNC_IGNORE equ 0 +MNC_CLOSE equ 1 +MNC_EXECUTE equ 2 +MNC_SELECT equ 3 +MNS_NOCHECK equ 80000000h +MNS_MODELESS equ 40000000h +MNS_DRAGDROP equ 20000000h +MNS_AUTODISMISS equ 10000000h +MNS_NOTIFYBYPOS equ 08000000h +MNS_CHECKORBMP equ 04000000h +MIM_MAXHEIGHT equ 1 +MIM_BACKGROUND equ 2 +MIM_HELPID equ 4 +MIM_MENUDATA equ 8 +MIM_STYLE equ 10h +MIM_APPLYTOSUBMENUS equ 80000000h +MND_CONTINUE equ 0 +MND_ENDMENU equ 1 +MNGOF_GAP equ 3 +MNGO_NOINTERFACE equ 0 +MNGO_NOERROR equ 1 +MIIM_STATE equ 1 +MIIM_ID equ 2 +MIIM_SUBMENU equ 4 +MIIM_CHECKMARKS equ 8 +MIIM_TYPE equ 10h +MIIM_DATA equ 20h +MIIM_STRING equ 40h +MIIM_BITMAP equ 80h +MIIM_FTYPE equ 100h +HBMMENU_CALLBACK equ -1 +HBMMENU_SYSTEM equ 1 +HBMMENU_MBAR_RESTORE equ 2 +HBMMENU_MBAR_MINIMIZE equ 3 +HBMMENU_MBAR_CLOSE equ 5 +HBMMENU_MBAR_CLOSE_D equ 6 +HBMMENU_MBAR_MINIMIZE_D equ 7 +HBMMENU_POPUP_CLOSE equ 8 +HBMMENU_POPUP_RESTORE equ 9 +HBMMENU_POPUP_MAXIMIZE equ 10 +HBMMENU_POPUP_MINIMIZE equ 11 +GMDI_USEDISABLED equ 1 +GMDI_GOINTOPOPUPS equ 2 +DOF_EXECUTABLE equ 8001h +DOF_DOCUMENT equ 8002h +DOF_DIRECTORY equ 8003h +DOF_MULTIPLE equ 8004h +DOF_PROGMAN equ 1 +DOF_SHELLDATA equ 2 +DO_DROPFILE equ 454C4946h +DO_PRINTFILE equ 544E5250h +DST_COMPLEX equ 0 +DST_TEXT equ 1 +DST_PREFIXTEXT equ 2 +DST_ICON equ 3 +DST_BITMAP equ 4 +DSS_NORMAL equ 0 +DSS_UNION equ 10h +DSS_DISABLED equ 20h +DSS_MONO equ 80h +DSS_RIGHT equ 8000h +CUDR_NORMAL equ 0 +CUDR_NOSNAPTOGRID equ 1 +CUDR_NORESOLVEPOSITIONS equ 2 +CUDR_NOCLOSEGAPS equ 4 +CUDR_NEGATIVECOORDS equ 8 +CUDR_NOPRIMARY equ 10h +CWP_ALL equ 0 +CWP_SKIPINVISIBLE equ 1 +CWP_SKIPDISABLED equ 2 +CWP_SKIPTRANSPARENT equ 4 +MFT_STRING equ MF_STRING +MFT_BITMAP equ MF_BITMAP +MFT_MENUBARBREAK equ MF_MENUBARBREAK +MFT_MENUBREAK equ MF_MENUBREAK +MFT_OWNERDRAW equ MF_OWNERDRAW +MFT_RADIOCHECK equ 200h +MFT_SEPARATOR equ MF_SEPARATOR +MFT_RIGHTORDER equ 2000h +MFT_RIGHTJUSTIFY equ MF_RIGHTJUSTIFY +MFS_GRAYED equ 3 +MFS_DISABLED equ MFS_GRAYED +MFS_CHECKED equ MF_CHECKED +MFS_HILITE equ MF_HILITE +MFS_ENABLED equ MF_ENABLED +MFS_UNCHECKED equ MF_UNCHECKED +MFS_UNHILITE equ MF_UNHILITE +MFS_DEFAULT equ MF_DEFAULT +MFS_MASK equ 108Bh +MFS_HOTTRACKDRAWN equ 10000000h +MFS_CACHEDBMP equ 20000000h +MFS_BOTTOMGAPDROP equ 40000000h +MFS_TOPGAPDROP equ 80000000h +MFS_GAPDROP equ 0C0000000h +LR_DEFAULTCOLOR equ 0 +LR_MONOCHROME equ 1 +LR_COLOR equ 2 +LR_COPYRETURNORG equ 4 +LR_COPYDELETEORG equ 8 +LR_LOADFROMFILE equ 10h +LR_LOADTRANSPARENT equ 20h +LR_DEFAULTSIZE equ 40h +LR_VGACOLOR equ 80h +LR_LOADMAP3DCOLORS equ 1000h +LR_CREATEDIBSECTION equ 2000h +LR_COPYFROMRESOURCE equ 4000h +LR_SHARED equ 8000h +DI_MASK equ 1 +DI_IMAGE equ 2 +DI_NORMAL equ 3 +DI_COMPAT equ 4 +DI_DEFAULTSIZE equ 8 +RES_ICON equ 1 +RES_CURSOR equ 2 +EC_LEFTMARGIN equ 1 +EC_RIGHTMARGIN equ 2 +EC_USEFONTINFO equ 0ffffh +EMSIS_COMPOSITIONSTRING equ 1 +EIMES_GETCOMPSTRATONCE equ 1 +EIMES_CANCELCOMPSTRINFOCUS equ 2 +EIMES_COMPLETECOMPSTRKILLFOCUS equ 4 +SS_OWNERDRAW equ 0Dh +SS_BITMAP equ 0Eh +SS_ENHMETAFILE equ 0Fh +SS_ETCHEDHORZ equ 10h +SS_ETCHEDVERT equ 11h +SS_ETCHEDFRAME equ 12h +SS_TYPEMASK equ 1Fh +SS_NOTIFY equ 100h +SS_CENTERIMAGE equ 200h +SS_RIGHTJUST equ 400h +SS_REALSIZEIMAGE equ 800h +SS_SUNKEN equ 1000h +SS_ENDELLIPSIS equ 4000h +SS_PATHELLIPSIS equ 8000h +SS_WORDELLIPSIS equ 0C000h +SS_ELLIPSISMASK equ 0C000h +STM_SETIMAGE equ 172h +STM_GETIMAGE equ 173h +STN_CLICKED equ 0 +STN_DBLCLK equ 1 +STN_ENABLE equ 2 +STN_DISABLE equ 3 +DM_REPOSITION equ WM_USER+2 +LB_INITSTORAGE equ 1A8h +LB_ITEMFROMPOINT equ 1A9h +LBS_NOSEL equ 4000h +CBS_UPPERCASE equ 2000h +CBS_LOWERCASE equ 4000h +GR_GDIOBJECTS equ 0 +GR_USEROBJECTS equ 1 +SPI_SETSCREENSAVERRUNNING equ 97 +SPI_GETMOUSEHOVERWIDTH equ 98 +SPI_SETMOUSEHOVERWIDTH equ 99 +SPI_GETMOUSEHOVERHEIGHT equ 100 +SPI_SETMOUSEHOVERHEIGHT equ 101 +SPI_GETMOUSEHOVERTIME equ 102 +SPI_SETMOUSEHOVERTIME equ 103 +SPI_GETWHEELSCROLLLINES equ 104 +SPI_SETWHEELSCROLLLINES equ 105 +SPI_GETSHOWIMEUI equ 110 +SPI_SETSHOWIMEUI equ 111 +SPI_GETMOUSESPEED equ 112 +SPI_SETMOUSESPEED equ 113 +SPI_GETSCREENSAVERRUNNING equ 114 +SPI_GETACTIVEWINDOWTRACKING equ 1000h +SPI_SETACTIVEWINDOWTRACKING equ 1001h +SPI_GETMENUANIMATION equ 1002h +SPI_SETMENUANIMATION equ 1003h +SPI_GETCOMBOBOXANIMATION equ 1004h +SPI_SETCOMBOBOXANIMATION equ 1005h +SPI_GETLISTBOXSMOOTHSCROLLING equ 1006h +SPI_SETLISTBOXSMOOTHSCROLLING equ 1007h +SPI_GETGRADIENTCAPTIONS equ 1008h +SPI_SETGRADIENTCAPTIONS equ 1009h +SPI_GETMENUUNDERLINES equ 100Ah +SPI_SETMENUUNDERLINES equ 100Bh +SPI_GETACTIVEWNDTRKZORDER equ 100Ch +SPI_SETACTIVEWNDTRKZORDER equ 100Dh +SPI_GETHOTTRACKING equ 100Eh +SPI_SETHOTTRACKING equ 100Fh +SPI_GETFOREGROUNDLOCKTIMEOUT equ 2000h +SPI_SETFOREGROUNDLOCKTIMEOUT equ 2001h +SPI_GETACTIVEWNDTRKTIMEOUT equ 2002h +SPI_SETACTIVEWNDTRKTIMEOUT equ 2003h +SPI_GETFOREGROUNDFLASHCOUNT equ 2004h +SPI_SETFOREGROUNDFLASHCOUNT equ 2005h +SPIF_SENDCHANGE equ SPIF_SENDWININICHANGE +METRICS_USEDEFAULT equ -1 +ARW_BOTTOMLEFT equ 0 +ARW_BOTTOMRIGHT equ 1 +ARW_TOPLEFT equ 2 +ARW_TOPRIGHT equ 3 +ARW_STARTMASK equ 3 +ARW_STARTRIGHT equ 1 +ARW_STARTTOP equ 2 +ARW_LEFT equ 0 +ARW_RIGHT equ 0 +ARW_UP equ 4 +ARW_DOWN equ 4 +ARW_HIDE equ 8 +SERKF_SERIALKEYSON equ 1 +SERKF_AVAILABLE equ 2 +SERKF_INDICATOR equ 4 +HCF_HIGHCONTRASTON equ 1 +HCF_AVAILABLE equ 2 +HCF_HOTKEYACTIVE equ 4 +HCF_CONFIRMHOTKEY equ 8 +HCF_HOTKEYSOUND equ 10h +HCF_INDICATOR equ 20h +HCF_HOTKEYAVAILABLE equ 40h +CDS_UPDATEREGISTRY equ 1 +CDS_TEST equ 2 +CDS_FULLSCREEN equ 4 +CDS_GLOBAL equ 8 +CDS_SET_PRIMARY equ 10h +CDS_RESET equ 40000000h +CDS_SETRECT equ 20000000h +CDS_NORESET equ 10000000h +DISP_CHANGE_SUCCESSFUL equ 0 +DISP_CHANGE_RESTART equ 1 +DISP_CHANGE_FAILED equ -1 +DISP_CHANGE_BADMODE equ -2 +DISP_CHANGE_NOTUPDATED equ -3 +DISP_CHANGE_BADFLAGS equ -4 +DISP_CHANGE_BADPARAM equ -5 +ENUM_CURRENT_SETTINGS equ -1 +ENUM_REGISTRY_SETTINGS equ -2 +FKF_FILTERKEYSON equ 1 +FKF_AVAILABLE equ 2 +FKF_HOTKEYACTIVE equ 4 +FKF_CONFIRMHOTKEY equ 8 +FKF_HOTKEYSOUND equ 10h +FKF_INDICATOR equ 20h +FKF_CLICKON equ 40h +SKF_STICKYKEYSON equ 1 +SKF_AVAILABLE equ 2 +SKF_HOTKEYACTIVE equ 4 +SKF_CONFIRMHOTKEY equ 8 +SKF_HOTKEYSOUND equ 10h +SKF_INDICATOR equ 20h +SKF_AUDIBLEFEEDBACK equ 40h +SKF_TRISTATE equ 80h +SKF_TWOKEYSOFF equ 100h +SKF_LALTLATCHED equ 10000000h +SKF_LCTLLATCHED equ 4000000h +SKF_LSHIFTLATCHED equ 1000000h +SKF_RALTLATCHED equ 20000000h +SKF_RCTLLATCHED equ 08000000h +SKF_RSHIFTLATCHED equ 2000000h +SKF_LWINLATCHED equ 40000000h +SKF_RWINLATCHED equ 80000000h +SKF_LALTLOCKED equ 100000h +SKF_LCTLLOCKED equ 40000h +SKF_LSHIFTLOCKED equ 10000h +SKF_RALTLOCKED equ 200000h +SKF_RCTLLOCKED equ 80000h +SKF_RSHIFTLOCKED equ 20000h +SKF_LWINLOCKED equ 400000h +SKF_RWINLOCKED equ 800000h +MKF_MOUSEKEYSON equ 1 +MKF_AVAILABLE equ 2 +MKF_HOTKEYACTIVE equ 4 +MKF_CONFIRMHOTKEY equ 8 +MKF_HOTKEYSOUND equ 10h +MKF_INDICATOR equ 20h +MKF_MODIFIERS equ 40h +MKF_REPLACENUMBERS equ 80h +MKF_LEFTBUTTONSEL equ 10000000h +MKF_RIGHTBUTTONSEL equ 20000000h +MKF_LEFTBUTTONDOWN equ 1000000h +MKF_RIGHTBUTTONDOWN equ 2000000h +MKF_MOUSEMODE equ 80000000h +ATF_TIMEOUTON equ 1 +ATF_ONOFFFEEDBACK equ 2 +SSGF_NONE equ 0 +SSGF_DISPLAY equ 3 +SSTF_NONE equ 0 +SSTF_CHARS equ 1 +SSTF_BORDER equ 2 +SSTF_DISPLAY equ 3 +SSWF_NONE equ 0 +SSWF_TITLE equ 1 +SSWF_WINDOW equ 2 +SSWF_DISPLAY equ 3 +SSWF_CUSTOM equ 4 +SSF_SOUNDSENTRYON equ 1 +SSF_AVAILABLE equ 2 +SSF_INDICATOR equ 4 +TKF_TOGGLEKEYSON equ 1 +TKF_AVAILABLE equ 2 +TKF_HOTKEYACTIVE equ 4 +TKF_CONFIRMHOTKEY equ 8 +TKF_HOTKEYSOUND equ 10h +TKF_INDICATOR equ 20h +MONITOR_DEFAULTTONULL equ 0 +MONITOR_DEFAULTTOPRIMARY equ 1 +MONITOR_DEFAULTTONEAREST equ 2 +MONITORINFOF_PRIMARY equ 1 +CHILDID_SELF equ 0 +INDEXID_OBJECT equ 0 +INDEXID_CONTAINER equ 0 +OBJID_WINDOW equ 0 +OBJID_SYSMENU equ 0FFFFFFFFh +OBJID_TITLEBAR equ 0FFFFFFFEh +OBJID_MENU equ 0FFFFFFFDh +OBJID_CLIENT equ 0FFFFFFFCh +OBJID_VSCROLL equ 0FFFFFFFBh +OBJID_HSCROLL equ 0FFFFFFFAh +OBJID_SIZEGRIP equ 0FFFFFFF9h +OBJID_CARET equ 0FFFFFFF8h +OBJID_CURSOR equ 0FFFFFFF7h +OBJID_ALERT equ 0FFFFFFF6h +OBJID_SOUND equ 0FFFFFFF5h +EVENT_MIN equ 1 +EVENT_MAX equ 7FFFFFFFh +EVENT_SYSTEM_SOUND equ 1 +EVENT_SYSTEM_ALERT equ 2 +EVENT_SYSTEM_FOREGROUND equ 3 +EVENT_SYSTEM_MENUSTART equ 4 +EVENT_SYSTEM_MENUEND equ 5 +EVENT_SYSTEM_MENUPOPUPSTART equ 6 +EVENT_SYSTEM_MENUPOPUPEND equ 7 +EVENT_SYSTEM_CAPTURESTART equ 8 +EVENT_SYSTEM_CAPTUREEND equ 9 +EVENT_SYSTEM_MOVESIZESTART equ 0Ah +EVENT_SYSTEM_MOVESIZEEND equ 0Bh +EVENT_SYSTEM_CONTEXTHELPSTART equ 0Ch +EVENT_SYSTEM_CONTEXTHELPEND equ 0Dh +EVENT_SYSTEM_DRAGDROPSTART equ 0Eh +EVENT_SYSTEM_DRAGDROPEND equ 0Fh +EVENT_SYSTEM_DIALOGSTART equ 10h +EVENT_SYSTEM_DIALOGEND equ 11h +EVENT_SYSTEM_SCROLLINGSTART equ 12h +EVENT_SYSTEM_SCROLLINGEND equ 13h +EVENT_SYSTEM_SWITCHSTART equ 14h +EVENT_SYSTEM_SWITCHEND equ 15h +EVENT_SYSTEM_MINIMIZESTART equ 16h +EVENT_SYSTEM_MINIMIZEEND equ 17h +EVENT_OBJECT_CREATE equ 8000h +EVENT_OBJECT_DESTROY equ 8001h +EVENT_OBJECT_SHOW equ 8002h +EVENT_OBJECT_HIDE equ 8003h +EVENT_OBJECT_REORDER equ 8004h +EVENT_OBJECT_FOCUS equ 8005h +EVENT_OBJECT_SELECTION equ 8006h +EVENT_OBJECT_SELECTIONADD equ 8007h +EVENT_OBJECT_SELECTIONREMOVE equ 8008h +EVENT_OBJECT_SELECTIONWITHIN equ 8009h +EVENT_OBJECT_STATECHANGE equ 800Ah +EVENT_OBJECT_LOCATIONCHANGE equ 800Bh +EVENT_OBJECT_NAMECHANGE equ 800Ch +EVENT_OBJECT_DESCRIPTIONCHANGE equ 800Dh +EVENT_OBJECT_VALUECHANGE equ 800Eh +EVENT_OBJECT_PARENTCHANGE equ 800Fh +EVENT_OBJECT_HELPCHANGE equ 8010h +EVENT_OBJECT_DEFACTIONCHANGE equ 8011h +EVENT_OBJECT_ACCELERATORCHANGE equ 8012h +SOUND_SYSTEM_STARTUP equ 1 +SOUND_SYSTEM_SHUTDOWN equ 2 +SOUND_SYSTEM_BEEP equ 3 +SOUND_SYSTEM_ERROR equ 4 +SOUND_SYSTEM_QUESTION equ 5 +SOUND_SYSTEM_WARNING equ 6 +SOUND_SYSTEM_INFORMATION equ 7 +SOUND_SYSTEM_MAXIMIZE equ 8 +SOUND_SYSTEM_MINIMIZE equ 9 +SOUND_SYSTEM_RESTOREUP equ 10 +SOUND_SYSTEM_RESTOREDOWN equ 11 +SOUND_SYSTEM_APPSTART equ 12 +SOUND_SYSTEM_FAULT equ 13 +SOUND_SYSTEM_APPEND equ 14 +SOUND_SYSTEM_MENUCOMMAND equ 15 +SOUND_SYSTEM_MENUPOPUP equ 16 +CSOUND_SYSTEM equ 16 +ALERT_SYSTEM_INFORMATIONAL equ 1 +ALERT_SYSTEM_WARNING equ 2 +ALERT_SYSTEM_ERROR equ 3 +ALERT_SYSTEM_QUERY equ 4 +ALERT_SYSTEM_CRITICAL equ 5 +CALERT_SYSTEM equ 6 +WINEVENT_OUTOFCONTEXT equ 0 +WINEVENT_SKIPOWNTHREAD equ 1 +WINEVENT_SKIPOWNPROCESS equ 2 +WINEVENT_INCONTEXT equ 4 +GUI_CARETBLINKING equ 1 +GUI_INMOVESIZE equ 2 +GUI_INMENUMODE equ 4 +GUI_SYSTEMMENUMODE equ 8 +GUI_POPUPMENUMODE equ 10h +STATE_SYSTEM_UNAVAILABLE equ 1 +STATE_SYSTEM_SELECTED equ 2 +STATE_SYSTEM_FOCUSED equ 4 +STATE_SYSTEM_PRESSED equ 8 +STATE_SYSTEM_CHECKED equ 10h +STATE_SYSTEM_MIXED equ 20h +STATE_SYSTEM_READONLY equ 40h +STATE_SYSTEM_HOTTRACKED equ 80h +STATE_SYSTEM_DEFAULT equ 100h +STATE_SYSTEM_EXPANDED equ 200h +STATE_SYSTEM_COLLAPSED equ 400h +STATE_SYSTEM_BUSY equ 800h +STATE_SYSTEM_FLOATING equ 1000h +STATE_SYSTEM_MARQUEED equ 2000h +STATE_SYSTEM_ANIMATED equ 4000h +STATE_SYSTEM_INVISIBLE equ 8000h +STATE_SYSTEM_OFFSCREEN equ 10000h +STATE_SYSTEM_SIZEABLE equ 20000h +STATE_SYSTEM_MOVEABLE equ 40000h +STATE_SYSTEM_SELFVOICING equ 80000h +STATE_SYSTEM_FOCUSABLE equ 100000h +STATE_SYSTEM_SELECTABLE equ 200000h +STATE_SYSTEM_LINKED equ 400000h +STATE_SYSTEM_TRAVERSED equ 800000h +STATE_SYSTEM_MULTISELECTABLE equ 1000000h +STATE_SYSTEM_EXTSELECTABLE equ 2000000h +STATE_SYSTEM_ALERT_LOW equ 4000000h +STATE_SYSTEM_ALERT_MEDIUM equ 8000000h +STATE_SYSTEM_ALERT_HIGH equ 10000000h +STATE_SYSTEM_VALID equ 1FFFFFFFh +CCHILDREN_TITLEBAR equ 5 +CCHILDREN_SCROLLBAR equ 5 +GA_MIC equ 1 +GA_PARENT equ 1 +GA_ROOT equ 2 +GA_ROOTOWNER equ 3 +GA_MAC equ 4 +CURSOR_SHOWING equ 1 +WS_ACTIVECAPTION equ 1 + +APPCOMMAND_DELETE equ 53 +APPCOMMAND_DWM_FLIP3D equ 54 +UOI_HEAPSIZE equ 5 +UOI_IO equ 6 +WM_INPUT_DEVICE_CHANGE equ 00FEh +WM_INPUT equ 00FFh +WM_MOUSEHWHEEL equ 020Eh +PBT_POWERSETTINGCHANGE equ 8013h +WM_CLIPBOARDUPDATE equ 031Dh +WM_DWMCOMPOSITIONCHANGED equ 031Eh +WM_DWMNCRENDERINGCHANGED equ 031Fh +WM_DWMCOLORIZATIONCOLORCHANGED equ 0320h +WM_DWMWINDOWMAXIMIZEDCHANGE equ 0321h +WM_GETTITLEBARINFOEX equ 033Fh +SMTO_ERRORONEXIT equ 0020h +ENDSESSION_CRITICAL equ 40000000h +ENDSESSION_CLOSEAPP equ 00000001h +EWX_QUICKRESOLVE equ 00000020h +EWX_RESTARTAPPS equ 00000040h +ULW_EX_NORESIZE equ 00000008h +MOUSEEVENTF_HWHEEL equ 01000h +MOUSEEVENTF_MOVE_NOCOALESCE equ 2000h +MAPVK_VK_TO_VSC equ 0 +MAPVK_VSC_TO_VK equ 1 +MAPVK_VK_TO_CHAR equ 2 +MAPVK_VSC_TO_VK_EX equ 3 +MAPVK_VK_TO_VSC_EX equ 4 +QS_RAWINPUT equ 0400h +USER_TIMER_MAXIMUM equ 7FFFFFFFh +USER_TIMER_MINIMUM equ 0000000Ah +SM_STARTER equ 88 +SM_SERVERR2 equ 89 +SM_MOUSEHORIZONTALWHEELPRESENT equ 91 +SM_CXPADDEDBORDER equ 92 +SM_CARETBLINKINGENABLED equ 2002h +MONITORS_MAX equ 10 +SCF_ISSECURE equ 00000001h +DI_NOMIRROR equ 0010h +OIC_SHIELD equ 32518 +IDI_SHIELD equ 32518 +IDTIMEOUT equ 32000 +BS_TYPEMASK equ 0000000Fh +BM_SETDONTCLICK equ 00F8h +SS_REALSIZECONTROL equ 00000040h +SS_EDITCONTROL equ 00002000h +DS_USEPIXELS equ 8000h +LB_GETLISTBOXINFO equ 01B2h +LBS_COMBOBOX equ 8000h +CB_GETCOMBOBOXINFO equ 0164h +SBM_GETSCROLLBARINFO equ 00EBh +SPI_GETWHEELSCROLLCHARS equ 006Ch +SPI_SETWHEELSCROLLCHARS equ 006Dh +SPI_GETAUDIODESCRIPTION equ 0074h +SPI_SETAUDIODESCRIPTION equ 0075h +SPI_GETSCREENSAVESECURE equ 0076h +SPI_SETSCREENSAVESECURE equ 0077h +SPI_GETDISABLEOVERLAPPEDCONTENT equ 1040h +SPI_SETDISABLEOVERLAPPEDCONTENT equ 1041h +SPI_GETCLIENTAREAANIMATION equ 1042h +SPI_SETCLIENTAREAANIMATION equ 1043h +SPI_GETCLEARTYPE equ 1048h +SPI_SETCLEARTYPE equ 1049h +SPI_GETSPEECHRECOGNITION equ 104Ah +SPI_SETSPEECHRECOGNITION equ 104Bh +SPI_GETMINIMUMHITRADIUS equ 2014h +SPI_SETMINIMUMHITRADIUS equ 2015h +SPI_GETMESSAGEDURATION equ 2016h +SPI_SETMESSAGEDURATION equ 2017h +HCF_LOGONDESKTOP equ 00000100h +HCF_DEFAULTDESKTOP equ 00000200h +CDS_ENABLE_UNSAFE_MODES equ 00000100h +CDS_DISABLE_UNSAFE_MODES equ 00000200h +EDS_ROTATEDMODE equ 00000004h +EDD_GET_DEVICE_INTERFACE_NAME equ 00000001h +EVENT_SYSTEM_DESKTOPSWITCH equ 0020h +EVENT_OBJECT_INVOKED equ 8013h +EVENT_OBJECT_TEXTSELECTIONCHANGED equ 8014h +EVENT_OBJECT_CONTENTSCROLLED equ 8015h +USER_DEFAULT_SCREEN_DPI equ 96 +MOUSE_MOVE_NOCOALESCE equ 08h +RIDEV_EXINPUTSINK equ 00001000h +RIDEV_DEVNOTIFY equ 00002000h +GIDC_ARRIVAL equ 1 +GIDC_REMOVAL equ 2 +MSGFLT_ADD equ 1 +MSGFLT_REMOVE equ 2 +MAX_STR_BLOCKREASON equ 256 + +;-----------------------------------[ winuser.h - Structures ]--------------------------------- +CWPRETSTRUCT STRUCT + lResult DWORD ? + lParam DWORD ? + wParam DWORD ? + message DWORD ? + hwnd DWORD ? +CWPRETSTRUCT ENDS + +HARDWAREHOOKSTRUCT STRUCT + hwnd DWORD ? + message DWORD ? + wParam DWORD ? + lParam DWORD ? +HARDWAREHOOKSTRUCT ENDS + +USEROBJECTFLAGS STRUCT + fInherit DWORD ? + fReserved DWORD ? + dwFlags DWORD ? +USEROBJECTFLAGS ENDS + +MDINEXTMENU STRUCT + hmenuIn DWORD ? + hmenuNext DWORD ? + hwndNext DWORD ? +MDINEXTMENU ENDS + +NCCALCSIZE_PARAMS STRUCT + rgrc RECT 3 dup(<>) + lppos DWORD ? +NCCALCSIZE_PARAMS ENDS + +STYLESTRUCT STRUCT + styleOld DWORD ? + styleNew DWORD ? +STYLESTRUCT ENDS + +DROPSTRUCT STRUCT + hwndSource DWORD ? + hwndSink DWORD ? + wFmt DWORD ? + dwData DWORD ? + ptDrop POINT <> + dwControlData DWORD ? +DROPSTRUCT ENDS + +CURSORSHAPE STRUCT + xHotSpot DWORD ? + yHotSpot DWORD ? + regCx DWORD ? + regCy DWORD ? + cbWidth DWORD ? + Planes db ? + BitsPixel db ? +CURSORSHAPE ENDS + +SERIALKEYSW STRUCT + cbSize DWORD ? + dwFlags DWORD ? + lpszActivePort DWORD ? + lpszPort DWORD ? + iBaudRate DWORD ? + iPortState DWORD ? + iActive DWORD ? +SERIALKEYSW ENDS + +SERIALKEYSA STRUCT + cbSize DWORD ? + dwFlags DWORD ? + lpszActivePort DWORD ? + lpszPort DWORD ? + iBaudRate DWORD ? + iPortState DWORD ? + iActive DWORD ? +SERIALKEYSA ENDS + +IFDEF __UNICODE__ + SERIALKEYS equ +ELSE + SERIALKEYS equ +ENDIF + +HIGHCONTRASTW STRUCT + cbSize DWORD ? + dwFlags DWORD ? + lpszDefaultScheme DWORD ? +HIGHCONTRASTW ENDS + +HIGHCONTRASTA STRUCT + cbSize DWORD ? + dwFlags DWORD ? + lpszDefaultScheme DWORD ? +HIGHCONTRASTA ENDS + +IFDEF __UNICODE__ + HIGHCONTRAST equ +ELSE + HIGHCONTRAST equ +ENDIF + +FILTERKEYS STRUCT + cbSize DWORD ? + dwFlags DWORD ? + iWaitMSec DWORD ? + iDelayMSec DWORD ? + iRepeatMSec DWORD ? + iBounceMSec DWORD ? +FILTERKEYS ENDS + +STICKYKEYS STRUCT + cbSize DWORD ? + dwFlags DWORD ? +STICKYKEYS ENDS + +MOUSEKEYS STRUCT + cbSize DWORD ? + dwFlags DWORD ? + iMaxSpeed DWORD ? + iTimeToMaxSpeed DWORD ? + iCtrlSpeed DWORD ? + dwReserved1 DWORD ? + dwReserved2 DWORD ? +MOUSEKEYS ENDS + +ACCESSTIMEOUT STRUCT + cbSize DWORD ? + dwFlags DWORD ? + iTimeOutMSec DWORD ? +ACCESSTIMEOUT ENDS + +SOUNDSENTRYW STRUCT + cbSize DWORD ? + dwFlags DWORD ? + iFSTextEffect DWORD ? + iFSTextEffectMSec DWORD ? + iFSTextEffectColorBits DWORD ? + iFSGrafEffect DWORD ? + iFSGrafEffectMSec DWORD ? + iFSGrafEffectColor DWORD ? + iWindowsEffect DWORD ? + iWindowsEffectMSec DWORD ? + lpszWindowsEffectDLL DWORD ? + iWindowsEffectOrdinal DWORD ? +SOUNDSENTRYW ENDS + +SOUNDSENTRYA STRUCT + cbSize DWORD ? + dwFlags DWORD ? + iFSTextEffect DWORD ? + iFSTextEffectMSec DWORD ? + iFSTextEffectColorBits DWORD ? + iFSGrafEffect DWORD ? + iFSGrafEffectMSec DWORD ? + iFSGrafEffectColor DWORD ? + iWindowsEffect DWORD ? + iWindowsEffectMSec DWORD ? + lpszWindowsEffectDLL DWORD ? + iWindowsEffectOrdinal DWORD ? +SOUNDSENTRYA ENDS + +IFDEF __UNICODE__ + SOUNDSENTRY equ +ELSE + SOUNDSENTRY equ +ENDIF + +TOGGLEKEYS STRUCT + cbSize DWORD ? + dwFlags DWORD ? +TOGGLEKEYS ENDS + +FLASHWINFO STRUCT + cbSize DWORD ? + hwnd DWORD ? + dwFlags DWORD ? + uCount DWORD ? + dwTimeout DWORD ? +FLASHWINFO ENDS + +; ------------------------- +; server 2003 extra equates +; ------------------------- + +RT_MANIFEST equ 24 +CREATEPROCESS_MANIFEST_RESOURCE_ID equ 1 +ISOLATIONAWARE_MANIFEST_RESOURCE_ID equ 2 +ISOLATIONAWARE_NOSTATICIMPORT_MANIFEST_RESOURCE_ID equ 3 +MINIMUM_RESERVED_MANIFEST_RESOURCE_ID equ 1 +MAXIMUM_RESERVED_MANIFEST_RESOURCE_ID equ 16 +SW_FORCEMINIMIZE equ 11 +VK_XBUTTON1 equ 05h +VK_XBUTTON2 equ 06h +VK_SLEEP equ 5Fh +VK_OEM_NEC_EQUAL equ 92h +VK_OEM_FJ_JISHO equ 92h +VK_OEM_FJ_MASSHOU equ 93h +VK_OEM_FJ_TOUROKU equ 94h +VK_OEM_FJ_LOYA equ 95h +VK_OEM_FJ_ROYA equ 96h +VK_BROWSER_BACK equ 0A6h +VK_BROWSER_FORWARD equ 0A7h +VK_BROWSER_REFRESH equ 0A8h +VK_BROWSER_STOP equ 0A9h +VK_BROWSER_SEARCH equ 0AAh +VK_BROWSER_FAVORITES equ 0ABh +VK_BROWSER_HOME equ 0ACh +VK_VOLUME_MUTE equ 0ADh +VK_VOLUME_DOWN equ 0AEh +VK_VOLUME_UP equ 0AFh +VK_MEDIA_NEXT_TRACK equ 0B0h +VK_MEDIA_PREV_TRACK equ 0B1h +VK_MEDIA_STOP equ 0B2h +VK_MEDIA_PLAY_PAUSE equ 0B3h +VK_LAUNCH_MAIL equ 0B4h +VK_LAUNCH_MEDIA_SELECT equ 0B5h +VK_LAUNCH_APP1 equ 0B6h +VK_LAUNCH_APP2 equ 0B7h +VK_OEM_1 equ 0BAh +VK_OEM_PLUS equ 0BBh +VK_OEM_COMMA equ 0BCh +VK_OEM_MINUS equ 0BDh +VK_OEM_PERIOD equ 0BEh +VK_OEM_2 equ 0BFh +VK_OEM_3 equ 0C0h +VK_OEM_4 equ 0DBh +VK_OEM_5 equ 0DCh +VK_OEM_6 equ 0DDh +VK_OEM_7 equ 0DEh +VK_OEM_8 equ 0DFh +VK_OEM_AX equ 0E1h +VK_OEM_102 equ 0E2h +VK_ICO_HELP equ 0E3h +VK_ICO_00 equ 0E4h +VK_ICO_CLEAR equ 0E6h +VK_PACKET equ 0E7h +VK_OEM_RESET equ 0E9h +VK_OEM_JUMP equ 0EAh +VK_OEM_PA1 equ 0EBh +VK_OEM_PA2 equ 0ECh +VK_OEM_PA3 equ 0EDh +VK_OEM_WSCTRL equ 0EEh +VK_OEM_CUSEL equ 0EFh +VK_OEM_ATTN equ 0F0h +VK_OEM_FINISH equ 0F1h +VK_OEM_COPY equ 0F2h +VK_OEM_AUTO equ 0F3h +VK_OEM_ENLW equ 0F4h +VK_OEM_BACKTAB equ 0F5h +WTS_CONSOLE_CONNECT equ 1h +WTS_CONSOLE_DISCONNECT equ 2h +WTS_REMOTE_CONNECT equ 3h +WTS_REMOTE_DISCONNECT equ 4h +WTS_SESSION_LOGON equ 5h +WTS_SESSION_LOGOFF equ 6h +WTS_SESSION_LOCK equ 7h +WTS_SESSION_UNLOCK equ 8h +WTS_SESSION_REMOTE_CONTROL equ 9h +HSHELL_SYSMENU equ 9 +HSHELL_ENDTASK equ 10 +HSHELL_APPCOMMAND equ 12 +HSHELL_WINDOWREPLACED equ 13 +HSHELL_WINDOWREPLACING equ 14 +HSHELL_HIGHBIT equ 8000h +HSHELL_FLASH equ (HSHELL_REDRAW or HSHELL_HIGHBIT) +HSHELL_RUDEAPPACTIVATED equ (HSHELL_WINDOWACTIVATED or HSHELL_HIGHBIT) +APPCOMMAND_BROWSER_BACKWARD equ 1 +APPCOMMAND_BROWSER_FORWARD equ 2 +APPCOMMAND_BROWSER_REFRESH equ 3 +APPCOMMAND_BROWSER_STOP equ 4 +APPCOMMAND_BROWSER_SEARCH equ 5 +APPCOMMAND_BROWSER_FAVORITES equ 6 +APPCOMMAND_BROWSER_HOME equ 7 +APPCOMMAND_VOLUME_MUTE equ 8 +APPCOMMAND_VOLUME_DOWN equ 9 +APPCOMMAND_VOLUME_UP equ 10 +APPCOMMAND_MEDIA_NEXTTRACK equ 11 +APPCOMMAND_MEDIA_PREVIOUSTRACK equ 12 +APPCOMMAND_MEDIA_STOP equ 13 +APPCOMMAND_MEDIA_PLAY_PAUSE equ 14 +APPCOMMAND_LAUNCH_MAIL equ 15 +APPCOMMAND_LAUNCH_MEDIA_SELECT equ 16 +APPCOMMAND_LAUNCH_APP1 equ 17 +APPCOMMAND_LAUNCH_APP2 equ 18 +APPCOMMAND_BASS_DOWN equ 19 +APPCOMMAND_BASS_BOOST equ 20 +APPCOMMAND_BASS_UP equ 21 +APPCOMMAND_TREBLE_DOWN equ 22 +APPCOMMAND_TREBLE_UP equ 23 +APPCOMMAND_MICROPHONE_VOLUME_MUTE equ 24 +APPCOMMAND_MICROPHONE_VOLUME_DOWN equ 25 +APPCOMMAND_MICROPHONE_VOLUME_UP equ 26 +APPCOMMAND_HELP equ 27 +APPCOMMAND_FIND equ 28 +APPCOMMAND_NEW equ 29 +APPCOMMAND_OPEN equ 30 +APPCOMMAND_CLOSE equ 31 +APPCOMMAND_SAVE equ 32 +APPCOMMAND_PRINT equ 33 +APPCOMMAND_UNDO equ 34 +APPCOMMAND_REDO equ 35 +APPCOMMAND_COPY equ 36 +APPCOMMAND_CUT equ 37 +APPCOMMAND_PASTE equ 38 +APPCOMMAND_REPLY_TO_MAIL equ 39 +APPCOMMAND_FORWARD_MAIL equ 40 +APPCOMMAND_SEND_MAIL equ 41 +APPCOMMAND_SPELL_CHECK equ 42 +APPCOMMAND_DICTATE_OR_COMMAND_CONTROL_TOGGLE equ 43 +APPCOMMAND_MIC_ON_OFF_TOGGLE equ 44 +APPCOMMAND_CORRECTION_LIST equ 45 +APPCOMMAND_MEDIA_PLAY equ 46 +APPCOMMAND_MEDIA_PAUSE equ 47 +APPCOMMAND_MEDIA_RECORD equ 48 +APPCOMMAND_MEDIA_FAST_FORWARD equ 49 +APPCOMMAND_MEDIA_REWIND equ 50 +APPCOMMAND_MEDIA_CHANNEL_UP equ 51 +APPCOMMAND_MEDIA_CHANNEL_DOWN equ 52 +FAPPCOMMAND_MOUSE equ 8000h +FAPPCOMMAND_KEY equ 0 +FAPPCOMMAND_OEM equ 1000h +FAPPCOMMAND_MASK equ 0F000h +KLF_SHIFTLOCK equ 00010000h +KLF_RESET equ 40000000h +INPUTLANGCHANGE_SYSCHARSET equ 0001h +INPUTLANGCHANGE_FORWARD equ 0002h +INPUTLANGCHANGE_BACKWARD equ 0004h +GMMP_USE_HIGH_RESOLUTION_POINTS equ 2 +CWF_CREATE_ONLY equ 0001h +GWLP_WNDPROC equ (-4) +GWLP_HINSTANCE equ (-6) +GWLP_HWNDPARENT equ (-8) +GWLP_USERDATA equ (-21) +GWLP_ID equ (-12) +GCLP_MENUNAME equ (-8) +GCLP_HBRBACKGROUND equ (-10) +GCLP_HCURSOR equ (-12) +GCLP_HICON equ (-14) +GCLP_HMODULE equ (-16) +GCLP_WNDPROC equ (-24) +GCLP_HICONSM equ (-34) +WM_NCXBUTTONDOWN equ 00ABh +WM_NCXBUTTONUP equ 00ACh +WM_NCXBUTTONDBLCLK equ 00ADh +WM_UNICHAR equ 0109h +UNICODE_NOCHAR equ 0FFFFh +WM_CHANGEUISTATE equ 0127h +WM_UPDATEUISTATE equ 0128h +WM_QUERYUISTATE equ 0129h +UIS_SET equ 1 +UIS_CLEAR equ 2 +UIS_INITIALIZE equ 3 +UISF_HIDEFOCUS equ 1h +UISF_HIDEACCEL equ 2h +UISF_ACTIVE equ 4h +MN_GETHMENU equ 01E1h +WM_XBUTTONDOWN equ 020Bh +WM_XBUTTONUP equ 020Ch +WM_XBUTTONDBLCLK equ 020Dh +WM_NCMOUSEHOVER equ 02A0h +WM_NCMOUSELEAVE equ 02A2h +WM_WTSSESSION_CHANGE equ 02B1h +WM_TABLET_FIRST equ 02c0h +WM_TABLET_LAST equ 02dfh +WM_APPCOMMAND equ 0319h +WM_THEMECHANGED equ 031Ah +ICON_SMALL2 equ 2 +MK_XBUTTON1 equ 0020h +MK_XBUTTON2 equ 0040h +WS_EX_LAYERED equ 00080000h +WS_EX_NOINHERITLAYOUT equ 00100000h +WS_EX_LAYOUTRTL equ 00400000h +WS_EX_COMPOSITED equ 02000000h +WS_EX_NOACTIVATE equ 08000000h +CS_DROPSHADOW equ 00020000h +DC_BUTTONS equ 1000h +CF_DIBV5 equ 17 +WPF_ASYNCWINDOWPLACEMENT equ 0004h +ODS_NOACCEL equ 0100h +ODS_NOFOCUSRECT equ 0200h +BSF_ALLOWSFW equ 00000080h +BSF_SENDNOTIFYMESSAGE equ 00000100h +BSF_RETURNHDESK equ 00000200h +BSF_LUID equ 00000400h +DEVICE_NOTIFY_SERVICE_HANDLE equ 00000001h +DEVICE_NOTIFY_ALL_INTERFACE_CLASSES equ 00000004h +PW_CLIENTONLY equ 00000001h +LWA_COLORKEY equ 00000001h +LWA_ALPHA equ 00000002h +ULW_COLORKEY equ 00000001h +ULW_ALPHA equ 00000002h +ULW_OPAQUE equ 00000004h +SM_IMMENABLED equ 82 +SM_CXFOCUSBORDER equ 83 +SM_CYFOCUSBORDER equ 84 +SM_TABLETPC equ 86 +SM_MEDIACENTER equ 87 +SM_REMOTESESSION equ 1000h +SM_SHUTTINGDOWN equ 2000h +SM_REMOTECONTROL equ 2001h +PMB_ACTIVE equ 00000001h +MNGOF_TOPGAP equ 00000001h +MNGOF_BOTTOMGAP equ 00000002h +TPM_HORPOSANIMATION equ 0400h +TPM_HORNEGANIMATION equ 0800h +TPM_VERPOSANIMATION equ 1000h +TPM_VERNEGANIMATION equ 2000h +TPM_NOANIMATION equ 4000h +TPM_LAYOUTRTL equ 8000h +DT_NOFULLWIDTHCHARBREAK equ 00080000h +DT_HIDEPREFIX equ 00100000h +DT_PREFIXONLY equ 00200000h +DSS_HIDEPREFIX equ 0200h +DSS_PREFIXONLY equ 0400h +ASFW_ANY equ (-1) +LSFW_LOCK equ 1 +LSFW_UNLOCK equ 2 +MB_CANCELTRYCONTINUE equ 00000006h +MB_SERVICE_NOTIFICATION_NT3X equ 00040000h +COLOR_MENUHILIGHT equ 29 +COLOR_MENUBAR equ 30 +SPI_GETSNAPTODEFBUTTON equ 005Fh +SPI_SETSNAPTODEFBUTTON equ 0060h +SPI_GETMENUSHOWDELAY equ 006Ah +SPI_SETMENUSHOWDELAY equ 006Bh +SPI_GETDESKWALLPAPER equ 0073h +SPI_GETKEYBOARDCUES equ 100Ah +SPI_SETKEYBOARDCUES equ 100Bh +SPI_GETMENUFADE equ 1012h +SPI_SETMENUFADE equ 1013h +SPI_GETSELECTIONFADE equ 1014h +SPI_SETSELECTIONFADE equ 1015h +SPI_GETTOOLTIPANIMATION equ 1016h +SPI_SETTOOLTIPANIMATION equ 1017h +SPI_GETTOOLTIPFADE equ 1018h +SPI_SETTOOLTIPFADE equ 1019h +SPI_GETCURSORSHADOW equ 101Ah +SPI_SETCURSORSHADOW equ 101Bh +SPI_GETMOUSESONAR equ 101Ch +SPI_SETMOUSESONAR equ 101Dh +SPI_GETMOUSECLICKLOCK equ 101Eh +SPI_SETMOUSECLICKLOCK equ 101Fh +SPI_GETMOUSEVANISH equ 1020h +SPI_SETMOUSEVANISH equ 1021h +SPI_GETFLATMENU equ 1022h +SPI_SETFLATMENU equ 1023h +SPI_GETDROPSHADOW equ 1024h +SPI_SETDROPSHADOW equ 1025h +SPI_GETBLOCKSENDINPUTRESETS equ 1026h +SPI_SETBLOCKSENDINPUTRESETS equ 1027h +SPI_GETUIEFFECTS equ 103Eh +SPI_SETUIEFFECTS equ 103Fh +SPI_GETCARETWIDTH equ 2006h +SPI_SETCARETWIDTH equ 2007h +SPI_GETMOUSECLICKLOCKTIME equ 2008h +SPI_SETMOUSECLICKLOCKTIME equ 2009h +SPI_GETFONTSMOOTHINGTYPE equ 200Ah +SPI_SETFONTSMOOTHINGTYPE equ 200Bh +FE_FONTSMOOTHINGSTANDARD equ 0001h +FE_FONTSMOOTHINGCLEARTYPE equ 0002h +FE_FONTSMOOTHINGDOCKING equ 8000h +SPI_GETFONTSMOOTHINGCONTRAST equ 200Ch +SPI_SETFONTSMOOTHINGCONTRAST equ 200Dh +SPI_GETFOCUSBORDERWIDTH equ 200Eh +SPI_SETFOCUSBORDERWIDTH equ 200Fh +SPI_GETFOCUSBORDERHEIGHT equ 2010h +SPI_SETFOCUSBORDERHEIGHT equ 2011h +SPI_GETFONTSMOOTHINGORIENTATION equ 2012h +SPI_SETFONTSMOOTHINGORIENTATION equ 2013h +FE_FONTSMOOTHINGORIENTATIONBGR equ 0000h +FE_FONTSMOOTHINGORIENTATIONRGB equ 0001h +CDS_VIDEOPARAMETERS equ 00000020h +DISP_CHANGE_BADDUALVIEW equ -6 +EDS_RAWMODE equ 00000002h +OBJID_QUERYCLASSNAMEIDX equ (0FFFFFFF4h) +OBJID_NATIVEOM equ (0FFFFFFF0h) +EVENT_CONSOLE_CARET equ 4001h +EVENT_CONSOLE_UPDATE_REGION equ 4002h +EVENT_CONSOLE_UPDATE_SIMPLE equ 4003h +EVENT_CONSOLE_UPDATE_SCROLL equ 4004h +EVENT_CONSOLE_LAYOUT equ 4005h +EVENT_CONSOLE_START_APPLICATION equ 4006h +EVENT_CONSOLE_END_APPLICATION equ 4007h +CONSOLE_APPLICATION_16BIT equ 0001h +CONSOLE_CARET_SELECTION equ 0001h +CONSOLE_CARET_VISIBLE equ 0002h +GUI_16BITTASK equ 00000020h +STATE_SYSTEM_INDETERMINATE equ STATE_SYSTEM_MIXED +STATE_SYSTEM_PROTECTED equ 20000000h +RIM_INPUT equ 0 +RIM_INPUTSINK equ 1 +RIM_TYPEMOUSE equ 0 +RIM_TYPEKEYBOARD equ 1 +RIM_TYPEHID equ 2 +RI_MOUSE_LEFT_BUTTON_DOWN equ 0001h +RI_MOUSE_LEFT_BUTTON_UP equ 0002h +RI_MOUSE_RIGHT_BUTTON_DOWN equ 0004h +RI_MOUSE_RIGHT_BUTTON_UP equ 0008h +RI_MOUSE_MIDDLE_BUTTON_DOWN equ 0010h +RI_MOUSE_MIDDLE_BUTTON_UP equ 0020h +RI_MOUSE_BUTTON_1_DOWN equ RI_MOUSE_LEFT_BUTTON_DOWN +RI_MOUSE_BUTTON_1_UP equ RI_MOUSE_LEFT_BUTTON_UP +RI_MOUSE_BUTTON_2_DOWN equ RI_MOUSE_RIGHT_BUTTON_DOWN +RI_MOUSE_BUTTON_2_UP equ RI_MOUSE_RIGHT_BUTTON_UP +RI_MOUSE_BUTTON_3_DOWN equ RI_MOUSE_MIDDLE_BUTTON_DOWN +RI_MOUSE_BUTTON_3_UP equ RI_MOUSE_MIDDLE_BUTTON_UP +RI_MOUSE_BUTTON_4_DOWN equ 0040h +RI_MOUSE_BUTTON_4_UP equ 0080h +RI_MOUSE_BUTTON_5_DOWN equ 0100h +RI_MOUSE_BUTTON_5_UP equ 0200h +RI_MOUSE_WHEEL equ 0400h +MOUSE_MOVE_RELATIVE equ 0 +MOUSE_MOVE_ABSOLUTE equ 1 +MOUSE_VIRTUAL_DESKTOP equ 02h +MOUSE_ATTRIBUTES_CHANGED equ 04h +KEYBOARD_OVERRUN_MAKE_CODE equ 0FFh +RI_KEY_MAKE equ 0 +RI_KEY_BREAK equ 1 +RI_KEY_E0 equ 2 +RI_KEY_E1 equ 4 +RI_KEY_TERMSRV_SET_LED equ 8 +RI_KEY_TERMSRV_SHADOW equ 10h +RID_INPUT equ 10000003h +RID_HEADER equ 10000005h +RIDI_PREPARSEDDATA equ 20000005h +RIDI_DEVICENAME equ 20000007h +RIDI_DEVICEINFO equ 2000000bh +RIDEV_REMOVE equ 00000001h +RIDEV_EXCLUDE equ 00000010h +RIDEV_PAGEONLY equ 00000020h +RIDEV_NOLEGACY equ 00000030h +RIDEV_INPUTSINK equ 00000100h +RIDEV_CAPTUREMOUSE equ 00000200h +RIDEV_NOHOTKEYS equ 00000200h +RIDEV_APPKEYS equ 00000400h +RIDEV_EXMODEMASK equ 000000F0h + +INVALID_SET_FILE_POINTER equ -1 +INVALID_FILE_SIZE equ -1 +MOUSEEVENTF_VIRTUALDESK equ 4000h +IDTRYAGAIN equ 10 +IDCONTINUE equ 11 +EN_ALIGN_LTR_EC equ 0700h +EN_ALIGN_RTL_EC equ 0701h +DWLP_MSGRESULT equ 0 +DS_SHELLFONT equ DS_SETFONT or DS_FIXEDSYS +LB_MULTIPLEADDSTRING equ 01B1h +CB_MULTIPLEADDSTRING equ 0163h +MDITILE_ZORDER equ 0004h + +PM_QS_INPUT equ (QS_INPUT SHL 16) +PM_QS_POSTMESSAGE equ (QS_POSTMESSAGE or QS_HOTKEY or QS_TIMER SHL 16) +PM_QS_PAINT equ (QS_PAINT SHL 16) +PM_QS_SENDMESSAGE equ (QS_SENDMESSAGE SHL 16) + +; winspool equates + +OSVERSION_MASK equ 0FFFF0000h +SPVERSION_MASK equ 0000FF00h +SUBVERSION_MASK equ 000000FFh +PRINTER_STATUS_SERVER_OFFLINE equ 02000000h +PRINTER_STATUS_DRIVER_UPDATE_NEEDED equ 04000000h +PRINTER_ATTRIBUTE_PUSHED_USER equ 00020000h +PRINTER_ATTRIBUTE_PUSHED_MACHINE equ 00040000h +PRINTER_ATTRIBUTE_MACHINE equ 00080000h +PRINTER_ATTRIBUTE_FRIENDLY_NAME equ 00100000h +JOB_CONTROL_RETAIN equ 8 +JOB_CONTROL_RELEASE equ 9 +JOB_STATUS_RETAINED equ 00002000h +JOB_STATUS_RENDERING_LOCALLY equ 00004000h +PRINTER_DRIVER_PACKAGE_AWARE equ 00000001h +STRING_NONE equ 00000001h +STRING_MUIDLL equ 00000002h +STRING_LANGPAIR equ 00000004h +MAX_FORM_KEYWORD_LENGTH equ 63+1 +PPCAPS_RIGHT_THEN_DOWN equ 00000001h +PPCAPS_BORDER_PRINT equ 00000001h +PPCAPS_BOOKLET_EDGE equ 00000001h +PPCAPS_REVERSE_PAGES_FOR_REVERSE_DUPLEX equ 00000001h +PPCAPS_SQUARE_SCALING equ 00000001h +PRINTER_NOTIFY_FIELD_FRIENDLY_NAME equ 1Bh +JOB_NOTIFY_FIELD_REMOTE_JOB_ID equ 18h +JOB_ACCESS_READ equ 00000020h +PRINTER_CONNECTION_MISMATCH equ 00000020h +PRINTER_CONNECTION_NO_UI equ 00000040h +IPDFP_COPY_ALL_FILES equ 00000001h +UPDP_SILENT_UPLOAD equ 00000001h +UPDP_UPLOAD_ALWAYS equ 00000002h +UPDP_CHECK_DRIVERSTORE equ 00000004h + + + +;;;; end winuser + +;;;; comdlg + +; *************** equates and structures from commdlg.h ******************* + +CDERR_GENERALCODES equ 0000h +CDERR_STRUCTSIZE equ 0001h +CDERR_INITIALIZATION equ 0002h +CDERR_NOTEMPLATE equ 0003h +CDERR_NOHINSTANCE equ 0004h +CDERR_LOADSTRFAILURE equ 0005h +CDERR_FINDRESFAILURE equ 0006h +CDERR_LOADRESFAILURE equ 0007h +CDERR_LOCKRESFAILURE equ 0008h +CDERR_MEMALLOCFAILURE equ 0009h +CDERR_MEMLOCKFAILURE equ 000Ah +CDERR_NOHOOK equ 000Bh +CDERR_REGISTERMSGFAIL equ 000Ch +CC_RGBINIT equ 00000001h +CC_FULLOPEN equ 00000002h +CC_PREVENTFULLOPEN equ 00000004h +CC_SHOWHELP equ 00000008h +CC_ENABLEHOOK equ 00000010h +CC_ENABLETEMPLATE equ 00000020h +CC_ENABLETEMPLATEHANDLE equ 00000040h +CCERR_CHOOSECOLORCODES equ 5000h +FR_DOWN equ 00000001h +FR_WHOLEWORD equ 00000002h +FR_MATCHCASE equ 00000004h +FR_FINDNEXT equ 00000008h +FR_REPLACE equ 00000010h +FR_REPLACEALL equ 00000020h +FR_DIALOGTERM equ 00000040h +FR_SHOWHELP equ 00000080h +FR_ENABLEHOOK equ 00000100h +FR_ENABLETEMPLATE equ 00000200h +FR_NOUPDOWN equ 00000400h +FR_NOMATCHCASE equ 00000800h +FR_NOWHOLEWORD equ 00001000h +FR_ENABLETEMPLATEHANDLE equ 00002000h +FR_HIDEUPDOWN equ 00004000h +FR_HIDEMATCHCASE equ 00008000h +FR_HIDEWHOLEWORD equ 00010000h +FRERR_FINDREPLACECODES equ 4000h +FRERR_BUFFERLENGTHZERO equ 4001h +CF_SCREENFONTS equ 00000001h +CF_PRINTERFONTS equ 00000002h +CF_BOTH equ CF_SCREENFONTS + CF_PRINTERFONTS +CF_SHOWHELP equ 00000004h +CF_ENABLEHOOK equ 00000008h +CF_ENABLETEMPLATE equ 00000010h +CF_ENABLETEMPLATEHANDLE equ 00000020h +CF_INITTOLOGFONTSTRUCT equ 00000040h +CF_USESTYLE equ 00000080h +CF_EFFECTS equ 00000100h +CF_APPLY equ 00000200h +CF_ANSIONLY equ 00000400h +CF_NOVECTORFONTS equ 00000800h +CF_NOOEMFONTS equ CF_NOVECTORFONTS +CF_NOSIMULATIONS equ 00001000h +CF_LIMITSIZE equ 00002000h +CF_FIXEDPITCHONLY equ 00004000h +CF_WYSIWYG equ 00008000h +CF_FORCEFONTEXIST equ 00010000h +CF_SCALABLEONLY equ 00020000h +CF_TTONLY equ 00040000h +CF_NOFACESEL equ 00080000h +CF_NOSTYLESEL equ 00100000h +CF_NOSIZESEL equ 00200000h +CFERR_CHOOSEFONTCODES equ 2000h +CFERR_NOFONTS equ 2001h +CFERR_MAXLESSTHANMIN equ 2002h +WM_CHOOSEFONT_GETLOGFONT equ WM_USER + 1 +CD_LBSELNOITEMS equ -1 +CD_LBSELCHANGE equ 0 +CD_LBSELSUB equ 1 +CD_LBSELADD equ 2 +PD_ALLPAGES equ 00000000h +PD_SELECTION equ 00000001h +PD_PAGENUMS equ 00000002h +PD_NOSELECTION equ 00000004h +PD_NOPAGENUMS equ 00000008h +PD_COLLATE equ 00000010h +PD_PRINTTOFILE equ 00000020h +PD_PRINTSETUP equ 00000040h +PD_NOWARNING equ 00000080h +PD_RETURNDC equ 00000100h +PD_RETURNIC equ 00000200h +PD_RETURNDEFAULT equ 00000400h +PD_SHOWHELP equ 00000800h +PD_ENABLEPRINTHOOK equ 00001000h +PD_ENABLESETUPHOOK equ 00002000h +PD_ENABLEPRINTTEMPLATE equ 00004000h +PD_ENABLESETUPTEMPLATE equ 00008000h +PD_ENABLEPRINTTEMPLATEHANDLE equ 00010000h +PD_ENABLESETUPTEMPLATEHANDLE equ 00020000h +PD_USEDEVMODECOPIES equ 00040000h +PD_DISABLEPRINTTOFILE equ 00080000h +PD_HIDEPRINTTOFILE equ 00100000h +PDERR_PRINTERCODES equ 1000h +PDERR_SETUPFAILURE equ 1001h +PDERR_PARSEFAILURE equ 1002h +PDERR_RETDEFFAILURE equ 1003h +PDERR_LOADDRVFAILURE equ 1004h +PDERR_GETDEVMODEFAIL equ 1005h +PDERR_INITFAILURE equ 1006h +PDERR_NODEVICES equ 1007h +PDERR_NODEFAULTPRN equ 1008h +PDERR_DNDMMISMATCH equ 1009h +PDERR_CREATEICFAILURE equ 100Ah +PDERR_PRINTERNOTFOUND equ 100Bh +PDERR_DEFAULTDIFFERENT equ 100Ch +DN_DEFAULTPRN equ 0001h +OFN_ALLOWMULTISELECT equ 00000200h +OFN_CREATEPROMPT equ 00002000h +OFN_ENABLEHOOK equ 00000020h +OFN_ENABLETEMPLATE equ 00000040h +OFN_ENABLETEMPLATEHANDLE equ 00000080h +OFN_EXPLORER equ 00080000h +OFN_EXTENSIONDIFFERENT equ 00000400h +OFN_FILEMUSTEXIST equ 00001000h +OFN_HIDEREADONLY equ 00000004h +OFN_LONGNAMES equ 00200000h +OFN_NOCHANGEDIR equ 00000008h +OFN_NODEREFERENCELINKS equ 00100000h +OFN_NOLONGNAMES equ 00040000h +OFN_NONETWORKBUTTON equ 00020000h +OFN_NOREADONLYRETURN equ 00008000h +OFN_NOTESTFILECREATE equ 00010000h +OFN_NOVALIDATE equ 00000100h +OFN_OVERWRITEPROMPT equ 00000002h +OFN_PATHMUSTEXIST equ 00000800h +OFN_READONLY equ 00000001h +OFN_SHAREAWARE equ 00004000h +OFN_SHOWHELP equ 00000010h +OFN_SHAREFALLTHROUGH equ 2 +OFN_SHARENOWARN equ 1 +OFN_SHAREWARN equ 0 +CDERR_DIALOGFAILURE equ 0FFFFh +FNERR_FILENAMECODES equ 3000h +FNERR_SUBCLASSFAILURE equ 3001h +FNERR_INVALIDFILENAME equ 3002h +FNERR_BUFFERTOOSMALL equ 3003h + +CHOOSECOLORW STRUCT + lStructSize DWORD ? + hwndOwner DWORD ? + hInstance DWORD ? + rgbResult DWORD ? + lpCustColors DWORD ? + Flags DWORD ? + lCustData DWORD ? + lpfnHook DWORD ? + lpTemplateName DWORD ? +CHOOSECOLORW ENDS + +CHOOSECOLORA STRUCT + lStructSize DWORD ? + hwndOwner DWORD ? + hInstance DWORD ? + rgbResult DWORD ? + lpCustColors DWORD ? + Flags DWORD ? + lCustData DWORD ? + lpfnHook DWORD ? + lpTemplateName DWORD ? +CHOOSECOLORA ENDS + +IFDEF __UNICODE__ + CHOOSECOLOR equ +ELSE + CHOOSECOLOR equ +ENDIF + +FINDREPLACEW STRUCT + lStructSize DWORD ? + hwndOwner DWORD ? + hInstance DWORD ? + Flags DWORD ? + lpstrFindWhat DWORD ? + lpstrReplaceWith DWORD ? + wFindWhatLen WORD ? + wReplaceWithLen WORD ? + lCustData DWORD ? + lpfnHook DWORD ? + lpTemplateName DWORD ? +FINDREPLACEW ENDS + +FINDREPLACEA STRUCT + lStructSize DWORD ? + hwndOwner DWORD ? + hInstance DWORD ? + Flags DWORD ? + lpstrFindWhat DWORD ? + lpstrReplaceWith DWORD ? + wFindWhatLen WORD ? + wReplaceWithLen WORD ? + lCustData DWORD ? + lpfnHook DWORD ? + lpTemplateName DWORD ? +FINDREPLACEA ENDS + +IFDEF __UNICODE__ + FINDREPLACE equ +ELSE + FINDREPLACE equ +ENDIF + +CHOOSEFONTW STRUCT + lStructSize DWORD ? + hwndOwner DWORD ? + hDC DWORD ? + lpLogFont DWORD ? + iPointSize DWORD ? + Flags DWORD ? + rgbColors DWORD ? + lCustData DWORD ? + lpfnHook DWORD ? + lpTemplateName DWORD ? + hInstance DWORD ? + lpszStyle DWORD ? + nFontType WORD ? + Alignment WORD ? + nSizeMin DWORD ? + nSizeMax DWORD ? +CHOOSEFONTW ENDS + +CHOOSEFONTA STRUCT + lStructSize DWORD ? + hwndOwner DWORD ? + hDC DWORD ? + lpLogFont DWORD ? + iPointSize DWORD ? + Flags DWORD ? + rgbColors DWORD ? + lCustData DWORD ? + lpfnHook DWORD ? + lpTemplateName DWORD ? + hInstance DWORD ? + lpszStyle DWORD ? + nFontType WORD ? + Alignment WORD ? + nSizeMin DWORD ? + nSizeMax DWORD ? +CHOOSEFONTA ENDS + +IFDEF __UNICODE__ + CHOOSEFONT equ +ELSE + CHOOSEFONT equ +ENDIF + +DEVNAMES STRUCT + wDriverOffset WORD ? + wDeviceOffset WORD ? + wOutputOffset WORD ? + wDefault WORD ? +DEVNAMES ENDS + +PRINTDLGW STRUCT + lStructSize DWORD ? + hwndOwner DWORD ? + hDevMode DWORD ? + hDevNames DWORD ? + hDC DWORD ? + Flags DWORD ? + nFromPage WORD ? + nToPage WORD ? + nMinPage WORD ? + nMaxPage WORD ? + nCopies WORD ? + hInstance DWORD ? + lCustData DWORD ? + lpfnPrintHook DWORD ? + lpfnSetupHook DWORD ? + lpPrintTemplateName DWORD ? + lpPrintSetupTemplateName DWORD ? + hPrintTemplate DWORD ? + hSetupTemplate DWORD ? +PRINTDLGW ENDS + +PRINTDLGA STRUCT + lStructSize DWORD ? + hwndOwner DWORD ? + hDevMode DWORD ? + hDevNames DWORD ? + hDC DWORD ? + Flags DWORD ? + nFromPage WORD ? + nToPage WORD ? + nMinPage WORD ? + nMaxPage WORD ? + nCopies WORD ? + hInstance DWORD ? + lCustData DWORD ? + lpfnPrintHook DWORD ? + lpfnSetupHook DWORD ? + lpPrintTemplateName DWORD ? + lpPrintSetupTemplateName DWORD ? + hPrintTemplate DWORD ? + hSetupTemplate DWORD ? +PRINTDLGA ENDS + +IFDEF __UNICODE__ + PRINTDLG equ +ELSE + PRINTDLG equ +ENDIF + +OPENFILENAMEW STRUCT + lStructSize DWORD ? + hwndOwner DWORD ? + hInstance DWORD ? + lpstrFilter DWORD ? + lpstrCustomFilter DWORD ? + nMaxCustFilter DWORD ? + nFilterIndex DWORD ? + lpstrFile DWORD ? + nMaxFile DWORD ? + lpstrFileTitle DWORD ? + nMaxFileTitle DWORD ? + lpstrInitialDir DWORD ? + lpstrTitle DWORD ? + Flags DWORD ? + nFileOffset WORD ? + nFileExtension WORD ? + lpstrDefExt DWORD ? + lCustData DWORD ? + lpfnHook DWORD ? + lpTemplateName DWORD ? +OPENFILENAMEW ENDS + +OPENFILENAMEA STRUCT + lStructSize DWORD ? + hwndOwner DWORD ? + hInstance DWORD ? + lpstrFilter DWORD ? + lpstrCustomFilter DWORD ? + nMaxCustFilter DWORD ? + nFilterIndex DWORD ? + lpstrFile DWORD ? + nMaxFile DWORD ? + lpstrFileTitle DWORD ? + nMaxFileTitle DWORD ? + lpstrInitialDir DWORD ? + lpstrTitle DWORD ? + Flags DWORD ? + nFileOffset WORD ? + nFileExtension WORD ? + lpstrDefExt DWORD ? + lCustData DWORD ? + lpfnHook DWORD ? + lpTemplateName DWORD ? +OPENFILENAMEA ENDS + +IFDEF __UNICODE__ + OPENFILENAME equ +ELSE + OPENFILENAME equ +ENDIF + +SES_EMULATESYSEDIT equ 1 +SES_BEEPONMAXTEXT equ 2 +SES_EXTENDBACKCOLOR equ 4 +SES_MAPCPS equ 8 +SES_EMULATE10 equ 16 +SES_USECRLF equ 32 +SES_USEAIMM equ 64 +SES_ALLOWBEEPS equ 256 + +ENM_NONE equ 00000000h +ENM_CHANGE equ 00000001h +ENM_UPDATE equ 00000002h +ENM_SCROLL equ 00000004h +ENM_KEYEVENTS equ 00010000h +ENM_MOUSEEVENTS equ 00020000h +ENM_REQUESTRESIZE equ 00040000h +ENM_SELCHANGE equ 00080000h +ENM_DROPFILES equ 00100000h +ENM_PROTECTED equ 00200000h +ENM_CORRECTTEXT equ 00400000h +ENM_IMECHANGE equ 00800000h +ES_SAVESEL equ 00008000h +ES_SUNKEN equ 00004000h +ES_DISABLENOSCROLL equ 00002000h +ES_SELECTIONBAR equ 01000000h +ES_EX_NOCALLOLEINIT equ 01000000h +ES_VERTICAL equ 00400000h +ES_NOIME equ 00080000h +ES_SELFIME equ 00040000h +ECO_AUTOWORDSELECTION equ 00000001h +ECO_AUTOVSCROLL equ 00000040h +ECO_AUTOHSCROLL equ 00000080h +ECO_NOHIDESEL equ 00000100h +ECO_READONLY equ 00000800h +ECO_WANTRETURN equ 00001000h +ECO_SAVESEL equ 00008000h +ECO_SELECTIONBAR equ 01000000h +ECO_VERTICAL equ 00400000h +ECOOP_SET equ 0001h +ECOOP_OR equ 0002h +ECOOP_AND equ 0003h +ECOOP_XOR equ 0004h +WB_CLASSIFY equ 3 +WB_MOVEWORDLEFT equ 4 +WB_MOVEWORDRIGHT equ 5 +WB_LEFTBREAK equ 6 +WB_RIGHTBREAK equ 7 +WB_MOVEWORDPREV equ 4 +WB_MOVEWORDNEXT equ 5 +WB_PREVBREAK equ 6 +WB_NEXTBREAK equ 7 +PC_FOLLOWING equ 1 +PC_LEADING equ 2 +PC_OVERFLOW equ 3 +PC_DELIMITER equ 4 +WBF_WORDWRAP equ 010h +WBF_WORDBREAK equ 020h +WBF_OVERFLOW equ 040h +WBF_LEVEL1 equ 080h +WBF_LEVEL2 equ 100h +WBF_CUSTOM equ 200h + +IMF_FORCENONE equ 0001h +IMF_FORCEENABLE equ 0002h +IMF_FORCEDISABLE equ 0004h +IMF_CLOSESTATUSWINDOW equ 0008h +IMF_VERTICAL equ 0020h +IMF_FORCEACTIVE equ 0040h +IMF_FORCEINACTIVE equ 0080h +IMF_FORCEREMEMBER equ 0100h +WBF_CLASS equ 0Fh +WBF_ISWHITE equ 10h +WBF_BREAKLINE equ 20h +WBF_BREAKAFTER equ 40h +CFM_BOLD equ 00000001h +CFM_ITALIC equ 00000002h +CFM_UNDERLINE equ 00000004h +CFM_STRIKEOUT equ 00000008h +CFM_PROTECTED equ 00000010h +CFM_SIZE equ 80000000h +CFM_COLOR equ 40000000h +CFM_FACE equ 20000000h +CFM_OFFSET equ 10000000h +CFM_CHARSET equ 08000000h +CFE_BOLD equ 0001h +CFE_ITALIC equ 0002h +CFE_UNDERLINE equ 0004h +CFE_STRIKEOUT equ 0008h +CFE_PROTECTED equ 0010h +CFE_AUTOCOLOR equ 40000000h +yHeightCharPtsMost equ 1638 +SCF_SELECTION equ 0001h +SCF_WORD equ 0002h +SF_TEXT equ 0001h +SF_RTF equ 0002h +SF_RTFNOOBJS equ 0003h +SF_TEXTIZED equ 0004h +SFF_SELECTION equ 8000h +SFF_PLAINRTF equ 4000h +MAX_TAB_STOPS equ 32 +lDefaultTab equ 720 +PFM_STARTINDENT equ 00000001h +PFM_RIGHTINDENT equ 00000002h +PFM_OFFSET equ 00000004h +PFM_ALIGNMENT equ 00000008h +PFM_TABSTOPS equ 00000010h +PFM_NUMBERING equ 00000020h +PFM_OFFSETINDENT equ 80000000h +PFN_BULLET equ 0001h +PFA_LEFT equ 0001h +PFA_RIGHT equ 0002h +PFA_CENTER equ 0003h +SEL_EMPTY equ 0000h +SEL_TEXT equ 0001h +SEL_OBJECT equ 0002h +SEL_MULTICHAR equ 0004h +SEL_MULTIOBJECT equ 0008h +OLEOP_DOVERB equ 1 + +OFN_ENABLEINCLUDENOTIFY equ 00400000h +OFN_ENABLESIZING equ 00800000h +OFN_DONTADDTORECENT equ 02000000h +OFN_FORCESHOWHIDDEN equ 10000000h +OFN_EX_NOPLACESBAR equ 00000001h +CDN_INITDONE equ 0000h +CDN_SELCHANGE equ 0001h +CDN_FOLDERCHANGE equ 0002h +CDN_SHAREVIOLATION equ 0003h +CDN_HELP equ 0004h +CDN_FILEOK equ 0005h +CDN_TYPECHANGE equ 0006h +CDN_INCLUDEITEM equ 0007h +CC_SOLIDCOLOR equ 00000080h +FR_RAW equ 00020000h +CF_SELECTSCRIPT equ 00400000h +CF_NOSCRIPTSEL equ 00800000h +CF_NOVERTFONTS equ 01000000h +PS_OPENTYPE_FONTTYPE equ 10000h +TT_OPENTYPE_FONTTYPE equ 20000h +TYPE1_FONTTYPE equ 40000h +WM_CHOOSEFONT_SETLOGFONT equ (WM_USER + 101) +WM_CHOOSEFONT_SETFLAGS equ (WM_USER + 102) +PD_USEDEVMODECOPIESANDCOLLATE equ 00040000h +PD_NONETWORKBUTTON equ 00200000h +PD_CURRENTPAGE equ 00400000h +PD_NOCURRENTPAGE equ 00800000h +PD_EXCLUSIONFLAGS equ 01000000h +PD_USELARGETEMPLATE equ 10000000h +PD_EXCL_COPIESANDCOLLATE equ (DM_COPIES or DM_COLLATE) +START_PAGE_GENERAL equ 0FFFFFFFFh +PD_RESULT_CANCEL equ 0 +PD_RESULT_PRINT equ 1 +PD_RESULT_APPLY equ 2 +PSD_NONETWORKBUTTON equ 00200000h +ISOLATION_AWARE_USE_STATIC_LIBRARY equ 0 +ISOLATION_AWARE_BUILD_STATIC_LIBRARY equ 0 + + + + +;;;; end comdlg + +;;;; comctl + +; --------------------------- comctl equates ------------------------------- + +ODT_HEADER equ 100 +ODT_TAB equ 101 +ODT_LISTVIEW equ 102 +LVM_FIRST equ 1000h +TV_FIRST equ 1100h +HDM_FIRST equ 1200h +NM_OUTOFMEMORY equ NM_FIRST-1 +NM_CLICK equ NM_FIRST-2 +NM_DBLCLK equ NM_FIRST-3 +NM_RETURN equ NM_FIRST-4 +NM_RCLICK equ NM_FIRST-5 +NM_RDBLCLK equ NM_FIRST-6 +NM_SETFOCUS equ NM_FIRST-7 +NM_KILLFOCUS equ NM_FIRST-8 +CCS_TOP equ 00000001h +CCS_NOMOVEY equ 00000002h +CCS_BOTTOM equ 00000003h +CCS_NORESIZE equ 00000004h +CCS_NOPARENTALIGN equ 00000008h +CCS_ADJUSTABLE equ 00000020h +CCS_NODIVIDER equ 00000040h +CCM_FIRST equ 2000h +CCM_LAST equ CCM_FIRST + 200h +CCM_SETBKCOLOR equ CCM_FIRST + 1 +CCM_SETCOLORSCHEME equ CCM_FIRST + 2 +CCM_GETCOLORSCHEME equ CCM_FIRST + 3 +CCM_GETDROPTARGET equ CCM_FIRST + 4 +CCM_SETUNICODEFORMAT equ CCM_FIRST + 5 +CCM_GETUNICODEFORMAT equ CCM_FIRST + 6 +LVN_FIRST equ 0-100 +LVN_LAST equ 0-199 +HDN_FIRST equ 0-300 +HDN_LAST equ 0-399 +TVN_FIRST equ 0-400 +TVN_LAST equ 0-499 +TTN_FIRST equ 0-520 +TTN_LAST equ 0-549 +TCN_FIRST equ 0-550 +TCN_LAST equ 0-580 +CDN_FIRST equ 0-601 +CDN_LAST equ 0-699 +TBN_FIRST equ 0-700 +TBN_LAST equ 0-720 +UDN_FIRST equ 0-721 +UDN_LAST equ 0-740 +MCN_FIRST equ 0-750 +MCN_LAST equ 0-759 +DTN_FIRST equ 0-760 +DTN_LAST equ 0-799 +CBEN_FIRST equ 0-800 +CBEN_LAST equ 0-830 +RBN_FIRST equ 0-831 +RBN_LAST equ 0-859 +IPN_FIRST equ 0-860 +IPN_LAST equ 0-879 +SBN_FIRST equ 0-880 +SBN_LAST equ 0-899 +PGN_FIRST equ 0-900 +PGN_LAST equ 0-950 +PGM_FIRST equ 1400h +MSGF_COMMCTRL_BEGINDRAG equ 4200h +MSGF_COMMCTRL_SIZEHEADER equ 4201h +MSGF_COMMCTRL_DRAGSELECT equ 4202h +MSGF_COMMCTRL_TOOLBARCUST equ 4203h +ICC_LISTVIEW_CLASSES equ 00000001h +ICC_TREEVIEW_CLASSES equ 00000002h +ICC_BAR_CLASSES equ 00000004h +ICC_TAB_CLASSES equ 00000008h +ICC_UPDOWN_CLASS equ 00000010h +ICC_PROGRESS_CLASS equ 00000020h +ICC_HOTKEY_CLASS equ 00000040h +ICC_ANIMATE_CLASS equ 00000080h +ICC_WIN95_CLASSES equ 000000FFh +ICC_DATE_CLASSES equ 00000100h +ICC_USEREX_CLASSES equ 00000200h +ICC_COOL_CLASSES equ 00000400h +ICC_INTERNET_CLASSES equ 00000800h +ICC_PAGESCROLLER_CLASS equ 00001000h +ICC_NATIVEFNTCTL_CLASS equ 00002000h +RBIM_IMAGELIST equ 1 +RBS_TOOLTIPS equ 100h +RBS_VARHEIGHT equ 200h +RBS_BANDBORDERS equ 400h +RBS_FIXEDORDER equ 800h +RBS_REGISTERDROP equ 1000h +RBS_AUTOSIZE equ 2000h +RBS_VERTICALGRIPPER equ 4000h +RBS_DBLCLKTOGGLE equ 8000h +RBBS_BREAK equ 1 +RBBS_FIXEDSIZE equ 2 +RBBS_CHILDEDGE equ 4 +RBBS_HIDDEN equ 8 +RBBS_NOVERT equ 10h +RBBS_FIXEDBMP equ 20h +RBBS_VARIABLEHEIGHT equ 40h +RBBS_GRIPPERALWAYS equ 80h +RBBS_NOGRIPPER equ 100h +RBBIM_STYLE equ 1 +RBBIM_COLORS equ 2 +RBBIM_TEXT equ 4 +RBBIM_IMAGE equ 8 +RBBIM_CHILD equ 10h +RBBIM_CHILDSIZE equ 20h +RBBIM_SIZE equ 40h +RBBIM_BACKGROUND equ 80h +RBBIM_ID equ 100h +RBBIM_IDEALSIZE equ 00000200h +RBBIM_LPARAM equ 00000400h +RBBIM_HEADERSIZE equ 00000800h +RB_INSERTBANDA equ WM_USER + 1 +RB_INSERTBANDW equ (WM_USER + 10) +IFDEF __UNICODE__ + RB_INSERTBAND equ RB_INSERTBANDW +ELSE + RB_INSERTBAND equ RB_INSERTBANDA +ENDIF + +RB_DELETEBAND equ WM_USER + 2 +RB_GETBARINFO equ WM_USER + 3 +RB_SETBARINFO equ WM_USER + 4 +RB_GETBANDINFOA equ WM_USER + 29 +RB_GETBANDINFOW equ (WM_USER + 28) +IFDEF __UNICODE__ + RB_GETBANDINFO equ RB_GETBANDINFOW +ELSE + RB_GETBANDINFO equ RB_GETBANDINFOA +ENDIF + +RB_SETBANDINFOA equ WM_USER + 6 +RB_SETBANDINFOW equ (WM_USER + 11) +IFDEF __UNICODE__ + RB_SETBANDINFO equ RB_SETBANDINFOW +ELSE + RB_SETBANDINFO equ RB_SETBANDINFOA +ENDIF + +RB_SETPARENT equ WM_USER + 7 +RB_HITTEST equ WM_USER + 8 +RB_GETRECT equ WM_USER + 9 +RB_GETBANDCOUNT equ WM_USER + 12 +RB_GETROWCOUNT equ WM_USER + 13 +RB_GETROWHEIGHT equ WM_USER + 14 +RB_IDTOINDEX equ WM_USER + 16 +RB_GETTOOLTIPS equ WM_USER + 17 +RB_SETTOOLTIPS equ WM_USER + 18 +RB_SETBKCOLOR equ WM_USER + 19 +RB_GETBKCOLOR equ WM_USER + 20 +RB_SETTEXTCOLOR equ WM_USER + 21 +RB_GETTEXTCOLOR equ WM_USER + 22 +RB_SIZETORECT equ WM_USER + 23 +RB_SETCOLORSCHEME equ CCM_SETCOLORSCHEME +RB_GETCOLORSCHEME equ CCM_GETCOLORSCHEME +RB_BEGINDRAG equ WM_USER + 24 +RB_ENDDRAG equ WM_USER + 25 +RB_DRAGMOVE equ WM_USER + 26 +RB_GETBARHEIGHT equ WM_USER + 27 +RB_MINIMIZEBAND equ WM_USER + 30 +RB_MAXIMIZEBAND equ WM_USER + 31 +RB_GETDROPTARGET equ CCM_GETDROPTARGET +RB_GETBANDBORDERS equ WM_USER + 34 +RB_SHOWBAND equ WM_USER + 35 +RB_SETPALETTE equ WM_USER + 37 +RB_GETPALETTE equ WM_USER + 38 +RB_MOVEBAND equ WM_USER + 39 +RB_SETUNICODEFORMAT equ CCM_SETUNICODEFORMAT +RB_GETUNICODEFORMAT equ CCM_GETUNICODEFORMAT +RBN_HEIGHTCHANGE equ RBN_FIRST - 0 +RBN_GETOBJECT equ RBN_FIRST - 1 +RBN_LAYOUTCHANGED equ RBN_FIRST - 2 +RBN_AUTOSIZE equ RBN_FIRST - 3 +RBN_BEGINDRAG equ RBN_FIRST - 4 +RBN_ENDDRAG equ RBN_FIRST - 5 +RBN_DELETINGBAND equ RBN_FIRST - 6 +RBN_DELETEDBAND equ RBN_FIRST - 7 +RBN_CHILDSIZE equ RBN_FIRST - 8 +RBNM_ID equ 00000001h +RBNM_STYLE equ 00000002h +RBNM_LPARAM equ 00000004h +RBHT_NOWHERE equ 0001h +RBHT_CAPTION equ 0002h +RBHT_CLIENT equ 0003h +RBHT_GRABBER equ 0004h +CLR_NONE equ 0FFFFFFFFh +CLR_DEFAULT equ 0FF000000h +ILC_MASK equ 0001h +ILC_COLOR equ 0000h +ILC_COLORDDB equ 00FEh +ILC_COLOR4 equ 0004h +ILC_COLOR8 equ 0008h +ILC_COLOR16 equ 0010h +ILC_COLOR24 equ 0018h +ILC_COLOR32 equ 0020h +ILC_PALETTE equ 0800h +ILD_NORMAL equ 0000h +ILD_TRANSPARENT equ 0001h +ILD_MASK equ 0010h +ILD_IMAGE equ 0020h +ILD_BLEND25 equ 0002h +ILD_BLEND50 equ 0004h +ILD_OVERLAYMASK equ 0F00h +ILD_SELECTED equ ILD_BLEND50 +ILD_FOCUS equ ILD_BLEND25 +ILD_BLEND equ ILD_BLEND50 +CLR_HILIGHT equ CLR_DEFAULT +HDS_HORZ equ 00000000h +HDS_BUTTONS equ 00000002h +HDS_HIDDEN equ 00000008h +HDI_WIDTH equ 0001h +HDI_HEIGHT equ HDI_WIDTH +HDI_TEXT equ 0002h +HDI_FORMAT equ 0004h +HDI_LPARAM equ 0008h +HDI_BITMAP equ 0010h +HDI_IMAGE equ 0020h +HDI_DI_SETITEM equ 0040h +HDI_ORDER equ 0080h +HDF_LEFT equ 0 +HDF_RIGHT equ 1 +HDF_CENTER equ 2 +HDF_JUSTIFYMASK equ 0003h +HDF_RTLREADING equ 4 +HDF_IMAGE equ 0800h +HDF_OWNERDRAW equ 8000h +HDF_STRING equ 4000h +HDF_BITMAP_ON_RIGHT equ 1000h +HDF_BITMAP equ 2000h +HDM_GETITEMCOUNT equ HDM_FIRST + 0 +HDM_INSERTITEMA equ HDM_FIRST + 1 +HDM_INSERTITEMW equ HDM_FIRST + 10 +IFDEF __UNICODE__ + HDM_INSERTITEM equ HDM_INSERTITEMW +ELSE + HDM_INSERTITEM equ HDM_INSERTITEMA +ENDIF + +HDM_DELETEITEM equ HDM_FIRST + 2 +HDM_GETITEMA equ HDM_FIRST + 3 +HDM_GETITEMW equ HDM_FIRST + 11 +IFDEF __UNICODE__ + HDM_GETITEM equ HDM_GETITEMW +ELSE + HDM_GETITEM equ HDM_GETITEMA +ENDIF + +HDM_SETITEMA equ HDM_FIRST + 4 +HDM_SETITEMW equ HDM_FIRST + 12 +IFDEF __UNICODE__ + HDM_SETITEM equ HDM_SETITEMW +ELSE + HDM_SETITEM equ HDM_SETITEMA +ENDIF + +HDM_LAYOUT equ HDM_FIRST + 5 +HHT_NOWHERE equ 0001h +HHT_ONHEADER equ 0002h +HHT_ONDIVIDER equ 0004h +HHT_ONDIVOPEN equ 0008h +HHT_ABOVE equ 0100h +HHT_BELOW equ 0200h +HHT_TORIGHT equ 0400h +HHT_TOLEFT equ 0800h +HDM_HITTEST equ HDM_FIRST + 6 +HDN_ITEMCHANGINGA equ HDN_FIRST - 0 +HDN_ITEMCHANGINGW equ HDN_FIRST - 20 +IFDEF __UNICODE__ + HDN_ITEMCHANGING equ HDN_ITEMCHANGINGW +ELSE + HDN_ITEMCHANGING equ HDN_ITEMCHANGINGA +ENDIF + +HDN_ITEMCHANGED equ HDN_FIRST - 1 +HDN_ITEMCHANGEDW equ HDN_FIRST - 21 +HDN_ITEMCLICK equ HDN_FIRST - 2 +HDN_ITEMCLICKW equ HDN_FIRST - 22 +HDN_ITEMDBLCLICKA equ HDN_FIRST - 3 +HDN_ITEMDBLCLICKW equ HDN_FIRST - 23 +IFDEF __UNICODE__ + HDN_ITEMDBLCLICK equ HDN_ITEMDBLCLICKW +ELSE + HDN_ITEMDBLCLICK equ HDN_ITEMDBLCLICKA +ENDIF + +HDN_DIVIDERDBLCLICKA equ HDN_FIRST - 5 +HDN_DIVIDERDBLCLICKW equ HDN_FIRST - 25 +IFDEF __UNICODE__ + HDN_DIVIDERDBLCLICK equ HDN_DIVIDERDBLCLICKW +ELSE + HDN_DIVIDERDBLCLICK equ HDN_DIVIDERDBLCLICKA +ENDIF + +HDN_BEGINTRACKA equ HDN_FIRST - 6 +HDN_BEGINTRACKW equ HDN_FIRST - 26 +IFDEF __UNICODE__ + HDN_BEGINTRACK equ HDN_BEGINTRACKW +ELSE + HDN_BEGINTRACK equ HDN_BEGINTRACKA +ENDIF + +HDN_ENDTRACKA equ HDN_FIRST - 7 +HDN_ENDTRACKW equ HDN_FIRST - 27 +IFDEF __UNICODE__ + HDN_ENDTRACK equ HDN_ENDTRACKW +ELSE + HDN_ENDTRACK equ HDN_ENDTRACKA +ENDIF + +HDN_TRACKA equ HDN_FIRST - 8 +HDN_TRACKW equ HDN_FIRST - 28 +IFDEF __UNICODE__ + HDN_TRACK equ HDN_TRACKW +ELSE + HDN_TRACK equ HDN_TRACKA +ENDIF + +CMB_MASKED equ 02h +TBSTATE_CHECKED equ 01h +TBSTATE_PRESSED equ 02h +TBSTATE_ENABLED equ 04h +TBSTATE_HIDDEN equ 08h +TBSTATE_INDETERMINATE equ 10h +TBSTATE_WRAP equ 20h +TBSTYLE_BUTTON equ 00h +TBSTYLE_SEP equ 01h +TBSTYLE_CHECK equ 02h +TBSTYLE_GROUP equ 04h +TBSTYLE_CHECKGROUP equ TBSTYLE_GROUP OR TBSTYLE_CHECK +TBSTYLE_TOOLTIPS equ 0100h +TBSTYLE_WRAPABLE equ 0200h +TBSTYLE_ALTDRAG equ 0400h +TBSTYLE_FLAT equ 0800h +TBSTYLE_LIST equ 1000h +TBSTYLE_CUSTOMERASE equ 2000h +TBSTYLE_REGISTERDROP equ 4000h +TBSTYLE_TRANSPARENT equ 8000h +TB_ENABLEBUTTON equ WM_USER + 1 +TB_CHECKBUTTON equ WM_USER + 2 +TB_PRESSBUTTON equ WM_USER + 3 +TB_HIDEBUTTON equ WM_USER + 4 +TB_INDETERMINATE equ WM_USER + 5 +TB_ISBUTTONENABLED equ WM_USER + 9 +TB_ISBUTTONCHECKED equ WM_USER + 10 +TB_ISBUTTONPRESSED equ WM_USER + 11 +TB_ISBUTTONHIDDEN equ WM_USER + 12 +TB_ISBUTTONINDETERMINATE equ WM_USER + 13 +TB_SETSTATE equ WM_USER + 17 +TB_GETSTATE equ WM_USER + 18 +TB_ADDBITMAP equ WM_USER + 19 +TB_SETSTYLE equ WM_USER + 56 +TB_GETSTYLE equ WM_USER + 57 +HINST_COMMCTRL equ -1 +IDB_STD_SMALL_COLOR equ 0 +IDB_STD_LARGE_COLOR equ 1 +IDB_VIEW_SMALL_COLOR equ 4 +IDB_VIEW_LARGE_COLOR equ 5 +STD_CUT equ 0 +STD_COPY equ 1 +STD_PASTE equ 2 +STD_UNDO equ 3 +STD_REDOW equ 4 +STD_DELETE equ 5 +STD_FILENEW equ 6 +STD_FILEOPEN equ 7 +STD_FILESAVE equ 8 +STD_PRINTPRE equ 9 +STD_PROPERTIES equ 10 +STD_HELP equ 11 +STD_FIND equ 12 +STD_REPLACE equ 13 +STD_PRINT equ 14 +VIEW_LARGEICONS equ 0 +VIEW_SMALLICONS equ 1 +VIEW_LIST equ 2 +VIEW_DETAILS equ 3 +VIEW_SORTNAME equ 4 +VIEW_SORTSIZE equ 5 +VIEW_SORTDATE equ 6 +VIEW_SORTTYPE equ 7 +VIEW_PARENTFOLDER equ 8 +VIEW_NETCONNECT equ 9 +VIEW_NETDISCONNECT equ 10 +VIEW_NEWFOLDER equ 11 +TB_ADDBUTTONSA equ WM_USER + 20 +TB_ADDBUTTONSW equ WM_USER + 68 +IFDEF __UNICODE__ + TB_ADDBUTTONS equ TB_ADDBUTTONSW +ELSE + TB_ADDBUTTONS equ TB_ADDBUTTONSA +ENDIF + +TB_INSERTBUTTONA equ WM_USER + 21 +TB_INSERTBUTTONW equ WM_USER + 67 +IFDEF __UNICODE__ + TB_INSERTBUTTON equ TB_INSERTBUTTONW +ELSE + TB_INSERTBUTTON equ TB_INSERTBUTTONA +ENDIF + +TB_DELETEBUTTON equ WM_USER + 22 +TB_GETBUTTON equ WM_USER + 23 +TB_BUTTONCOUNT equ WM_USER + 24 +TB_COMMANDTOINDEX equ WM_USER + 25 +TB_SAVERESTOREA equ WM_USER + 26 +TB_SAVERESTOREW equ WM_USER + 76 +IFDEF __UNICODE__ + TB_SAVERESTORE equ TB_SAVERESTOREW +ELSE + TB_SAVERESTORE equ TB_SAVERESTOREA +ENDIF + +TB_CUSTOMIZE equ WM_USER + 27 +TB_ADDSTRINGA equ WM_USER + 28 +TB_ADDSTRINGW equ WM_USER + 77 +IFDEF __UNICODE__ + TB_ADDSTRING equ TB_ADDSTRINGW +ELSE + TB_ADDSTRING equ TB_ADDSTRINGA +ENDIF + +TB_GETITEMRECT equ WM_USER + 29 +TB_BUTTONSTRUCTSIZE equ WM_USER + 30 +TB_SETBUTTONSIZE equ WM_USER + 31 +TB_SETBITMAPSIZE equ WM_USER + 32 +TB_AUTOSIZE equ WM_USER + 33 +TB_GETTOOLTIPS equ WM_USER + 35 +TB_SETTOOLTIPS equ WM_USER + 36 +TB_SETPARENT equ WM_USER + 37 +TB_SETROWS equ WM_USER + 39 +TB_GETROWS equ WM_USER + 40 +TB_SETCMDID equ WM_USER + 42 +TB_CHANGEBITMAP equ WM_USER + 43 +TB_GETBITMAP equ WM_USER + 44 +TB_GETBUTTONTEXTA equ WM_USER + 45 +TB_GETBUTTONTEXTW equ WM_USER + 75 +IFDEF __UNICODE__ + TB_GETBUTTONTEXT equ TB_GETBUTTONTEXTW +ELSE + TB_GETBUTTONTEXT equ TB_GETBUTTONTEXTA +ENDIF + +TB_REPLACEBITMAP equ WM_USER + 46 +TBBF_LARGE equ 1 +TB_GETBITMAPFLAGS equ WM_USER + 41 +TBN_GETBUTTONINFOA equ TBN_FIRST +TBN_GETBUTTONINFOW equ TBN_FIRST - 20 +IFDEF __UNICODE__ + TBN_GETBUTTONINFO equ TBN_GETBUTTONINFOW +ELSE + TBN_GETBUTTONINFO equ TBN_GETBUTTONINFOA +ENDIF + +TBN_BEGINDRAG equ TBN_FIRST-1 +TBN_ENDDRAG equ TBN_FIRST-2 +TBN_BEGINADJUST equ TBN_FIRST-3 +TBN_ENDADJUST equ TBN_FIRST-4 +TBN_RESET equ TBN_FIRST-5 +TBN_QUERYINSERT equ TBN_FIRST-6 +TBN_QUERYDELETE equ TBN_FIRST-7 +TBN_TOOLBARCHANGE equ TBN_FIRST-8 +TBN_CUSTHELP equ TBN_FIRST-9 +TTS_ALWAYSTIP equ 01h +TTS_NOPREFIX equ 02h +TTF_IDISHWND equ 01h +TTF_CENTERTIP equ 02h +TTF_RTLREADING equ 04h +TTF_SUBCLASS equ 10h +TTDT_AUTOMATIC equ 0 +TTDT_RESHOW equ 1 +TTDT_AUTOPOP equ 2 +TTDT_INITIAL equ 3 +TTM_ACTIVATE equ WM_USER + 1 +TTM_SETDELAYTIME equ WM_USER + 3 +TTM_ADDTOOLA equ WM_USER + 4 +TTM_ADDTOOLW equ WM_USER + 50 +IFDEF __UNICODE__ + TTM_ADDTOOL equ TTM_ADDTOOLW +ELSE + TTM_ADDTOOL equ TTM_ADDTOOLA +ENDIF + +TTM_DELTOOLA equ WM_USER + 5 +TTM_DELTOOLW equ WM_USER + 51 +IFDEF __UNICODE__ + TTM_DELTOOL equ TTM_DELTOOLW +ELSE + TTM_DELTOOL equ TTM_DELTOOLA +ENDIF + +TTM_NEWTOOLRECTA equ WM_USER + 6 +TTM_NEWTOOLRECTW equ WM_USER + 52 +IFDEF __UNICODE__ + TTM_NEWTOOLRECT equ TTM_NEWTOOLRECTW +ELSE + TTM_NEWTOOLRECT equ TTM_NEWTOOLRECTA +ENDIF + +TTM_RELAYEVENT equ WM_USER + 7 +TTM_GETTOOLINFOA equ WM_USER + 8 +TTM_GETTOOLINFOW equ WM_USER + 53 +IFDEF __UNICODE__ + TTM_GETTOOLINFO equ TTM_GETTOOLINFOW +ELSE + TTM_GETTOOLINFO equ TTM_GETTOOLINFOA +ENDIF + +TTM_SETTOOLINFOA equ WM_USER + 9 +TTM_SETTOOLINFOW equ WM_USER + 54 +IFDEF __UNICODE__ + TTM_SETTOOLINFO equ TTM_SETTOOLINFOW +ELSE + TTM_SETTOOLINFO equ TTM_SETTOOLINFOA +ENDIF + +TTM_HITTESTA equ WM_USER +10 +TTM_HITTESTW equ WM_USER +55 +IFDEF __UNICODE__ + TTM_HITTEST equ TTM_HITTESTW +ELSE + TTM_HITTEST equ TTM_HITTESTA +ENDIF + +TTM_GETTEXTA equ WM_USER +11 +TTM_GETTEXTW equ WM_USER +56 +IFDEF __UNICODE__ + TTM_GETTEXT equ TTM_GETTEXTW +ELSE + TTM_GETTEXT equ TTM_GETTEXTA +ENDIF + +TTM_UPDATETIPTEXTA equ WM_USER +12 +TTM_UPDATETIPTEXTW equ WM_USER +57 +IFDEF __UNICODE__ + TTM_UPDATETIPTEXT equ TTM_UPDATETIPTEXTW +ELSE + TTM_UPDATETIPTEXT equ TTM_UPDATETIPTEXTA +ENDIF + +TTM_GETTOOLCOUNT equ WM_USER +13 +TTM_ENUMTOOLSA equ WM_USER +14 +TTM_ENUMTOOLSW equ WM_USER +58 +IFDEF __UNICODE__ + TTM_ENUMTOOLS equ TTM_ENUMTOOLSW +ELSE + TTM_ENUMTOOLS equ TTM_ENUMTOOLSA +ENDIF + +TTM_GETCURRENTTOOLA equ WM_USER + 15 +TTM_GETCURRENTTOOLW equ WM_USER + 59 +IFDEF __UNICODE__ + TTM_GETCURRENTTOOL equ TTM_GETCURRENTTOOLW +ELSE + TTM_GETCURRENTTOOL equ TTM_GETCURRENTTOOLA +ENDIF + +TTM_WINDOWFROMPOINT equ WM_USER + 16 +TTN_NEEDTEXTA equ TTN_FIRST - 0 +TTN_NEEDTEXTW equ TTN_FIRST - 10 +IFDEF __UNICODE__ + TTN_NEEDTEXT equ TTN_NEEDTEXTW +ELSE + TTN_NEEDTEXT equ TTN_NEEDTEXTA +ENDIF + +TTN_SHOW equ TTN_FIRST - 1 +TTN_POP equ TTN_FIRST - 2 +SBARS_SIZEGRIP equ 0100h +SB_SETTEXTA equ WM_USER+1 +SB_SETTEXTW equ WM_USER+11 +IFDEF __UNICODE__ + SB_SETTEXT equ SB_SETTEXTW +ELSE + SB_SETTEXT equ SB_SETTEXTA +ENDIF + +SB_GETTEXTA equ WM_USER+2 +SB_GETTEXTW equ WM_USER+13 +IFDEF __UNICODE__ + SB_GETTEXT equ SB_GETTEXTW +ELSE + SB_GETTEXT equ SB_GETTEXTA +ENDIF + +SB_GETTEXTLENGTHA equ WM_USER+3 +SB_GETTEXTLENGTHW equ WM_USER+12 +IFDEF __UNICODE__ + SB_GETTEXTLENGTH equ SB_GETTEXTLENGTHW +ELSE + SB_GETTEXTLENGTH equ SB_GETTEXTLENGTHA +ENDIF + +SB_SETPARTS equ WM_USER+4 +SB_GETPARTS equ WM_USER+6 +SB_GETBORDERS equ WM_USER+7 +SB_SETMINHEIGHT equ WM_USER+8 +SB_SIMPLE equ WM_USER+9 +SB_GETRECT equ WM_USER+10 +SBT_OWNERDRAW equ 1000h +SBT_NOBORDERS equ 0100h +SBT_POPOUT equ 0200h +SBT_RTLREADING equ 0400h +MINSYSCOMMAND equ SC_SIZE +TBS_AUTOTICKS equ 0001h +TBS_VERT equ 0002h +TBS_HORZ equ 0000h +TBS_TOP equ 0004h +TBS_BOTTOM equ 0000h +TBS_LEFT equ 0004h +TBS_RIGHT equ 0000h +TBS_BOTH equ 0008h +TBS_NOTICKS equ 0010h +TBS_ENABLESELRANGE equ 0020h +TBS_FIXEDLENGTH equ 0040h +TBS_NOTHUMB equ 0080h +TBM_GETPOS equ WM_USER +TBM_GETRANGEMIN equ WM_USER+1 +TBM_GETRANGEMAX equ WM_USER+2 +TBM_GETTIC equ WM_USER+3 +TBM_SETTIC equ WM_USER+4 +TBM_SETPOS equ WM_USER+5 +TBM_SETRANGE equ WM_USER+6 +TBM_SETRANGEMIN equ WM_USER+7 +TBM_SETRANGEMAX equ WM_USER+8 +TBM_CLEARTICS equ WM_USER+9 +TBM_SETSEL equ WM_USER+10 +TBM_SETSELSTART equ WM_USER+11 +TBM_SETSELEND equ WM_USER+12 +TBM_GETPTICS equ WM_USER+14 +TBM_GETTICPOS equ WM_USER+15 +TBM_GETNUMTICS equ WM_USER+16 +TBM_GETSELSTART equ WM_USER+17 +TBM_GETSELEND equ WM_USER+18 +TBM_CLEARSEL equ WM_USER+19 +TBM_SETTICFREQ equ WM_USER+20 +TBM_SETPAGESIZE equ WM_USER+21 +TBM_GETPAGESIZE equ WM_USER+22 +TBM_SETLINESIZE equ WM_USER+23 +TBM_GETLINESIZE equ WM_USER+24 +TBM_GETTHUMBRECT equ WM_USER+25 +TBM_GETCHANNELRECT equ WM_USER+26 +TBM_SETTHUMBLENGTH equ WM_USER+27 +TBM_GETTHUMBLENGTH equ WM_USER+28 +TB_LINEUP equ 0 +TB_LINEDOWN equ 1 +TB_PAGEUP equ 2 +TB_PAGEDOWN equ 3 +TB_THUMBPOSITION equ 4 +TB_THUMBTRACK equ 5 +TB_TOP equ 6 +TB_BOTTOM equ 7 +TB_ENDTRACK equ 8 +DL_BEGINDRAG equ WM_USER+133 +DL_DRAGGING equ WM_USER+134 +DL_DROPPED equ WM_USER+135 +DL_CANCELDRAG equ WM_USER+136 +DL_CURSORSET equ 0 +DL_STOPCURSOR equ 1 +DL_COPYCURSOR equ 2 +DL_MOVECURSOR equ 3 +UD_MAXVAL equ 7FFFh +UD_MINVAL equ - UD_MAXVAL +UDS_WRAP equ 0001h +UDS_SETBUDDYINT equ 0002h +UDS_ALIGNRIGHT equ 0004h +UDS_ALIGNLEFT equ 0008h +UDS_AUTOBUDDY equ 0010h +UDS_ARROWKEYS equ 0020h +UDS_HORZ equ 0040h +UDS_NOTHOUSANDS equ 0080h +UDM_SETRANGE equ WM_USER+101 +UDM_GETRANGE equ WM_USER+102 +UDM_SETPOS equ WM_USER+103 +UDM_GETPOS equ WM_USER+104 +UDM_SETBUDDY equ WM_USER+105 +UDM_GETBUDDY equ WM_USER+106 +UDM_SETACCEL equ WM_USER+107 +UDM_GETACCEL equ WM_USER+108 +UDM_SETBASE equ WM_USER+109 +UDM_GETBASE equ WM_USER+110 +UDN_DELTAPOS equ UDN_FIRST - 1 +PBM_SETRANGE equ WM_USER+1 +PBM_SETPOS equ WM_USER+2 +PBM_DELTAPOS equ WM_USER+3 +PBM_SETSTEP equ WM_USER+4 +PBM_STEPIT equ WM_USER+5 +HOTKEYF_SHIFT equ 01h +HOTKEYF_CONTROL equ 02h +HOTKEYF_ALT equ 04h +HOTKEYF_EXT equ 08h +HKCOMB_NONE equ 0001h +HKCOMB_S equ 0002h +HKCOMB_C equ 0004h +HKCOMB_A equ 0008h +HKCOMB_SC equ 0010h +HKCOMB_SA equ 0020h +HKCOMB_CA equ 0040h +HKCOMB_SCA equ 0080h +HKM_SETHOTKEY equ WM_USER+1 +HKM_GETHOTKEY equ WM_USER+2 +HKM_SETRULES equ WM_USER+3 +LVS_ICON equ 0000h +LVS_REPORT equ 0001h +LVS_SMALLICON equ 0002h +LVS_LIST equ 0003h +LVS_TYPEMASK equ 0003h +LVS_SINGLESEL equ 0004h +LVS_SHOWSELALWAYS equ 0008h +LVS_SORTASCENDING equ 0010h +LVS_SORTDESCENDING equ 0020h +LVS_SHAREIMAGELISTS equ 0040h +LVS_NOLABELWRAP equ 0080h +LVS_AUTOARRANGE equ 0100h +LVS_EDITLABELS equ 0200h +LVS_NOSCROLL equ 2000h +LVS_TYPESTYLEMASK equ 0fc00h +LVS_ALIGNTOP equ 0000h +LVS_ALIGNLEFT equ 0800h +LVS_ALIGNMASK equ 0c00h +LVS_OWNERDRAWFIXED equ 0400h +LVS_NOCOLUMNHEADER equ 4000h +LVS_NOSORTHEADER equ 8000h +LVM_GETBKCOLOR equ LVM_FIRST + 0 +LVM_SETBKCOLOR equ LVM_FIRST + 1 +LVM_GETIMAGELIST equ LVM_FIRST + 2 +LVM_SUBITEMHITTEST equ LVM_FIRST + 57 +LVSIL_NORMAL equ 0 +LVSIL_SMALL equ 1 +LVSIL_STATE equ 2 +LVM_SETIMAGELIST equ LVM_FIRST + 3 +LVM_GETITEMCOUNT equ LVM_FIRST + 4 +LVIF_TEXT equ 0001h +LVIF_IMAGE equ 0002h +LVIF_PARAM equ 0004h +LVIF_STATE equ 0008h +LVIS_FOCUSED equ 0001h +LVIS_SELECTED equ 0002h +LVIS_CUT equ 0004h +LVIS_DROPHILITED equ 0008h +LVIS_OVERLAYMASK equ 0F00h +LVIS_STATEIMAGEMASK equ 0F000h +LPSTR_TEXTCALLBACKA equ -1 +LPSTR_TEXTCALLBACKW equ -1 +IFDEF __UNICODE__ + LPSTR_TEXTCALLBACK equ LPSTR_TEXTCALLBACKW +ELSE + LPSTR_TEXTCALLBACK equ LPSTR_TEXTCALLBACKA +ENDIF + +I_IMAGECALLBACK equ -1 +LVM_GETITEMA equ LVM_FIRST + 5 +LVM_GETITEMW equ LVM_FIRST + 75 +IFDEF __UNICODE__ + LVM_GETITEM equ LVM_GETITEMW +ELSE + LVM_GETITEM equ LVM_GETITEMA +ENDIF + +LVM_SETITEMA equ LVM_FIRST + 6 +LVM_SETITEMW equ LVM_FIRST + 76 +IFDEF __UNICODE__ + LVM_SETITEM equ LVM_SETITEMW +ELSE + LVM_SETITEM equ LVM_SETITEMA +ENDIF + +LVM_INSERTITEMA equ LVM_FIRST + 7 +LVM_INSERTITEMW equ LVM_FIRST + 77 +IFDEF __UNICODE__ + LVM_INSERTITEM equ LVM_INSERTITEMW +ELSE + LVM_INSERTITEM equ LVM_INSERTITEMA +ENDIF + +LVM_DELETEITEM equ LVM_FIRST + 8 +LVM_DELETEALLITEMS equ LVM_FIRST + 9 +LVM_GETCALLBACKMASK equ LVM_FIRST + 10 +LVM_SETCALLBACKMASK equ LVM_FIRST + 11 +LVNI_ALL equ 0000h +LVNI_FOCUSED equ 0001h +LVNI_SELECTED equ 0002h +LVNI_CUT equ 0004h +LVNI_DROPHILITED equ 0008h +LVNI_ABOVE equ 0100h +LVNI_BELOW equ 0200h +LVNI_TOLEFT equ 0400h +LVNI_TORIGHT equ 0800h +LVM_GETNEXTITEM equ LVM_FIRST + 12 +LVFI_PARAM equ 0001h +LVFI_STRING equ 0002h +LVFI_PARTIAL equ 0008h +LVFI_WRAP equ 0020h +LVFI_NEARESTXY equ 0040h +LVM_FINDITEMA equ LVM_FIRST + 13 +LVM_FINDITEMW equ LVM_FIRST + 83 +IFDEF __UNICODE__ + LVM_FINDITEM equ LVM_FINDITEMW +ELSE + LVM_FINDITEM equ LVM_FINDITEMA +ENDIF + +LVIR_BOUNDS equ 0 +LVIR_ICON equ 1 +LVIR_LABEL equ 2 +LVIR_SELECTBOUNDS equ 3 +LVM_GETITEMRECT equ LVM_FIRST + 14 +LVM_SETITEMPOSITION equ LVM_FIRST + 15 +LVM_GETITEMPOSITION equ LVM_FIRST + 16 +LVM_GETSTRINGWIDTHA equ LVM_FIRST + 17 +LVM_GETSTRINGWIDTHW equ LVM_FIRST + 87 +IFDEF __UNICODE__ + LVM_GETSTRINGWIDTH equ LVM_GETSTRINGWIDTHW +ELSE + LVM_GETSTRINGWIDTH equ LVM_GETSTRINGWIDTHA +ENDIF + +LVHT_NOWHERE equ 0001h +LVHT_ONITEMICON equ 0002h +LVHT_ONITEMLABEL equ 0004h +LVHT_ONITEMSTATEICON equ 0008h +LVHT_ONITEM equ LVHT_ONITEMICON OR LVHT_ONITEMLABEL OR LVHT_ONITEMSTATEICON +LVHT_ABOVE equ 0008h +LVHT_BELOW equ 0010h +LVHT_TORIGHT equ 0020h +LVHT_TOLEFT equ 0040h +LVM_HITTEST equ LVM_FIRST + 18 +LVM_ENSUREVISIBLE equ LVM_FIRST + 19 +LVM_SCROLL equ LVM_FIRST + 20 +LVM_REDRAWITEMS equ LVM_FIRST + 21 +LVA_DEFAULT equ 0000h +LVA_ALIGNLEFT equ 0001h +LVA_ALIGNTOP equ 0002h +LVA_SNAPTOGRID equ 0005h +LVM_ARRANGE equ LVM_FIRST + 22 +LVM_EDITLABELA equ LVM_FIRST + 23 +LVM_EDITLABELW equ LVM_FIRST + 118 +IFDEF __UNICODE__ + LVM_EDITLABEL equ LVM_EDITLABELW +ELSE + LVM_EDITLABEL equ LVM_EDITLABELA +ENDIF + +LVM_GETEDITCONTROL equ LVM_FIRST + 24 +LVCF_FMT equ 0001h +LVCF_WIDTH equ 0002h +LVCF_TEXT equ 0004h +LVCF_SUBITEM equ 0008h +LVCFMT_LEFT equ 0000h +LVCFMT_RIGHT equ 0001h +LVCFMT_CENTER equ 0002h +LVCFMT_JUSTIFYMASK equ 0003h +LVM_GETCOLUMNA equ LVM_FIRST + 25 +LVM_GETCOLUMNW equ LVM_FIRST + 95 +IFDEF __UNICODE__ + LVM_GETCOLUMN equ LVM_GETCOLUMNW +ELSE + LVM_GETCOLUMN equ LVM_GETCOLUMNA +ENDIF + +LVM_SETCOLUMNA equ LVM_FIRST + 26 +LVM_SETCOLUMNW equ LVM_FIRST + 96 +IFDEF __UNICODE__ + LVM_SETCOLUMN equ LVM_SETCOLUMNW +ELSE + LVM_SETCOLUMN equ LVM_SETCOLUMNA +ENDIF + +LVM_INSERTCOLUMNA equ LVM_FIRST + 27 +LVM_INSERTCOLUMNW equ LVM_FIRST + 97 +IFDEF __UNICODE__ + LVM_INSERTCOLUMN equ LVM_INSERTCOLUMNW +ELSE + LVM_INSERTCOLUMN equ LVM_INSERTCOLUMNA +ENDIF + +LVM_DELETECOLUMN equ LVM_FIRST + 28 +LVM_GETCOLUMNWIDTH equ LVM_FIRST + 29 +LVSCW_AUTOSIZE equ -1 +LVSCW_AUTOSIZE_USEHEADER equ -2 +LVM_SETCOLUMNWIDTH equ LVM_FIRST + 30 +LVM_CREATEDRAGIMAGE equ LVM_FIRST + 33 +LVM_GETVIEWRECT equ LVM_FIRST + 34 +LVM_GETTEXTCOLOR equ LVM_FIRST + 35 +LVM_SETTEXTCOLOR equ LVM_FIRST + 36 +LVM_GETTEXTBKCOLOR equ LVM_FIRST + 37 +LVM_SETTEXTBKCOLOR equ LVM_FIRST + 38 +LVM_GETTOPINDEX equ LVM_FIRST + 39 +LVM_GETCOUNTPERPAGE equ LVM_FIRST + 40 +LVM_GETORIGIN equ LVM_FIRST + 41 +LVM_UPDATE equ LVM_FIRST + 42 +LVM_SETITEMSTATE equ LVM_FIRST + 43 +LVM_GETITEMSTATE equ LVM_FIRST + 44 +LVM_GETITEMTEXTA equ LVM_FIRST + 45 +LVM_GETITEMTEXTW equ LVM_FIRST + 115 +IFDEF __UNICODE__ + LVM_GETITEMTEXT equ LVM_GETITEMTEXTW +ELSE + LVM_GETITEMTEXT equ LVM_GETITEMTEXTA +ENDIF + +LVM_SETITEMTEXTA equ LVM_FIRST + 46 +LVM_SETITEMTEXTW equ LVM_FIRST + 116 +IFDEF __UNICODE__ + LVM_SETITEMTEXT equ LVM_SETITEMTEXTW +ELSE + LVM_SETITEMTEXT equ LVM_SETITEMTEXTA +ENDIF + +LVM_SETITEMCOUNT equ LVM_FIRST + 47 +LVM_SORTITEMS equ LVM_FIRST + 48 +LVM_SETITEMPOSITION32 equ LVM_FIRST + 49 +LVM_GETSELECTEDCOUNT equ LVM_FIRST + 50 +LVM_GETITEMSPACING equ LVM_FIRST + 51 +LVM_GETISEARCHSTRINGA equ LVM_FIRST + 52 +LVM_GETISEARCHSTRINGW equ LVM_FIRST + 117 +IFDEF __UNICODE__ + LVM_GETISEARCHSTRING equ LVM_GETISEARCHSTRINGW +ELSE + LVM_GETISEARCHSTRING equ LVM_GETISEARCHSTRINGA +ENDIF + +LVN_ITEMCHANGING equ LVN_FIRST-0 +LVN_ITEMCHANGED equ LVN_FIRST-1 +LVN_INSERTITEM equ LVN_FIRST-2 +LVN_DELETEITEM equ LVN_FIRST-3 +LVN_DELETEALLITEMS equ LVN_FIRST-4 +LVN_BEGINLABELEDITA equ LVN_FIRST-5 +LVN_BEGINLABELEDITW equ LVN_FIRST-75 +IFDEF __UNICODE__ + LVN_BEGINLABELEDIT equ LVN_BEGINLABELEDITW +ELSE + LVN_BEGINLABELEDIT equ LVN_BEGINLABELEDITA +ENDIF + +LVN_ENDLABELEDITA equ LVN_FIRST-6 +LVN_ENDLABELEDITW equ LVN_FIRST-76 +IFDEF __UNICODE__ + LVN_ENDLABELEDIT equ LVN_ENDLABELEDITW +ELSE + LVN_ENDLABELEDIT equ LVN_ENDLABELEDITA +ENDIF + +LVN_COLUMNCLICK equ LVN_FIRST-8 +LVN_BEGINDRAG equ LVN_FIRST-9 +LVN_BEGINRDRAG equ LVN_FIRST-11 +LVN_GETDISPINFOA equ LVN_FIRST-50 +LVN_GETDISPINFOW equ LVN_FIRST-77 +IFDEF __UNICODE__ + LVN_GETDISPINFO equ LVN_GETDISPINFOW +ELSE + LVN_GETDISPINFO equ LVN_GETDISPINFOA +ENDIF + +LVN_SETDISPINFOA equ LVN_FIRST-51 +LVN_SETDISPINFOW equ LVN_FIRST-78 +IFDEF __UNICODE__ + LVN_SETDISPINFO equ LVN_SETDISPINFOW +ELSE + LVN_SETDISPINFO equ LVN_SETDISPINFOA +ENDIF + +LVIF_DI_SETITEM equ 1000h +LVN_KEYDOWN equ LVN_FIRST-55 +TVS_HASBUTTONS equ 0001h +TVS_HASLINES equ 0002h +TVS_LINESATROOT equ 0004h +TVS_EDITLABELS equ 0008h +TVS_DISABLEDRAGDROP equ 0010h +TVS_SHOWSELALWAYS equ 0020h +TVIF_TEXT equ 0001h +TVIF_IMAGE equ 0002h +TVIF_PARAM equ 0004h +TVIF_STATE equ 0008h +TVIF_HANDLE equ 0010h +TVIF_SELECTEDIMAGE equ 0020h +TVIF_CHILDREN equ 0040h +TVIS_FOCUSED equ 0001h +TVIS_SELECTED equ 0002h +TVIS_CUT equ 0004h +TVIS_DROPHILITED equ 0008h +TVIS_BOLD equ 0010h +TVIS_EXPANDED equ 0020h +TVIS_EXPANDEDONCE equ 0040h +TVIS_OVERLAYMASK equ 0F00h +TVIS_STATEIMAGEMASK equ 0F000h +TVIS_USERMASK equ 0F000h +I_CHILDRENCALLBACK equ -1 +TVI_ROOT equ 0FFFF0000h +TVI_FIRST equ 0FFFF0001h +TVI_LAST equ 0FFFF0002h +TVI_SORT equ 0FFFF0003h +TVM_INSERTITEMA equ TV_FIRST + 0 +TVM_INSERTITEMW equ TV_FIRST + 50 +IFDEF __UNICODE__ + TVM_INSERTITEM equ TVM_INSERTITEMW +ELSE + TVM_INSERTITEM equ TVM_INSERTITEMA +ENDIF + +TVM_DELETEITEM equ TV_FIRST + 1 +TVM_EXPAND equ TV_FIRST + 2 +TVE_COLLAPSE equ 0001h +TVE_EXPAND equ 0002h +TVE_TOGGLE equ 0003h +TVE_COLLAPSERESET equ 8000h +TVM_GETITEMRECT equ TV_FIRST + 4 +TVM_GETCOUNT equ TV_FIRST + 5 +TVM_GETINDENT equ TV_FIRST + 6 +TVM_SETINDENT equ TV_FIRST + 7 +TVM_GETIMAGELIST equ TV_FIRST + 8 +TVSIL_NORMAL equ 0 +TVSIL_STATE equ 2 +TVM_SETIMAGELIST equ TV_FIRST + 9 +TVM_GETNEXTITEM equ TV_FIRST + 10 +TVGN_ROOT equ 0000h +TVGN_NEXT equ 0001h +TVGN_PREVIOUS equ 0002h +TVGN_PARENT equ 0003h +TVGN_CHILD equ 0004h +TVGN_FIRSTVISIBLE equ 0005h +TVGN_NEXTVISIBLE equ 0006h +TVGN_PREVIOUSVISIBLE equ 0007h +TVGN_DROPHILITE equ 0008h +TVGN_CARET equ 0009h +TVM_SELECTITEM equ TV_FIRST + 11 +TVM_GETITEMA equ TV_FIRST + 12 +TVM_GETITEMW equ TV_FIRST + 62 +IFDEF __UNICODE__ + TVM_GETITEM equ TVM_GETITEMW +ELSE + TVM_GETITEM equ TVM_GETITEMA +ENDIF + +TVM_SETITEMA equ TV_FIRST + 13 +TVM_SETITEMW equ TV_FIRST + 63 +IFDEF __UNICODE__ + TVM_SETITEM equ TVM_SETITEMW +ELSE + TVM_SETITEM equ TVM_SETITEMA +ENDIF + +TVM_EDITLABELA equ TV_FIRST + 14 +TVM_EDITLABELW equ TV_FIRST + 65 +IFDEF __UNICODE__ + TVM_EDITLABEL equ TVM_EDITLABELW +ELSE + TVM_EDITLABEL equ TVM_EDITLABELA +ENDIF + +TVM_GETEDITCONTROL equ TV_FIRST + 15 +TVM_GETVISIBLECOUNT equ TV_FIRST + 16 +TVM_HITTEST equ TV_FIRST + 17 +TVHT_NOWHERE equ 0001h +TVHT_ONITEMICON equ 0002h +TVHT_ONITEMLABEL equ 0004h +TVHT_ONITEMSTATEICON equ 0040h +TVHT_ONITEM equ TVHT_ONITEMICON OR TVHT_ONITEMLABEL OR TVHT_ONITEMSTATEICON +TVHT_ONITEMINDENT equ 0008h +TVHT_ONITEMBUTTON equ 0010h +TVHT_ONITEMRIGHT equ 0020h +TVHT_ABOVE equ 0100h +TVHT_BELOW equ 0200h +TVHT_TORIGHT equ 0400h +TVHT_TOLEFT equ 0800h +TVM_CREATEDRAGIMAGE equ TV_FIRST + 18 +TVM_SORTCHILDREN equ TV_FIRST + 19 +TVM_ENSUREVISIBLE equ TV_FIRST + 20 +TVM_SORTCHILDRENCB equ TV_FIRST + 21 +TVM_GETISEARCHSTRINGA equ TV_FIRST + 23 +TVM_GETISEARCHSTRINGW equ TV_FIRST + 64 +IFDEF __UNICODE__ + TVM_GETISEARCHSTRING equ TVM_GETISEARCHSTRINGW +ELSE + TVM_GETISEARCHSTRING equ TVM_GETISEARCHSTRINGA +ENDIF + +TVN_SELCHANGINGA equ TVN_FIRST-1 +TVN_SELCHANGINGW equ TVN_FIRST-50 +IFDEF __UNICODE__ + TVN_SELCHANGING equ TVN_SELCHANGINGW +ELSE + TVN_SELCHANGING equ TVN_SELCHANGINGA +ENDIF + +TVN_SELCHANGEDA equ TVN_FIRST-2 +TVN_SELCHANGEDW equ TVN_FIRST-51 +IFDEF __UNICODE__ + TVN_SELCHANGED equ TVN_SELCHANGEDW +ELSE + TVN_SELCHANGED equ TVN_SELCHANGEDA +ENDIF + +TVC_UNKNOWN equ 0000h +TVC_BYMOUSE equ 0001h +TVC_BYKEYBOARD equ 0002h +TVN_GETDISPINFOA equ TVN_FIRST-3 +TVN_GETDISPINFOW equ TVN_FIRST-52 +IFDEF __UNICODE__ + TVN_GETDISPINFO equ TVN_GETDISPINFOW +ELSE + TVN_GETDISPINFO equ TVN_GETDISPINFOA +ENDIF + +TVN_SETDISPINFOA equ TVN_FIRST-4 +TVN_SETDISPINFOW equ TVN_FIRST-53 +IFDEF __UNICODE__ + TVN_SETDISPINFO equ TVN_SETDISPINFOW +ELSE + TVN_SETDISPINFO equ TVN_SETDISPINFOA +ENDIF + +TVIF_DI_SETITEM equ 1000h +TVN_ITEMEXPANDINGA equ TVN_FIRST-5 +TVN_ITEMEXPANDINGW equ TVN_FIRST-54 +IFDEF __UNICODE__ + TVN_ITEMEXPANDING equ TVN_ITEMEXPANDINGW +ELSE + TVN_ITEMEXPANDING equ TVN_ITEMEXPANDINGA +ENDIF + +TVN_ITEMEXPANDEDA equ TVN_FIRST-6 +TVN_ITEMEXPANDEDW equ TVN_FIRST-55 +IFDEF __UNICODE__ + TVN_ITEMEXPANDED equ TVN_ITEMEXPANDEDW +ELSE + TVN_ITEMEXPANDED equ TVN_ITEMEXPANDEDA +ENDIF + +TVN_BEGINDRAGA equ TVN_FIRST-7 +TVN_BEGINDRAGW equ TVN_FIRST-56 +IFDEF __UNICODE__ + TVN_BEGINDRAG equ TVN_BEGINDRAGW +ELSE + TVN_BEGINDRAG equ TVN_BEGINDRAGA +ENDIF + +TVN_BEGINRDRAGA equ TVN_FIRST-8 +TVN_BEGINRDRAGW equ TVN_FIRST-57 +IFDEF __UNICODE__ + TVN_BEGINRDRAG equ TVN_BEGINRDRAGW +ELSE + TVN_BEGINRDRAG equ TVN_BEGINRDRAGA +ENDIF + +TVN_DELETEITEMA equ TVN_FIRST-9 +TVN_DELETEITEMW equ TVN_FIRST-58 +IFDEF __UNICODE__ + TVN_DELETEITEM equ TVN_DELETEITEMW +ELSE + TVN_DELETEITEM equ TVN_DELETEITEMA +ENDIF + +TVN_BEGINLABELEDITA equ TVN_FIRST-10 +TVN_BEGINLABELEDITW equ TVN_FIRST-59 +IFDEF __UNICODE__ + TVN_BEGINLABELEDIT equ TVN_BEGINLABELEDITW +ELSE + TVN_BEGINLABELEDIT equ TVN_BEGINLABELEDITA +ENDIF + +TVN_ENDLABELEDITA equ TVN_FIRST-11 +TVN_ENDLABELEDITW equ TVN_FIRST-60 +IFDEF __UNICODE__ + TVN_ENDLABELEDIT equ TVN_ENDLABELEDITW +ELSE + TVN_ENDLABELEDIT equ TVN_ENDLABELEDITA +ENDIF + +TVN_GETINFOTIPA equ TVN_FIRST-13 +TVN_GETINFOTIPW equ TVN_FIRST-14 +IFDEF __UNICODE__ + TVN_GETINFOTIP equ TVN_GETINFOTIPW +ELSE + TVN_GETINFOTIP equ TVN_GETINFOTIPA +ENDIF + +TVN_KEYDOWN equ TVN_FIRST-12 +TCS_FORCEICONLEFT equ 0010h +TCS_FORCELABELLEFT equ 0020h +TCS_TABS equ 0000h +TCS_BUTTONS equ 0100h +TCS_SINGLELINE equ 0000h +TCS_MULTILINE equ 0200h +TCS_RIGHTJUSTIFY equ 0000h +TCS_FIXEDWIDTH equ 0400h +TCS_RAGGEDRIGHT equ 0800h +TCS_FOCUSONBUTTONDOWN equ 1000h +TCS_OWNERDRAWFIXED equ 2000h +TCS_TOOLTIPS equ 4000h +TCS_FOCUSNEVER equ 8000h +TCM_FIRST equ 1300h +TCM_GETIMAGELIST equ TCM_FIRST + 2 +TCM_SETIMAGELIST equ TCM_FIRST + 3 +TCM_GETITEMCOUNT equ TCM_FIRST + 4 +TCIF_TEXT equ 0001h +TCIF_IMAGE equ 0002h +TCIF_RTLREADING equ 0004h +TCIF_PARAM equ 0008h +TCM_GETITEMA equ TCM_FIRST + 5 +TCM_GETITEMW equ TCM_FIRST + 60 +IFDEF __UNICODE__ + TCM_GETITEM equ TCM_GETITEMW +ELSE + TCM_GETITEM equ TCM_GETITEMA +ENDIF + +TCM_SETITEMA equ TCM_FIRST + 6 +TCM_SETITEMW equ TCM_FIRST + 61 +IFDEF __UNICODE__ + TCM_SETITEM equ TCM_SETITEMW +ELSE + TCM_SETITEM equ TCM_SETITEMA +ENDIF + +TCM_INSERTITEMA equ TCM_FIRST + 7 +TCM_INSERTITEMW equ TCM_FIRST + 62 +IFDEF __UNICODE__ + TCM_INSERTITEM equ TCM_INSERTITEMW +ELSE + TCM_INSERTITEM equ TCM_INSERTITEMA +ENDIF + +TCM_DELETEITEM equ TCM_FIRST + 8 +TCM_DELETEALLITEMS equ TCM_FIRST + 9 +TCM_GETITEMRECT equ TCM_FIRST + 10 +TCM_GETCURSEL equ TCM_FIRST + 11 +TCM_SETCURSEL equ TCM_FIRST + 12 +TCHT_NOWHERE equ 0001h +TCHT_ONITEMICON equ 0002h +TCHT_ONITEMLABEL equ 0004h +TCHT_ONITEM equ TCHT_ONITEMICON OR TCHT_ONITEMLABEL +TCM_HITTEST equ TCM_FIRST + 13 +TCM_SETITEMEXTRA equ TCM_FIRST + 14 +TCM_ADJUSTRECT equ TCM_FIRST + 40 +TCM_SETITEMSIZE equ TCM_FIRST + 41 +TCM_REMOVEIMAGE equ TCM_FIRST + 42 +TCM_SETPADDING equ TCM_FIRST + 43 +TCM_GETROWCOUNT equ TCM_FIRST + 44 +TCM_GETTOOLTIPS equ TCM_FIRST + 45 +TCM_SETTOOLTIPS equ TCM_FIRST + 46 +TCM_GETCURFOCUS equ TCM_FIRST + 47 +TCM_SETCURFOCUS equ TCM_FIRST + 48 +TCN_KEYDOWN equ TCN_FIRST - 0 +TCN_SELCHANGE equ TCN_FIRST - 1 +TCN_SELCHANGING equ TCN_FIRST - 2 +ACS_CENTER equ 0001h +ACS_TRANSPARENT equ 0002h +ACS_AUTOPLAY equ 0004h +ACM_OPENA equ WM_USER+100 +ACM_OPENW equ WM_USER+103 +IFDEF __UNICODE__ + ACM_OPEN equ ACM_OPENW +ELSE + ACM_OPEN equ ACM_OPENA +ENDIF + +ACM_PLAY equ WM_USER+101 +ACM_STOP equ WM_USER+102 +ACN_START equ 1 +ACN_STOP equ 2 + + ; FXPT2DOT30 equ + ; MMVERSION equ + ; SECURITY_CONTEXT_TRACKING_MODE equ + ; MAX_JOYSTICKOEMVXDNAME equ 260 + ; FOURCC equ + ; + ; LOAD_LIBRARY_AS_DATAFILE equ 2 + ; LOAD_WITH_ALTERED_SEARCH_PATH equ 8 + ; + ; EVENT_MODIFY_STATE equ 2 + +; ------------------------- comctl structures ------------------------------ + +INITCOMMONCONTROLSEX STRUCT + dwSize dd ? + dwICC dd ? +INITCOMMONCONTROLSEX ENDS + +REBARINFO STRUCT + cbSize dd ? + fMask dd ? + himl dd ? +REBARINFO ENDS + +REBARBANDINFOW STRUCT + cbSize DWORD ? + fMask DWORD ? + fStyle DWORD ? + clrFore DWORD ? + clrBack DWORD ? + lpText DWORD ? + cch DWORD ? + iImage DWORD ? + hwndChild DWORD ? + cxMinChild DWORD ? + cyMinChild DWORD ? + lx DWORD ? + hbmBack DWORD ? + wID DWORD ? + cyChild DWORD ? + cyMaxChild DWORD ? + cyIntegral DWORD ? + cxIdeal DWORD ? + lParam DWORD ? + cxHeader DWORD ? +REBARBANDINFOW ENDS + +REBARBANDINFOA STRUCT + cbSize DWORD ? + fMask DWORD ? + fStyle DWORD ? + clrFore DWORD ? + clrBack DWORD ? + lpText DWORD ? + cch DWORD ? + iImage DWORD ? + hwndChild DWORD ? + cxMinChild DWORD ? + cyMinChild DWORD ? + lx DWORD ? + hbmBack DWORD ? + wID DWORD ? + cyChild DWORD ? + cyMaxChild DWORD ? + cyIntegral DWORD ? + cxIdeal DWORD ? + lParam DWORD ? + cxHeader DWORD ? +REBARBANDINFOA ENDS + +IFDEF __UNICODE__ + REBARBANDINFO equ +ELSE + REBARBANDINFO equ +ENDIF + +LPREBARBANDINFO equ ptr REBARBANDINFO +LPCREBARBANDINFO equ ptr REBARBANDINFO + +NMHDR STRUCT + hwndFrom DWORD ? + idFrom DWORD ? + code DWORD ? +NMHDR ends + +NMREBARCHILDSIZE STRUCT + hdr NMHDR <> + uBand DWORD ? + wID DWORD ? + rcChild RECT <> + rcBand RECT <> +NMREBARCHILDSIZE ENDS + +NMREBAR STRUCT + hdr NMHDR <> + dwMask DWORD ? + uBand DWORD ? + fStyle DWORD ? + wID DWORD ? + lParam DWORD ? +NMREBAR ENDS + +NMRBAUTOSIZE STRUCT + hdr NMHDR <> + fChanged DWORD ? + rcTarget RECT <> + rcActual RECT <> +NMRBAUTOSIZE ENDS + +RBHITTESTINFO STRUCT + pt POINT <> + flags DWORD ? + iBand DWORD ? +RBHITTESTINFO ENDS + +IMAGEINFO STRUCT + hbmImage HBITMAP ? + hbmMask HBITMAP ? + Unused1 DWORD ? + Unused2 DWORD ? + rcImage RECT <> +IMAGEINFO ENDS + +HD_ITEM STRUCT + imask DWORD ? + lxy DWORD ? + pszText DWORD ? + hbm DWORD ? + cchTextMax DWORD ? + fmt DWORD ? + lParam DWORD ? + iImage DWORD ? + iOrder DWORD ? + itype dd ? + pvFilter dd ? +HD_ITEM ENDS + +HD_LAYOUT STRUCT + prc DWORD ? + pwpos DWORD ? +HD_LAYOUT ENDS + +HD_HITTESTINFO STRUCT + pt POINT <> + flags DWORD ? + iItem DWORD ? +HD_HITTESTINFO ENDS + +NMHEADERA STRUCT + hdr NMHDR <> + iItem DWORD ? + iButton DWORD ? + pitem DWORD ? +NMHEADERA ends + +NMHEADERW STRUCT + hdr NMHDR <> + iItem DWORD ? + iButton DWORD ? + pitem DWORD ? +NMHEADERW ends + +IFDEF __UNICODE__ + NMHEADER equ + LPNMHEADER typedef ptr NMHEADERW +ELSE + NMHEADER equ + LPNMHEADER typedef ptr NMHEADERA +ENDIF + +TBBUTTON STRUCT + iBitmap DWORD ? + idCommand DWORD ? + fsState BYTE ? + fsStyle BYTE ? + _wPad1 WORD ? + dwData DWORD ? + iString DWORD ? +TBBUTTON ENDS + +COLORMAP STRUCT + From DWORD ? + To DWORD ? +COLORMAP ENDS + +TBADDBITMAP STRUCT + hInst DWORD ? + nID DWORD ? +TBADDBITMAP ENDS + +TBREPLACEBITMAP STRUCT + hInstOld DWORD ? + nIdOld DWORD ? + hInstNew DWORD ? + nIdNew DWORD ? + nButtons DWORD ? +TBREPLACEBITMAP ENDS + +TBSAVEPARAMSA STRUCT + hkr DWORD ? + pszSubKey DWORD ? + pszValueName DWORD ? +TBSAVEPARAMSA ENDS + +TBSAVEPARAMSW STRUCT + hkr DWORD ? + pszSubKey DWORD ? + pszValueName DWORD ? +TBSAVEPARAMSW ENDS + +IFDEF __UNICODE__ + TBSAVEPARAMS equ + LPTBSAVEPARAMS typedef ptr TBSAVEPARAMSW +ELSE + TBSAVEPARAMS equ + LPTBSAVEPARAMS typedef ptr TBSAVEPARAMSA +ENDIF + +TOOLINFOA STRUCT + cbSize DWORD ? + uFlags DWORD ? + hWnd DWORD ? + uId DWORD ? + rect RECT <> + hInst DWORD ? + lpszText DWORD ? + lParam LPARAM ? +TOOLINFOA ENDS + +TOOLINFOW STRUCT + cbSize DWORD ? + uFlags DWORD ? + hWnd DWORD ? + uId DWORD ? + rect RECT <> + hInst DWORD ? + lpszText DWORD ? + lParam LPARAM ? +TOOLINFOW ENDS + +IFDEF __UNICODE__ + TOOLINFO equ + TTTOOLINFO equ + LPTOOLINFO typedef ptr TOOLINFOW +ELSE + TOOLINFO equ + TTTOOLINFO equ + LPTOOLINFO typedef ptr TOOLINFOA +ENDIF +LPTTTOOLINFO equ LPTOOLINFO +PTOOLINFO equ LPTOOLINFO +TTTOOLINFO equ +TTTOOLINFOA equ +TTTOOLINFOW equ + +TT_HITTESTINFOA STRUCT + hWnd DWORD ? + pt POINT <> + ti TOOLINFOA <> +TT_HITTESTINFOA ENDS + +TT_HITTESTINFOW STRUCT + hWnd DWORD ? + pt POINT <> + ti TOOLINFOW <> +TT_HITTESTINFOW ENDS + +IFDEF __UNICODE__ + TT_HITTESTINFO equ TT_HITTESTINFOW +ELSE + TT_HITTESTINFO equ TT_HITTESTINFOA +ENDIF + +NMTTDISPINFOA STRUCT + hdr NMHDR <> + lpszText DWORD ? + szText BYTE 80 dup(?) + union + hInst DWORD ? + hinst DWORD ? + ends + uFlags DWORD ? + lParam DWORD ? +NMTTDISPINFOA ENDS + +NMTTDISPINFOW STRUCT + hdr NMHDR <> + lpszText DWORD ? + szText WORD 80 dup(?) + union + hInst DWORD ? + hinst DWORD ? + ends + uFlags DWORD ? + lParam DWORD ? +NMTTDISPINFOW ENDS + +IFDEF __UNICODE__ + NMTTDISPINFO equ +ELSE + NMTTDISPINFO equ +ENDIF + +TOOLTIPTEXT equ + +DRAGLISTINFO STRUCT + uNotification DWORD ? + hWnd DWORD ? + ptCursor POINT <> +DRAGLISTINFO ENDS + +UDACCEL STRUCT + nSec DWORD ? + nInc DWORD ? +UDACCEL ENDS + +NM_UPDOWN STRUCT + hdr NMHDR <> + iPos DWORD ? + iDelta DWORD ? +NM_UPDOWN ENDS + +NMUPDOWN equ + +LV_ITEMA STRUCT + imask DWORD ? + iItem DWORD ? + iSubItem DWORD ? + state DWORD ? + stateMask DWORD ? + pszText DWORD ? + cchTextMax DWORD ? + iImage DWORD ? + lParam DWORD ? + iIndent DWORD ? +LV_ITEMA ENDS + +LV_ITEMW STRUCT + imask DWORD ? + iItem DWORD ? + iSubItem DWORD ? + state DWORD ? + stateMask DWORD ? + pszText DWORD ? + cchTextMax DWORD ? + iImage DWORD ? + lParam DWORD ? + iIndent DWORD ? +LV_ITEMW ENDS + +IFDEF __UNICODE__ + LV_ITEM equ +ELSE + LV_ITEM equ +ENDIF + +LVITEM equ +LVITEMA equ +LVITEMW equ + +LV_FINDINFO STRUCT + flags DWORD ? + psz DWORD ? + lParam DWORD ? + pt POINT <> + vkDirection DWORD ? +LV_FINDINFO ENDS + +LVFINDINFO equ + +LV_HITTESTINFO STRUCT + pt POINT <> + flags DWORD ? + iItem DWORD ? + iSubItem DWORD ? +LV_HITTESTINFO ENDS + +LVHITTESTINFO equ + +LV_COLUMN STRUCT + imask DWORD ? + fmt DWORD ? + lx DWORD ? + pszText DWORD ? + cchTextMax DWORD ? + iSubItem DWORD ? + iImage DWORD ? + iOrder DWORD ? +LV_COLUMN ENDS + +LVCOLUMN equ + +NM_LISTVIEW STRUCT + hdr NMHDR <> + iItem DWORD ? + iSubItem DWORD ? + uNewState DWORD ? + uOldState DWORD ? + uChanged DWORD ? + ptAction POINT <> + lParam DWORD ? +NM_LISTVIEW ENDS + +NMLISTVIEW equ + +LV_DISPINFO STRUCT + hdr NMHDR <> + item LVITEM <> +LV_DISPINFO ENDS + +LV_KEYDOWN STRUCT + hdr NMHDR <> + wVKey WORD ? + flags DWORD ? +LV_KEYDOWN ENDS + +NMLVKEYDOWN equ + +_mask equ + +TVITEMW STRUCT + _mask DWORD ? + hItem DWORD ? + state DWORD ? + stateMask DWORD ? + pszText DWORD ? + cchTextMax DWORD ? + iImage DWORD ? + iSelectedImage DWORD ? + cChildren DWORD ? + lParam DWORD ? +TVITEMW ENDS + +TVITEMA STRUCT + _mask DWORD ? + hItem DWORD ? + state DWORD ? + stateMask DWORD ? + pszText DWORD ? + cchTextMax DWORD ? + iImage DWORD ? + iSelectedImage DWORD ? + cChildren DWORD ? + lParam DWORD ? +TVITEMA ENDS + +IFDEF __UNICODE__ + TVITEM equ +ELSE + TVITEM equ +ENDIF + +TV_ITEM equ +TV_ITEMA equ +TV_ITEMW equ + +TV_ITEMEX STRUCT + imask DWORD ? + hItem DWORD ? + state DWORD ? + stateMask DWORD ? + pszText DWORD ? + cchTextMax DWORD ? + iImage DWORD ? + iSelectedImage DWORD ? + cChildren DWORD ? + lParam DWORD ? + iIntegral DWORD ? +TV_ITEMEX ENDS + +TVITEMEX equ + +ITEMTYPE UNION + itemex TVITEMEX <> + item TVITEM <> +ITEMTYPE ENDS + +TV_INSERTSTRUCT STRUCT + hParent DWORD ? + hInsertAfter DWORD ? + ITEMTYPE <> +TV_INSERTSTRUCT ENDS + +TV_HITTESTINFO STRUCT + pt POINT <> + flags DWORD ? + hItem DWORD ? +TV_HITTESTINFO ENDS + +TVHITTESTINFO equ + +TV_SORTCB STRUCT + hParent DWORD ? + lpfnCompare DWORD ? + lParam DWORD ? +TV_SORTCB ENDS + +TVSORTCB equ + +NM_TREEVIEW STRUCT + hdr NMHDR <> + action DWORD ? + itemOld TVITEM <> + itemNew TVITEM <> + ptDrag POINT <> +NM_TREEVIEW ENDS + +NMTREEVIEW equ + +TV_DISPINFO STRUCT + hdr NMHDR <> + item TVITEM <> +TV_DISPINFO ENDS + +NMTVDISPINFO equ + +TV_KEYDOWN STRUCT + hdr NMHDR <> + wVKey WORD ? + flags DWORD ? +TV_KEYDOWN ENDS + +NMTVKEYDOWN equ + +TC_ITEMHEADER STRUCT + imask DWORD ? + lpReserved1 DWORD ? + lpReserved2 DWORD ? + pszText DWORD ? + cchTextMax DWORD ? + iImage DWORD ? +TC_ITEMHEADER ENDS + +TCITEMHEADER equ + +TC_ITEM STRUCT + imask DWORD ? + lpReserved1 DWORD ? + lpReserved2 DWORD ? + pszText DWORD ? + cchTextMax DWORD ? + iImage DWORD ? + lParam DWORD ? +TC_ITEM ENDS + +TCITEM equ + +TC_HITTESTINFO STRUCT + pt POINT <> + flags DWORD ? +TC_HITTESTINFO ENDS + +TCHITTESTINFO equ + +TC_KEYDOWN STRUCT + hdr NMHDR <> + wVKey WORD ? + flags DWORD ? +TC_KEYDOWN ENDS + +NMTCKEYDOWN equ + +; -------------------------------------------------- +; Additional Common Control Equates 28 January 2003 +; -------------------------------------------------- + +CCM_SETVERSION equ CCM_FIRST + 7 +CCM_GETVERSION equ CCM_FIRST + 8 +CCM_SETNOTIFYWINDOW equ CCM_FIRST + 9 +INFOTIPSIZE equ 1024 +NM_CUSTOMDRAW equ NM_FIRST - 12 +NM_HOVER equ NM_FIRST - 13 +NM_NCHITTEST equ NM_FIRST - 14 ; uses NMMOUSE type +NM_KEYDOWN equ NM_FIRST - 15 ; uses NMKEY type +NM_RELEASEDCAPTURE equ NM_FIRST - 16 +NM_SETCURSOR equ NM_FIRST - 17 ; uses NMMOUSE type +NM_CHAR equ NM_FIRST - 18 ; uses NMCHAR type +NM_TOOLTIPSCREATED equ NM_FIRST - 19 ; notify of when the tooltips window is create +NM_LDOWN equ NM_FIRST - 20 +NM_RDOWN equ NM_FIRST - 21 +WMN_FIRST equ 0-1000 +WMN_LAST equ 0-1200 +CDRF_DODEFAULT equ 00000000h +CDRF_NEWFONT equ 00000002h +CDRF_SKIPDEFAULT equ 00000004h +CDRF_NOTIFYPOSTPAINT equ 00000010h +CDRF_NOTIFYITEMDRAW equ 00000020h +CDRF_NOTIFYSUBITEMDRAW equ 00000020h +CDRF_NOTIFYPOSTERASE equ 00000040h +CDDS_PREPAINT equ 00000001h +CDDS_POSTPAINT equ 00000002h +CDDS_PREERASE equ 00000003h +CDDS_POSTERASE equ 00000004h +CDDS_ITEM equ 00010000h +CDDS_ITEMPREPAINT equ (CDDS_ITEM OR CDDS_PREPAINT) +CDDS_ITEMPOSTPAINT equ (CDDS_ITEM OR CDDS_POSTPAINT) +CDDS_ITEMPREERASE equ (CDDS_ITEM OR CDDS_PREERASE) +CDDS_ITEMPOSTERASE equ (CDDS_ITEM OR CDDS_POSTERASE) +CDDS_SUBITEM equ 00020000h +CDIS_SELECTED equ 0001h +CDIS_GRAYED equ 0002h +CDIS_DISABLED equ 0004h +CDIS_CHECKED equ 0008h +CDIS_FOCUS equ 0010h +CDIS_DEFAULT equ 0020h +CDIS_HOT equ 0040h +CDIS_MARKED equ 0080h +CDIS_INDETERMINATE equ 0100h +ILD_ROP equ 0040h +ILCF_MOVE equ 00000000h +ILCF_SWAP equ 00000001h +HDS_HOTTRACK equ 0004h +HDS_DRAGDROP equ 0040h +HDS_FULLDRAG equ 0080h +HDS_FILTERBAR equ 0100h +HDFT_ISSTRING equ 00000000h +HDFT_ISNUMBER equ 00000001h +HDFT_HASNOVALUE equ 00008000h +HDI_FILTER equ 0100h +HDM_GETITEMRECT equ (HDM_FIRST + 7) +HDM_ORDERTOINDEX equ (HDM_FIRST + 15) +HDM_CREATEDRAGIMAGE equ (HDM_FIRST + 16) +HDM_GETORDERARRAY equ (HDM_FIRST + 17) +HDM_SETORDERARRAY equ (HDM_FIRST + 18) +HDM_SETHOTDIVIDER equ (HDM_FIRST + 19) +HDM_SETBITMAPMARGIN equ (HDM_FIRST + 20) +HDM_GETBITMAPMARGIN equ (HDM_FIRST + 21) +HDM_SETUNICODEFORMAT equ CCM_SETUNICODEFORMAT +HDM_GETUNICODEFORMAT equ CCM_GETUNICODEFORMAT +HDM_SETFILTERCHANGETIMEOUT equ (HDM_FIRST + 22) +HDM_EDITFILTER equ (HDM_FIRST + 23) +HDM_CLEARFILTER equ (HDM_FIRST + 24) +HDN_GETDISPINFOA equ (HDN_FIRST - 9) +HDN_GETDISPINFOW equ (HDN_FIRST - 29) +IFDEF __UNICODE__ + HDN_GETDISPINFO equ HDN_GETDISPINFOW +ELSE + HDN_GETDISPINFO equ HDN_GETDISPINFOA +ENDIF + +HDN_BEGINDRAG equ (HDN_FIRST - 10) +HDN_ENDDRAG equ (HDN_FIRST - 11) +HDN_FILTERCHANGE equ (HDN_FIRST - 12) +HDN_FILTERBTNCLICK equ (HDN_FIRST - 13) +TBSTATE_ELLIPSES equ 0040h +TBSTATE_MARKED equ 0080h +TBSTYLE_DROPDOWN equ 0008h +TBSTYLE_NOPREFIX equ 0020h +TBSTYLE_EX_DRAWDDARROWS equ 00000001h +BTNS_BUTTON equ TBSTYLE_BUTTON +BTNS_SEP equ TBSTYLE_SEP +BTNS_CHECK equ TBSTYLE_CHECK +BTNS_GROUP equ TBSTYLE_GROUP +BTNS_CHECKGROUP equ TBSTYLE_CHECKGROUP +BTNS_DROPDOWN equ TBSTYLE_DROPDOWN +BTNS_AUTOSIZE equ TBSTYLE_AUTOSIZE +BTNS_NOPREFIX equ TBSTYLE_NOPREFIX +BTNS_WHOLEDROPDOWN equ 0080h ; draw drop-down arrow, but without split arrow section +TBSTYLE_EX_MIXEDBUTTONS equ 00000008h +TBSTYLE_EX_HIDECLIPPEDBUTTONS equ 00000010h +TBCDRF_NOEDGES equ 00010000h +TBCDRF_HILITEHOTTRACK equ 00020000h +TBCDRF_NOOFFSET equ 00040000h +TBCDRF_NOMARK equ 00080000h +TBCDRF_NOETCHEDEFFECT equ 00100000h +TBCDRF_BLENDICON equ 00200000h +TB_MARKBUTTON equ WM_USER + 6 +TB_ISBUTTONHIGHLIGHTED equ WM_USER + 14 +IDB_HIST_SMALL_COLOR equ 8 +IDB_HIST_LARGE_COLOR equ 9 +VIEW_VIEWMENU equ 12 +HIST_BACK equ 0 +HIST_FORWARD equ 1 +HIST_FAVORITES equ 2 +HIST_ADDTOFAVORITES equ 3 +HIST_VIEWTREE equ 4 +TBIMHT_AFTER equ 00000001h +TBIMHT_BACKGROUND equ 00000002h +TB_GETINSERTMARK equ WM_USER + 79 +TB_SETINSERTMARK equ WM_USER + 80 +TB_INSERTMARKHITTEST equ WM_USER + 81 +TB_MOVEBUTTON equ WM_USER + 82 +TB_GETMAXSIZE equ WM_USER + 83 +TB_SETEXTENDEDSTYLE equ WM_USER + 84 ; For TBSTYLE_EX_* +TB_GETEXTENDEDSTYLE equ WM_USER + 85 ; For TBSTYLE_EX_* +TB_GETPADDING equ WM_USER + 86 +TB_SETPADDING equ WM_USER + 87 +TB_SETINSERTMARKCOLOR equ WM_USER + 88 +TB_GETINSERTMARKCOLOR equ WM_USER + 89 +TB_GETCOLORSCHEME equ CCM_GETCOLORSCHEME ; fills in COLORSCHEME pointed to by lParam +TB_SETUNICODEFORMAT equ CCM_SETUNICODEFORMAT +TB_GETUNICODEFORMAT equ CCM_GETUNICODEFORMAT +TBIF_IMAGE equ 00000001h +TBIF_TEXT equ 00000002h +TBIF_STATE equ 00000004h +TBIF_STYLE equ 00000008h +TBIF_LPARAM equ 00000010h +TBIF_COMMAND equ 00000020h +TBIF_SIZE equ 00000040h +TBIF_BYINDEX equ 80000000h +TB_GETBUTTONINFOA equ WM_USER + 65 +TB_GETBUTTONINFOW equ WM_USER + 63 +IFDEF __UNICODE__ + TB_GETBUTTONINFO equ TB_GETBUTTONINFOW +ELSE + TB_GETBUTTONINFO equ TB_GETBUTTONINFOA +ENDIF + +TB_SETBUTTONINFOA equ WM_USER + 66 +TB_SETBUTTONINFOW equ WM_USER + 64 +IFDEF __UNICODE__ + TB_SETBUTTONINFO equ TB_SETBUTTONINFOW +ELSE + TB_SETBUTTONINFO equ TB_SETBUTTONINFOA +ENDIF + +TB_HITTEST equ WM_USER + 69 +TB_SETDRAWTEXTFLAGS equ WM_USER + 70 +TB_GETSTRINGA equ WM_USER + 92 +TB_GETSTRINGW equ WM_USER + 91 +IFDEF __UNICODE__ + TB_GETSTRING equ TB_GETSTRINGW +ELSE + TB_GETSTRING equ TB_GETSTRINGA +ENDIF + +TBN_DROPDOWN equ TBN_FIRST - 10 +TBN_GETOBJECT equ TBN_FIRST - 12 +HICF_OTHER equ 00000000h +HICF_MOUSE equ 00000001h +HICF_ARROWKEYS equ 00000002h +HICF_ACCELERATOR equ 00000004h +HICF_DUPACCEL equ 00000008h +HICF_ENTERING equ 00000010h +HICF_LEAVING equ 00000020h +HICF_RESELECT equ 00000040h +TBN_HOTITEMCHANGE equ TBN_FIRST - 13 +TBN_DRAGOUT equ TBN_FIRST - 14 ; this is sent when the user clicks down on a button then drags off the button +TBN_DELETINGBUTTON equ TBN_FIRST - 15 ; uses TBNOTIFY +TBN_GETDISPINFOA equ TBN_FIRST - 16 ; This is sent when the toolbar needs some display information +TBN_GETDISPINFOW equ TBN_FIRST - 17 ; This is sent when the toolbar needs some display information +IFDEF __UNICODE__ + TBN_GETDISPINFO equ TBN_GETDISPINFOW +ELSE + TBN_GETDISPINFO equ TBN_GETDISPINFOA +ENDIF + +TBN_GETINFOTIPA equ TBN_FIRST - 18 +TBN_GETINFOTIPW equ TBN_FIRST - 19 +IFDEF __UNICODE__ + TBN_GETINFOTIP equ TBN_GETINFOTIPW +ELSE + TBN_GETINFOTIP equ TBN_GETINFOTIPA +ENDIF + +TBN_RESTORE equ TBN_FIRST - 21 +TBN_SAVE equ TBN_FIRST - 22 +TBN_INITCUSTOMIZE equ TBN_FIRST - 23 +TBNRF_HIDEHELP equ 00000001h +TBNRF_ENDCUSTOMIZE equ 00000002h +TBNF_IMAGE equ 00000001h +TBNF_TEXT equ 00000002h +TBNF_DI_SETITEM equ 10000000h +TBDDRET_DEFAULT equ 0 +TBDDRET_NODEFAULT equ 1 +TBDDRET_TREATPRESSED equ 2 ; Treat as a standard press button +RBBS_HIDETITLE equ 00000400h +RB_PUSHCHEVRON equ (WM_USER + 43) +RBN_CHEVRONPUSHED equ (RBN_FIRST - 10) +RBN_MINMAX equ (RBN_FIRST - 21) +RBHT_CHEVRON equ 0008h +TTS_NOANIMATE equ 10h +TTS_NOFADE equ 20h +TTS_BALLOON equ 40h +TTF_TRACK equ 00000020h +TTF_ABSOLUTE equ 00000080h +TTF_TRANSPARENT equ 00000100h +TTI_NONE equ 0 +TTI_INFO equ 1 +TTI_WARNING equ 2 +TTI_ERROR equ 3 +TTM_TRACKACTIVATE equ WM_USER + 17 +TTM_TRACKPOSITION equ WM_USER + 18 +TTM_SETTIPBKCOLOR equ WM_USER + 19 +TTM_SETTIPTEXTCOLOR equ WM_USER + 20 +TTM_GETDELAYTIME equ WM_USER + 21 +TTM_GETTIPBKCOLOR equ WM_USER + 22 +TTM_GETTIPTEXTCOLOR equ WM_USER + 23 +TTM_SETMAXTIPWIDTH equ WM_USER + 24 +TTM_GETMAXTIPWIDTH equ WM_USER + 25 +TTM_SETMARGIN equ WM_USER + 26 +TTM_GETMARGIN equ WM_USER + 27 +TTM_POP equ WM_USER + 28 +TTM_GETBUBBLESIZE equ WM_USER + 30 +TTM_ADJUSTRECT equ WM_USER + 31 +TTM_SETTITLEA equ WM_USER + 32 +TTM_SETTITLEW equ WM_USER + 33 +IFDEF __UNICODE__ + TTM_SETTITLE equ TTM_SETTITLEW +ELSE + TTM_SETTITLE equ TTM_SETTITLEA +ENDIF + +TTN_GETDISPINFOA equ TTN_FIRST - 0 +TTN_GETDISPINFOW equ TTN_FIRST - 10 +IFDEF __UNICODE__ + TTN_GETDISPINFO equ TTN_GETDISPINFOW +ELSE + TTN_GETDISPINFO equ TTN_GETDISPINFOA +ENDIF + +SBARS_TOOLTIPS equ 0800h +SB_ISSIMPLE equ WM_USER + 14 +SB_SETICON equ WM_USER + 15 +SB_SETTIPTEXTA equ WM_USER + 16 +SB_SETTIPTEXTW equ WM_USER + 17 +IFDEF __UNICODE__ + SB_SETTIPTEXT equ SB_SETTIPTEXTW +ELSE + SB_SETTIPTEXT equ SB_SETTIPTEXTA +ENDIF + +SB_GETTIPTEXTA equ WM_USER + 18 +SB_GETTIPTEXTW equ WM_USER + 19 +IFDEF __UNICODE__ + SB_GETTIPTEXT equ SB_GETTIPTEXTW +ELSE + SB_GETTIPTEXT equ SB_GETTIPTEXTA +ENDIF + +SB_GETICON equ WM_USER + 20 +SB_SETUNICODEFORMAT equ CCM_SETUNICODEFORMAT +SB_GETUNICODEFORMAT equ CCM_GETUNICODEFORMAT +SBT_TOOLTIPS equ 0800h +SBT_NOTABPARSING equ 0800h +SB_SETBKCOLOR equ CCM_SETBKCOLOR +SBN_SIMPLEMODECHANGE equ SBN_FIRST +SB_SIMPLEID equ 00FFh +TBS_TOOLTIPS equ 0100h +TBS_REVERSED equ 0200h +TBM_SETTOOLTIPS equ WM_USER + 29 +TBM_GETTOOLTIPS equ WM_USER + 30 +TBM_SETTIPSIDE equ WM_USER + 31 +TBTS_TOP equ 0 +TBTS_LEFT equ 1 +TBTS_BOTTOM equ 2 +TBTS_RIGHT equ 3 +TBM_SETBUDDY equ WM_USER + 32 +TBM_GETBUDDY equ WM_USER + 33 +TBM_SETUNICODEFORMAT equ CCM_SETUNICODEFORMAT +TBM_GETUNICODEFORMAT equ CCM_GETUNICODEFORMAT +TBCD_TICS equ 0001h +TBCD_THUMB equ 0002h +TBCD_CHANNEL equ 0003h +UDS_HOTTRACK equ 0100h +UDM_SETRANGE32 equ WM_USER + 111 +UDM_GETRANGE32 equ WM_USER + 112 +UDM_SETUNICODEFORMAT equ CCM_SETUNICODEFORMAT +UDM_GETUNICODEFORMAT equ CCM_GETUNICODEFORMAT +UDM_SETPOS32 equ WM_USER + 113 +UDM_GETPOS32 equ WM_USER + 114 +PBS_SMOOTH equ 01h +PBS_VERTICAL equ 04h +PBM_SETRANGE32 equ WM_USER + 6 +PBM_GETRANGE equ WM_USER + 7 +PBM_GETPOS equ WM_USER + 8 +PBM_SETBKCOLOR equ CCM_SETBKCOLOR +PBM_SETBARCOLOR equ WM_USER + 9 +CCS_VERT equ 00000080h +CCS_LEFT equ CCS_VERT OR CCS_TOP +CCS_RIGHT equ CCS_VERT OR CCS_BOTTOM +CCS_NOMOVEX equ CCS_VERT OR CCS_NOMOVEY +LVS_OWNERDATA equ 00001000h +LVM_SETUNICODEFORMAT equ CCM_SETUNICODEFORMAT +LVM_GETUNICODEFORMAT equ CCM_GETUNICODEFORMAT +LVIF_INDENT equ 0010h +LVIF_NORECOMPUTE equ 0800h +LVIS_ACTIVATING equ 0020h +LVSICF_NOINVALIDATEALL equ 00000001h +LVSICF_NOSCROLL equ 00000002h +LVM_SETICONSPACING equ LVM_FIRST + 53 +LVM_GETSUBITEMRECT equ LVM_FIRST + 56 +LVM_SETCOLUMNORDERARRAY equ LVM_FIRST + 58 +LVM_GETCOLUMNORDERARRAY equ LVM_FIRST + 59 +LVM_SETHOTITEM equ LVM_FIRST + 60 +LVM_GETHOTITEM equ LVM_FIRST + 61 +LVM_SETHOTCURSOR equ LVM_FIRST + 62 +LVM_GETHOTCURSOR equ LVM_FIRST + 63 +LVM_APPROXIMATEVIEWRECT equ LVM_FIRST + 64 +LV_MAX_WORKARE equ 16 +LVM_SETWORKARE equ LVM_FIRST + 65 +LVM_GETWORKARE equ LVM_FIRST + 70 +LVM_GETNUMBEROFWORKARE equ LVM_FIRST + 73 +LVM_GETSELECTIONMARK equ LVM_FIRST + 66 +LVM_SETSELECTIONMARK equ LVM_FIRST + 67 +LVM_SETHOVERTIME equ LVM_FIRST + 71 +LVM_GETHOVERTIME equ LVM_FIRST + 72 +LVM_SETTOOLTIPS equ LVM_FIRST + 74 +LVM_GETTOOLTIPS equ LVM_FIRST + 78 +LVBKIF_SOURCE_NONE equ 00000000h +LVBKIF_SOURCE_HBITMAP equ 00000001h +LVBKIF_SOURCE_URL equ 00000002h +LVBKIF_SOURCE_MASK equ 00000003h +LVBKIF_STYLE_NORMAL equ 00000000h +LVBKIF_STYLE_TILE equ 00000010h +LVBKIF_STYLE_MASK equ 00000010h +LVM_SETBKIMAGEA equ LVM_FIRST + 68 +LVM_SETBKIMAGEW equ LVM_FIRST + 138 +IFDEF __UNICODE__ + LVM_SETBKIMAGE equ LVM_SETBKIMAGEW +ELSE + LVM_SETBKIMAGE equ LVM_SETBKIMAGEA +ENDIF + +LVM_GETBKIMAGEA equ LVM_FIRST + 69 +LVM_GETBKIMAGEW equ LVM_FIRST + 139 +IFDEF __UNICODE__ + LVM_GETBKIMAGE equ LVM_GETBKIMAGEW +ELSE + LVM_GETBKIMAGE equ LVM_GETBKIMAGEA +ENDIF + +LVKF_ALT equ 0001h +LVKF_CONTROL equ 0002h +LVKF_SHIFT equ 0004h +LVN_ODCACHEHINT equ LVN_FIRST - 13 +LVN_ODFINDITEMA equ LVN_FIRST - 52 +LVN_ODFINDITEMW equ LVN_FIRST - 79 +IFDEF __UNICODE__ + LVN_ODFINDITEM equ LVN_ODFINDITEMW +ELSE + LVN_ODFINDITEM equ LVN_ODFINDITEMA +ENDIF + +LVN_ITEMACTIVATE equ LVN_FIRST - 14 +LVN_ODSTATECHANGED equ LVN_FIRST - 15 +LVN_HOTTRACK equ LVN_FIRST - 21 +LVN_MARQUEEBEGIN equ LVN_FIRST - 56 +LVGIT_UNFOLDED equ 0001h +LVN_GETINFOTIPA equ LVN_FIRST - 57 +LVN_GETINFOTIPW equ LVN_FIRST - 58 +IFDEF __UNICODE__ + LVN_GETINFOTIP equ LVN_GETINFOTIPW +ELSE + LVN_GETINFOTIP equ LVN_GETINFOTIPA +ENDIF + +TVS_RTLREADING equ 00000040h +TVS_NOTOOLTIPS equ 00000080h +TVS_CHECKBOXES equ 00000100h +TVS_TRACKSELECT equ 00000200h +TVS_SINGLEEXPAND equ 00000400h +TVS_INFOTIP equ 00000800h +TVS_FULLROWSELECT equ 00001000h +TVS_NOSCROLL equ 00002000h +TVS_NONEVENHEIGHT equ 00004000h +TVS_NOHSCROLL equ 00008000h +TVIF_INTEGRAL equ 0080h +TVIS_EXPANDPARTIAL equ 0080h +TVE_EXPANDPARTIAL equ 00004000h +TVGN_LASTVISIBLE equ 000Ah +TVM_ENDEDITLABELNOW equ TV_FIRST + 22 +TVM_SETTOOLTIPS equ TV_FIRST + 24 +TVM_GETTOOLTIPS equ TV_FIRST + 25 +TVM_SETINSERTMARK equ TV_FIRST + 26 +TVM_SETUNICODEFORMAT equ CCM_SETUNICODEFORMAT +TVM_GETUNICODEFORMAT equ CCM_GETUNICODEFORMAT +TVM_SETITEMHEIGHT equ TV_FIRST + 27 +TVM_GETITEMHEIGHT equ TV_FIRST + 28 +TVM_SETBKCOLOR equ TV_FIRST + 29 +TVM_SETTEXTCOLOR equ TV_FIRST + 30 +TVM_GETBKCOLOR equ TV_FIRST + 31 +TVM_GETTEXTCOLOR equ TV_FIRST + 32 +TVM_SETSCROLLTIME equ TV_FIRST + 33 +TVM_GETSCROLLTIME equ TV_FIRST + 34 +TVM_SETINSERTMARKCOLOR equ TV_FIRST + 37 +TVM_GETINSERTMARKCOLOR equ TV_FIRST + 38 +TVM_GETITEMSTATE equ TV_FIRST + 39 +TVM_SETLINECOLOR equ TV_FIRST + 40 +TVM_GETLINECOLOR equ TV_FIRST + 41 +TVN_SINGLEEXPAND equ TVN_FIRST - 15 +TVNRET_DEFAULT equ 0 +TVNRET_SKIPOLD equ 1 +TVNRET_SKIPNEW equ 2 +TVCDRF_NOIMAGES equ 00010000h +CBEIF_TEXT equ 00000001h +CBEIF_IMAGE equ 00000002h +CBEIF_SELECTEDIMAGE equ 00000004h +CBEIF_OVERLAY equ 00000008h +CBEIF_INDENT equ 00000010h +CBEIF_LPARAM equ 00000020h +CBEIF_DI_SETITEM equ 10000000h +CBEM_INSERTITEMA equ WM_USER + 1 +CBEM_INSERTITEMW equ WM_USER + 11 +IFDEF __UNICODE__ + CBEM_INSERTITEM equ CBEM_INSERTITEMW +ELSE + CBEM_INSERTITEM equ CBEM_INSERTITEMA +ENDIF + +CBEM_SETIMAGELIST equ WM_USER + 2 +CBEM_GETIMAGELIST equ WM_USER + 3 +CBEM_GETITEMA equ WM_USER + 4 +CBEM_GETITEMW equ WM_USER + 13 +IFDEF __UNICODE__ + CBEM_GETITEM equ CBEM_GETITEMW +ELSE + CBEM_GETITEM equ CBEM_GETITEMA +ENDIF + +CBEM_SETITEMA equ WM_USER + 5 +CBEM_SETITEMW equ WM_USER + 12 +IFDEF __UNICODE__ + CBEM_SETITEM equ CBEM_SETITEMW +ELSE + CBEM_SETITEM equ CBEM_SETITEMA +ENDIF + +CBEM_DELETEITEM equ CB_DELETESTRING +CBEM_GETCOMBOCONTROL equ WM_USER + 6 +CBEM_GETEDITCONTROL equ WM_USER + 7 +CBEM_SETEXSTYLE equ WM_USER + 8 +CBEM_SETEXTENDEDSTYLE equ WM_USER + 14 +CBEM_GETEXSTYLE equ WM_USER + 9 +CBEM_GETEXTENDEDSTYLE equ WM_USER + 9 +CBEM_SETUNICODEFORMAT equ CCM_SETUNICODEFORMAT +CBEM_GETUNICODEFORMAT equ CCM_GETUNICODEFORMAT +CBEM_HASEDITCHANGED equ WM_USER + 10 +CBES_EX_NOEDITIMAGE equ 00000001h +CBES_EX_NOEDITIMAGEINDENT equ 00000002h +CBES_EX_PATHWORDBREAKPROC equ 00000004h +CBES_EX_NOSIZELIMIT equ 00000008h +CBES_EX_CASESENSITIVE equ 00000010h +CBEN_GETDISPINFOA equ CBEN_FIRST - 0 +CBEN_GETDISPINFOW equ CBEN_FIRST - 7 +IFDEF __UNICODE__ + CBEN_GETDISPINFO equ CBEN_GETDISPINFOW +ELSE + CBEN_GETDISPINFO equ CBEN_GETDISPINFOA +ENDIF + +CBEN_INSERTITEM equ CBEN_FIRST - 1 +CBEN_DELETEITEM equ CBEN_FIRST - 2 +CBEN_BEGINEDIT equ CBEN_FIRST - 4 +CBEN_ENDEDITA equ CBEN_FIRST - 5 +CBEN_ENDEDITW equ CBEN_FIRST - 6 +IFDEF __UNICODE__ + CBEN_ENDEDIT equ CBEN_ENDEDITW +ELSE + CBEN_ENDEDIT equ CBEN_ENDEDITA +ENDIF + +CBEN_DRAGBEGINA equ CBEN_FIRST - 8 +CBEN_DRAGBEGINW equ CBEN_FIRST - 9 +IFDEF __UNICODE__ + CBEN_DRAGBEGIN equ CBEN_DRAGBEGINW +ELSE + CBEN_DRAGBEGIN equ CBEN_DRAGBEGINA +ENDIF + +CBENF_KILLFOCUS equ 1 +CBENF_RETURN equ 2 +CBENF_ESCAPE equ 3 +CBENF_DROPDOWN equ 4 +CBEMAXSTRLEN equ 260 +TCS_SCROLLOPPOSITE equ 00000001h +TCS_BOTTOM equ 00000002h +TCS_MULTISELECT equ 00000004h +TCS_HOTTRACK equ 00000040h +TCS_VERTICAL equ 00000080h +TCS_EX_FLATSEPARATORS equ 00000001h +TCS_EX_REGISTERDROP equ 00000002h +TCIF_STATE equ 0010h +TCIS_BUTTONPRESSED equ 0001h +TCIS_HIGHLIGHTED equ 0002h +TCM_SETMINTABWIDTH equ TCM_FIRST + 49 +TCM_DESELECTALL equ TCM_FIRST + 50 +TCM_HIGHLIGHTITEM equ TCM_FIRST + 51 +TCM_SETEXTENDEDSTYLE equ TCM_FIRST + 52 +TCM_GETEXTENDEDSTYLE equ TCM_FIRST + 53 +TCM_SETUNICODEFORMAT equ CCM_SETUNICODEFORMAT +TCM_GETUNICODEFORMAT equ CCM_GETUNICODEFORMAT +TCN_GETOBJECT equ TCN_FIRST - 3 +ACS_TIMER equ 0008h +MCSC_BACKGROUND equ 0 ; the background color (between months) +MCSC_TEXT equ 1 ; the dates +MCSC_TITLEBK equ 2 ; background of the title +MCSC_TITLETEXT equ 3 +MCSC_MONTHBK equ 4 ; background within the month cal +MCSC_TRAILINGTEXT equ 5 ; the text color of header & trailing days +MCHT_TITLE equ 00010000h +MCHT_CALENDAR equ 00020000h +MCHT_TODAYLINK equ 00030000h +MCHT_NEXT equ 01000000h +MCHT_PREV equ 02000000h +MCHT_NOWHERE equ 00000000h +MCHT_TITLEBK equ MCHT_TITLE +MCHT_TITLEMONTH equ MCHT_TITLE OR 0001h +MCHT_TITLEYEAR equ MCHT_TITLE OR 0002h +MCHT_TITLEBTNNEXT equ MCHT_TITLE OR MCHT_NEXT OR 0003h +MCHT_TITLEBTNPREV equ MCHT_TITLE OR MCHT_PREV OR 0003h +MCHT_CALENDARBK equ MCHT_CALENDAR +MCHT_CALENDARDATE equ MCHT_CALENDAR OR 1 +MCHT_CALENDARDATENEXT equ MCHT_CALENDARDATE OR MCHT_NEXT +MCHT_CALENDARDATEPREV equ MCHT_CALENDARDATE OR MCHT_PREV +MCHT_CALENDARDAY equ MCHT_CALENDAR OR 2 +MCHT_CALENDARWEEKNUM equ MCHT_CALENDAR OR 3 +MCM_SETUNICODEFORMAT equ CCM_SETUNICODEFORMAT +MCM_GETUNICODEFORMAT equ CCM_GETUNICODEFORMAT +MCN_SELCHANGE equ MCN_FIRST + 1 +MCN_GETDAYSTATE equ MCN_FIRST + 3 +MCN_SELECT equ MCN_FIRST + 4 +GMR_VISIBLE equ 0 +GMR_DAYSTATE equ 1 +DTS_DWORDDATEFORMAT equ 0004h +DTS_SHORTDATECENTURYFORMAT equ 000Ch +DTN_DATETIMECHANGE equ DTN_FIRST + 1 ; the systemtime has changed +DTN_USERSTRINGA equ DTN_FIRST + 2 ; the user has entered a string +DTN_USERSTRINGW equ DTN_FIRST + 15 +IFDEF __UNICODE__ + DTN_USERSTRING equ DTN_USERSTRINGW +ELSE + DTN_USERSTRING equ DTN_USERSTRINGA +ENDIF + +DTN_WMKEYDOWNA equ DTN_FIRST + 3 ; modify keydown on app format field (X) +DTN_WMKEYDOWNW equ DTN_FIRST + 16 +IFDEF __UNICODE__ + DTN_WMKEYDOWN equ DTN_WMKEYDOWNW +ELSE + DTN_WMKEYDOWN equ DTN_WMKEYDOWNA +ENDIF + +DTN_FORMATA equ DTN_FIRST + 4 ; query display for app format field (X) +DTN_FORMATW equ DTN_FIRST + 17 +IFDEF __UNICODE__ + DTN_FORMAT equ DTN_FORMATW +ELSE + DTN_FORMAT equ DTN_FORMATA +ENDIF + +DTN_FORMATQUERYA equ DTN_FIRST + 5 ; query formatting info for app format field (X) +DTN_FORMATQUERYW equ DTN_FIRST + 18 +IFDEF __UNICODE__ + DTN_FORMATQUERY equ DTN_FORMATQUERYW +ELSE + DTN_FORMATQUERY equ DTN_FORMATQUERYA +ENDIF + +DTN_DROPDOWN equ DTN_FIRST + 6 ; MonthCal has dropped down +DTN_CLOSEUP equ DTN_FIRST + 7 ; MonthCal is popping up +GDTR_MIN equ 0001h +GDTR_MAX equ 0002h +GDT_ERROR equ -1 +GDT_VALID equ 0 +GDT_NONE equ 1 +IPM_CLEARADDRESS equ WM_USER + 100 ; no parameters +IPM_SETADDRESS equ WM_USER + 101 ; lparam equ TCP/IP address +IPM_GETADDRESS equ WM_USER + 102 ; lresult equ # of non black fields. lparam equ LPDWORD for TCP/IP address +IPM_SETRANGE equ WM_USER + 103 ; wparam equ field, lparam equ range +IPM_SETFOCUS equ WM_USER + 104 ; wparam equ field +IPM_ISBLANK equ WM_USER + 105 ; no parameters +IPN_FIELDCHANGED equ IPN_FIRST +PGS_VERT equ 00000000h +PGS_HORZ equ 00000001h +PGS_AUTOSCROLL equ 00000002h +PGS_DRAGNDROP equ 00000004h +PGF_INVISIBLE equ 0 ; Scroll button is not visible +PGF_NORMAL equ 1 ; Scroll button is in normal state +PGF_GRAYED equ 2 ; Scroll button is in grayed state +PGF_DEPRESSED equ 4 ; Scroll button is in depressed state +PGF_HOT equ 8 ; Scroll button is in hot state +PGB_TOPORLEFT equ 0 +PGB_BOTTOMORRIGHT equ 1 +PGN_SCROLL equ PGN_FIRST - 1 +PGF_SCROLLUP equ 1 +PGF_SCROLLDOWN equ 2 +PGF_SCROLLLEFT equ 4 +PGF_SCROLLRIGHT equ 8 +PGK_SHIFT equ 1 +PGK_CONTROL equ 2 +PGK_MENU equ 4 +PGN_CALCSIZE equ PGN_FIRST - 2 +PGF_CALCWIDTH equ 1 +PGF_CALCHEIGHT equ 2 +NFS_EDIT equ 0001h +NFS_STATIC equ 0002h +NFS_LISTCOMBO equ 0004h +NFS_BUTTON equ 0008h +NFS_ALL equ 0010h +NFS_USEFONTASSOC equ 0020h +TME_NONCLIENT equ 00000010h +WSB_PROP_CYVSCROLL equ 00000001h +WSB_PROP_CXHSCROLL equ 00000002h +WSB_PROP_CYHSCROLL equ 00000004h +WSB_PROP_CXVSCROLL equ 00000008h +WSB_PROP_CXHTHUMB equ 00000010h +WSB_PROP_CYVTHUMB equ 00000020h +WSB_PROP_VBKGCOLOR equ 00000040h +WSB_PROP_HBKGCOLOR equ 00000080h +WSB_PROP_VSTYLE equ 00000100h +WSB_PROP_HSTYLE equ 00000200h +WSB_PROP_WINSTYLE equ 00000400h +WSB_PROP_PALETTE equ 00000800h +WSB_PROP_MASK equ 00000FFFh +FSB_FLAT_MODE equ 2 +FSB_ENCARTA_MODE equ 1 +FSB_REGULAR_MODE equ 0 + +; ------------------------------------------------- +; DatePicker constants contributed by Edgar Hansen +; ------------------------------------------------- +MCM_FIRST equ 4096 +MCM_GETCOLOR equ MCM_FIRST + 11 +MCM_GETCURSEL equ MCM_FIRST + 1 +MCM_GETFIRSTDAYOFWEEK equ MCM_FIRST + 16 +MCM_GETMAXSELCOUNT equ MCM_FIRST + 3 +MCM_GETMAXTODAYWIDTH equ MCM_FIRST + 21 +MCM_GETMINREQRECT equ MCM_FIRST + 9 +MCM_GETMONTHDELTA equ MCM_FIRST + 19 +MCM_GETMONTHRANGE equ MCM_FIRST + 7 +MCM_GETRANGE equ MCM_FIRST + 17 +MCM_GETSELRANGE equ MCM_FIRST + 5 +MCM_GETTODAY equ MCM_FIRST + 13 +MCM_HITTEST equ MCM_FIRST + 14 +MCM_SETCOLOR equ MCM_FIRST + 10 +MCM_SETCURSEL equ MCM_FIRST + 2 +MCM_SETDAYSTATE equ MCM_FIRST + 8 +MCM_SETFIRSTDAYOFWEEK equ MCM_FIRST + 15 +MCM_SETMAXSELCOUNT equ MCM_FIRST + 4 +MCM_SETMONTHDELTA equ MCM_FIRST + 20 +MCM_SETRANGE equ MCM_FIRST + 18 +MCM_SETSELRANGE equ MCM_FIRST + 6 +MCM_SETTODAY equ MCM_FIRST + 12 +MCS_DAYSTATE equ 1 +MCS_MULTISELECT equ 2 +MCS_NOTODAY equ 16 +MCS_NOTODAY_PRE_IE4 equ 8 +MCS_NOTODAYCIRCLE equ 8 +MCS_WEEKNUMBERS equ 4 + +DTM_GETMCCOLOR equ DTM_FIRST + 7 +DTM_GETMCFONT equ DTM_FIRST + 10 +DTM_GETMONTHCAL equ DTM_FIRST + 8 +DTM_GETRANGE equ DTM_FIRST + 3 +DTM_SETFORMATA equ DTM_FIRST + 5 +DTM_SETFORMATW equ DTM_FIRST + 50 + +IFDEF __UNICODE__ + DTM_SETFORMAT equ DTM_SETFORMATW +ELSE + DTM_SETFORMAT equ DTM_SETFORMATA +ENDIF + +DTM_SETMCCOLOR equ DTM_FIRST + 6 +DTM_SETMCFONT equ DTM_FIRST + 9 +DTM_SETRANGE equ DTM_FIRST + 4 +DTS_APPCANPARSE equ 16 +DTS_LONGDATEFORMAT equ 4 +DTS_RIGHTALIGN equ 32 +DTS_SHORTDATEFORMAT equ 0 +DTS_SHOWNONE equ 2 +DTS_TIMEFORMAT equ 9 +DTS_UPDOWN equ 1 + +; ------------------------------------- +; Additional common control structures +; ------------------------------------- + +NMTOOLTIPSCREATED STRUCT + hdr NMHDR <> + hwndToolTips DWORD ? +NMTOOLTIPSCREATED ENDS + +NMKEY STRUCT + hdr NMHDR <> + nVKey DWORD ? + uFlags DWORD ? +NMKEY ENDS + +_ch equ + +NMBYTE STRUCT + hdr NMHDR <> + _ch DWORD ? + dwItemPrev DWORD ? + dwItemNext DWORD ? +NMBYTE ENDS + +NMCUSTOMDRAW STRUCT + hdr NMHDR <> + dwDrawStage DWORD ? + hdc DWORD ? + rc RECT <> + dwItemSpec DWORD ? + uItemState DWORD ? + lItemlParam DWORD ? +NMCUSTOMDRAW ENDS + +NMTTCUSTOMDRAW STRUCT + nmcd NMCUSTOMDRAW <> + uDrawFlags DWORD ? +NMTTCUSTOMDRAW ENDS + +_cx equ + +IMAGELISTDRADWORDS STRUCT + cbSize DWORD ? + himl DWORD ? + i DWORD ? + hdcDst DWORD ? + x DWORD ? + y DWORD ? + _cx DWORD ? + cy DWORD ? + xBitmap DWORD ? + yBitmap DWORD ? + rgbBk DWORD ? + rgbFg DWORD ? + fStyle DWORD ? + dwRop DWORD ? +IMAGELISTDRADWORDS ENDS + +HDITEMA STRUCT + _mask DWORD ? + cxy DWORD ? + pszText DWORD ? + hbm DWORD ? + cchTextMax DWORD ? + fmt DWORD ? + lParam DWORD ? + iImage DWORD ? + iOrder DWORD ? + _type DWORD ? + pvFilter DWORD ? + state DWORD ? +HDITEMA ENDS + +HDITEMW STRUCT + _mask DWORD ? + cxy DWORD ? + pszText DWORD ? + hbm DWORD ? + cchTextMax DWORD ? + fmt DWORD ? + lParam DWORD ? + iImage DWORD ? + iOrder DWORD ? + _type DWORD ? + pvFilter DWORD ? + state DWORD ? +HDITEMW ENDS + +IFDEF __UNICODE__ + HDITEM equ +ELSE + HDITEM equ +ENDIF + +HDHITTESTINFO STRUCT + pt POINT <> + flags DWORD ? + iItem DWORD ? +HDHITTESTINFO ENDS + +NMHDDISPINFOA STRUCT + hdr NMHDR <> + iItem DWORD ? + _mask DWORD ? + pszText DWORD ? + cchTextMax DWORD ? + iImage DWORD ? + lParam DWORD ? +NMHDDISPINFOA ENDS + +NMHDDISPINFOW STRUCT + hdr NMHDR <> + iItem DWORD ? + _mask DWORD ? + pszText DWORD ? + cchTextMax DWORD ? + iImage DWORD ? + lParam DWORD ? +NMHDDISPINFOW ENDS + +IFDEF __UNICODE__ + NMHDDISPINFO equ NMHDDISPINFOW + LPNMHDDISPINFO typedef ptr NMHDDISPINFOW +ELSE + NMHDDISPINFO equ NMHDDISPINFOA + LPNMHDDISPINFO typedef ptr NMHDDISPINFOA +ENDIF + +NMHDFILTERBTNCLICK STRUCT + hdr NMHDR <> + iItem DWORD ? + rc RECT <> +NMHDFILTERBTNCLICK ENDS + +TBINSERTMARK STRUCT + iButton DWORD ? + dwFlags DWORD ? +TBINSERTMARK ENDS + +NMTBHOTITEM STRUCT + hdr NMHDR <> + idOld DWORD ? + idNew DWORD ? + dwFlags DWORD ? +NMTBHOTITEM ENDS + +NMTBSAVE STRUCT + hdr NMHDR <> + pData DWORD ? + pCurrent DWORD ? + cbData DWORD ? + iItem DWORD ? + cButtons DWORD ? + tbButton TBBUTTON <> +NMTBSAVE ENDS + +NMTBRESTORE STRUCT + hdr NMHDR <> + pData DWORD ? + pCurrent DWORD ? + cbData DWORD ? + iItem DWORD ? + cButtons DWORD ? + cbBytesPerRecord DWORD ? + tbButton TBBUTTON <> +NMTBRESTORE ENDS + +NMTBGETINFOTIPA STRUCT + hdr NMHDR <> + pszText DWORD ? + cchTextMax DWORD ? + iItem DWORD ? + lParam DWORD ? +NMTBGETINFOTIPA ENDS + +NMTBGETINFOTIPW STRUCT + hdr NMHDR <> + pszText DWORD ? + cchTextMax DWORD ? + iItem DWORD ? + lParam DWORD ? +NMTBGETINFOTIPW ENDS + +IFDEF __UNICODE__ + NMTBGETINFOTIP equ + LPNMTBGETINFOTIP typedef ptr NMTBGETINFOTIPW +ELSE + NMTBGETINFOTIP equ + LPNMTBGETINFOTIP typedef ptr NMTBGETINFOTIPA +ENDIF + +NMTBDISPINFOW STRUCT + hdr NMHDR <> + dwMask DWORD ? + idCommand DWORD ? + lParam DWORD ? + iImage DWORD ? + pszText DWORD ? + cchText DWORD ? +NMTBDISPINFOW ENDS + +NMTBDISPINFOA STRUCT + hdr NMHDR <> + dwMask DWORD ? + idCommand DWORD ? + lParam DWORD ? + iImage DWORD ? + pszText DWORD ? + cchText DWORD ? +NMTBDISPINFOA ENDS + +IFDEF __UNICODE__ + NMTBDISPINFO equ +ELSE + NMTBDISPINFO equ +ENDIF + +LPNMTBDISPINFO typedef ptr NMTBDISPINFO + +NMTOOLBARA STRUCT + hdr NMHDR <> + iItem DWORD ? + tbButton TBBUTTON <> + cchText DWORD ? + pszText DWORD ? + rcButton RECT <> +NMTOOLBARA ENDS + +NMTOOLBARW STRUCT + hdr NMHDR <> + iItem DWORD ? + tbButton TBBUTTON <> + cchText DWORD ? + pszText DWORD ? + rcButton RECT <> +NMTOOLBARW ENDS + +IFDEF __UNICODE__ + NMTOOLBAR equ + TBNOTIFY equ + TBNOTIFYW equ + LPNMTOOLBAR typedef ptr NMTOOLBARW + LPTBNOTIFY equ LPNMTOOLBAR +ELSE + NMTOOLBAR equ + TBNOTIFY equ + TBNOTIFYA equ + LPNMTOOLBAR typedef ptr NMTOOLBARA + LPTBNOTIFY equ NMTOOLBARA +ENDIF + +NMREBARCHEVRON STRUCT + hdr NMHDR <> + uBand DWORD ? + wID DWORD ? + lParam DWORD ? + rc RECT <> + lParamNM DWORD ? +NMREBARCHEVRON ENDS + +TTHITTESTINFOW STRUCT + hwnd DWORD ? + pt POINT <> + ti TTTOOLINFO <> +TTHITTESTINFOW ENDS + +TTHITTESTINFOA STRUCT + hwnd DWORD ? + pt POINT <> + ti TTTOOLINFO <> +TTHITTESTINFOA ENDS + +IFDEF __UNICODE__ + TTHITTESTINFO equ +ELSE + TTHITTESTINFO equ +ENDIF + + ; NMUPDOWN STRUCT + ; hdr NMHDR <> + ; iPos DWORD ? + ; iDelta DWORD ? + ; NMUPDOWN ENDS + +PBRANGE STRUCT + iLow DWORD ? + iHigh DWORD ? +PBRANGE ENDS + +NMITEMACTIVATE STRUCT + hdr NMHDR <> + iItem DWORD ? + iSubItem DWORD ? + uNewState DWORD ? + uOldState DWORD ? + uChanged DWORD ? + ptAction POINT <> + lParam DWORD ? + uKeyFlags DWORD ? +NMITEMACTIVATE ENDS + +NMLVCUSTOMDRAW STRUCT + nmcd NMCUSTOMDRAW <> + clrText DWORD ? + clrTextBk DWORD ? + iSubItem DWORD ? +NMLVCUSTOMDRAW ENDS + +NMLVCACHEHDWORD STRUCT + hdr NMHDR <> + iFrom DWORD ? + iTo DWORD ? +NMLVCACHEHDWORD ENDS + + ; NMLVFINDITEMA STRUCT + ; hdr NMHDR <> + ; iStart DWORD ? + ; lvfi LVFINDINFOA <> + ; NMLVFINDITEMA ENDS + +NMLVFINDITEM equ + +NMLVODSTATECHANGE STRUCT + hdr NMHDR <> + iFrom DWORD ? + iTo DWORD ? + uNewState DWORD ? + uOldState DWORD ? +NMLVODSTATECHANGE ENDS + +NMLVDISPINFOA STRUCT + hdr NMHDR <> + item LVITEMA <> +NMLVDISPINFOA ENDS + +NMLVDISPINFOW STRUCT + hdr NMHDR <> + item LVITEMW <> +NMLVDISPINFOW ENDS + +IFDEF __UNICODE__ + NMLVDISPINFO equ +ELSE + NMLVDISPINFO equ +ENDIF + +NMLVGETINFOTIPW STRUCT + hdr NMHDR <> + dwFlags DWORD ? + pszText DWORD ? + cchTextMax DWORD ? + iItem DWORD ? + iSubItem DWORD ? + lParam DWORD ? +NMLVGETINFOTIPW ENDS + +NMLVGETINFOTIPA STRUCT + hdr NMHDR <> + dwFlags DWORD ? + pszText DWORD ? + cchTextMax DWORD ? + iItem DWORD ? + iSubItem DWORD ? + lParam DWORD ? +NMLVGETINFOTIPA ENDS + +IFDEF __UNICODE__ + NMLVGETINFOTIP equ +ELSE + NMLVGETINFOTIP equ +ENDIF + +NMTVCUSTOMDRAW STRUCT + nmcd NMCUSTOMDRAW <> + clrText DWORD ? + clrTextBk DWORD ? + iLevel DWORD ? +NMTVCUSTOMDRAW ENDS + +NMTVGETINFOTIPW STRUCT + hdr NMHDR <> + pszText DWORD ? + cchTextMax DWORD ? + hItem DWORD ? + lParam DWORD ? +NMTVGETINFOTIPW ENDS + +NMTVGETINFOTIPA STRUCT + hdr NMHDR <> + pszText DWORD ? + cchTextMax DWORD ? + hItem DWORD ? + lParam DWORD ? +NMTVGETINFOTIPA ENDS + +IFDEF __UNICODE__ + NMTVGETINFOTIP equ +ELSE + NMTVGETINFOTIP equ +ENDIF + +COMBOBOXEXITEMA STRUCT + _mask DWORD ? + iItem DWORD ? + pszText DWORD ? + cchTextMax DWORD ? + iImage DWORD ? + iSelectedImage DWORD ? + iOverlay DWORD ? + iIndent DWORD ? + lParam DWORD ? +COMBOBOXEXITEMA ENDS + +COMBOBOXEXITEMW STRUCT + _mask DWORD ? + iItem DWORD ? + pszText DWORD ? + cchTextMax DWORD ? + iImage DWORD ? + iSelectedImage DWORD ? + iOverlay DWORD ? + iIndent DWORD ? + lParam DWORD ? +COMBOBOXEXITEMW ENDS + +IFDEF __UNICODE__ + COMBOBOXEXITEM equ +ELSE + COMBOBOXEXITEM equ +ENDIF + +NMCOMBOBOXEXW STRUCT + hdr NMHDR <> + ceItem COMBOBOXEXITEM <> +NMCOMBOBOXEXW ENDS + +NMCOMBOBOXEXA STRUCT + hdr NMHDR <> + ceItem COMBOBOXEXITEM <> +NMCOMBOBOXEXA ENDS + +IFDEF __UNICODE__ + NMCOMBOBOXEX equ +ELSE + NMCOMBOBOXEX equ +ENDIF + +MCHITTESTINFO STRUCT + cbSize DWORD ? + pt POINT <> + uHit DWORD ? + _st SYSTEMTIME <> +MCHITTESTINFO ENDS + +NMSELCHANGE STRUCT + nmhdr NMHDR <> + stSelStart SYSTEMTIME <> + stSelEnd SYSTEMTIME <> +NMSELCHANGE ENDS + + ; NMDAYSTATE STRUCT + ; nmhdr NMHDR <> + ; stStart SYSTEMTIME <> + ; cDayState DWORD ? + ; prgDayState LPMONTHDAYSTATE <> + ; NMDAYSTATE ENDS + +NMDATETIMECHANGE STRUCT + nmhdr NMHDR <> + dwFlags DWORD ? + _st SYSTEMTIME <> +NMDATETIMECHANGE ENDS + +NMDATETIMESTRINGW STRUCT + nmhdr NMHDR <> + pszUserString DWORD ? + _st SYSTEMTIME <> + dwFlags DWORD ? +NMDATETIMESTRINGW ENDS + +NMDATETIMESTRINGA STRUCT + nmhdr NMHDR <> + pszUserString DWORD ? + _st SYSTEMTIME <> + dwFlags DWORD ? +NMDATETIMESTRINGA ENDS + +IFDEF __UNICODE__ + NMDATETIMESTRING equ +ELSE + NMDATETIMESTRING equ +ENDIF + +NMDATETIMEWMKEYDOWNW STRUCT + nmhdr NMHDR <> + nVirtKey DWORD ? + pszFormat DWORD ? + _st SYSTEMTIME <> +NMDATETIMEWMKEYDOWNW ENDS + +NMDATETIMEWMKEYDOWNA STRUCT + nmhdr NMHDR <> + nVirtKey DWORD ? + pszFormat DWORD ? + _st SYSTEMTIME <> +NMDATETIMEWMKEYDOWNA ENDS + +IFDEF __UNICODE__ + NMDATETIMEWMKEYDOWN equ +ELSE + NMDATETIMEWMKEYDOWN equ +ENDIF + +NMDATETIMEFORMATA STRUCT + nmhdr NMHDR <> + pszFormat DWORD ? + _st SYSTEMTIME <> + pszDisplay DWORD ? + szDisplay BYTE 64 dup(?) +NMDATETIMEFORMATA ENDS + +NMDATETIMEFORMATW STRUCT + nmhdr NMHDR <> + pszFormat DWORD ? + _st SYSTEMTIME <> + pszDisplay DWORD ? + szDisplay WORD 64 dup(?) +NMDATETIMEFORMATW ENDS + +IFDEF __UNICODE__ + NMDATETIMEFORMAT equ +ELSE + NMDATETIMEFORMAT equ +ENDIF + + ; NMDATETIMEFORMATQUERYA STRUCT + ; nmhdr NMHDR <> + ; pszFormat DWORD ? + ; szMax SIZE <> ; naming conflict + ; NMDATETIMEFORMATQUERYA ENDS + +NMDWORDESS STRUCT + hdr NMHDR <> + iField DWORD ? + iValue DWORD ? +NMDWORDESS ENDS + +NMPGSCROLL STRUCT + hdr NMHDR <> + fwKeys WORD ? + rcParent RECT <> + iDir DWORD ? + iXpos DWORD ? + iYpos DWORD ? + iScroll DWORD ? +NMPGSCROLL ENDS + +NMPGCALCSIZE STRUCT + hdr NMHDR <> + dwFlag DWORD ? + iWidth DWORD ? + iHeight DWORD ? +NMPGCALCSIZE ENDS + +TBBUTTONINFOA STRUCT + cbSize DWORD ? + dwMask DWORD ? + idCommand DWORD ? + iImage DWORD ? + fsState BYTE ? + fsStyle BYTE ? + lx WORD ? + lParam DWORD ? + pszText DWORD ? + cchText DWORD ? +TBBUTTONINFOA ends + +TBBUTTONINFOW STRUCT + cbSize DWORD ? + dwMask DWORD ? + idCommand DWORD ? + iImage DWORD ? + fsState BYTE ? + fsStyle BYTE ? + lx WORD ? + lParam DWORD ? + pszText DWORD ? + cchText DWORD ? +TBBUTTONINFOW ends + +IFDEF __UNICODE__ + TBBUTTONINFO equ TBBUTTONINFOW + LPTBBUTTONINFO typedef ptr TBBUTTONINFOW +ELSE + TBBUTTONINFO equ TBBUTTONINFOA + LPTBBUTTONINFO typedef ptr TBBUTTONINFOA +ENDIF + +; 垂垂垂垂垂垂垂垂垂垂垂垂垂垂垂垂垂垂垂垂垂垂垂垂垂垂垂垂垂垂垂垂垂垂垂垂? +; server 2003 extra equates +; 垂垂垂垂垂垂垂垂垂垂垂垂垂垂垂垂垂垂垂垂垂垂垂垂垂垂垂垂垂垂垂垂垂垂垂垂? + +ICC_STANDARD_CLASSES equ 00004000h +ICC_LINK_CLASS equ 00008000h +ECM_FIRST equ 1500h +BCM_FIRST equ 1600h +CBM_FIRST equ 1700h +CCM_SETWINDOWTHEME equ (CCM_FIRST + 0Bh) +CCM_DPISCALE equ (CCM_FIRST + 0Ch) +NM_THEMECHANGED equ (NM_FIRST-22) +BCN_FIRST equ (0-1250) +BCN_LAST equ (0-1350) +CDIS_SHOWKEYBOARDCUES equ 0200h +ILC_MIRROR equ 00002000h +ILC_PERITEMMIRROR equ 00008000h +ILD_PRESERVEALPHA equ 00001000h +ILD_SCALE equ 00002000h +ILD_DPISCALE equ 00004000h +ILS_NORMAL equ 00000000h +ILS_GLOW equ 00000001h +ILS_SHADOW equ 00000002h +ILS_SATURATE equ 00000004h +ILS_ALPHA equ 00000008h +ILP_NORMAL equ 0 +ILP_DOWNLEVEL equ 1 +HDS_FLAT equ 0200h +LPHD_TEXTFILTER equ LPHD_TEXTFILTERA +LPHDTEXTFILTER equ LPHD_TEXTFILTERA +LPHDITEM equ LPHDITEMA +HDITEM_V1_SIZE equ HDITEMA_V1_SIZE +HDF_SORTUP equ 0400h +HDF_SORTDOWN equ 0200h +HHT_ONFILTER equ 0010h +HHT_ONFILTERBUTTON equ 0020h +HDN_ITEMCHANGEDA equ (HDN_FIRST-1) +HDN_ITEMCLICKA equ (HDN_FIRST-2) +HD_NOTIFYA equ NMHEADERA +HD_NOTIFYW equ NMHEADERW +IFDEF __UNICODE__ + HD_NOTIFY equ HD_NOTIFYW +ELSE + HD_NOTIFY equ HD_NOTIFYA +ENDIF + +TBSTYLE_EX_DOUBLEBUFFER equ 00000080h +TBCDRF_NOBACKGROUND equ 00400000h +TBMF_PAD equ 00000001h +TBMF_BARPAD equ 00000002h +TBMF_BUTTONSPACING equ 00000004h +TB_GETMETRICS equ (WM_USER + 101) +TB_SETMETRICS equ (WM_USER + 102) +TB_SETWINDOWTHEME equ CCM_SETWINDOWTHEME +HICF_LMOUSE equ 00000080h +HICF_TOGGLEDROPDOWN equ 00000100h +RBBS_TOPALIGN equ 00000800h +REBARBANDINFO_V3_SIZE equ REBARBANDINFOA_V3_SIZE +RBSTR_CHANGERECT equ 0001h +RB_GETBANDMARGINS equ (WM_USER + 40) +RB_SETWINDOWTHEME equ CCM_SETWINDOWTHEME +RBN_AUTOBREAK equ (RBN_FIRST - 22) +RBAB_AUTOSIZE equ 0001h +RBAB_ADDBAND equ 0002h +TTTOOLINFO_V1_SIZE equ TTTOOLINFOA_V1_SIZE +TTS_CLOSE equ 80h +TTF_PARSELINKS equ 1000h +TTM_POPUP equ (WM_USER + 34) +TTM_GETTITLE equ (WM_USER + 35) +TTM_SETWINDOWTHEME equ CCM_SETWINDOWTHEME +LPHITTESTINFOW equ LPTTHITTESTINFOW +LPHITTESTINFOA equ LPTTHITTESTINFOA +LPTTHITTESTINFOA equ LPHITTESTINFOA +LPTTHITTESTINFOW equ LPHITTESTINFOW +LPHITTESTINFO equ LPTTHITTESTINFO +TTN_LINKCLICK equ (TTN_FIRST - 3) +TOOLTIPTEXTW equ NMTTDISPINFOW +TOOLTIPTEXTA equ NMTTDISPINFOA +LPTOOLTIPTEXTA equ LPNMTTDISPINFOA +LPTOOLTIPTEXTW equ LPNMTTDISPINFOW +tagNMTTDISPINFOA equ tagTOOLTIPTEXTA +LPNMTTDISPINFOA equ LPTOOLTIPTEXTA +tagNMTTDISPINFOW equ tagTOOLTIPTEXTW +LPNMTTDISPINFOW equ LPTOOLTIPTEXTW +LPTOOLTIPTEXT equ LPNMTTDISPINFO +NMTTDISPINFO_V1_SIZE equ NMTTDISPINFOA_V1_SIZE +CreateStatusWindow equ CreateStatusWindowA +DrawStatusText equ DrawStatusTextA +TBS_DOWNISLEFT equ 0400h +LPNM_UPDOWN equ LPNMUPDOWN +LPNMUPDOWN equ LPNM_UPDOWN +PBS_MARQUEE equ 08h +PBM_SETMARQUEE equ (WM_USER+10) +LVIF_GROUPID equ 0100h +LVIF_COLUMNS equ 0200h +LVIS_GLOW equ 0010h +I_INDENTCALLBACK equ (-1) +tagLVITEMA equ _LV_ITEMA +tagLVITEMW equ _LV_ITEMW +;; LVITEMW equ LV_ITEMW +I_GROUPIDCALLBACK equ (-1) +I_GROUPIDNONE equ (-2) +LPLVITEM equ LPLVITEMA +LVITEM_V1_SIZE equ LVITEMA_V1_SIZE +I_COLUMNSCALLBACK equ (-1) +LV_FINDINFOA equ LVFINDINFOA +LV_FINDINFOW equ LVFINDINFOW +tagLVFINDINFOA equ _LV_FINDINFOA +tagLVFINDINFOW equ _LV_FINDINFOW +LVFINDINFOW equ LV_FINDINFOW +tagLVHITTESTINFO equ _LV_HITTESTINFO +LV_COLUMNA equ LVCOLUMNA +LV_COLUMNW equ LVCOLUMNW +tagLVCOLUMNA equ _LV_COLUMNA +LVCOLUMNA equ LV_COLUMNA +tagLVCOLUMNW equ _LV_COLUMNW +LVCOLUMNW equ LV_COLUMNW +LPLVCOLUMN equ LPLVCOLUMNA +LVCOLUMN_V1_SIZE equ LVCOLUMNA_V1_SIZE +LVS_EX_BORDERSELECT equ 00008000h +LVS_EX_DOUBLEBUFFER equ 00010000h +LVS_EX_HIDELABELS equ 00020000h +LVS_EX_SINGLEROW equ 00040000h +LVS_EX_SNAPTOGRID equ 00080000h +LVS_EX_SIMPLESELECT equ 00100000h +LV_MAX_WORKAREAS equ 16 +LVM_SETWORKAREAS equ (LVM_FIRST + 65) +LVM_GETWORKAREAS equ (LVM_FIRST + 70) +LVM_GETNUMBEROFWORKAREAS equ (LVM_FIRST + 73) +LVM_SORTITEMSEX equ (LVM_FIRST + 81) +LVBKIF_FLAG_TILEOFFSET equ 00000100h +LVBKIF_TYPE_WATERMARK equ 10000000h +LVM_SETSELECTEDCOLUMN equ (LVM_FIRST + 140) +LVM_SETTILEWIDTH equ (LVM_FIRST + 141) +LV_VIEW_ICON equ 0000h +LV_VIEW_DETAILS equ 0001h +LV_VIEW_SMALLICON equ 0002h +LV_VIEW_LIST equ 0003h +LV_VIEW_TILE equ 0004h +LV_VIEW_MAX equ 0004h +LVM_SETVIEW equ (LVM_FIRST + 142) +LVGF_NONE equ 00000000h +LVGF_HEADER equ 00000001h +LVGF_FOOTER equ 00000002h +LVGF_STATE equ 00000004h +LVGF_ALIGN equ 00000008h +LVGF_GROUPID equ 00000010h +LVGS_NORMAL equ 00000000h +LVGS_COLLAPSED equ 00000001h +LVGS_HIDDEN equ 00000002h +LVGA_HEADER_LEFT equ 00000001h +LVGA_HEADER_CENTER equ 00000002h +LVGA_HEADER_RIGHT equ 00000004h +LVGA_FOOTER_LEFT equ 00000008h +LVGA_FOOTER_CENTER equ 00000010h +LVGA_FOOTER_RIGHT equ 00000020h +LVM_INSERTGROUP equ (LVM_FIRST + 145) +LVM_SETGROUPINFO equ (LVM_FIRST + 147) +LVM_GETGROUPINFO equ (LVM_FIRST + 149) +LVM_REMOVEGROUP equ (LVM_FIRST + 150) +LVM_MOVEGROUP equ (LVM_FIRST + 151) +LVM_MOVEITEMTOGROUP equ (LVM_FIRST + 154) +LVGMF_NONE equ 00000000h +LVGMF_BORDERSIZE equ 00000001h +LVGMF_BORDERCOLOR equ 00000002h +LVGMF_TEXTCOLOR equ 00000004h +LVM_SETGROUPMETRICS equ (LVM_FIRST + 155) +LVM_GETGROUPMETRICS equ (LVM_FIRST + 156) +LVM_ENABLEGROUPVIEW equ (LVM_FIRST + 157) +LVM_SORTGROUPS equ (LVM_FIRST + 158) +LVM_INSERTGROUPSORTED equ (LVM_FIRST + 159) +LVM_REMOVEALLGROUPS equ (LVM_FIRST + 160) +LVM_HASGROUP equ (LVM_FIRST + 161) +LVTVIF_AUTOSIZE equ 00000000h +LVTVIF_FIXEDWIDTH equ 00000001h +LVTVIF_FIXEDHEIGHT equ 00000002h +LVTVIF_FIXEDSIZE equ 00000003h +LVTVIM_TILESIZE equ 00000001h +LVTVIM_COLUMNS equ 00000002h +LVTVIM_LABELMARGIN equ 00000004h +LVM_SETTILEVIEWINFO equ (LVM_FIRST + 162) +LVM_GETTILEVIEWINFO equ (LVM_FIRST + 163) +LVM_SETTILEINFO equ (LVM_FIRST + 164) +LVM_GETTILEINFO equ (LVM_FIRST + 165) +LVIM_AFTER equ 00000001h +LVM_SETINSERTMARK equ (LVM_FIRST + 166) +LVM_GETINSERTMARK equ (LVM_FIRST + 167) +LVM_INSERTMARKHITTEST equ (LVM_FIRST + 168) +LVM_GETINSERTMARKRECT equ (LVM_FIRST + 169) +LVM_SETINSERTMARKCOLOR equ (LVM_FIRST + 170) +LVM_GETINSERTMARKCOLOR equ (LVM_FIRST + 171) +LVM_SETINFOTIP equ (LVM_FIRST + 173) +LVM_GETSELECTEDCOLUMN equ (LVM_FIRST + 174) +LVM_ISGROUPVIEWENABLED equ (LVM_FIRST + 175) +LVM_GETOUTLINECOLOR equ (LVM_FIRST + 176) +LVM_SETOUTLINECOLOR equ (LVM_FIRST + 177) +LVM_CANCELEDITLABEL equ (LVM_FIRST + 179) +LVM_MAPINDEXTOID equ (LVM_FIRST + 180) +LVM_MAPIDTOINDEX equ (LVM_FIRST + 181) +LPLVBKIMAGE equ LPLVBKIMAGEA +LPNM_LISTVIEW equ LPNMLISTVIEW +tagNMLISTVIEW equ _NM_LISTVIEW +LPNMLISTVIEW equ LPNM_LISTVIEW +LVCDI_ITEM equ 00000000h +LVCDI_GROUP equ 00000001h +LVCDRF_NOSELECT equ 00010000h +LVCDRF_NOGROUPFRAME equ 00020000h +LPNM_CACHEHINT equ LPNMLVCACHEHINT +PNM_CACHEHINT equ LPNMLVCACHEHINT +NM_CACHEHINT equ NMLVCACHEHINT +PNM_FINDITEMA equ LPNMLVFINDITEMA +LPNM_FINDITEMA equ LPNMLVFINDITEMA +NM_FINDITEMA equ NMLVFINDITEMA +PNM_FINDITEMW equ LPNMLVFINDITEMW +LPNM_FINDITEMW equ LPNMLVFINDITEMW +NM_FINDITEMW equ NMLVFINDITEMW +PNM_FINDITEM equ PNM_FINDITEMA +LPNM_FINDITEM equ LPNM_FINDITEMA +NM_FINDITEM equ NM_FINDITEMA +LPNMLVFINDITEM equ LPNMLVFINDITEMA +PNM_ODSTATECHANGE equ LPNMLVODSTATECHANGE +LPNM_ODSTATECHANGE equ LPNMLVODSTATECHANGE +NM_ODSTATECHANGE equ NMLVODSTATECHANGE +LV_DISPINFOA equ NMLVDISPINFOA +LV_DISPINFOW equ NMLVDISPINFOW +tagLVDISPINFO equ _LV_DISPINFO +tagLVDISPINFOW equ _LV_DISPINFOW +tagLVKEYDOWN equ _LV_KEYDOWN +LPNMLVGETINFOTIP equ LPNMLVGETINFOTIPA +LVN_BEGINSCROLL equ (LVN_FIRST-80) +LVN_ENDSCROLL equ (LVN_FIRST-81) +LPTV_ITEMW equ LPTVITEMW +LPTV_ITEMA equ LPTVITEMA +;; TV_ITEMW equ TVITEMW +;; TV_ITEMA equ TVITEMA +tagTVITEMA equ _TV_ITEMA +LPTVITEMA equ LPTV_ITEMA +tagTVITEMW equ _TV_ITEMW +;; TVITEMW equ TV_ITEMW +LPTVITEMW equ LPTV_ITEMW +LPTV_ITEM equ LPTVITEM +LPTV_INSERTSTRUCTA equ LPTVINSERTSTRUCTA +LPTV_INSERTSTRUCTW equ LPTVINSERTSTRUCTW +TV_INSERTSTRUCTA equ TVINSERTSTRUCTA +TV_INSERTSTRUCTW equ TVINSERTSTRUCTW +tagTVINSERTSTRUCTA equ _TV_INSERTSTRUCTA +TVINSERTSTRUCTA equ TV_INSERTSTRUCTA +LPTVINSERTSTRUCTA equ LPTV_INSERTSTRUCTA +tagTVINSERTSTRUCTW equ _TV_INSERTSTRUCTW +TVINSERTSTRUCTW equ TV_INSERTSTRUCTW +LPTVINSERTSTRUCTW equ LPTV_INSERTSTRUCTW +LPTV_INSERTSTRUCT equ LPTVINSERTSTRUCT +TVINSERTSTRUCT_V1_SIZE equ TVINSERTSTRUCTA_V1_SIZE +TVSI_NOSINGLEEXPAND equ 8000h +LPTV_HITTESTINFO equ LPTVHITTESTINFO +tagTVHITTESTINFO equ _TV_HITTESTINFO +LPTVHITTESTINFO equ LPTV_HITTESTINFO +TVM_MAPACCIDTOHTREEITEM equ (TV_FIRST + 42) +TVM_MAPHTREEITEMTOACCID equ (TV_FIRST + 43) +LPTV_SORTCB equ LPTVSORTCB +tagTVSORTCB equ _TV_SORTCB +LPTVSORTCB equ LPTV_SORTCB +LPNM_TREEVIEWA equ LPNMTREEVIEWA +LPNM_TREEVIEWW equ LPNMTREEVIEWW +NM_TREEVIEWW equ NMTREEVIEWW +NM_TREEVIEWA equ NMTREEVIEWA +tagNMTREEVIEWA equ _NM_TREEVIEWA +tagNMTREEVIEWW equ _NM_TREEVIEWW +NMTREEVIEWA equ NM_TREEVIEWA +NMTREEVIEWW equ NM_TREEVIEWW +LPNMTREEVIEWA equ LPNM_TREEVIEWA +LPNMTREEVIEWW equ LPNM_TREEVIEWW +LPNM_TREEVIEW equ LPNMTREEVIEW +TV_DISPINFOA equ NMTVDISPINFOA +TV_DISPINFOW equ NMTVDISPINFOW +tagTVDISPINFOA equ _TV_DISPINFOA +NMTVDISPINFOA equ TV_DISPINFOA +tagTVDISPINFOW equ _TV_DISPINFOW +NMTVDISPINFOW equ TV_DISPINFOW +LPNMTVDISPINFO equ LPNMTVDISPINFOA +LPNMTVGETINFOTIP equ LPNMTVGETINFOTIPA +PCOMBOBOXEXITEM equ PCOMBOBOXEXITEMA +PCCOMBOBOXEXITEM equ PCCOMBOBOXEXITEMA +CBEM_SETWINDOWTHEME equ CCM_SETWINDOWTHEME +PNMCOMBOBOXEX equ PNMCOMBOBOXEXA +NMCBEDRAGBEGIN equ NMCBEDRAGBEGINA +LPNMCBEDRAGBEGIN equ LPNMCBEDRAGBEGINA +PNMCBEDRAGBEGIN equ PNMCBEDRAGBEGINA +NMCBEENDEDIT equ NMCBEENDEDITA +LPNMCBEENDEDIT equ LPNMCBEENDEDITA +PNMCBEENDEDIT equ PNMCBEENDEDITA +TC_ITEMHEADERA equ TCITEMHEADERA +TC_ITEMHEADERW equ TCITEMHEADERW +tagTCITEMHEADERA equ _TC_ITEMHEADERA +TCITEMHEADERA equ TC_ITEMHEADERA +TCITEMHEADERW equ TC_ITEMHEADERW +LPTCITEMHEADER equ LPTCITEMHEADERA +TC_ITEMA equ TCITEMA +TC_ITEMW equ TCITEMW +TCITEMA equ TC_ITEMA +tagTCITEMW equ _TC_ITEMW +TCITEMW equ TC_ITEMW +LPTCITEM equ LPTCITEMA +LPTC_HITTESTINFO equ LPTCHITTESTINFO +tagTCHITTESTINFO equ _TC_HITTESTINFO +LPTCHITTESTINFO equ LPTC_HITTESTINFO +LPNMDATETIMESTRING equ LPNMDATETIMESTRINGA +LPNMDATETIMEWMKEYDOWN equ LPNMDATETIMEWMKEYDOWNA +LPNMDATETIMEFORMAT equ LPNMDATETIMEFORMATA +LPNMDATETIMEFORMATQUERY equ LPNMDATETIMEFORMATQUERYA +WC_PAGESCROLLER equ WC_PAGESCROLLERA +PGM_SETCHILD equ (PGM_FIRST + 1) +PGM_RECALCSIZE equ (PGM_FIRST + 2) +PGM_FORWARDMOUSE equ (PGM_FIRST + 3) +PGM_SETBKCOLOR equ (PGM_FIRST + 4) +PGM_GETBKCOLOR equ (PGM_FIRST + 5) +PGM_SETBORDER equ (PGM_FIRST + 6) +PGM_GETBORDER equ (PGM_FIRST + 7) +PGM_SETPOS equ (PGM_FIRST + 8) +PGM_GETPOS equ (PGM_FIRST + 9) +PGM_SETBUTTONSIZE equ (PGM_FIRST + 10) +PGM_GETBUTTONSIZE equ (PGM_FIRST + 11) +PGM_GETBUTTONSTATE equ (PGM_FIRST + 12) +PGM_GETDROPTARGET equ CCM_GETDROPTARGET +PGN_HOTITEMCHANGE equ (PGN_FIRST-3) +BUTTON_IMAGELIST_ALIGN_LEFT equ 0 +BUTTON_IMAGELIST_ALIGN_RIGHT equ 1 +BUTTON_IMAGELIST_ALIGN_TOP equ 2 +BUTTON_IMAGELIST_ALIGN_BOTTOM equ 3 +BUTTON_IMAGELIST_ALIGN_CENTER equ 4 +BCM_GETIDEALSIZE equ (BCM_FIRST + 0001h) +BCM_SETIMAGELIST equ (BCM_FIRST + 0002h) +BCM_GETIMAGELIST equ (BCM_FIRST + 0003h) +BCM_SETTEXTMARGIN equ (BCM_FIRST + 0004h) +BCM_GETTEXTMARGIN equ (BCM_FIRST + 0005h) +BCN_HOTITEMCHANGE equ (BCN_FIRST + 0001h) +BST_HOT equ 0200h +EM_SETCUEBANNER equ (ECM_FIRST + 1) +EM_GETCUEBANNER equ (ECM_FIRST + 2) +EM_SHOWBALLOONTIP equ (ECM_FIRST + 3) +EM_HIDEBALLOONTIP equ (ECM_FIRST + 4) +CB_SETMINVISIBLE equ (CBM_FIRST + 1) +CB_GETMINVISIBLE equ (CBM_FIRST + 2) +INVALID_LINK_INDEX equ (-1) +MAX_LINKID_TEXT equ 48 +LWS_TRANSPARENT equ 0001h +LWS_IGNORERETURN equ 0002h +LIF_ITEMINDEX equ 00000001h +LIF_STATE equ 00000002h +LIF_ITEMID equ 00000004h +LIF_URL equ 00000008h +LIS_FOCUSED equ 00000001h +LIS_ENABLED equ 00000002h +LIS_VISITED equ 00000004h +LM_HITTEST equ (WM_USER+300h) +LM_GETIDEALHEIGHT equ (WM_USER+301h) +LM_SETITEM equ (WM_USER+302h) +LM_GETITEM equ (WM_USER+303h) +DA_LAST equ (7FFFFFFFh) +DPA_APPEND equ (7fffffffh) +DPA_ERR equ (-1) +DSA_APPEND equ (7fffffffh) +DSA_ERR equ (-1) +DPAS_SORTED equ 0001h +DPAS_INSERTBEFORE equ 0002h +DPAS_INSERTAFTER equ 0004h + +TB_SETINDENT equ WM_USER + 47 +TB_SETIMAGELIST equ WM_USER + 48 +TB_GETIMAGELIST equ WM_USER + 49 +TB_LOADIMAGES equ WM_USER + 50 +TB_GETRECT equ WM_USER + 51 +TB_SETHOTIMAGELIST equ WM_USER + 52 +TB_GETHOTIMAGELIST equ WM_USER + 53 +TB_SETDISABLEDIMAGELIST equ WM_USER + 54 +TB_GETDISABLEDIMAGELIST equ WM_USER + 55 +TB_GETBUTTONSIZE equ WM_USER + 58 +TB_SETBUTTONWIDTH equ WM_USER + 59 +TB_SETMAXTEXTROWS equ WM_USER + 60 +TB_GETTEXTROWS equ WM_USER + 61 +TB_GETOBJECT equ WM_USER + 62 +TB_GETHOTITEM equ WM_USER + 71 +TB_SETHOTITEM equ WM_USER + 72 +TB_SETANCHORHIGHLIGHT equ WM_USER + 73 +TB_GETANCHORHIGHLIGHT equ WM_USER + 74 +TB_MAPACCELERATORA equ WM_USER + 78 +TB_MAPACCELERATORW equ WM_USER + 90 +IFDEF __UNICODE__ + TB_MAPACCELERATOR equ TB_MAPACCELERATORW +ELSE + TB_MAPACCELERATOR equ TB_MAPACCELERATORA +ENDIF + +LVS_EX_GRIDLINES equ 00000001h +LVS_EX_SUBITEMIMAGES equ 00000002h +LVS_EX_CHECKBOXES equ 00000004h +LVS_EX_TRACKSELECT equ 00000008h +LVS_EX_HEADERDRAGDROP equ 00000010h +LVS_EX_FULLROWSELECT equ 00000020h +LVS_EX_ONECLICKACTIVATE equ 00000040h +LVS_EX_TWOCLICKACTIVATE equ 00000080h +LVS_EX_FLATSB equ 00000100h +LVS_EX_REGIONAL equ 00000200h +LVS_EX_INFOTIP equ 00000400h +LVS_EX_UNDERLINEHOT equ 00000800h +LVS_EX_UNDERLINECOLD equ 00001000h +LVS_EX_MULTIWORKAREAS equ 00002000h +LVS_EX_LABELTIP equ 00004000h + +LVCF_IMAGE equ 0010h +LVCF_ORDER equ 0020h +LVCFMT_IMAGE equ 0800h +LVCFMT_BITMAP_ON_RIGHT equ 1000h +LVCFMT_COL_HAS_IMAGES equ 8000h + +LVM_GETHEADER equ LVM_FIRST + 31 +LVM_SETEXTENDEDLISTVIEWSTYLE equ LVM_FIRST + 54 +LVM_GETEXTENDEDLISTVIEWSTYLE equ LVM_FIRST + 55 + +HDM_SETIMAGELIST equ HDM_FIRST + 8 +HDM_GETIMAGELIST equ HDM_FIRST + 9 + +CDRF_DOERASE equ 00000008h +CDRF_SKIPPOSTPAINT equ 00000100h +CDIS_NEARHOT equ 0400h +CDIS_OTHERSIDEHOT equ 0800h +CDIS_DROPHILITED equ 1000h +ILC_ORIGINALSIZE equ 00010000h +ILC_HIGHQUALITYSCALE equ 00020000h +ILD_ASYNC equ 00008000h +ILGT_NORMAL equ 00000000h +ILGT_ASYNC equ 00000001h +HDS_CHECKBOXES equ 0400h +HDS_NOSIZING equ 0800h +HDS_OVERFLOW equ 1000h +HDFT_ISDATE equ 0002h +HDI_STATE equ 0200h +HDF_CHECKBOX equ 0040h +HDF_CHECKED equ 0080h +HDF_FIXEDWIDTH equ 0100h +HDF_SPLITBUTTON equ 1000000h +HDIS_FOCUSED equ 00000001h +HHT_ONITEMSTATEICON equ 1000h +HHT_ONDROPDOWN equ 2000h +HHT_ONOVERFLOW equ 4000h +HDSIL_NORMAL equ 0 +HDSIL_STATE equ 1 +HDM_TRANSLATEACCELERATOR equ CCM_TRANSLATEACCELERATOR +HDM_GETITEMDROPDOWNRECT equ HDM_FIRST+25 +HDM_GETOVERFLOWRECT equ HDM_FIRST+26 +HDM_GETFOCUSEDITEM equ HDM_FIRST+27 +HDM_SETFOCUSEDITEM equ HDM_FIRST+28 +HDN_BEGINFILTEREDIT equ HDN_FIRST-14 +HDN_ENDFILTEREDIT equ HDN_FIRST-15 +HDN_ITEMSTATEICONCLICK equ HDN_FIRST-16 +HDN_ITEMKEYDOWN equ HDN_FIRST-17 +HDN_DROPDOWN equ HDN_FIRST-18 +HDN_OVERFLOWCLICK equ HDN_FIRST-19 +TBCDRF_USECDCOLORS equ 00800000h +IDB_HIST_NORMAL equ 12 +IDB_HIST_HOT equ 13 +IDB_HIST_DISABLED equ 14 +IDB_HIST_PRESSED equ 15 +TB_SETPRESSEDIMAGELIST equ WM_USER + 104 +TB_GETPRESSEDIMAGELIST equ WM_USER + 105 +RBBIM_CHEVRONLOCATION equ 00001000h +RBBIM_CHEVRONSTATE equ 00002000h +RB_SETEXTENDEDSTYLE equ WM_USER + 41 +RB_GETEXTENDEDSTYLE equ WM_USER + 42 +RB_SETBANDWIDTH equ WM_USER + 44 +RBN_SPLITTERDRAG equ RBN_FIRST - 11 +RBHT_SPLITTER equ 0010h +TTS_USEVISUALSTYLE equ 100h +TTI_INFO_LARGE equ 4 +TTI_WARNING_LARGE equ 5 +TTI_ERROR_LARGE equ 6 +TTM_UPDATE equ WM_USER + 29 +TBS_NOTIFYBEFOREMOVE equ 0800h +TBS_TRANSPARENTBKGND equ 1000h +PBS_SMOOTHREVERSE equ 10h +PBM_GETSTEP equ WM_USER+13 +PBM_GETBKCOLOR equ WM_USER+14 +PBM_GETBARCOLOR equ WM_USER+15 +PBM_SETSTATE equ WM_USER+16 +PBM_GETSTATE equ WM_USER+17 +PBST_NORMAL equ 0001h +PBST_ERROR equ 0002h +PBST_PAUSED equ 0003h +LWS_NOPREFIX equ 0004h +LWS_USEVISUALSTYLE equ 0008h +LWS_USECUSTOMTEXT equ 0010h +LWS_RIGHT equ 0020h +LIS_HOTTRACK equ 00000008h +LIS_DEFAULTCOLORS equ 00000010h +LVSIL_GROUPHEADER equ 3 +LVIF_COLFMT equ 00010000h +LVNI_VISIBLEORDER equ 0010h +LVNI_PREVIOUS equ 0020h +LVNI_VISIBLEONLY equ 0040h +LVNI_SAMEGROUPONLY equ 0080h +LVNI_DIRECTIONMASK equ LVNI_ABOVE or LVNI_BELOW or LVNI_TOLEFT or LVNI_TORIGHT +LVFI_SUBSTRING equ 0004h +LVHT_EX_GROUP_HEADER equ 10000000h +LVHT_EX_GROUP_FOOTER equ 20000000h +LVHT_EX_GROUP_COLLAPSE equ 40000000h +LVHT_EX_GROUP_BACKGROUND equ 80000000h +LVHT_EX_GROUP_STATEICON equ 01000000h +LVHT_EX_GROUP_SUBSETLINK equ 02000000h +LVHT_EX_GROUP equ LVHT_EX_GROUP_BACKGROUND or LVHT_EX_GROUP_COLLAPSE or LVHT_EX_GROUP_FOOTER or LVHT_EX_GROUP_HEADER or LVHT_EX_GROUP_STATEICON or LVHT_EX_GROUP_SUBSETLINK +LVHT_EX_ONCONTENTS equ 04000000h +LVHT_EX_FOOTER equ 08000000h +LVCF_MINWIDTH equ 0040h +LVCF_DEFAULTWIDTH equ 0080h +LVCF_IDEALWIDTH equ 0100h +LVCFMT_FIXED_WIDTH equ 00100h +LVCFMT_NO_DPI_SCALE equ 40000h +LVCFMT_FIXED_RATIO equ 80000h +LVCFMT_LINE_BREAK equ 100000h +LVCFMT_FILL equ 200000h +LVCFMT_WRAP equ 400000h +LVCFMT_NO_TITLE equ 800000h +LVCFMT_TILE_PLACEMENTMASK equ LVCFMT_LINE_BREAK or LVCFMT_FILL +LVCFMT_SPLITBUTTON equ 1000000h +LVS_EX_JUSTIFYCOLUMNS equ 00200000h +LVS_EX_TRANSPARENTBKGND equ 00400000h +LVS_EX_TRANSPARENTSHADOWTEXT equ 00800000h +LVS_EX_AUTOAUTOARRANGE equ 01000000h +LVS_EX_HEADERINALLVIEWS equ 02000000h +LVS_EX_AUTOCHECKSELECT equ 08000000h +LVS_EX_AUTOSIZECOLUMNS equ 10000000h +LVS_EX_COLUMNSNAPPOINTS equ 40000000h +LVS_EX_COLUMNOVERFLOW equ 80000000h +LVBKIF_FLAG_ALPHABLEND equ 20000000h +LVM_GETVIEW equ LVM_FIRST + 143 +LVGF_SUBTITLE equ 00000100h +LVGF_TASK equ 00000200h +LVGF_DESCRIPTIONTOP equ 00000400h +LVGF_DESCRIPTIONBOTTOM equ 00000800h +LVGF_TITLEIMAGE equ 00001000h +LVGF_EXTENDEDIMAGE equ 00002000h +LVGF_ITEMS equ 00004000h +LVGF_SUBSET equ 00008000h +LVGF_SUBSETITEMS equ 00010000h +LVGS_NOHEADER equ 00000004h +LVGS_COLLAPSIBLE equ 00000008h +LVGS_FOCUSED equ 00000010h +LVGS_SELECTED equ 00000020h +LVGS_SUBSETED equ 00000040h +LVGS_SUBSETLINKFOCUSED equ 00000080h +LVM_GETGROUPCOUNT equ LVM_FIRST + 152 +LVM_GETGROUPINFOBYINDEX equ LVM_FIRST + 153 +LVGGR_GROUP equ 0 +LVGGR_HEADER equ 1 +LVGGR_LABEL equ 2 +LVGGR_SUBSETLINK equ 3 +LVM_GETGROUPRECT equ LVM_FIRST + 98 +LVM_GETGROUPSTATE equ LVM_FIRST + 92 +LVM_GETFOCUSEDGROUP equ LVM_FIRST + 93 +LVTVIF_EXTENDED equ 00000004h +LVM_ISITEMVISIBLE equ LVM_FIRST + 182 +LVM_GETEMPTYTEXT equ LVM_FIRST + 204 +LVM_GETFOOTERRECT equ LVM_FIRST + 205 +LVFF_ITEMCOUNT equ 00000001h +LVM_GETFOOTERINFO equ LVM_FIRST + 206 +LVM_GETFOOTERITEMRECT equ LVM_FIRST + 207 +LVFIF_TEXT equ 00000001h +LVFIF_STATE equ 00000002h +LVFIS_FOCUSED equ 0001h +LVM_GETFOOTERITEM equ LVM_FIRST + 208 +LVM_GETITEMINDEXRECT equ LVM_FIRST + 209 +LVM_SETITEMINDEXSTATE equ LVM_FIRST + 210 +LVM_GETNEXTITEMINDEX equ LVM_FIRST + 211 +LVNSCH_DEFAULT equ -1 +LVNSCH_ERROR equ -2 +LVNSCH_IGNORE equ -3 +LVN_INCREMENTALSEARCHA equ LVN_FIRST-62 +LVN_INCREMENTALSEARCHW equ LVN_FIRST-63 +IFDEF __UNICODE__ + LVN_INCREMENTALSEARCH equ LVN_INCREMENTALSEARCHW +ELSE + LVN_INCREMENTALSEARCH equ LVN_INCREMENTALSEARCHA +ENDIF + +LVN_COLUMNDROPDOWN equ LVN_FIRST-64 +LVN_COLUMNOVERFLOWCLICK equ LVN_FIRST-66 +LVN_LINKCLICK equ LVN_FIRST-84 +EMF_CENTERED equ 00000001h +TVS_EX_MULTISELECT equ 0002h +TVS_EX_DOUBLEBUFFER equ 0004h +TVS_EX_NOINDENTSTATE equ 0008h +TVS_EX_RICHTOOLTIP equ 0010h +TVS_EX_AUTOHSCROLL equ 0020h +TVS_EX_FADEINOUTEXPANDOS equ 0040h +TVS_EX_PARTIALCHECKBOXES equ 0080h +TVS_EX_EXCLUSIONCHECKBOXES equ 0100h +TVS_EX_DIMMEDCHECKBOXES equ 0200h +TVS_EX_DRAWIMAGEASYNC equ 0400h +TVIF_STATEEX equ 0100h +TVIF_EXPANDEDIMAGE equ 0200h +TVIS_EX_FLAT equ 0001h +TVIS_EX_DISABLED equ 0002h +TVIS_EX_ALL equ 0002h +TVGN_NEXTSELECTED equ 000Bh +TVM_SETEXTENDEDSTYLE equ TV_FIRST + 44 +TVM_GETEXTENDEDSTYLE equ TV_FIRST + 45 +TVM_SETAUTOSCROLLINFO equ TV_FIRST + 59 +TVM_GETSELECTEDCOUNT equ TV_FIRST + 70 +TVM_SHOWINFOTIP equ TV_FIRST + 71 +TVM_GETITEMPARTRECT equ TV_FIRST + 72 +TVN_ITEMCHANGINGA equ TVN_FIRST-16 +TVN_ITEMCHANGINGW equ TVN_FIRST-17 +IFDEF __UNICODE__ + TVN_ITEMCHANGING equ TVN_ITEMCHANGINGW +ELSE + TVN_ITEMCHANGING equ TVN_ITEMCHANGINGA +ENDIF + +TVN_ITEMCHANGEDA equ TVN_FIRST-18 +TVN_ITEMCHANGEDW equ TVN_FIRST-19 +IFDEF __UNICODE__ + TVN_ITEMCHANGED equ TVN_ITEMCHANGEDW +ELSE + TVN_ITEMCHANGED equ TVN_ITEMCHANGEDA +ENDIF + +TVN_ASYNCDRAW equ TVN_FIRST-20 +CBES_EX_TEXTENDELLIPSIS equ 00000020h +TCS_RIGHT equ 0002h +MCHT_CALENDARCONTROL equ 00100000h +MCHT_CALENDARDATEMIN equ MCHT_CALENDAR or 0004h +MCHT_CALENDARDATEMAX equ MCHT_CALENDAR or 0005h +MCMV_MONTH equ 0 +MCMV_YEAR equ 1 +MCMV_DECADE equ 2 +MCMV_CENTURY equ 3 +MCMV_MAX equ MCMV_CENTURY +MCM_GETCURRENTVIEW equ MCM_FIRST + 22 +MCM_GETCALENDARCOUNT equ MCM_FIRST + 23 +MCGIP_CALENDARCONTROL equ 0 +MCGIP_NEXT equ 1 +MCGIP_PREV equ 2 +MCGIP_FOOTER equ 3 +MCGIP_CALENDAR equ 4 +MCGIP_CALENDARHEADER equ 5 +MCGIP_CALENDARBODY equ 6 +MCGIP_CALENDARROW equ 7 +MCGIP_CALENDARCELL equ 8 +MCGIF_DATE equ 00000001h +MCGIF_RECT equ 00000002h +MCGIF_NAME equ 00000004h +MCM_GETCALENDARGRIDINFO equ MCM_FIRST + 24 +MCM_GETCALID equ MCM_FIRST + 27 +MCM_SETCALID equ MCM_FIRST + 28 +MCM_SIZERECTTOMIN equ MCM_FIRST + 29 +MCM_SETCALENDARBORDER equ MCM_FIRST + 30 +MCM_GETCALENDARBORDER equ MCM_FIRST + 31 +MCM_SETCURRENTVIEW equ MCM_FIRST + 32 +MCN_VIEWCHANGE equ MCN_FIRST - 4 +MCS_NOTRAILINGDATES equ 0040h +MCS_SHORTDAYSOFWEEK equ 0080h +MCS_NOSELCHANGEONNAV equ 0100h +DTM_SETMCSTYLE equ DTM_FIRST + 11 +DTM_GETMCSTYLE equ DTM_FIRST + 12 +DTM_CLOSEMONTHCAL equ DTM_FIRST + 13 +DTM_GETDATETIMEPICKERINFO equ DTM_FIRST + 14 +DTM_GETIDEALSIZE equ DTM_FIRST + 15 +BST_DROPDOWNPUSHED equ 0400h +BS_SPLITBUTTON equ 0000000Ch +BS_DEFSPLITBUTTON equ 0000000Dh +BS_COMMANDLINK equ 0000000Eh +BS_DEFCOMMANDLINK equ 0000000Fh +BCSIF_GLYPH equ 0001h +BCSIF_IMAGE equ 0002h +BCSIF_STYLE equ 0004h +BCSIF_SIZE equ 0008h +BCSS_NOSPLIT equ 0001h +BCSS_STRETCH equ 0002h +BCSS_ALIGNLEFT equ 0004h +BCSS_IMAGE equ 0008h +BCM_SETDROPDOWNSTATE equ BCM_FIRST + 0006h +BCM_SETSPLITINFO equ BCM_FIRST + 0007h +BCM_GETSPLITINFO equ BCM_FIRST + 0008h +BCM_SETNOTE equ BCM_FIRST + 0009h +BCM_GETNOTE equ BCM_FIRST + 000Ah +BCM_GETNOTELENGTH equ BCM_FIRST + 000Bh +BCM_SETSHIELD equ BCM_FIRST + 000Ch +BCCL_NOGLYPH equ HIMAGELIST -1 +BCN_DROPDOWN equ BCN_FIRST + 0002h +DA_ERR equ -1 +DPAM_SORTED equ 00000001h +DPAM_NORMAL equ 00000002h +DPAM_UNION equ 00000004h +DPAM_INTERSECT equ 00000008h +DPAMM_MERGE equ 1 +DPAMM_DELETE equ 2 +DPAMM_INSERT equ 3 + +; Extra structures + +NMOBJECTNOTIFY STRUCT + hdr NMHDR <> + iItem DWORD ? + piid DWORD ? + pObject DWORD ? + hResult DWORD ? + dwFlags DWORD ? +NMOBJECTNOTIFY ENDS + +NMCHAR STRUCT + hdr NMHDR <> + _ch DWORD ? + dwItemPrev DWORD ? + dwItemNext DWORD ? +NMCHAR ENDS + +NMCUSTOMTEXT STRUCT + hdr NMHDR <> + hDC DWORD ? + lpString DWORD ? + nCount DWORD ? + lpRect RECT <> + uFormat DWORD ? + fLink DWORD ? +NMCUSTOMTEXT ENDS + +NMCUSTOMSPLITRECTINFO STRUCT + hdr NMHDR <> + rcClient RECT <> + rcButton RECT <> + rcSplit RECT <> +NMCUSTOMSPLITRECTINFO ENDS + +IMAGELISTDRAWPARAMS STRUCT + cbSize DWORD ? + himl DWORD ? + i DWORD ? + hdcDst DWORD ? + x DWORD ? + y DWORD ? + _cx DWORD ? + cy DWORD ? + xBitmap DWORD ? + yBitmap DWORD ? + rgbBk DWORD ? + rgbFg DWORD ? + fStyle DWORD ? + dwRop DWORD ? + fState DWORD ? + Frame DWORD ? + crEffect DWORD ? +IMAGELISTDRAWPARAMS ENDS + +HD_TEXTFILTERA STRUCT + pszText DWORD ? + cchTextMax DWORD ? +HD_TEXTFILTERA ENDS + +HD_TEXTFILTERW STRUCT + pszText DWORD ? + cchTextMax DWORD ? +HD_TEXTFILTERW ENDS + +IFDEF __UNICODE__ + HD_TEXTFILTER equ +ELSE + HD_TEXTFILTER equ +ENDIF + +HDLAYOUT STRUCT + prc DWORD ? + pwpos DWORD ? +HDLAYOUT ENDS + +NMTBCUSTOMDRAW STRUCT + nmcd NMCUSTOMDRAW <> + hbrMonoDither DWORD ? + hbrLines DWORD ? + hpenLines DWORD ? + clrText DWORD ? + clrMark DWORD ? + clrTextHighlight DWORD ? + clrBtnFace DWORD ? + clrBtnHighlight DWORD ? + clrHighlightHotTrack DWORD ? + rcText RECT <> + nStringBkMode DWORD ? + nHLStringBkMode DWORD ? + iListGap DWORD ? +NMTBCUSTOMDRAW ENDS + +TBMETRICS STRUCT + cbSize DWORD ? + dwMask DWORD ? + cxPad DWORD ? + cyPad DWORD ? + cxBarPad DWORD ? + cyBarPad DWORD ? + cxButtonSpacing DWORD ? + cyButtonSpacing DWORD ? +TBMETRICS ENDS + +NMREBARSPLITTER STRUCT + hdr NMHDR <> + rcSizing RECT <> +NMREBARSPLITTER ENDS + +NMREBARAUTOBREAK STRUCT + hdr NMHDR <> + uBand DWORD ? + wID DWORD ? + lParam DWORD ? + uMsg DWORD ? + fStyleCurrent DWORD ? + fAutoBreak DWORD ? +NMREBARAUTOBREAK ENDS + +TTGETTITLE STRUCT + dwSize DWORD ? + uTitleBitmap DWORD ? + cch DWORD ? + pszTitle DWORD ? +TTGETTITLE ENDS + +NMTRBTHUMBPOSCHANGING STRUCT + hdr NMHDR <> + dwPos DWORD ? + nReason DWORD ? +NMTRBTHUMBPOSCHANGING ENDS + +LVBKIMAGEA STRUCT + ulFlags DWORD ? + hbm DWORD ? + pszImage DWORD ? + cchImageMax DWORD ? + xOffsetPercent DWORD ? + yOffsetPercent DWORD ? +LVBKIMAGEA ENDS + +LVBKIMAGEW STRUCT + ulFlags DWORD ? + hbm DWORD ? + pszImage DWORD ? + cchImageMax DWORD ? + xOffsetPercent DWORD ? + yOffsetPercent DWORD ? +LVBKIMAGEW ENDS + +IFDEF __UNICODE__ + LVBKIMAGE equ +ELSE + LVBKIMAGE equ +ENDIF + +LVGROUP STRUCT + cbSize DWORD ? + _mask DWORD ? + pszHeader DWORD ? + cchHeader DWORD ? + pszFooter DWORD ? + cchFooter DWORD ? + iGroupId DWORD ? + stateMask DWORD ? + state DWORD ? + uAlign DWORD ? + pszSubtitle DWORD ? + cchSubtitle DWORD ? + pszTask DWORD ? + cchTask DWORD ? + pszDescriptionTop DWORD ? + cchDescriptionTop DWORD ? + pszDescriptionBottom DWORD ? + cchDescriptionBottom DWORD ? + iTitleImage DWORD ? + iExtendedImage DWORD ? + iFirstItem DWORD ? + cItems DWORD ? + pszSubsetTitle DWORD ? + cchSubsetTitle DWORD ? +LVGROUP ENDS + +LVGROUPMETRICS STRUCT + cbSize DWORD ? + _mask DWORD ? + Left DWORD ? + Top DWORD ? + Right DWORD ? + Bottom DWORD ? + crLeft DWORD ? + crTop DWORD ? + crRight DWORD ? + crBottom DWORD ? + crHeader DWORD ? + crFooter DWORD ? +LVGROUPMETRICS ENDS + +LVTILEINFO STRUCT + cbSize DWORD ? + iItem DWORD ? + cColumns DWORD ? + puColumns DWORD ? + piColFmt DWORD ? +LVTILEINFO ENDS + +LVINSERTMARK STRUCT + cbSize DWORD ? + dwFlags DWORD ? + iItem DWORD ? + dwReserved DWORD ? +LVINSERTMARK ENDS + +LVSETINFOTIP STRUCT + cbSize DWORD ? + dwFlags DWORD ? + pszText DWORD ? + iItem DWORD ? + iSubItem DWORD ? +LVSETINFOTIP ENDS + +LVFOOTERINFO STRUCT + _mask DWORD ? + pszText DWORD ? + cchTextMax DWORD ? + cItems DWORD ? +LVFOOTERINFO ENDS + +LVFOOTERITEM STRUCT + _mask DWORD ? + iItem DWORD ? + pszText DWORD ? + cchTextMax DWORD ? + state DWORD ? + stateMask DWORD ? +LVFOOTERITEM ENDS + +LVITEMINDEX STRUCT + iItem DWORD ? + iGroup DWORD ? +LVITEMINDEX ENDS + +NMLVCACHEHINT STRUCT + hdr NMHDR <> + iFrom DWORD ? + iTo DWORD ? +NMLVCACHEHINT ENDS + +NMLVSCROLL STRUCT + hdr NMHDR <> + _dx DWORD ? + dy DWORD ? +NMLVSCROLL ENDS + +TVITEMEXA STRUCT + _mask DWORD ? + hItem DWORD ? + state DWORD ? + stateMask DWORD ? + pszText DWORD ? + cchTextMax DWORD ? + iImage DWORD ? + iSelectedImage DWORD ? + cChildren DWORD ? + lParam DWORD ? + iIntegral DWORD ? + uStateEx DWORD ? + hwnd DWORD ? + iExpandedImage DWORD ? +TVITEMEXA ENDS + +TVITEMEXW STRUCT + _mask DWORD ? + hItem DWORD ? + state DWORD ? + stateMask DWORD ? + pszText DWORD ? + cchTextMax DWORD ? + iImage DWORD ? + iSelectedImage DWORD ? + cChildren DWORD ? + lParam DWORD ? + iIntegral DWORD ? + uStateEx DWORD ? + hwnd DWORD ? + iExpandedImage DWORD ? +TVITEMEXW ENDS + +NMTVDISPINFOEXA STRUCT + hdr NMHDR <> + item TVITEMEXA <> +NMTVDISPINFOEXA ENDS + +NMTVDISPINFOEXW STRUCT + hdr NMHDR <> + item TVITEMEXW <> +NMTVDISPINFOEXW ENDS + +NMTVITEMCHANGE STRUCT + hdr NMHDR <> + uChanged DWORD ? + hItem DWORD ? + uStateNew DWORD ? + uStateOld DWORD ? + lParam DWORD ? +NMTVITEMCHANGE ENDS + +NMVIEWCHANGE STRUCT + nmhdr NMHDR <> + dwOldView DWORD ? + dwNewView DWORD ? +NMVIEWCHANGE ENDS + +DATETIMEPICKERINFO STRUCT + cbSize DWORD ? + rcCheck RECT <> + stateCheck DWORD ? + rcButton RECT <> + stateButton DWORD ? + hwndEdit DWORD ? + hwndUD DWORD ? + hwndDropDown DWORD ? +DATETIMEPICKERINFO ENDS + +NMIPADDRESS STRUCT + hdr NMHDR <> + iField DWORD ? + iValue DWORD ? +NMIPADDRESS ENDS + +NMPGHOTITEM STRUCT + hdr NMHDR <> + idOld DWORD ? + idNew DWORD ? + dwFlags DWORD ? +NMPGHOTITEM ENDS + +BUTTON_IMAGELIST STRUCT + himl DWORD ? + margin RECT <> + uAlign DWORD ? +BUTTON_IMAGELIST ENDS + +NMBCHOTITEM STRUCT + hdr NMHDR <> + dwFlags DWORD ? +NMBCHOTITEM ENDS + +NMBCDROPDOWN STRUCT + hdr NMHDR <> + rcButton RECT <> +NMBCDROPDOWN ENDS + +EDITBALLOONTIP STRUCT + cbStruct DWORD ? + pszTitle DWORD ? + pszText DWORD ? + ttiIcon DWORD ? +EDITBALLOONTIP ENDS + +TASKDIALOG_BUTTON STRUCT + nButtonID DWORD ? + pszButtonText DWORD ? +TASKDIALOG_BUTTON ENDS + +DPASTREAMINFO STRUCT + iPos DWORD ? + pvItem DWORD ? +DPASTREAMINFO ENDS + + +;;;; end comctl + +;;;; wsock + +;-------------------------- wsock32 equates ------------------------------- + +WSADESCRIPTION_LEN equ 256 +WSASYS_STATUS_LEN equ 128 +IPPROTO_IP equ 0 +IPPROTO_ICMP equ 1 +IPPROTO_GGP equ 2 +IPPROTO_TCP equ 6 +IPPROTO_PUP equ 12 +IPPROTO_UDP equ 17 +IPPROTO_IDP equ 22 +IPPROTO_ND equ 77 +IPPROTO_RAW equ 255 +IPPROTO_MAX equ 256 +IOCPARM_MASK equ 7Fh +IOC_VOID equ 20000000h +IOC_OUT equ 40000000h +IOC_IN equ 80000000h +IOC_INOUT equ IOC_IN OR IOC_OUT +FIONBIO equ 8004667Eh +FIONSYNC equ 8004667Dh +FIONREAD equ 4004667Fh +IPPORT_ECHO equ 7 +IPPORT_DISCARD equ 9 +IPPORT_SYSTAT equ 11 +IPPORT_DAYTIME equ 13 +IPPORT_NETSTAT equ 15 +IPPORT_FTP equ 21 +IPPORT_TELNET equ 23 +IPPORT_SMTP equ 25 +IPPORT_TIMESERVER equ 37 +IPPORT_NAMESERVER equ 42 +IPPORT_WHOIS equ 43 +IPPORT_MTP equ 57 +IPPORT_TFTP equ 69 +IPPORT_RJE equ 77 +IPPORT_FINGER equ 79 +IPPORT_TTYLINK equ 87 +IPPORT_SUPDUP equ 95 +IPPORT_EXECSERVER equ 512 +IPPORT_LOGINSERVER equ 513 +IPPORT_CMDSERVER equ 514 +IPPORT_EFSSERVER equ 520 +IPPORT_BIFFUDP equ 512 +IPPORT_WHOSERVER equ 513 +IPPORT_ROUTESERVER equ 520 +IPPORT_RESERVED equ 1024 +IMPLINK_IP equ 155 +IMPLINK_LOWEXPER equ 156 +IMPLINK_HIGHEXPER equ 158 +IN_CLASSA_NET equ 0FF000000h +IN_CLASSA_NSHIFT equ 24 +IN_CLASSA_HOST equ 000FFFFFFh +IN_CLASSA_MAX equ 128 +IN_CLASSB_NET equ 0FFFF0000h +IN_CLASSB_NSHIFT equ 16 +IN_CLASSB_HOST equ 00000FFFFh +IN_CLASSB_MAX equ 65536 +IN_CLASSC_NET equ 0FFFFFF00h +IN_CLASSC_NSHIFT equ 8 +IN_CLASSC_HOST equ 0000000FFh +INADDR_ANY equ 000000000h +INADDR_LOOPBACK equ 07F000001h +INADDR_BROADCAST equ 0FFFFFFFFh +INADDR_NONE equ 0FFFFFFFFh +SOCK_STREAM equ 1 +SOCK_DGRAM equ 2 +SOCK_RAW equ 3 +SOCK_RDM equ 4 +SOCK_SEQPACKET equ 5 +SO_DEBUG equ 00001h +SO_ACCEPTCONN equ 00002h +SO_REUSEADDR equ 00004h +SO_KEEPALIVE equ 00008h +SO_DONTROUTE equ 00010h +SO_BROADCAST equ 00020h +SO_USELOOPBACK equ 00040h +SO_LINGER equ 00080h +SO_OOBINLINE equ 00100h +SOL_SOCKET equ 0FFFFh +SO_DONTLINGER equ NOT SO_LINGER +SO_SNDBUF equ 01001h +SO_RCVBUF equ 01002h +SO_SNDLOWAT equ 01003h +SO_RCVLOWAT equ 01004h +SO_SNDTIMEO equ 01005h +SO_RCVTIMEO equ 01006h +SO_ERROR equ 01007h +SO_TYPE equ 01008h +TCP_NODELAY equ 00001h +AF_UNSPEC equ 0 +AF_UNIX equ 1 +AF_INET equ 2 +AF_IMPLINK equ 3 +AF_PUP equ 4 +AF_CHAOS equ 5 +AF_NS equ 6 +AF_IPX equ 6 +AF_ISO equ 7 +AF_OSI equ AF_ISO +AF_ECMA equ 8 +AF_DATAKIT equ 9 +AF_CCITT equ 10 +AF_SNA equ 11 +AF_DECnet equ 12 +AF_DLI equ 13 +AF_LAT equ 14 +AF_HYLINK equ 15 +AF_APPLETALK equ 16 +AF_NETBIOS equ 17 +AF_MAX equ 18 +PF_UNSPEC equ AF_UNSPEC +PF_UNIX equ AF_UNIX +PF_INET equ AF_INET +PF_IMPLINK equ AF_IMPLINK +PF_PUP equ AF_PUP +PF_CHAOS equ AF_CHAOS +PF_NS equ AF_NS +PF_IPX equ AF_IPX +PF_ISO equ AF_ISO +PF_OSI equ AF_OSI +PF_ECMA equ AF_ECMA +PF_DATAKIT equ AF_DATAKIT +PF_CCITT equ AF_CCITT +PF_SNA equ AF_SNA +PF_DECnet equ AF_DECnet +PF_DLI equ AF_DLI +PF_LAT equ AF_LAT +PF_HYLINK equ AF_HYLINK +PF_APPLETALK equ AF_APPLETALK +PF_MAX equ AF_MAX +SOMAXCONN equ 5 +MSG_OOB equ 01h +MSG_PEEK equ 02h +MSG_DONTROUTE equ 04h +MSG_MAXIOVLEN equ 16 +MAXGETHOSTSTRUCT equ 1024 +FD_READ equ 001h +FD_WRITE equ 002h +FD_OOB equ 004h +FD_ACCEPT equ 008h +FD_CONNECT equ 010h +FD_CLOSE equ 020h +WSABASEERR equ 10000 +WSAEINTR equ WSABASEERR+4 +WSAEBADF equ WSABASEERR+9 +WSAEACCES equ WSABASEERR+13 +WSAEFAULT equ WSABASEERR+14 +WSAEINVAL equ WSABASEERR+22 +WSAEMFILE equ WSABASEERR+24 +WSAEWOULDBLOCK equ WSABASEERR + 35 +WSAEINPROGRESS equ WSABASEERR + 36 +WSAEALREADY equ WSABASEERR + 37 +WSAENOTSOCK equ WSABASEERR + 38 +WSAEDESTADDRREQ equ WSABASEERR + 39 +WSAEMSGSIZE equ WSABASEERR + 40 +WSAEPROTOTYPE equ WSABASEERR + 41 +WSAENOPROTOOPT equ WSABASEERR + 42 +WSAEPROTONOSUPPORT equ WSABASEERR + 43 +WSAESOCKTNOSUPPORT equ WSABASEERR + 44 +WSAEOPNOTSUPP equ WSABASEERR + 45 +WSAEPFNOSUPPORT equ WSABASEERR + 46 +WSAEAFNOSUPPORT equ WSABASEERR + 47 +WSAEADDRINUSE equ WSABASEERR + 48 +WSAEADDRNOTAVAIL equ WSABASEERR + 49 +WSAENETDOWN equ WSABASEERR + 50 +WSAENETUNREACH equ WSABASEERR + 51 +WSAENETRESET equ WSABASEERR + 52 +WSAECONNABORTED equ WSABASEERR + 53 +WSAECONNRESET equ WSABASEERR + 54 +WSAENOBUFS equ WSABASEERR + 55 +WSAEISCONN equ WSABASEERR + 56 +WSAENOTCONN equ WSABASEERR + 57 +WSAESHUTDOWN equ WSABASEERR + 58 +WSAETOOMANYREFS equ WSABASEERR + 59 +WSAETIMEDOUT equ WSABASEERR + 60 +WSAECONNREFUSED equ WSABASEERR + 61 +WSAELOOP equ WSABASEERR + 62 +WSAENAMETOOLONG equ WSABASEERR + 63 +WSAEHOSTDOWN equ WSABASEERR + 64 +WSAEHOSTUNREACH equ WSABASEERR + 65 +WSAENOTEMPTY equ WSABASEERR + 66 +WSAEPROCLIM equ WSABASEERR + 67 +WSAEUSERS equ WSABASEERR + 68 +WSAEDQUOT equ WSABASEERR + 69 +WSAESTALE equ WSABASEERR + 70 +WSAEREMOTE equ WSABASEERR + 71 +WSASYSNOTREADY equ WSABASEERR+91 +WSAVERNOTSUPPORTED equ WSABASEERR+92 +WSANOTINITIALISED equ WSABASEERR+93 +WSAHOST_NOT_FOUND equ WSABASEERR + 1001 +HOST_NOT_FOUND equ WSAHOST_NOT_FOUND +WSATRY_AGAIN equ WSABASEERR + 1002 +TRY_AGAIN equ WSATRY_AGAIN +WSANO_RECOVERY equ WSABASEERR + 1003 +NO_RECOVERY equ WSANO_RECOVERY +WSANO_DATA equ WSABASEERR + 1004 +NO_DATA equ WSANO_DATA +WSANO_ADDRESS equ WSANO_DATA +NO_ADDRESS equ WSANO_ADDRESS +EWOULDBLOCK equ WSAEWOULDBLOCK +EINPROGRESS equ WSAEINPROGRESS +EALREADY equ WSAEALREADY +ENOTSOCK equ WSAENOTSOCK +EDESTADDRREQ equ WSAEDESTADDRREQ +EMSGSIZE equ WSAEMSGSIZE +EPROTOTYPE equ WSAEPROTOTYPE +ENOPROTOOPT equ WSAENOPROTOOPT +EPROTONOSUPPORT equ WSAEPROTONOSUPPORT +ESOCKTNOSUPPORT equ WSAESOCKTNOSUPPORT +EOPNOTSUPP equ WSAEOPNOTSUPP +EPFNOSUPPORT equ WSAEPFNOSUPPORT +EAFNOSUPPORT equ WSAEAFNOSUPPORT +EADDRINUSE equ WSAEADDRINUSE +EADDRNOTAVAIL equ WSAEADDRNOTAVAIL +ENETDOWN equ WSAENETDOWN +ENETUNREACH equ WSAENETUNREACH +ENETRESET equ WSAENETRESET +ECONNABORTED equ WSAECONNABORTED +ECONNRESET equ WSAECONNRESET +ENOBUFS equ WSAENOBUFS +EISCONN equ WSAEISCONN +ENOTCONN equ WSAENOTCONN +ESHUTDOWN equ WSAESHUTDOWN +ETOOMANYREFS equ WSAETOOMANYREFS +ETIMEDOUT equ WSAETIMEDOUT +ECONNREFUSED equ WSAECONNREFUSED +ELOOP equ WSAELOOP +ENAMETOOLONG equ WSAENAMETOOLONG +EHOSTDOWN equ WSAEHOSTDOWN +EHOSTUNREACH equ WSAEHOSTUNREACH +ENOTEMPTY equ WSAENOTEMPTY +EPROCLIM equ WSAEPROCLIM +EUSERS equ WSAEUSERS +EDQUOT equ WSAEDQUOT +ESTALE equ WSAESTALE +EREMOTE equ WSAEREMOTE +FD_SETSIZE equ 64 +INVALID_SOCKET equ NOT 0 +SOCKET_ERROR equ -1 +SOCKET_BUFFER_SIZE equ 512 +ICMP_ECHOREPLY equ 0 +ICMP_ECHOREQ equ 8 +IMAGE_SIZEOF_SECTION_HEADER equ 40 + +; ------------------------ wsock32 structures ----------------------------- + +fd_set STRUCT + fd_count DWORD ? + fd_array SOCKET FD_SETSIZE dup(?) +fd_set ENDS + +timeval STRUCT + tv_sec DWORD ? + tv_usec DWORD ? +timeval ENDS + +S_UN_B STRUCT + s_b1 BYTE ? + s_b2 BYTE ? + s_b3 BYTE ? + s_b4 BYTE ? +S_UN_B ENDS + +S_UN_W STRUCT + s_w1 WORD ? + s_w2 WORD ? +S_UN_W ENDS + +ADDRESS_UNION UNION + S_un_b S_UN_B <> + S_un_w S_UN_W <> + S_addr DWORD ? +ADDRESS_UNION ENDS + +in_addr STRUCT + S_un ADDRESS_UNION <> +in_addr ENDS + +sockaddr_in STRUCT + sin_family WORD ? + sin_port WORD ? + sin_addr in_addr <> + sin_zero BYTE 8 dup (?) +sockaddr_in ENDS + +sockaddr STRUCT + sa_family WORD ? + sa_data BYTE 14 dup(?) +sockaddr ENDS + +WSADATA STRUCT + wVersion WORD ? + wHighVersion WORD ? + szDescription BYTE WSADESCRIPTION_LEN + 1 dup (?) + szSystemStatus BYTE WSASYS_STATUS_LEN + 1 dup (?) + iMaxSockets WORD ? + iMaxUdpDg WORD ? + lpVendorInfo DWORD ? +WSADATA ENDS + +sockproto STRUCT + sp_family WORD ? + sp_protocol WORD ? +sockproto ENDS + +linger STRUCT + l_onoff WORD ? + l_linger WORD ? +linger ENDS + +hostent STRUCT + h_name DWORD ? + h_alias DWORD ? + h_addr WORD ? + h_len WORD ? + h_list DWORD ? +hostent ENDS + +netent STRUCT + n_name DWORD ? + n_aliases DWORD ? + n_addrtype WORD ? + n_net DWORD ? +netent ENDS + +servent STRUCT + s_name DWORD ? + s_aliases DWORD ? + s_port WORD ? + s_proto DWORD ? +servent ENDS + +icmp_hdr STRUCT + icmp_type BYTE ? + icmp_code BYTE ? + icmp_cksum WORD ? + icmp_id WORD ? + icmp_seq WORD ? + icmp_data BYTE ? +icmp_hdr ENDS + +ip_hdr STRUCT + ip_hlv BYTE ? + ip_tos BYTE ? + ip_len WORD ? + ip_id WORD ? + ip_off WORD ? + ip_ttl BYTE ? + ip_p BYTE ? + ip_cksum WORD ? + ip_src DWORD ? + ip_dest DWORD ? +ip_hdr ENDS + +ICMP_OPTIONS STRUCT + Ttl BYTE ? + Tos BYTE ? + Flags BYTE ? + OptionsSize BYTE ? + OptionsData DWORD ? +ICMP_OPTIONS ENDS + +ICMP_ECHO_REPLY STRUCT + Address DWORD ? + Status DWORD ? + RoundTripTime DWORD ? + DataSize WORD ? + Reserved WORD ? + DataPointer DWORD ? + Options DWORD ? + zData BYTE 250 dup (?) +ICMP_ECHO_REPLY ENDS + +; ---------------------------------------- +; aditional winsock equates and structure +; contributed by Thomas Bleeker. +; ---------------------------------------- +FD_READ_BIT equ 0 +FD_WRITE_BIT equ 1 +FD_OOB_BIT equ 2 +FD_ACCEPT_BIT equ 3 +FD_CONNECT_BIT equ 4 +FD_CLOSE_BIT equ 5 +FD_QOS_BIT equ 6 +FD_GROUP_QOS_BIT equ 7 +FD_ROUTING_INTERFACE_CHANGE_BIT equ 8 +FD_ADDRESS_LIST_CHANGE_BIT equ 9 + +FD_MAX_EVENTS equ 10 +FD_ALL_EVENTS equ (1 SHL FD_MAX_EVENTS) - 1 + +WSANETWORKEVENTS STRUCT + lNetworkEvents dd ? + iErrorCode dd FD_MAX_EVENTS dup (?) +WSANETWORKEVENTS ENDS + +; ************************* winsock2 equates ****************************** + +INCL_WINSOCK_API_PROTOTYPES equ 1 +INCL_WINSOCK_API_TYPEDEFS equ 0 +IPPROTO_HOPOPTS equ 0 +IPPROTO_IGMP equ 2 +IPPROTO_IPV4 equ 4 +IPPROTO_IPV6 equ 41 +IPPROTO_ROUTING equ 43 +IPPROTO_FRAGMENT equ 44 +IPPROTO_ESP equ 50 +IPPROTO_AH equ 51 +IPPROTO_ICMPV6 equ 58 +IPPROTO_NONE equ 59 +IPPROTO_DSTOPTS equ 60 +IPPROTO_ICLFXBM equ 78 +IN_CLASSD_NET equ 0F0000000h +IN_CLASSD_NSHIFT equ 28 +IN_CLASSD_HOST equ 0fffffffh +FROM_PROTOCOL_INFO equ (-1) +SO_GROUP_ID equ 2001h +SO_GROUP_PRIORITY equ 2002h +SO_MAX_MSG_SIZE equ 2003h +PVD_CONFIG equ 3001h +SO_CONDITIONAL_ACCEPT equ 3002h +AF_VOICEVIEW equ 18 +AF_FIREFOX equ 19 +AF_UNKNOWN1 equ 20 +AF_BAN equ 21 +AF_ATM equ 22 +AF_INET6 equ 23 +AF_CLUSTER equ 24 +AF_12844 equ 25 +AF_IRDA equ 26 +AF_NETDES equ 28 +AF_TCNPROCESS equ 29 +AF_TCNMESSAGE equ 30 +AF_ICLFXBM equ 31 +_SS_MAXSIZE equ 128 +PF_VOICEVIEW equ AF_VOICEVIEW +PF_FIREFOX equ AF_FIREFOX +PF_UNKNOWN1 equ AF_UNKNOWN1 +PF_BAN equ AF_BAN +PF_ATM equ AF_ATM +PF_INET6 equ AF_INET6 +MSG_PARTIAL equ 8000h +MSG_INTERRUPT equ 10h +WSAEDISCON equ (WSABASEERR+101) +WSAENOMORE equ (WSABASEERR+102) +WSAECANCELLED equ (WSABASEERR+103) +WSAEINVALIDPROCTABLE equ (WSABASEERR+104) +WSAEINVALIDPROVIDER equ (WSABASEERR+105) +WSAEPROVIDERFAILEDINIT equ (WSABASEERR+106) +WSASYSCALLFAILURE equ (WSABASEERR+107) +WSASERVICE_NOT_FOUND equ (WSABASEERR+108) +WSATYPE_NOT_FOUND equ (WSABASEERR+109) +WSA_E_NO_MORE equ (WSABASEERR+110) +WSA_E_CANCELLED equ (WSABASEERR+111) +WSAEREFUSED equ (WSABASEERR+112) +WSA_QOS_RECEIVERS equ (WSABASEERR + 1005) +WSA_QOS_SENDERS equ (WSABASEERR + 1006) +WSA_QOS_NO_SENDERS equ (WSABASEERR + 1007) +WSA_QOS_NO_RECEIVERS equ (WSABASEERR + 1008) +WSA_QOS_REQUEST_CONFIRMED equ (WSABASEERR + 1009) +WSA_QOS_ADMISSION_FAILURE equ (WSABASEERR + 1010) +WSA_QOS_POLICY_FAILURE equ (WSABASEERR + 1011) +WSA_QOS_BAD_STYLE equ (WSABASEERR + 1012) +WSA_QOS_BAD_OBJECT equ (WSABASEERR + 1013) +WSA_QOS_TRAFFIC_CTRL_ERROR equ (WSABASEERR + 1014) +WSA_QOS_GENERIC_ERROR equ (WSABASEERR + 1015) +WSA_QOS_ESERVICETYPE equ (WSABASEERR + 1016) +WSA_QOS_EFLOWSPEC equ (WSABASEERR + 1017) +WSA_QOS_EPROVSPECBUF equ (WSABASEERR + 1018) +WSA_QOS_EFILTERSTYLE equ (WSABASEERR + 1019) +WSA_QOS_EFILTERTYPE equ (WSABASEERR + 1020) +WSA_QOS_EFILTERCOUNT equ (WSABASEERR + 1021) +WSA_QOS_EOBJLENGTH equ (WSABASEERR + 1022) +WSA_QOS_EFLOWCOUNT equ (WSABASEERR + 1023) +WSA_QOS_EUNKOWNPSOBJ equ (WSABASEERR + 1024) +WSA_QOS_EPOLICYOBJ equ (WSABASEERR + 1025) +WSA_QOS_EFLOWDESC equ (WSABASEERR + 1026) +WSA_QOS_EPSFLOWSPEC equ (WSABASEERR + 1027) +WSA_QOS_EPSFILTERSPEC equ (WSABASEERR + 1028) +WSA_QOS_ESDMODEOBJ equ (WSABASEERR + 1029) +WSA_QOS_ESHAPERATEOBJ equ (WSABASEERR + 1030) +WSA_QOS_RESERVED_PETYPE equ (WSABASEERR + 1031) +WSA_INVALID_EVENT equ ((WSAEVENT)NULL) +WSA_MAXIMUM_WAIT_EVENTS equ (MAXIMUM_WAIT_OBJECTS) +WSA_WAIT_FAILED equ (WAIT_FAILED) +WSA_WAIT_IO_COMPLETION equ (WAIT_IO_COMPLETION) +WSA_WAIT_TIMEOUT equ (WAIT_TIMEOUT) +WSA_INFINITE equ (INFINITE) +WSAAPI equ FAR PASCAL +WSA_IO_PENDING equ (WSAEWOULDBLOCK) +WSA_IO_INCOMPLETE equ (WSAEWOULDBLOCK) +WSA_INVALID_HANDLE equ (WSAENOTSOCK) +WSA_INVALID_PARAMETER equ (WSAEINVAL) +WSA_NOT_ENOUGH_MEMORY equ (WSAENOBUFS) +WSA_OPERATION_ABORTED equ (WSAEINTR) +WSA_WAIT_EVENT_0 equ ((DWORD)0) +CF_ACCEPT equ 0000h +CF_REJECT equ 0001h +CF_DEFER equ 0002h +SD_RECEIVE equ 00h +SD_SEND equ 01h +SD_BOTH equ 02h +SG_UNCONSTRAINED_GROUP equ 01h +SG_CONSTRAINED_GROUP equ 02h +MAX_PROTOCOL_CHAIN equ 7 +BASE_PROTOCOL equ 1 +LAYERED_PROTOCOL equ 0 +WSAPROTOCOL_LEN equ 255 +PFL_MULTIPLE_PROTO_ENTRIES equ 00000001h +PFL_RECOMMENDED_PROTO_ENTRY equ 00000002h +PFL_HIDDEN equ 00000004h +PFL_MATCHES_PROTOCOL_ZERO equ 00000008h +XP1_CONNECTIONLESS equ 00000001h +XP1_GUARANTEED_DELIVERY equ 00000002h +XP1_GUARANTEED_ORDER equ 00000004h +XP1_MESSAGE_ORIENTED equ 00000008h +XP1_PSEUDO_STREAM equ 00000010h +XP1_GRACEFUL_CLOSE equ 00000020h +XP1_EXPEDITED_DATA equ 00000040h +XP1_CONNECT_DATA equ 00000080h +XP1_DISCONNECT_DATA equ 00000100h +XP1_SUPPORT_BROADCAST equ 00000200h +XP1_SUPPORT_MULTIPOINT equ 00000400h +XP1_MULTIPOINT_CONTROL_PLANE equ 00000800h +XP1_MULTIPOINT_DATA_PLANE equ 00001000h +XP1_QOS_SUPPORTED equ 00002000h +XP1_INTERRUPT equ 00004000h +XP1_UNI_SEND equ 00008000h +XP1_UNI_RECV equ 00010000h +XP1_IFS_HANDLES equ 00020000h +XP1_PARTIAL_MESSAGE equ 00040000h +BIGENDIAN equ 0000h +LITTLEENDIAN equ 0001h +SECURITY_PROTOCOL_NONE equ 0000h +JL_SENDER_ONLY equ 01h +JL_RECEIVER_ONLY equ 02h +JL_BOTH equ 04h +WSA_FLAG_OVERLAPPED equ 01h +WSA_FLAG_MULTIPOINT_C_ROOT equ 02h +WSA_FLAG_MULTIPOINT_C_LEAF equ 04h +WSA_FLAG_MULTIPOINT_D_ROOT equ 08h +WSA_FLAG_MULTIPOINT_D_LEAF equ 10h +IOC_UNIX equ 00000000h +IOC_WS2 equ 08000000h +IOC_PROTOCOL equ 10000000h +IOC_VENDOR equ 18000000h +TH_NETDEV equ 00000001h +TH_TAPI equ 00000002h +SERVICE_MULTIPLE equ 1 +NS_ALL equ (0) +NS_SAP equ (1) +NS_NDS equ (2) +NS_PEER_BROWSE equ (3) +NS_SLP equ (5) +NS_DHCP equ (6) +NS_TCPIP_LOCAL equ (10) +NS_TCPIP_HOSTS equ (11) +NS_DNS equ (12) +NS_NETBT equ (13) +NS_WINS equ (14) +NS_NLA equ (15) +NS_NBP equ (20) +NS_MS equ (30) +NS_STDA equ (31) +NS_NTDS equ (32) +NS_X500 equ (40) +NS_NIS equ (41) +NS_NISPLUS equ (42) +NS_WRQ equ (50) +NS_NETDES equ (60) +RES_UNUSED_1 equ 1 +RES_FLUSH_CACHE equ 2 +RES_SERVICE equ 4 +LUP_DEEP equ 0001h +LUP_CONTAINERS equ 0002h +LUP_NOCONTAINERS equ 0004h +LUP_NEAREST equ 0008h +LUP_RETURN_NAME equ 0010h +LUP_RETURN_TYPE equ 0020h +LUP_RETURN_VERSION equ 0040h +LUP_RETURN_COMMENT equ 0080h +LUP_RETURN_ADDR equ 0100h +LUP_RETURN_BLOB equ 0200h +LUP_RETURN_ALIASES equ 0400h +LUP_RETURN_QUERY_STRING equ 0800h +LUP_RETURN_ALL equ 0FF0h +LUP_RES_SERVICE equ 8000h +LUP_FLUSHCACHE equ 1000h +LUP_FLUSHPREVIOUS equ 2000h +RESULT_IS_ALIAS equ 0001h +RESULT_IS_ADDED equ 0010h +RESULT_IS_CHANGED equ 0020h +RESULT_IS_DELETED equ 0040h + +;;;; end wsock + +;;;; wsock_xtra + +FD_QOS equ (1 SHL FD_QOS_BIT) +FD_GROUP_QOS equ (1 SHL FD_GROUP_QOS_BIT) +FD_ROUTING_INTERFACE_CHANGE equ (1 SHL FD_ROUTING_INTERFACE_CHANGE_BIT) +FD_ADDRESS_LIST_CHANGE equ (1 SHL FD_ADDRESS_LIST_CHANGE_BIT) + +SO_PROTOCOL_INFOA equ 2004h +SO_PROTOCOL_INFOW equ 2005h +IFDEF __UNICODE__ + SO_PROTOCOL_INFO equ SO_PROTOCOL_INFOW +ELSE + SO_PROTOCOL_INFO equ SO_PROTOCOL_INFOA +ENDIF + +PF_BTH equ AF_BTH +MSG_WAITALL equ 8h +XP1_SAN_SUPPORT_SDP equ 00080000h +WSA_FLAG_ACCESS_SYSTEM_SECURITY equ 40h +NS_BTH equ 16 +NS_EMAIL equ 37 +NS_PNRPNAME equ 38 +NS_PNRPCLOUD equ 39 +LUP_NON_AUTHORITATIVE equ 4000h +LUP_SECURE equ 8000h +LUP_RETURN_PREFERRED_NAMES equ 10000h +LUP_ADDRCONFIG equ 00100000h +LUP_DUAL_ADDR equ 00200000h +POLLRDNORM equ 0100h +POLLRDBAND equ 0200h +POLLIN equ POLLRDNORM or POLLRDBAND +POLLPRI equ 0400h +POLLWRNORM equ 0010h +POLLOUT equ POLLWRNORM +POLLWRBAND equ 0020h +POLLERR equ 0001h +POLLHUP equ 0002h +POLLNVAL equ 0004h + + +;;;; end wsock_xtra + +;;;; toolhlp + +;------------------------------ ToolHelp 32 equates --------------------- +MAX_MODULE_NAME32 equ 255 +TH32CS_SNAPHEAPLIST equ 1 +TH32CS_SNAPPROCESS equ 2 +TH32CS_SNAPTHREAD equ 4 +TH32CS_SNAPMODULE equ 8 +TH32CS_SNAPALL equ TH32CS_SNAPHEAPLIST + TH32CS_SNAPPROCESS + TH32CS_SNAPTHREAD + TH32CS_SNAPMODULE +TH32CS_INHERIT equ 80000000h +HF32_DEFAULT equ 1 +HF32_SHARED equ 2 +LF32_FIXED equ 1 +LF32_FREE equ 2 +LF32_MOVEABLE equ 4 + +HEAPLIST32 STRUCT + dwSize DWORD ? + th32ProcessID DWORD ? + th32HeapID DWORD ? + dwFlags DWORD ? +HEAPLIST32 ENDS + +HEAPENTRY32 STRUCT + dwSize DWORD ? + hHandle DWORD ? + dwAddress DWORD ? + dwBlockSize DWORD ? + dwFlags DWORD ? + dwLockCount DWORD ? + dwResvd DWORD ? + th32ProcessID DWORD ? + th32HeapID DWORD ? +HEAPENTRY32 ENDS + +PROCESSENTRY32 STRUCT + dwSize DWORD ? + cntUsage DWORD ? + th32ProcessID DWORD ? + th32DefaultHeapID DWORD ? + th32ModuleID DWORD ? + cntThreads DWORD ? + th32ParentProcessID DWORD ? + pcPriClassBase DWORD ? + dwFlags DWORD ? + szExeFile db MAX_PATH dup(?) +PROCESSENTRY32 ENDS + +THREADENTRY32 STRUCT + dwSize DWORD ? + cntUsage DWORD ? + th32ThreadID DWORD ? + th32OwnerProcessID DWORD ? + tpBasePri DWORD ? + tpDeltaPri DWORD ? + dwFlags DWORD ? +THREADENTRY32 ENDS + +MODULEENTRY32 STRUCT + dwSize DWORD ? + th32ModuleID DWORD ? + th32ProcessID DWORD ? + GlblcntUsage DWORD ? + ProccntUsage DWORD ? + modBaseAddr DWORD ? + modBaseSize DWORD ? + hModule DWORD ? + szModule db MAX_MODULE_NAME32+1 dup(?) + szExePath db MAX_PATH dup(?) +MODULEENTRY32 ENDS + +;;;; end toolhlp + +;;;; propsht + +;--------- These are the equates & structures for property sheets --------- + +MAXPROPPAGES equ 100 + +LPFNPSPCALLBACK equ + +PSP_DEFAULT equ 00000000h +PSP_DLGINDIRECT equ 00000001h +PSP_USEDWORD equ 00000002h +PSP_USEICONID equ 00000004h +PSP_USETITLE equ 00000008h +PSP_RTLREADING equ 00000010h + +PSP_HASHELP equ 00000020h +PSP_USEREFPARENT equ 00000040h +PSP_USECALLBACK equ 00000080h +PSP_PREMATURE equ 00000400h + +PSP_HIDEHEADER equ 00000800h +PSP_USEHEADERTITLE equ 00001000h +PSP_USEHEADERSUBTITLE equ 00002000h + +PSPCB_RELEASE equ 1 +PSPCB_CREATE equ 2 + +PROPSHEETPAGE STRUCT + dwSize DWORD ? + dwFlags DWORD ? + hInstance DWORD ? + union + pszTemplate DWORD ? + pResource DWORD ? + ends + union + hIcon DWORD ? + pszIcon DWORD ? + ends + pszTitle DWORD ? + pfnDlgProc DWORD ? + lParam DWORD ? + pfnCallback DWORD ? + pcRefParent DWORD ? + pszHeaderTitle DWORD ? + pszHeaderSubTitle DWORD ? +PROPSHEETPAGE ENDS + +PROPSHEETPAGEA equ +PROPSHEETPAGEW equ +LPPROPSHEETPAGE TypeDef Ptr PROPSHEETPAGE +LPCPROPSHEETPAGE equ LPPROPSHEETPAGE + +PSH_DEFAULT equ 00000000h +PSH_PROPTITLE equ 00000001h +PSH_USEDWORD equ 00000002h +PSH_USEICONID equ 00000004h +PSH_PROPSHEETPAGE equ 00000008h +PSH_WIZARDHASFINISH equ 00000010h +PSH_WIZARD equ 00000020h +PSH_USEPSTARTPAGE equ 00000040h +PSH_NOAPPLYNOW equ 00000080h +PSH_USECALLBACK equ 00000100h +PSH_HASHELP equ 00000200h +PSH_MODELESS equ 00000400h +PSH_RTLREADING equ 00000800h +PSH_WIZARDCONTEXTHELP equ 00001000h + +IFDEF WIN32_IE5 + PSH_WIZARD97 equ 01000000h +ELSE + PSH_WIZARD97 equ 00002000h +ENDIF + +PSH_WATERMARK equ 00008000h +PSH_USEHBMWATERMARK equ 00010000h +PSH_USEHPLWATERMARK equ 00020000h +PSH_STRETCHWATERMARK equ 00040000h +PSH_HEADER equ 00080000h +PSH_USEHBMHEADER equ 00100000h +PSH_USEPAGELANG equ 00200000h + +PROPSHEETHEADER STRUCT + dwSize DWORD ? + dwFlags DWORD ? + hwndParent DWORD ? + hInstance DWORD ? + union + hIcon DWORD ? + pszIcon DWORD ? + ends + pszCaption DWORD ? + nPages DWORD ? + union + nStartPage DWORD ? + pStartPage DWORD ? + ends + union + ppsp DWORD ? + phpage DWORD ? + ends + pfnCallback DWORD ? + union + hbmWatermark DWORD ? + pszbmWatermark DWORD ? + ends + hplWatermark DWORD ? + union + hbmHeader DWORD ? + pszbmHeader DWORD ? + ends + +PROPSHEETHEADER ENDS + +PROPSHEETHEADERA equ +PROPSHEETHEADERW equ + +PSCB_INITIALIZED equ 1 +PSCB_PRECREATE equ 2 + +PSHNOTIFY STRUCT + hdr NMHDR <> + lParam DWORD ? +PSHNOTIFY ENDS + +PSN_FIRST equ 0-200 +PSN_LAST equ 0-299 + +PSN_SETACTIVE equ PSN_FIRST-0 +PSN_KILLACTIVE equ PSN_FIRST-1 +PSN_APPLY equ PSN_FIRST-2 +PSN_RESET equ PSN_FIRST-3 +PSN_HELP equ PSN_FIRST-5 +PSN_WIZBACK equ PSN_FIRST-6 +PSN_WIZNEXT equ PSN_FIRST-7 +PSN_WIZFINISH equ PSN_FIRST-8 +PSN_QUERYCANCEL equ PSN_FIRST-9 +PSN_GETOBJECT equ PSN_FIRST-10 + +PSNRET_NOERROR equ 0 +PSNRET_INVALID equ 1 +PSNRET_INVALID_NOCHANGEPAGE equ 2 + + +PSM_SETCURSEL equ WM_USER + 101 +PSM_REMOVEPAGE equ WM_USER + 102 +PSM_ADDPAGE equ WM_USER + 103 +PSM_CHANGED equ WM_USER + 104 +PSM_RESTARTWINDOWS equ WM_USER + 105 +PSM_REBOOTSYSTEM equ WM_USER + 106 +PSM_CANCELTOCLOSE equ WM_USER + 107 +PSM_QUERYSIBLINGS equ WM_USER + 108 +PSM_UNCHANGED equ WM_USER + 109 +PSM_APPLY equ WM_USER + 110 +PSM_SETTITLEA equ WM_USER + 111 + +PSM_SETTITLE equ +PSM_SETWIZBUTTONS equ WM_USER + 112 + +PSWIZB_BACK equ 00000001h +PSWIZB_NEXT equ 00000002h +PSWIZB_FINISH equ 00000004h +PSWIZB_DISABLEDFINISH equ 00000008h + +PSM_PRESSBUTTON equ WM_USER + 113 + +PSBTN_BACK equ 0 +PSBTN_NEXT equ 1 +PSBTN_FINISH equ 2 +PSBTN_OK equ 3 +PSBTN_APPLYNOW equ 4 +PSBTN_CANCEL equ 5 +PSBTN_HELP equ 6 +PSBTN_MAX equ 6 + +PSM_SETCURSELID equ WM_USER + 114 + +PSM_SETFINISHTEXTA equ WM_USER + 115 + +PSM_SETFINISHTEXT equ + +PSM_GETTABCONTROL equ WM_USER + 116 +PSM_ISDIALOGMESSAGE equ WM_USER + 117 +PSM_GETCURRENTPAGEDWORD equ WM_USER + 118 + +ID_PSRESTARTWINDOWS equ 2 +ID_PSREBOOTSYSTEM equ + +WIZ_CXDLG equ 276 +WIZ_CYDLG equ 140 + +WIZ_CXBMP equ 80 + +WIZ_BODYX equ 92 +WIZ_BODYCX equ 184 + +PROP_SM_CXDLG equ 212 +PROP_SM_CYDLG equ 188 + +PROP_MED_CXDLG equ 227 +PROP_MED_CYDLG equ 215 + +PROP_LG_CXDLG equ 252 +PROP_LG_CYDLG equ 218 + +;;;; end propsht + +;;;; winnt + +; --------------------- equates & structures for WINNT --------------------- + +MAX_NATURAL_ALIGNMENT equ sizeof DWORD +LANG_AFRIKAANS equ 36h +LANG_ALBANIAN equ 1ch +LANG_ARABIC equ 01h +LANG_ARMENIAN equ 2bh +LANG_ASSAMESE equ 4dh +LANG_AZERI equ 2ch +LANG_BASQUE equ 2dh +LANG_BELARUSIAN equ 23h +LANG_BENGALI equ 45h +LANG_CATALAN equ 03h +LANG_ESTONIAN equ 25h +LANG_FAEROESE equ 38h +LANG_FARSI equ 29h +LANG_GEORGIAN equ 37h +LANG_GUJARATI equ 47h +LANG_HEBREW equ 0dh +LANG_HINDI equ 39h +LANG_INDONESIAN equ 21h +LANG_KANNADA equ 4bh +LANG_KASHMIRI equ 60h +LANG_KAZAK equ 3fh +LANG_KONKANI equ 57h +LANG_LATVIAN equ 26h +LANG_LITHUANIAN equ 27h +LANG_MACEDONIAN equ 2fh +LANG_MALAY equ 3eh +LANG_MALAYALAM equ 4ch +LANG_MANIPURI equ 58h +LANG_MARATHI equ 4eh +LANG_NEPALI equ 61h +LANG_ORIYA equ 48h +LANG_PUNJABI equ 46h +LANG_SANSKRIT equ 4fh +LANG_SERBIAN equ 1ah +LANG_SINDHI equ 59h +LANG_SWAHILI equ 41h +LANG_TAMIL equ 49h +LANG_TATAR equ 44h +LANG_TELUGU equ 4ah +LANG_THAI equ 1eh +LANG_UKRAINIAN equ 22h +LANG_URDU equ 20h +LANG_UZBEK equ 43h +LANG_VIETNAMESE equ 2ah +SUBLANG_ARABIC_SAUDI_ARABIA equ 01h +SUBLANG_ARABIC_IRAQ equ 02h +SUBLANG_ARABIC_EGYPT equ 03h +SUBLANG_ARABIC_LIBYA equ 04h +SUBLANG_ARABIC_ALGERIA equ 05h +SUBLANG_ARABIC_MOROCCO equ 06h +SUBLANG_ARABIC_TUNISIA equ 07h +SUBLANG_ARABIC_OMAN equ 08h +SUBLANG_ARABIC_YEMEN equ 09h +SUBLANG_ARABIC_SYRIA equ 0ah +SUBLANG_ARABIC_JORDAN equ 0bh +SUBLANG_ARABIC_LEBANON equ 0ch +SUBLANG_ARABIC_KUWAIT equ 0dh +SUBLANG_ARABIC_UAE equ 0eh +SUBLANG_ARABIC_BAHRAIN equ 0fh +SUBLANG_ARABIC_QATAR equ 10h +SUBLANG_AZERI_LATIN equ 01h +SUBLANG_AZERI_CYRILLIC equ 02h +SUBLANG_CHINESE_MACAU equ 05h +SUBLANG_ENGLISH_SOUTH_AFRICA equ 07h +SUBLANG_ENGLISH_JAMAICA equ 08h +SUBLANG_ENGLISH_CARIBBEAN equ 09h +SUBLANG_ENGLISH_BELIZE equ 0ah +SUBLANG_ENGLISH_TRINIDAD equ 0bh +SUBLANG_ENGLISH_ZIMBABWE equ 0ch +SUBLANG_ENGLISH_PHILIPPINES equ 0dh +SUBLANG_FRENCH_LUXEMBOURG equ 05h +SUBLANG_FRENCH_MONACO equ 06h +SUBLANG_GERMAN_LUXEMBOURG equ 04h +SUBLANG_GERMAN_LIECHTENSTEIN equ 05h +SUBLANG_KASHMIRI_INDIA equ 02h +SUBLANG_KOREAN equ 01h +SUBLANG_LITHUANIAN equ 01h +SUBLANG_LITHUANIAN_CLASSIC equ 02h +SUBLANG_MALAY_MALAYSIA equ 01h +SUBLANG_MALAY_BRUNEI_DARUSSALAM equ 02h +SUBLANG_NEPALI_INDIA equ 02h +SUBLANG_SERBIAN_LATIN equ 02h +SUBLANG_SERBIAN_CYRILLIC equ 03h +SUBLANG_SPANISH_GUATEMALA equ 04h +SUBLANG_SPANISH_COSTA_RICA equ 05h +SUBLANG_SPANISH_PANAMA equ 06h +SUBLANG_SPANISH_DOMINICAN_REPUBLIC equ 07h +SUBLANG_SPANISH_VENEZUELA equ 08h +SUBLANG_SPANISH_COLOMBIA equ 09h +SUBLANG_SPANISH_PERU equ 0ah +SUBLANG_SPANISH_ARGENTINA equ 0bh +SUBLANG_SPANISH_ECUADOR equ 0ch +SUBLANG_SPANISH_CHILE equ 0dh +SUBLANG_SPANISH_URUGUAY equ 0eh +SUBLANG_SPANISH_PARAGUAY equ 0fh +SUBLANG_SPANISH_BOLIVIA equ 10h +SUBLANG_SPANISH_EL_SALVADOR equ 11h +SUBLANG_SPANISH_HONDURAS equ 12h +SUBLANG_SPANISH_NICARAGUA equ 13h +SUBLANG_SPANISH_PUERTO_RICO equ 14h +SUBLANG_SWEDISH equ 01h +SUBLANG_SWEDISH_FINLAND equ 02h +SUBLANG_URDU_PAKISTAN equ 01h +SUBLANG_URDU_INDIA equ 02h +SUBLANG_UZBEK_LATIN equ 01h +SUBLANG_UZBEK_CYRILLIC equ 02h +SORT_CHINESE_PRCP equ 0h +SORT_CHINESE_PRC equ 2h +SORT_CHINESE_BOPOMOFO equ 3h +SORT_GERMAN_PHONE_BOOK equ 1h +SORT_HUNGARIAN_DEFAULT equ 0h +SORT_HUNGARIAN_TECHNICAL equ 1h +SORT_GEORGIAN_TRADITIONAL equ 0h +SORT_GEORGIAN_MODERN equ 1h +NLS_VALID_LOCALE_MASK equ 000fffffh +STATUS_SEGMENT_NOTIFICATION equ 40000005h +STATUS_GUARD_PAGE_VIOLATION equ 80000001h +STATUS_INVALID_HANDLE equ 0C0000008h +STATUS_FLOAT_MULTIPLE_FAULTS equ 0C00002B4h +STATUS_FLOAT_MULTIPLE_TRAPS equ 0C00002B5h +STATUS_ILLEGAL_VLM_REFERENCE equ 0C00002C0h +MAXIMUM_WAIT_OBJECTS equ 64 +MAXIMUM_SUSPEND_COUNT equ MAXCHAR +CONTEXT_EXTENDED_REGISTERS equ (CONTEXT_i386 + 00000020h) +SECURITY_NULL_SID_AUTHORITY equ {0,0,0,0,0,0} +SECURITY_WORLD_SID_AUTHORITY equ {0,0,0,0,0,1} +SECURITY_LOCAL_SID_AUTHORITY equ {0,0,0,0,0,2} +SECURITY_CREATOR_SID_AUTHORITY equ {0,0,0,0,0,3} +SECURITY_NON_UNIQUE_AUTHORITY equ {0,0,0,0,0,4} +SECURITY_CREATOR_OWNER_SERVER_RID equ (00000002h) +SECURITY_CREATOR_GROUP_SERVER_RID equ (00000003h) +SECURITY_NT_AUTHORITY equ {0,0,0,0,0,5} +SECURITY_PROXY_RID equ (00000008h) +SECURITY_ENTERPRISE_CONTROLLERS_RID equ (00000009h) +SECURITY_SERVER_LOGON_RID equ SECURITY_ENTERPRISE_CONTROLLERS_RID +SECURITY_PRINCIPAL_SELF_RID equ (0000000Ah) +SECURITY_AUTHENTICATED_USER_RID equ (0000000Bh) +SECURITY_RESTRICTED_CODE_RID equ (0000000Ch) +SECURITY_LOGON_IDS_RID_COUNT equ (3) +DOMAIN_USER_RID_KRBTGT equ (000001F6h) +DOMAIN_GROUP_RID_COMPUTERS equ (00000203h) +DOMAIN_GROUP_RID_CONTROLLERS equ (00000204h) +DOMAIN_GROUP_RID_CERT_ADMINS equ (00000205h) +DOMAIN_GROUP_RID_SCHEMA_ADMINS equ (00000206h) +SYSTEM_LUID equ { 3E7h, 0h } +ANONYMOUS_LOGON_LUID equ { 3e6h, 0h } +SE_GROUP_USE_FOR_DENY_ONLY equ (00000010h) +ACL_REVISION_DS equ (4) +MIN_ACL_REVISION equ ACL_REVISION2 +ACL_REVISION3 equ (3) +ACL_REVISION4 equ (4) +MAX_ACL_REVISION equ ACL_REVISION4 +ACCESS_MIN_MS_ACE_TYPE equ (0h) +ACCESS_MAX_MS_V2_ACE_TYPE equ (3h) +ACCESS_ALLOWED_COMPOUND_ACE_TYPE equ (4h) +ACCESS_MAX_MS_V3_ACE_TYPE equ (4h) +ACCESS_MIN_MS_OBJECT_ACE_TYPE equ (5h) +ACCESS_ALLOWED_OBJECT_ACE_TYPE equ (5h) +ACCESS_DENIED_OBJECT_ACE_TYPE equ (6h) +SYSTEM_AUDIT_OBJECT_ACE_TYPE equ (7h) +SYSTEM_ALARM_OBJECT_ACE_TYPE equ (8h) +ACCESS_MAX_MS_OBJECT_ACE_TYPE equ (8h) +ACCESS_MAX_MS_V4_ACE_TYPE equ (8h) +ACCESS_MAX_MS_ACE_TYPE equ (8h) +INHERITED_ACE equ (10h) +ACE_OBJECT_TYPE_PRESENT equ 1h +ACE_INHERITED_OBJECT_TYPE_PRESENT equ 2h +SE_DACL_AUTO_INHERIT_REQ equ (0100h) +SE_SACL_AUTO_INHERIT_REQ equ (0200h) +SE_DACL_AUTO_INHERITED equ (0400h) +SE_SACL_AUTO_INHERITED equ (0800h) +SE_DACL_PROTECTED equ (1000h) +SE_SACL_PROTECTED equ (2000h) +ACCESS_OBJECT_GUID equ 0 +ACCESS_PROPERTY_SET_GUID equ 1 +ACCESS_PROPERTY_GUID equ 2 +ACCESS_MAX_LEVEL equ 4 +AUDIT_ALLOW_NO_PRIVILEGE equ 1h + +ACCESS_DS_SOURCE_A equ A("DS") +ACCESS_DS_SOURCE_W equ L("DS") +ACCESS_DS_OBJECT_TYPE_NAME_A equ A("Directory Service Object") +ACCESS_DS_OBJECT_TYPE_NAME_W equ L("Directory Service Object") + +SE_CREATE_TOKEN_NAME equ TEXT("SeCreateTokenPrivilege") +SE_ASSIGNPRIMARYTOKEN_NAME equ TEXT("SeAssignPrimaryTokenPrivilege") +SE_LOCK_MEMORY_NAME equ TEXT("SeLockMemoryPrivilege") +SE_INCREASE_QUOTA_NAME equ TEXT("SeIncreaseQuotaPrivilege") +SE_UNSOLICITED_INPUT_NAME equ TEXT("SeUnsolicitedInputPrivilege") +SE_MACHINE_ACCOUNT_NAME equ TEXT("SeMachineAccountPrivilege") +SE_TCB_NAME equ TEXT("SeTcbPrivilege") +SE_SECURITY_NAME equ TEXT("SeSecurityPrivilege") +SE_TAKE_OWNERSHIP_NAME equ TEXT("SeTakeOwnershipPrivilege") +SE_LOAD_DRIVER_NAME equ TEXT("SeLoadDriverPrivilege") +SE_SYSTEM_PROFILE_NAME equ TEXT("SeSystemProfilePrivilege") +SE_SYSTEMTIME_NAME equ TEXT("SeSystemtimePrivilege") +SE_PROF_SINGLE_PROCESS_NAME equ TEXT("SeProfileSingleProcessPrivilege") +SE_INC_BASE_PRIORITY_NAME equ TEXT("SeIncreaseBasePriorityPrivilege") +SE_CREATE_PAGEFILE_NAME equ TEXT("SeCreatePagefilePrivilege") +SE_CREATE_PERMANENT_NAME equ TEXT("SeCreatePermanentPrivilege") +SE_BACKUP_NAME equ TEXT("SeBackupPrivilege") +SE_RESTORE_NAME equ TEXT("SeRestorePrivilege") +SE_SHUTDOWN_NAME equ TEXT("SeShutdownPrivilege") +SE_DEBUG_NAME equ TEXT("SeDebugPrivilege") +SE_AUDIT_NAME equ TEXT("SeAuditPrivilege") +SE_SYSTEM_ENVIRONMENT_NAME equ TEXT("SeSystemEnvironmentPrivilege") +SE_CHANGE_NOTIFY_NAME equ TEXT("SeChangeNotifyPrivilege") +SE_REMOTE_SHUTDOWN_NAME equ TEXT("SeRemoteShutdownPrivilege") + +TOKEN_ASSIGN_PRIMARY equ (0001h) +TOKEN_DUPLICATE equ (0002h) +TOKEN_IMPERSONATE equ (0004h) +TOKEN_QUERY equ (0008h) +TOKEN_QUERY_SOURCE equ (0010h) +TOKEN_ADJUST_GROUPS equ (0040h) +TOKEN_ADJUST_DEFAULT equ (0080h) +TOKEN_ADJUST_SESSIONID equ (0100h) +TOKEN_ALL_ACCESS equ (STANDARD_RIGHTS_REQUIRED+TOKEN_ASSIGN_PRIMARY+TOKEN_DUPLICATE+TOKEN_IMPERSONATE+TOKEN_QUERY+TOKEN_QUERY_SOURCE+TOKEN_ADJUST_PRIVILEGES+TOKEN_ADJUST_GROUPS+TOKEN_ADJUST_SESSIONID+TOKEN_ADJUST_DEFAULT) +TOKEN_READ equ (STANDARD_RIGHTS_READ+TOKEN_QUERY) +TOKEN_WRITE equ (STANDARD_RIGHTS_WRITE+TOKEN_ADJUST_PRIVILEGES+TOKEN_ADJUST_GROUPS+TOKEN_ADJUST_DEFAULT) +TOKEN_EXECUTE equ (STANDARD_RIGHTS_EXECUTE) +TOKEN_SOURCE_LENGTH equ 8 +SECURITY_DYNAMIC_TRACKING equ TRUE +SECURITY_STATIC_TRACKING equ FALSE +OWNER_SECURITY_INFORMATION equ (00000001h) +GROUP_SECURITY_INFORMATION equ (00000002h) +DACL_SECURITY_INFORMATION equ (00000004h) +SACL_SECURITY_INFORMATION equ (00000008h) +PROCESS_TERMINATE equ (0001h) +PROCESS_CREATE_THREAD equ (0002h) +PROCESS_SET_SESSIONID equ (0004h) +PROCESS_VM_OPERATION equ (0008h) +PROCESS_VM_READ equ (0010h) +PROCESS_VM_WRITE equ (0020h) +PROCESS_DUP_HANDLE equ (0040h) +PROCESS_CREATE_PROCESS equ (0080h) +PROCESS_SET_QUOTA equ (0100h) +PROCESS_SET_INFORMATION equ (0200h) +PROCESS_QUERY_INFORMATION equ (0400h) +PROCESS_ALL_ACCESS equ (STANDARD_RIGHTS_REQUIRED + SYNCHRONIZE + 0FFFh) +MAXIMUM_PROCESSORS equ 32 +THREAD_TERMINATE equ (0001h) +THREAD_SUSPEND_RESUME equ (0002h) +THREAD_GET_CONTEXT equ (0008h) +THREAD_SET_CONTEXT equ (0010h) +THREAD_SET_INFORMATION equ (0020h) +THREAD_QUERY_INFORMATION equ (0040h) +THREAD_SET_THREAD_TOKEN equ (0080h) +THREAD_IMPERSONATE equ (0100h) +THREAD_DIRECT_IMPERSONATION equ (0200h) +THREAD_ALL_ACCESS equ (STANDARD_RIGHTS_REQUIRED + SYNCHRONIZE + 3FFh) + +JOB_OBJECT_ASSIGN_PROCESS equ (0001h) +JOB_OBJECT_SET_ATTRIBUTES equ (0002h) +JOB_OBJECT_QUERY equ (0004h) +JOB_OBJECT_TERMINATE equ (0008h) +JOB_OBJECT_SET_SECURITY_ATTRIBUTES equ (0010h) +JOB_OBJECT_ALL_ACCESS equ (STANDARD_RIGHTS_REQUIRED + SYNCHRONIZE + 1Fh ) + +TLS_MINIMUM_AVAILABLE equ 64 +EVENT_ALL_ACCESS equ (STANDARD_RIGHTS_REQUIRED+SYNCHRONIZE+3h) +MUTANT_QUERY_STATE equ 0001h +MUTANT_ALL_ACCESS equ (STANDARD_RIGHTS_REQUIRED+SYNCHRONIZE+ MUTANT_QUERY_STATE) +SEMAPHORE_MODIFY_STATE equ 0002h +SEMAPHORE_ALL_ACCESS equ (STANDARD_RIGHTS_REQUIRED+SYNCHRONIZE+3h) +TIMER_QUERY_STATE equ 0001h +TIMER_MODIFY_STATE equ 0002h +TIMER_ALL_ACCESS equ (STANDARD_RIGHTS_REQUIRED+SYNCHRONIZE+TIMER_QUERY_STATE+TIMER_MODIFY_STATE) +TIME_ZONE_ID_UNKNOWN equ 0 +TIME_ZONE_ID_STANDARD equ 1 +TIME_ZONE_ID_DAYLIGHT equ 2 +PROCESSOR_PPC_601 equ 601 +PROCESSOR_PPC_603 equ 603 +PROCESSOR_PPC_604 equ 604 +PROCESSOR_PPC_620 equ 620 +PROCESSOR_HITACHI_SH3 equ 10003 +PROCESSOR_HITACHI_SH3E equ 10004 +PROCESSOR_HITACHI_SH4 equ 10005 +PROCESSOR_MOTOROLA_821 equ 821 +PROCESSOR_SHx_SH3 equ 103 +PROCESSOR_SHx_SH4 equ 104 +PROCESSOR_STRONGARM equ 2577 +PROCESSOR_ARM720 equ 1824 +PROCESSOR_ARM820 equ 2080 +PROCESSOR_ARM920 equ 2336 +PROCESSOR_ARM_7TDMI equ 70001 +PROCESSOR_ARCHITECTURE_INTEL equ 0 +PROCESSOR_ARCHITECTURE_MIPS equ 1 +PROCESSOR_ARCHITECTURE_ALPHA equ 2 +PROCESSOR_ARCHITECTURE_PPC equ 3 +PROCESSOR_ARCHITECTURE_SHX equ 4 +PROCESSOR_ARCHITECTURE_ARM equ 5 +PROCESSOR_ARCHITECTURE_IA64 equ 6 +PROCESSOR_ARCHITECTURE_ALPHA64 equ 7 +PROCESSOR_ARCHITECTURE_UNKNOWN equ 0FFFFh +PF_FLOATING_POINT_PRECISION_ERRATA equ 0 +PF_FLOATING_POINT_EMULATED equ 1 +PF_COMPARE_EXCHANGE_DOUBLE equ 2 +PF_MMX_INSTRUCTIONS_AVAILABLE equ 3 +PF_PPC_MOVEMEM_64BIT_OK equ 4 +PF_ALPHA_BYTE_INSTRUCTIONS equ 5 +PF_XMMI_INSTRUCTIONS_AVAILABLE equ 6 +PF_AMD3D_INSTRUCTIONS_AVAILABLE equ 7 +SYSTEM_FLAG_REMOTE_BOOT_CLIENT equ 00000001h +SYSTEM_FLAG_DISKLESS_CLIENT equ 00000002h +SECTION_ALL_ACCESS equ (STANDARD_RIGHTS_REQUIRED+SECTION_QUERY+SECTION_MAP_WRITE+SECTION_MAP_READ+SECTION_MAP_EXECUTE+SECTION_EXTEND_SIZE) +PAGE_WRITECOMBINE equ 400h +MEM_4MB_PAGES equ 80000000h +SEC_VLM equ 2000000h +FILE_GENERIC_READ equ (STANDARD_RIGHTS_READ+FILE_READ_DATA+FILE_READ_ATTRIBUTES+FILE_READ_EA+SYNCHRONIZE) +FILE_GENERIC_WRITE equ (STANDARD_RIGHTS_WRITE+FILE_WRITE_DATA+FILE_WRITE_ATTRIBUTES+FILE_WRITE_EA+FILE_APPEND_DATA+SYNCHRONIZE) +FILE_GENERIC_EXECUTE equ (STANDARD_RIGHTS_EXECUTE+FILE_READ_ATTRIBUTES+FILE_EXECUTE+SYNCHRONIZE) +FILE_SHARE_DELETE equ 00000004h +FILE_ATTRIBUTE_SPARSE_FILE equ 00000200h +FILE_ATTRIBUTE_REPARSE_POINT equ 00000400h +FILE_ATTRIBUTE_OFFLINE equ 00001000h +FILE_ATTRIBUTE_NOT_CONTENT_INDEXED equ 00002000h +FILE_ATTRIBUTE_ENCRYPTED equ 00004000h +FILE_NOTIFY_CHANGE_LAST_ACCESS equ 00000020h +FILE_NOTIFY_CHANGE_CREATION equ 00000040h +FILE_ACTION_ADDED equ 00000001h +FILE_ACTION_REMOVED equ 00000002h +FILE_ACTION_MODIFIED equ 00000003h +FILE_ACTION_RENAMED_OLD_NAME equ 00000004h +FILE_ACTION_RENAMED_NEW_NAME equ 00000005h +FILE_VOLUME_QUOTAS equ 00000020h +FILE_SUPPORTS_SPARSE_FILES equ 00000040h +FILE_SUPPORTS_REPARSE_POINTS equ 00000080h +FILE_SUPPORTS_REMOTE_STORAGE equ 00000100h +FILE_SUPPORTS_OBJECT_IDS equ 00010000h +FILE_SUPPORTS_ENCRYPTION equ 00020000h +MAXIMUM_REPARSE_DATA_BUFFER_SIZE equ ( 16 * 1024 ) +IO_REPARSE_TAG_RESERVED_ZERO equ (0) +IO_REPARSE_TAG_RESERVED_ONE equ (1) +IO_REPARSE_TAG_RESERVED_RANGE equ IO_REPARSE_TAG_RESERVED_ONE +IO_REPARSE_TAG_VALID_VALUES equ (0E000FFFFh) +IO_REPARSE_TAG_SYMBOLIC_LINK equ IO_REPARSE_TAG_RESERVED_ZERO +IO_REPARSE_TAG_MOUNT_POINT equ (0A0000003h) +IO_REPARSE_TAG_HSM equ (0C0000004h) +IO_REPARSE_TAG_NSS equ (80000005h) +IO_REPARSE_TAG_NSSRECOVER equ (80000006h) +IO_REPARSE_TAG_SIS equ (80000007h) +IO_REPARSE_TAG_DFS equ (80000008h) +ES_SYSTEM_REQUIRED equ (00000001h) +ES_DISPLAY_REQUIRED equ (00000002h) +ES_USER_PRESENT equ (00000004h) +ES_CONTINUOUS equ (80000000h) +IMAGE_DOS_SIGNATURE equ 5A4Dh +IMAGE_OS2_SIGNATURE equ 454Eh +IMAGE_OS2_SIGNATURE_LE equ 454Ch +IMAGE_VXD_SIGNATURE equ 454Ch +IMAGE_NT_SIGNATURE equ 00004550h +IMAGE_SIZEOF_FILE_HEADER equ 20 +IMAGE_FILE_RELOCS_STRIPPED equ 0001h +IMAGE_FILE_EXECUTABLE_IMAGE equ 0002h +IMAGE_FILE_LINE_NUMS_STRIPPED equ 0004h +IMAGE_FILE_LOCAL_SYMS_STRIPPED equ 0008h +IMAGE_FILE_AGGRESIVE_WS_TRIM equ 0010h +IMAGE_FILE_LARGE_ADDRESS_AWARE equ 0020h +IMAGE_FILE_BYTES_REVERSED_LO equ 0080h +IMAGE_FILE_32BIT_MACHINE equ 0100h +IMAGE_FILE_DEBUG_STRIPPED equ 0200h +IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP equ 0400h +IMAGE_FILE_NET_RUN_FROM_SWAP equ 0800h +IMAGE_FILE_SYSTEM equ 1000h +IMAGE_FILE_DLL equ 2000h +IMAGE_FILE_UP_SYSTEM_ONLY equ 4000h +IMAGE_FILE_BYTES_REVERSED_HI equ 8000h +IMAGE_FILE_MACHINE_UNKNOWN equ 0 +IMAGE_FILE_MACHINE_I386 equ 014ch +IMAGE_FILE_MACHINE_R3000 equ 0162h +IMAGE_FILE_MACHINE_R4000 equ 0166h +IMAGE_FILE_MACHINE_R10000 equ 0168h +IMAGE_FILE_MACHINE_WCEMIPSV2 equ 0169h +IMAGE_FILE_MACHINE_ALPHA equ 0184h +IMAGE_FILE_MACHINE_POWERPC equ 01F0h +IMAGE_FILE_MACHINE_SH3 equ 01a2h +IMAGE_FILE_MACHINE_SH3E equ 01a4h +IMAGE_FILE_MACHINE_SH4 equ 01a6h +IMAGE_FILE_MACHINE_ARM equ 01c0h +IMAGE_FILE_MACHINE_THUMB equ 01c2h +IMAGE_FILE_MACHINE_IA64 equ 0200h +IMAGE_FILE_MACHINE_MIPS16 equ 0266h +IMAGE_FILE_MACHINE_MIPSFPU equ 0366h +IMAGE_FILE_MACHINE_MIPSFPU16 equ 0466h +IMAGE_FILE_MACHINE_ALPHA64 equ 0284h +IMAGE_FILE_MACHINE_AXP64 equ IMAGE_FILE_MACHINE_ALPHA64 +IMAGE_SIZEOF_ROM_OPTIONAL_HEADER equ 56 +IMAGE_SIZEOF_STD_OPTIONAL_HEADER equ 28 +IMAGE_SIZEOF_NT_OPTIONAL32_HEADER equ 224 +IMAGE_SIZEOF_NT_OPTIONAL64_HEADER equ 240 +IMAGE_NT_OPTIONAL_HDR32_MAGIC equ 10bh +IMAGE_NT_OPTIONAL_HDR64_MAGIC equ 20bh +IMAGE_ROM_OPTIONAL_HDR_MAGIC equ 107h +IMAGE_SUBSYSTEM_UNKNOWN equ 0 +IMAGE_SUBSYSTEM_NATIVE equ 1 +IMAGE_SUBSYSTEM_WINDOWS_GUI equ 2 +IMAGE_SUBSYSTEM_WINDOWS_CUI equ 3 +IMAGE_SUBSYSTEM_OS2_CUI equ 5 +IMAGE_SUBSYSTEM_POSIX_CUI equ 7 +IMAGE_SUBSYSTEM_NATIVE_WINDOWS equ 8 +IMAGE_SUBSYSTEM_WINDOWS_CE_GUI equ 9 +IMAGE_DLLCHARACTERISTICS_WDM_DRIVER equ 2000h +IMAGE_DIRECTORY_ENTRY_ARCHITECTURE equ 7 +IMAGE_DIRECTORY_ENTRY_DELAY_IMPORT equ 13 +IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR equ 14 +IMAGE_SIZEOF_SHORT_NAME equ 8 +IMAGE_SCN_TYPE_NO_PAD equ 00000008h +IMAGE_SCN_CNT_CODE equ 00000020h +IMAGE_SCN_CNT_INITIALIZED_DATA equ 00000040h +IMAGE_SCN_CNT_UNINITIALIZED_DATA equ 00000080h +IMAGE_SCN_LNK_OTHER equ 00000100h +IMAGE_SCN_LNK_INFO equ 00000200h +IMAGE_SCN_LNK_REMOVE equ 00000800h +IMAGE_SCN_LNK_COMDAT equ 00001000h +IMAGE_SCN_NO_DEFER_SPEC_EXC equ 00004000h +IMAGE_SCN_GPREL equ 00008000h +IMAGE_SCN_MEM_FARDATA equ 00008000h +IMAGE_SCN_MEM_PURGEABLE equ 00020000h +IMAGE_SCN_MEM_16BIT equ 00020000h +IMAGE_SCN_MEM_LOCKED equ 00040000h +IMAGE_SCN_MEM_PRELOAD equ 00080000h +IMAGE_SCN_ALIGN_1BYTES equ 00100000h +IMAGE_SCN_ALIGN_2BYTES equ 00200000h +IMAGE_SCN_ALIGN_4BYTES equ 00300000h +IMAGE_SCN_ALIGN_8BYTES equ 00400000h +IMAGE_SCN_ALIGN_16BYTES equ 00500000h +IMAGE_SCN_ALIGN_32BYTES equ 00600000h +IMAGE_SCN_ALIGN_64BYTES equ 00700000h +IMAGE_SCN_ALIGN_128BYTES equ 00800000h +IMAGE_SCN_ALIGN_256BYTES equ 00900000h +IMAGE_SCN_ALIGN_512BYTES equ 00A00000h +IMAGE_SCN_ALIGN_1024BYTES equ 00B00000h +IMAGE_SCN_ALIGN_2048BYTES equ 00C00000h +IMAGE_SCN_ALIGN_4096BYTES equ 00D00000h +IMAGE_SCN_ALIGN_8192BYTES equ 00E00000h +IMAGE_SCN_LNK_NRELOC_OVFL equ 01000000h +IMAGE_SCN_MEM_DISCARDABLE equ 02000000h +IMAGE_SCN_MEM_NOT_CACHED equ 04000000h +IMAGE_SCN_MEM_NOT_PAGED equ 08000000h +IMAGE_SCN_MEM_SHARED equ 10000000h +IMAGE_SCN_MEM_EXECUTE equ 20000000h +IMAGE_SCN_MEM_READ equ 40000000h +IMAGE_SCN_MEM_WRITE equ 80000000h +IMAGE_SCN_SCALE_INDEX equ 00000001h +IMAGE_SIZEOF_SYMBOL equ 18 +IMAGE_SYM_UNDEFINED equ 0 +IMAGE_SYM_ABSOLUTE equ -1 +IMAGE_SYM_DEBUG equ -2 +IMAGE_SYM_TYPE_NULL equ 0000h +IMAGE_SYM_TYPE_VOID equ 0001h +IMAGE_SYM_TYPE_CHAR equ 0002h +IMAGE_SYM_TYPE_SHORT equ 0003h +IMAGE_SYM_TYPE_INT equ 0004h +IMAGE_SYM_TYPE_LONG equ 0005h +IMAGE_SYM_TYPE_FLOAT equ 0006h +IMAGE_SYM_TYPE_DOUBLE equ 0007h +IMAGE_SYM_TYPE_STRUCT equ 0008h +IMAGE_SYM_TYPE_UNION equ 0009h +IMAGE_SYM_TYPE_ENUM equ 000Ah +IMAGE_SYM_TYPE_MOE equ 000Bh +IMAGE_SYM_TYPE_BYTE equ 000Ch +IMAGE_SYM_TYPE_WORD equ 000Dh +IMAGE_SYM_TYPE_UINT equ 000Eh +IMAGE_SYM_TYPE_DWORD equ 000Fh +IMAGE_SYM_TYPE_PCODE equ 8000h +IMAGE_SYM_DTYPE_NULL equ 0 +IMAGE_SYM_DTYPE_POINTER equ 1 +IMAGE_SYM_DTYPE_FUNCTION equ 2 +IMAGE_SYM_DTYPE_ARRAY equ 3 +IMAGE_SYM_CLASS_END_OF_FUNCTION equ -1 +IMAGE_SYM_CLASS_NULL equ 0000h +IMAGE_SYM_CLASS_AUTOMATIC equ 0001h +IMAGE_SYM_CLASS_EXTERNAL equ 0002h +IMAGE_SYM_CLASS_STATIC equ 0003h +IMAGE_SYM_CLASS_REGISTER equ 0004h +IMAGE_SYM_CLASS_EXTERNAL_DEF equ 0005h +IMAGE_SYM_CLASS_LABEL equ 0006h +IMAGE_SYM_CLASS_UNDEFINED_LABEL equ 0007h +IMAGE_SYM_CLASS_MEMBER_OF_STRUCT equ 0008h +IMAGE_SYM_CLASS_ARGUMENT equ 0009h +IMAGE_SYM_CLASS_STRUCT_TAG equ 000Ah +IMAGE_SYM_CLASS_MEMBER_OF_UNION equ 000Bh +IMAGE_SYM_CLASS_UNION_TAG equ 000Ch +IMAGE_SYM_CLASS_TYPE_DEFINITION equ 000Dh +IMAGE_SYM_CLASS_UNDEFINED_STATIC equ 000Eh +IMAGE_SYM_CLASS_ENUM_TAG equ 000Fh +IMAGE_SYM_CLASS_MEMBER_OF_ENUM equ 0010h +IMAGE_SYM_CLASS_REGISTER_PARAM equ 0011h +IMAGE_SYM_CLASS_BIT_FIELD equ 0012h +IMAGE_SYM_CLASS_FAR_EXTERNAL equ 0044h +IMAGE_SYM_CLASS_BLOCK equ 0064h +IMAGE_SYM_CLASS_FUNCTION equ 0065h +IMAGE_SYM_CLASS_END_OF_STRUCT equ 0066h +IMAGE_SYM_CLASS_FILE equ 0067h +IMAGE_SYM_CLASS_SECTION equ 0068h +IMAGE_SYM_CLASS_WEAK_EXTERNAL equ 0069h +N_BTMASK equ 000Fh +N_TMASK equ 0030h +N_TMASK1 equ 00C0h +N_TMASK2 equ 00F0h +N_BTSHFT equ 4 +N_TSHIFT equ 2 +IMAGE_SIZEOF_AUX_SYMBOL equ 18 +IMAGE_COMDAT_SELECT_NODUPLICATES equ 1 +IMAGE_COMDAT_SELECT_ANY equ 2 +IMAGE_COMDAT_SELECT_SAME_SIZE equ 3 +IMAGE_COMDAT_SELECT_EXACT_MATCH equ 4 +IMAGE_COMDAT_SELECT_ASSOCIATIVE equ 5 +IMAGE_COMDAT_SELECT_LARGEST equ 6 +IMAGE_COMDAT_SELECT_NEWEST equ 7 +IMAGE_WEAK_EXTERN_SEARCH_NOLIBRARY equ 1 +IMAGE_WEAK_EXTERN_SEARCH_LIBRARY equ 2 +IMAGE_WEAK_EXTERN_SEARCH_ALIAS equ 3 +IMAGE_SIZEOF_RELOCATION equ 10 +IMAGE_REL_I386_ABSOLUTE equ 0000h +IMAGE_REL_I386_DIR16 equ 0001h +IMAGE_REL_I386_REL16 equ 0002h +IMAGE_REL_I386_DIR32 equ 0006h +IMAGE_REL_I386_DIR32NB equ 0007h +IMAGE_REL_I386_SEG12 equ 0009h +IMAGE_REL_I386_SECTION equ 000Ah +IMAGE_REL_I386_SECREL equ 000Bh +IMAGE_REL_I386_REL32 equ 0014h +IMAGE_SIZEOF_LINENUMBER equ 6 +IMAGE_SIZEOF_BASE_RELOCATION equ 8 +IMAGE_REL_BASED_ABSOLUTE equ 0 +IMAGE_REL_BASED_HIGH equ 1 +IMAGE_REL_BASED_LOW equ 2 +IMAGE_REL_BASED_HIGHLOW equ 3 +IMAGE_REL_BASED_HIGHADJ equ 4 +IMAGE_REL_BASED_MIPS_JMPADDR equ 5 +IMAGE_REL_BASED_SECTION equ 6 +IMAGE_REL_BASED_REL32 equ 7 +IMAGE_REL_BASED_MIPS_JMPADDR16 equ 9 +IMAGE_REL_BASED_IA64_IMM64 equ 9 +IMAGE_REL_BASED_DIR64 equ 10 +IMAGE_REL_BASED_HIGH3ADJ equ 11 +IMAGE_ARCHIVE_START_SIZE equ 8 +IMAGE_ARCHIVE_START equ A("!",10) +IMAGE_ARCHIVE_END equ A("`",10) +IMAGE_ARCHIVE_PAD equ A(10) +IMAGE_ARCHIVE_LINKER_MEMBER equ A("/ ") +IMAGE_ARCHIVE_LONGNAMES_MEMBER equ A("// ") +IMAGE_SIZEOF_ARCHIVE_MEMBER_HDR equ 60 +IMAGE_ORDINAL_FLAG32 equ 80000000h +IMAGE_RESOURCE_NAME_IS_STRING equ 80000000h +IMAGE_RESOURCE_DATA_IS_DIRECTORY equ 80000000h +IMAGE_DEBUG_TYPE_UNKNOWN equ 0 +IMAGE_DEBUG_TYPE_COFF equ 1 +IMAGE_DEBUG_TYPE_CODEVIEW equ 2 +IMAGE_DEBUG_TYPE_FPO equ 3 +IMAGE_DEBUG_TYPE_MISC equ 4 +IMAGE_DEBUG_TYPE_EXCEPTION equ 5 +IMAGE_DEBUG_TYPE_FIXUP equ 6 +IMAGE_DEBUG_TYPE_OMAP_TO_SRC equ 7 +IMAGE_DEBUG_TYPE_OMAP_FROM_SRC equ 8 +IMAGE_DEBUG_TYPE_BORLAND equ 9 +IMAGE_DEBUG_TYPE_RESERVED10 equ 10 +FRAME_FPO equ 0 +FRAME_TRAP equ 1 +FRAME_TSS equ 2 +FRAME_NONFPO equ 3 +SIZEOF_RFPO_DATA equ 16 +IMAGE_DEBUG_MISC_EXENAME equ 1 +IMAGE_SEPARATE_DEBUG_SIGNATURE equ 4944h +IMAGE_SEPARATE_DEBUG_FLAGS_MASK equ 8000h +IMAGE_SEPARATE_DEBUG_MISMATCH equ 8000h +HEAP_NO_SERIALIZE equ 00000001h +HEAP_GROWABLE equ 00000002h +HEAP_GENERATE_EXCEPTIONS equ 00000004h +HEAP_ZERO_MEMORY equ 00000008h +HEAP_REALLOC_IN_PLACE_ONLY equ 00000010h +HEAP_TAIL_CHECKING_ENABLED equ 00000020h +HEAP_FREE_CHECKING_ENABLED equ 00000040h +HEAP_DISABLE_COALESCE_ON_FREE equ 00000080h +HEAP_CREATE_ALIGN_16 equ 00010000h +HEAP_CREATE_ENABLE_TRACING equ 00020000h +HEAP_MAXIMUM_TAG equ 0FFFh +HEAP_PSEUDO_TAG_FLAG equ 8000h +HEAP_TAG_SHIFT equ 18 +IS_TEXT_UNICODE_ASCII16 equ 0001h +IS_TEXT_UNICODE_REVERSE_ASCII16 equ 0010h +IS_TEXT_UNICODE_STATISTICS equ 0002h +IS_TEXT_UNICODE_REVERSE_STATISTICS equ 0020h +IS_TEXT_UNICODE_CONTROLS equ 0004h +IS_TEXT_UNICODE_REVERSE_CONTROLS equ 0040h +IS_TEXT_UNICODE_SIGNATURE equ 0008h +IS_TEXT_UNICODE_REVERSE_SIGNATURE equ 0080h +IS_TEXT_UNICODE_ILLEGAL_CHARS equ 0100h +IS_TEXT_UNICODE_ODD_LENGTH equ 0200h +IS_TEXT_UNICODE_DBCS_LEADBYTE equ 0400h +IS_TEXT_UNICODE_NULL_BYTES equ 1000h +IS_TEXT_UNICODE_UNICODE_MASK equ 000Fh +IS_TEXT_UNICODE_REVERSE_MASK equ 00F0h +IS_TEXT_UNICODE_NOT_UNICODE_MASK equ 0F00h +IS_TEXT_UNICODE_NOT_ASCII_MASK equ 0F000h +COMPRESSION_FORMAT_NONE equ (0000h) +COMPRESSION_FORMAT_DEFAULT equ (0001h) +COMPRESSION_FORMAT_LZNT1 equ (0002h) +COMPRESSION_ENGINE_STANDARD equ (0000h) +COMPRESSION_ENGINE_MAXIMUM equ (0100h) +MESSAGE_RESOURCE_UNICODE equ 0001h +RTL_CRITSECT_TYPE equ 0 +RTL_RESOURCE_TYPE equ 1 +SEF_DACL_AUTO_INHERIT equ 1h +SEF_SACL_AUTO_INHERIT equ 2h +SEF_DEFAULT_DESCRIPTOR_FOR_OBJECT equ 4h +SEF_AVOID_PRIVILEGE_CHECK equ 8h +WT_EXECUTEDEFAULT equ 00000000h +WT_EXECUTEINIOTHREAD equ 00000001h +WT_EXECUTEINUITHREAD equ 00000002h +WT_EXECUTEINWAITTHREAD equ 00000004h +WT_EXECUTEDELETEWAIT equ 00000008h +WT_EXECUTEINLONGTHREAD equ 00000010h +EVENTLOG_SEQUENTIAL_READ equ 0001h +EVENTLOG_SEEK_READ equ 0002h +EVENTLOG_FORWARDS_READ equ 0004h +EVENTLOG_BACKWARDS_READ equ 0008h +EVENTLOG_SUCCESS equ 0000h +EVENTLOG_ERROR_TYPE equ 0001h +EVENTLOG_WARNING_TYPE equ 0002h +EVENTLOG_INFORMATION_TYPE equ 0004h +EVENTLOG_AUDIT_SUCCESS equ 0008h +EVENTLOG_AUDIT_FAILURE equ 0010h +EVENTLOG_START_PAIRED_EVENT equ 0001h +EVENTLOG_END_PAIRED_EVENT equ 0002h +EVENTLOG_END_ALL_PAIRED_EVENTS equ 0004h +EVENTLOG_PAIRED_EVENT_ACTIVE equ 0008h +EVENTLOG_PAIRED_EVENT_INACTIVE equ 0010h +MAXLOGICALLOGNAMESIZE equ 256 +REG_OPTION_OPEN_LINK equ (00000008h) +REG_NO_LAZY_FLUSH equ (00000004h) +SERVICE_KERNEL_DRIVER equ 00000001h +SERVICE_FILE_SYSTEM_DRIVER equ 00000002h +SERVICE_ADAPTER equ 00000004h +SERVICE_RECOGNIZER_DRIVER equ 00000008h +SERVICE_DRIVER equ (SERVICE_KERNEL_DRIVER + SERVICE_FILE_SYSTEM_DRIVER + SERVICE_RECOGNIZER_DRIVER) +SERVICE_WIN32_OWN_PROCESS equ 00000010h +SERVICE_WIN32_SHARE_PROCESS equ 00000020h +SERVICE_WIN32 equ (SERVICE_WIN32_OWN_PROCESS + SERVICE_WIN32_SHARE_PROCESS) +SERVICE_INTERACTIVE_PROCESS equ 00000100h +SERVICE_TYPE_ALL equ (SERVICE_WIN32+SERVICE_ADAPTER + SERVICE_DRIVER + SERVICE_INTERACTIVE_PROCESS) +SERVICE_BOOT_START equ 00000000h +SERVICE_SYSTEM_START equ 00000001h +SERVICE_AUTO_START equ 00000002h +SERVICE_DEMAND_START equ 00000003h +SERVICE_DISABLED equ 00000004h +SERVICE_ERROR_IGNORE equ 00000000h +SERVICE_ERROR_NORMAL equ 00000001h +SERVICE_ERROR_SEVERE equ 00000002h +SERVICE_ERROR_CRITICAL equ 00000003h +TAPE_ERASE_SHORT equ 0 +TAPE_ERASE_LONG equ 1 +TAPE_LOAD equ 0 +TAPE_UNLOAD equ 1 +TAPE_TENSION equ 2 +TAPE_LOCK equ 3 +TAPE_UNLOCK equ 4 +TAPE_FORMAT equ 5 +TAPE_SETMARKS equ 0 +TAPE_FILEMARKS equ 1 +TAPE_SHORT_FILEMARKS equ 2 +TAPE_LONG_FILEMARKS equ 3 +TAPE_ABSOLUTE_POSITION equ 0 +TAPE_LOGICAL_POSITION equ 1 +TAPE_PSEUDO_LOGICAL_POSITION equ 2 +TAPE_REWIND equ 0 +TAPE_ABSOLUTE_BLOCK equ 1 +TAPE_LOGICAL_BLOCK equ 2 +TAPE_PSEUDO_LOGICAL_BLOCK equ 3 +TAPE_SPACE_END_OF_DATA equ 4 +TAPE_SPACE_RELATIVE_BLOCKS equ 5 +TAPE_SPACE_FILEMARKS equ 6 +TAPE_SPACE_SEQUENTIAL_FMKS equ 7 +TAPE_SPACE_SETMARKS equ 8 +TAPE_SPACE_SEQUENTIAL_SMKS equ 9 +TAPE_DRIVE_FIXED equ 00000001h +TAPE_DRIVE_SELECT equ 00000002h +TAPE_DRIVE_INITIATOR equ 00000004h +TAPE_DRIVE_ERASE_SHORT equ 00000010h +TAPE_DRIVE_ERASE_LONG equ 00000020h +TAPE_DRIVE_ERASE_BOP_ONLY equ 00000040h +TAPE_DRIVE_ERASE_IMMEDIATE equ 00000080h +TAPE_DRIVE_TAPE_CAPACITY equ 00000100h +TAPE_DRIVE_TAPE_REMAINING equ 00000200h +TAPE_DRIVE_FIXED_BLOCK equ 00000400h +TAPE_DRIVE_VARIABLE_BLOCK equ 00000800h +TAPE_DRIVE_WRITE_PROTECT equ 00001000h +TAPE_DRIVE_EOT_WZ_SIZE equ 00002000h +TAPE_DRIVE_ECC equ 00010000h +TAPE_DRIVE_COMPRESSION equ 00020000h +TAPE_DRIVE_PADDING equ 00040000h +TAPE_DRIVE_REPORT_SMKS equ 00080000h +TAPE_DRIVE_GET_ABSOLUTE_BLK equ 00100000h +TAPE_DRIVE_GET_LOGICAL_BLK equ 00200000h +TAPE_DRIVE_SET_EOT_WZ_SIZE equ 00400000h +TAPE_DRIVE_EJECT_MEDIA equ 01000000h +TAPE_DRIVE_CLEAN_REQUESTS equ 02000000h +TAPE_DRIVE_SET_CMP_BOP_ONLY equ 04000000h +TAPE_DRIVE_RESERVED_BIT equ 80000000h +TAPE_DRIVE_LOAD_UNLOAD equ 80000001h +TAPE_DRIVE_TENSION equ 80000002h +TAPE_DRIVE_LOCK_UNLOCK equ 80000004h +TAPE_DRIVE_REWIND_IMMEDIATE equ 80000008h +TAPE_DRIVE_SET_BLOCK_SIZE equ 80000010h +TAPE_DRIVE_LOAD_UNLD_IMMED equ 80000020h +TAPE_DRIVE_TENSION_IMMED equ 80000040h +TAPE_DRIVE_LOCK_UNLK_IMMED equ 80000080h +TAPE_DRIVE_SET_ECC equ 80000100h +TAPE_DRIVE_SET_COMPRESSION equ 80000200h +TAPE_DRIVE_SET_PADDING equ 80000400h +TAPE_DRIVE_SET_REPORT_SMKS equ 80000800h +TAPE_DRIVE_ABSOLUTE_BLK equ 80001000h +TAPE_DRIVE_ABS_BLK_IMMED equ 80002000h +TAPE_DRIVE_LOGICAL_BLK equ 80004000h +TAPE_DRIVE_LOG_BLK_IMMED equ 80008000h +TAPE_DRIVE_END_OF_DATA equ 80010000h +TAPE_DRIVE_RELATIVE_BLKS equ 80020000h +TAPE_DRIVE_FILEMARKS equ 80040000h +TAPE_DRIVE_SEQUENTIAL_FMKS equ 80080000h +TAPE_DRIVE_SETMARKS equ 80100000h +TAPE_DRIVE_SEQUENTIAL_SMKS equ 80200000h +TAPE_DRIVE_REVERSE_POSITION equ 80400000h +TAPE_DRIVE_SPACE_IMMEDIATE equ 80800000h +TAPE_DRIVE_WRITE_SETMARKS equ 81000000h +TAPE_DRIVE_WRITE_FILEMARKS equ 82000000h +TAPE_DRIVE_WRITE_SHORT_FMKS equ 84000000h +TAPE_DRIVE_WRITE_LONG_FMKS equ 88000000h +TAPE_DRIVE_WRITE_MARK_IMMED equ 090000000h +TAPE_DRIVE_FORMAT equ 0A0000000h +TAPE_DRIVE_FORMAT_IMMEDIATE equ 0C0000000h +TAPE_DRIVE_HIGH_FEATURES equ 80000000h +IMPORT_OBJECT_HDR_SIG2 equ 0ffffh +TAPE_FIXED_PARTITIONS equ 0 +TAPE_SELECT_PARTITIONS equ 1 +TAPE_INITIATOR_PARTITIONS equ 2 + + +DriverType equ SERVICE_KERNEL_DRIVER +FileSystemType equ SERVICE_FILE_SYSTEM_DRIVER +Win32ServiceOwnProcess equ SERVICE_WIN32_OWN_PROCESS +Win32ServiceShareProcess equ SERVICE_WIN32_SHARE_PROCESS +AdapterType equ SERVICE_ADAPTER +RecognizerType equ SERVICE_RECOGNIZER_DRIVER + +BootLoad equ SERVICE_BOOT_START +SystemLoad equ SERVICE_SYSTEM_START +AutoLoad equ SERVICE_AUTO_START +DemandLoad equ SERVICE_DEMAND_START +DisableLoad equ SERVICE_DISABLED + +IgnoreError equ SERVICE_ERROR_IGNORE +NormalError equ SERVICE_ERROR_NORMAL +SevereError equ SERVICE_ERROR_SEVERE +CriticalError equ SERVICE_ERROR_CRITICAL + +IMPORT_OBJECT_CODE equ 0 +IMPORT_OBJECT_DATA equ 1 +IMPORT_OBJECT_CONST equ 2 + +IMPORT_OBJECT_ORDINAL equ 0 +IMPORT_OBJECT_NAME equ 1 +IMPORT_OBJECT_NAME_NO_PREFIX equ 2 +IMPORT_OBJECT_NAME_UNDECORATE equ 3 + +EXECUTION_STATE equ DWORD + +LT_DONT_CARE equ 0 +LT_LOWEST_LATENCY equ 1 + +TokenPrimary equ 1 +TokenImpersonation equ 2 + +TokenRestrictedSids equ 11 +TokenSessionId equ 12 + +AuditEventObjectAccess equ 0 +AuditEventDirectoryServiceAccess equ 1 + + +SidTypeComputer equ 9 + +MEMORY_ALLOCATION_ALIGNMENT equ 16 +SYSTEM_CACHE_ALIGNMENT_SIZE equ 64 +PRAGMA_DEPRECATED_DDK equ 1 +UCSCHAR_INVALID_CHARACTER equ 0ffffffffh +MIN_UCSCHAR equ 0 +MAX_UCSCHAR equ 0010FFFFh +VER_SUITE_STORAGE_SERVER equ 00002000h +VER_SUITE_COMPUTE_SERVER equ 00004000h +PRODUCT_UNDEFINED equ 00000000h +PRODUCT_ULTIMATE equ 00000001h +PRODUCT_HOME_BASIC equ 00000002h +PRODUCT_HOME_PREMIUM equ 00000003h +PRODUCT_ENTERPRISE equ 00000004h +PRODUCT_HOME_BASIC_N equ 00000005h +PRODUCT_BUSINESS equ 00000006h +PRODUCT_STANDARD_SERVER equ 00000007h +PRODUCT_DATACENTER_SERVER equ 00000008h +PRODUCT_SMALLBUSINESS_SERVER equ 00000009h +PRODUCT_ENTERPRISE_SERVER equ 0000000Ah +PRODUCT_STARTER equ 0000000Bh +PRODUCT_DATACENTER_SERVER_CORE equ 0000000Ch +PRODUCT_STANDARD_SERVER_CORE equ 0000000Dh +PRODUCT_ENTERPRISE_SERVER_CORE equ 0000000Eh +PRODUCT_ENTERPRISE_SERVER_IA64 equ 0000000Fh +PRODUCT_BUSINESS_N equ 00000010h +PRODUCT_WEB_SERVER equ 00000011h +PRODUCT_CLUSTER_SERVER equ 00000012h +PRODUCT_HOME_SERVER equ 00000013h +PRODUCT_STORAGE_EXPRESS_SERVER equ 00000014h +PRODUCT_STORAGE_STANDARD_SERVER equ 00000015h +PRODUCT_STORAGE_WORKGROUP_SERVER equ 00000016h +PRODUCT_STORAGE_ENTERPRISE_SERVER equ 00000017h +PRODUCT_SERVER_FOR_SMALLBUSINESS equ 00000018h +PRODUCT_SMALLBUSINESS_SERVER_PREMIUM equ 00000019h +PRODUCT_UNLICENSED equ 0ABCDABCDh +LANG_ALSATIAN equ 84h +LANG_AMHARIC equ 5eh +LANG_BASHKIR equ 6dh +LANG_BRETON equ 7eh +LANG_BOSNIAN equ 1ah +LANG_BOSNIAN_NEUTRAL equ 781ah +LANG_CHINESE_SIMPLIFIED equ 04h +LANG_CHINESE_TRADITIONAL equ 7c04h +LANG_CORSICAN equ 83h +LANG_DARI equ 8ch +LANG_FILIPINO equ 64h +LANG_FRISIAN equ 62h +LANG_GREENLANDIC equ 6fh +LANG_HAUSA equ 68h +LANG_IGBO equ 70h +LANG_INUKTITUT equ 5dh +LANG_IRISH equ 3ch +LANG_KHMER equ 53h +LANG_KICHE equ 86h +LANG_KINYARWANDA equ 87h +LANG_LAO equ 54h +LANG_LOWER_SORBIAN equ 2eh +LANG_LUXEMBOURGISH equ 6eh +LANG_MALTESE equ 3ah +LANG_MAORI equ 81h +LANG_MAPUDUNGUN equ 7ah +LANG_MOHAWK equ 7ch +LANG_OCCITAN equ 82h +LANG_PASHTO equ 63h +LANG_PERSIAN equ 29h +LANG_QUECHUA equ 6bh +LANG_ROMANSH equ 17h +LANG_SAMI equ 3bh +LANG_SERBIAN_NEUTRAL equ 7c1ah +LANG_SINHALESE equ 5bh +LANG_SOTHO equ 6ch +LANG_TAJIK equ 28h +LANG_TAMAZIGHT equ 5fh +LANG_TIBETAN equ 51h +LANG_TIGRIGNA equ 73h +LANG_TSWANA equ 32h +LANG_TURKMEN equ 42h +LANG_UIGHUR equ 80h +LANG_UPPER_SORBIAN equ 2eh +LANG_WELSH equ 52h +LANG_WOLOF equ 88h +LANG_XHOSA equ 34h +LANG_YAKUT equ 85h +LANG_YI equ 78h +LANG_YORUBA equ 6ah +LANG_ZULU equ 35h +SUBLANG_CUSTOM_DEFAULT equ 03h +SUBLANG_CUSTOM_UNSPECIFIED equ 04h +SUBLANG_UI_CUSTOM_DEFAULT equ 05h +SUBLANG_AFRIKAANS_SOUTH_AFRICA equ 01h +SUBLANG_ALBANIAN_ALBANIA equ 01h +SUBLANG_ALSATIAN_FRANCE equ 01h +SUBLANG_AMHARIC_ETHIOPIA equ 01h +SUBLANG_ARMENIAN_ARMENIA equ 01h +SUBLANG_ASSAMESE_INDIA equ 01h +SUBLANG_BASHKIR_RUSSIA equ 01h +SUBLANG_BASQUE_BASQUE equ 01h +SUBLANG_BELARUSIAN_BELARUS equ 01h +SUBLANG_BENGALI_INDIA equ 01h +SUBLANG_BENGALI_BANGLADESH equ 02h +SUBLANG_BOSNIAN_BOSNIA_HERZEGOVINA_LATIN equ 05h +SUBLANG_BOSNIAN_BOSNIA_HERZEGOVINA_CYRILLIC equ 08h +SUBLANG_BRETON_FRANCE equ 01h +SUBLANG_BULGARIAN_BULGARIA equ 01h +SUBLANG_CATALAN_CATALAN equ 01h +SUBLANG_CORSICAN_FRANCE equ 01h +SUBLANG_CZECH_CZECH_REPUBLIC equ 01h +SUBLANG_CROATIAN_CROATIA equ 01h +SUBLANG_CROATIAN_BOSNIA_HERZEGOVINA_LATIN equ 04h +SUBLANG_DANISH_DENMARK equ 01h +SUBLANG_DARI_AFGHANISTAN equ 01h +SUBLANG_DIVEHI_MALDIVES equ 01h +SUBLANG_ENGLISH_INDIA equ 10h +SUBLANG_ENGLISH_MALAYSIA equ 11h +SUBLANG_ENGLISH_SINGAPORE equ 12h +SUBLANG_ESTONIAN_ESTONIA equ 01h +SUBLANG_FAEROESE_FAROE_ISLANDS equ 01h +SUBLANG_FILIPINO_PHILIPPINES equ 01h +SUBLANG_FINNISH_FINLAND equ 01h +SUBLANG_FRISIAN_NETHERLANDS equ 01h +SUBLANG_GALICIAN_GALICIAN equ 01h +SUBLANG_GEORGIAN_GEORGIA equ 01h +SUBLANG_GREEK_GREECE equ 01h +SUBLANG_GREENLANDIC_GREENLAND equ 01h +SUBLANG_GUJARATI_INDIA equ 01h +SUBLANG_HAUSA_NIGERIA_LATIN equ 01h +SUBLANG_HEBREW_ISRAEL equ 01h +SUBLANG_HINDI_INDIA equ 01h +SUBLANG_HUNGARIAN_HUNGARY equ 01h +SUBLANG_ICELANDIC_ICELAND equ 01h +SUBLANG_IGBO_NIGERIA equ 01h +SUBLANG_INDONESIAN_INDONESIA equ 01h +SUBLANG_INUKTITUT_CANADA equ 01h +SUBLANG_INUKTITUT_CANADA_LATIN equ 02h +SUBLANG_IRISH_IRELAND equ 02h +SUBLANG_JAPANESE_JAPAN equ 01h +SUBLANG_KANNADA_INDIA equ 01h +SUBLANG_KAZAK_KAZAKHSTAN equ 01h +SUBLANG_KHMER_CAMBODIA equ 01h +SUBLANG_KICHE_GUATEMALA equ 01h +SUBLANG_KINYARWANDA_RWANDA equ 01h +SUBLANG_KONKANI_INDIA equ 01h +SUBLANG_KYRGYZ_KYRGYZSTAN equ 01h +SUBLANG_LAO_LAO equ 01h +SUBLANG_LATVIAN_LATVIA equ 01h +SUBLANG_LOWER_SORBIAN_GERMANY equ 02h +SUBLANG_LUXEMBOURGISH_LUXEMBOURG equ 01h +SUBLANG_MACEDONIAN_MACEDONIA equ 01h +SUBLANG_MALAYALAM_INDIA equ 01h +SUBLANG_MALTESE_MALTA equ 01h +SUBLANG_MAORI_NEW_ZEALAND equ 01h +SUBLANG_MAPUDUNGUN_CHILE equ 01h +SUBLANG_MARATHI_INDIA equ 01h +SUBLANG_MOHAWK_MOHAWK equ 01h +SUBLANG_MONGOLIAN_CYRILLIC_MONGOLIA equ 01h +SUBLANG_MONGOLIAN_PRC equ 02h +SUBLANG_NEPALI_NEPAL equ 01h +SUBLANG_OCCITAN_FRANCE equ 01h +SUBLANG_ORIYA_INDIA equ 01h +SUBLANG_PASHTO_AFGHANISTAN equ 01h +SUBLANG_PERSIAN_IRAN equ 01h +SUBLANG_POLISH_POLAND equ 01h +SUBLANG_PUNJABI_INDIA equ 01h +SUBLANG_QUECHUA_BOLIVIA equ 01h +SUBLANG_QUECHUA_ECUADOR equ 02h +SUBLANG_QUECHUA_PERU equ 03h +SUBLANG_ROMANIAN_ROMANIA equ 01h +SUBLANG_ROMANSH_SWITZERLAND equ 01h +SUBLANG_RUSSIAN_RUSSIA equ 01h +SUBLANG_SAMI_NORTHERN_NORWAY equ 01h +SUBLANG_SAMI_NORTHERN_SWEDEN equ 02h +SUBLANG_SAMI_NORTHERN_FINLAND equ 03h +SUBLANG_SAMI_LULE_NORWAY equ 04h +SUBLANG_SAMI_LULE_SWEDEN equ 05h +SUBLANG_SAMI_SOUTHERN_NORWAY equ 06h +SUBLANG_SAMI_SOUTHERN_SWEDEN equ 07h +SUBLANG_SAMI_SKOLT_FINLAND equ 08h +SUBLANG_SAMI_INARI_FINLAND equ 09h +SUBLANG_SANSKRIT_INDIA equ 01h +SUBLANG_SERBIAN_BOSNIA_HERZEGOVINA_LATIN equ 06h +SUBLANG_SERBIAN_BOSNIA_HERZEGOVINA_CYRILLIC equ 07h +SUBLANG_SERBIAN_CROATIA equ 01h +SUBLANG_SINDHI_INDIA equ 01h +SUBLANG_SINDHI_PAKISTAN equ 02h +SUBLANG_SINDHI_AFGHANISTAN equ 02h +SUBLANG_SINHALESE_SRI_LANKA equ 01h +SUBLANG_SOTHO_NORTHERN_SOUTH_AFRICA equ 01h +SUBLANG_SLOVAK_SLOVAKIA equ 01h +SUBLANG_SLOVENIAN_SLOVENIA equ 01h +SUBLANG_SPANISH_US equ 15h +SUBLANG_SWAHILI_KENYA equ 01h +SUBLANG_SYRIAC_SYRIA equ 01h +SUBLANG_TAJIK_TAJIKISTAN equ 01h +SUBLANG_TAMAZIGHT_ALGERIA_LATIN equ 02h +SUBLANG_TAMIL_INDIA equ 01h +SUBLANG_TATAR_RUSSIA equ 01h +SUBLANG_TELUGU_INDIA equ 01h +SUBLANG_THAI_THAILAND equ 01h +SUBLANG_TIBETAN_PRC equ 01h +SUBLANG_TIGRIGNA_ERITREA equ 02h +SUBLANG_TSWANA_SOUTH_AFRICA equ 01h +SUBLANG_TURKISH_TURKEY equ 01h +SUBLANG_TURKMEN_TURKMENISTAN equ 01h +SUBLANG_UIGHUR_PRC equ 01h +SUBLANG_UKRAINIAN_UKRAINE equ 01h +SUBLANG_UPPER_SORBIAN_GERMANY equ 01h +SUBLANG_VIETNAMESE_VIETNAM equ 01h +SUBLANG_WELSH_UNITED_KINGDOM equ 01h +SUBLANG_WOLOF_SENEGAL equ 01h +SUBLANG_XHOSA_SOUTH_AFRICA equ 01h +SUBLANG_YAKUT_RUSSIA equ 01h +SUBLANG_YI_PRC equ 01h +SUBLANG_YORUBA_NIGERIA equ 01h +SUBLANG_ZULU_SOUTH_AFRICA equ 01h +SORT_INVARIANT_MATH equ 1h +SORT_JAPANESE_RADICALSTROKE equ 4h +LOCALE_NAME_MAX_LENGTH equ 85 +EXCEPTION_READ_FAULT equ 0 +EXCEPTION_WRITE_FAULT equ 1 +EXCEPTION_EXECUTE_FAULT equ 8 +INITIAL_FPCSR equ 027fh +RUNTIME_FUNCTION_INDIRECT equ 1h +BREAK_DEBUG_BASE equ 080000h +WOW64_CONTEXT_i386 equ 00010000h +WOW64_CONTEXT_i486 equ 00010000h +WOW64_SIZE_OF_80387_REGISTERS equ 80 +WOW64_MAXIMUM_SUPPORTED_EXTENSION equ 512 +SID_HASH_SIZE equ 32 +SECURITY_CREATOR_OWNER_RIGHTS_RID equ 00000004h +SECURITY_IUSER_RID equ 00000011h +SECURITY_ENTERPRISE_READONLY_CONTROLLERS_RID equ 00000016h +SECURITY_WRITE_RESTRICTED_CODE_RID equ 00000021h +SECURITY_SERVICE_ID_BASE_RID equ 00000050h +SECURITY_SERVICE_ID_RID_COUNT equ 6 +SECURITY_RESERVED_ID_BASE_RID equ 00000051h +DOMAIN_GROUP_RID_READONLY_CONTROLLERS equ 00000209h +DOMAIN_ALIAS_RID_DCOM_USERS equ 00000232h +DOMAIN_ALIAS_RID_IUSERS equ 00000238h +DOMAIN_ALIAS_RID_CRYPTO_OPERATORS equ 00000239h +DOMAIN_ALIAS_RID_CACHEABLE_PRINCIPALS_GROUP equ 0000023Bh +DOMAIN_ALIAS_RID_NON_CACHEABLE_PRINCIPALS_GROUP equ 0000023Ch +DOMAIN_ALIAS_RID_EVENT_LOG_READERS_GROUP equ 0000023Dh +SECURITY_MANDATORY_UNTRUSTED_RID equ 00000000h +SECURITY_MANDATORY_LOW_RID equ 00001000h +SECURITY_MANDATORY_MEDIUM_RID equ 00002000h +SECURITY_MANDATORY_HIGH_RID equ 00003000h +SECURITY_MANDATORY_SYSTEM_RID equ 00004000h +SECURITY_MANDATORY_PROTECTED_PROCESS_RID equ 00005000h +SECURITY_MANDATORY_MAXIMUM_USER_RID equ SECURITY_MANDATORY_SYSTEM_RID +SE_GROUP_INTEGRITY equ 00000020h +SE_GROUP_INTEGRITY_ENABLED equ 00000040h +SYSTEM_MANDATORY_LABEL_ACE_TYPE equ 11h +SYSTEM_MANDATORY_LABEL_NO_WRITE_UP equ 1h +SYSTEM_MANDATORY_LABEL_NO_READ_UP equ 2h +SYSTEM_MANDATORY_LABEL_NO_EXECUTE_UP equ 4h +TOKEN_MANDATORY_POLICY_OFF equ 0h +TOKEN_MANDATORY_POLICY_NO_WRITE_UP equ 1h +TOKEN_MANDATORY_POLICY_NEW_PROCESS_MIN equ 2h +POLICY_AUDIT_SUBCATEGORY_COUNT equ 50 +LUA_TOKEN equ 4h +WRITE_RESTRICTED equ 8h +LABEL_SECURITY_INFORMATION equ 00000010h +PROCESS_QUERY_LIMITED_INFORMATION equ 1000h +THREAD_SET_LIMITED_INFORMATION equ 0400h +THREAD_QUERY_LIMITED_INFORMATION equ 0800h +QUOTA_LIMITS_USE_DEFAULT_LIMITS equ 00000010h +PS_RATE_PHASE_BITS equ 4 +CACHE_FULLY_ASSOCIATIVE equ 0FFh +PF_SSE_DAZ_MODE_AVAILABLE equ 11 +PF_NX_ENABLED equ 12 +PF_SSE3_INSTRUCTIONS_AVAILABLE equ 13 +PF_COMPARE_EXCHANGE128 equ 14 +PF_COMPARE64_EXCHANGE128 equ 15 +PF_CHANNELS_ENABLED equ 16 +SECTION_MAP_EXECUTE_EXPLICIT equ 0020h +SESSION_QUERY_ACCESS equ 0001h +SESSION_MODIFY_ACCESS equ 0002h +MEM_ROTATE equ 800000h +SEC_PROTECTED_IMAGE equ 2000000h +SEC_WRITECOMBINE equ 40000000h +SEC_LARGE_PAGES equ 80000000h +FILE_ATTRIBUTE_VIRTUAL equ 00010000h +FILE_SEQUENTIAL_WRITE_ONCE equ 00100000h +FILE_SUPPORTS_TRANSACTIONS equ 00200000h +IO_REPARSE_TAG_SYMLINK equ 0A000000Ch +IO_REPARSE_TAG_DFSR equ 80000012h +ES_AWAYMODE_REQUIRED equ 00000040h +PO_TRANSITION_VETO_TYPE_WINDOW equ 00000001h +PO_TRANSITION_VETO_TYPE_SERVICE equ 00000002h +POWER_SETTING_VALUE_VERSION equ 1h +PROC_IDLE_BUCKET_COUNT equ 6 +ACPI_PPM_SOFTWARE_ALL equ 0FCh +ACPI_PPM_SOFTWARE_ANY equ 0FDh +ACPI_PPM_HARDWARE_ALL equ 0FEh +MS_PPM_SOFTWARE_ALL equ 1h +BATTERY_DISCHARGE_FLAGS_EVENTCODE_MASK equ 00000007h +BATTERY_DISCHARGE_FLAGS_ENABLE equ 80000000h +PROCESSOR_IDLESTATE_POLICY_COUNT equ 3h +PERFSTATE_POLICY_CHANGE_IDEAL equ 00h +PERFSTATE_POLICY_CHANGE_SINGLE equ 01h +PERFSTATE_POLICY_CHANGE_ROCKET equ 02h +PERFSTATE_POLICY_CHANGE_MAX equ PERFSTATE_POLICY_CHANGE_ROCKET +IMAGE_NT_OPTIONAL_HDR_MAGIC equ IMAGE_NT_OPTIONAL_HDR64_MAGIC +IMAGE_SUBSYSTEM_WINDOWS_BOOT_APPLICATION equ 16 +IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE equ 0040h +IMAGE_DLLCHARACTERISTICS_FORCE_INTEGRITY equ 0080h +IMAGE_DLLCHARACTERISTICS_NX_COMPAT equ 0100h +IMAGE_REL_SHM_PCRELPT equ 0013h +IMAGE_REL_SHM_REFLO equ 0014h +IMAGE_REL_SHM_REFHALF equ 0015h +IMAGE_REL_SHM_RELLO equ 0016h +IMAGE_REL_SHM_RELHALF equ 0017h +IMAGE_REL_SHM_PAIR equ 0018h +IMAGE_REL_SH_NOMODE equ 8000h +IMAGE_REL_EBC_ABSOLUTE equ 0000h +IMAGE_REL_EBC_ADDR32NB equ 0001h +IMAGE_REL_EBC_REL32 equ 0002h +IMAGE_REL_EBC_SECTION equ 0003h +IMAGE_REL_EBC_SECREL equ 0004h +X3_OPCODE_INST_WORD_X equ 3 +X3_OPCODE_SIZE_X equ 4 +X3_OPCODE_INST_WORD_POS_X equ 28 +X3_OPCODE_SIGN_VAL_POS_X equ 0 +X3_I_INST_WORD_X equ 3 +X3_I_SIZE_X equ 1 +X3_I_INST_WORD_POS_X equ 27 +X3_I_SIGN_VAL_POS_X equ 59 +X3_D_WH_INST_WORD_X equ 3 +X3_D_WH_SIZE_X equ 3 +X3_D_WH_INST_WORD_POS_X equ 24 +X3_D_WH_SIGN_VAL_POS_X equ 0 +X3_IMM20_INST_WORD_X equ 3 +X3_IMM20_SIZE_X equ 20 +X3_IMM20_INST_WORD_POS_X equ 4 +X3_IMM20_SIGN_VAL_POS_X equ 0 +X3_IMM39_1_INST_WORD_X equ 2 +X3_IMM39_1_SIZE_X equ 23 +X3_IMM39_1_INST_WORD_POS_X equ 0 +X3_IMM39_1_SIGN_VAL_POS_X equ 36 +X3_IMM39_2_INST_WORD_X equ 1 +X3_IMM39_2_SIZE_X equ 16 +X3_IMM39_2_INST_WORD_POS_X equ 16 +X3_IMM39_2_SIGN_VAL_POS_X equ 20 +X3_P_INST_WORD_X equ 3 +X3_P_SIZE_X equ 4 +X3_P_INST_WORD_POS_X equ 0 +X3_P_SIGN_VAL_POS_X equ 0 +X3_TMPLT_INST_WORD_X equ 0 +X3_TMPLT_SIZE_X equ 4 +X3_TMPLT_INST_WORD_POS_X equ 0 +X3_TMPLT_SIGN_VAL_POS_X equ 0 +X3_BTYPE_QP_INST_WORD_X equ 2 +X3_BTYPE_QP_SIZE_X equ 9 +X3_BTYPE_QP_INST_WORD_POS_X equ 23 +X3_BTYPE_QP_INST_VAL_POS_X equ 0 +X3_EMPTY_INST_WORD_X equ 1 +X3_EMPTY_SIZE_X equ 2 +X3_EMPTY_INST_WORD_POS_X equ 14 +X3_EMPTY_INST_VAL_POS_X equ 0 +RTL_RUN_ONCE_INIT equ 0 +RTL_RUN_ONCE_CHECK_ONLY equ 00000001Uh +RTL_RUN_ONCE_ASYNC equ 00000002Uh +RTL_RUN_ONCE_INIT_FAILED equ 00000004Uh +RTL_RUN_ONCE_CTX_RESERVED_BITS equ 2 +HEAP_CREATE_ENABLE_EXECUTE equ 00040000h +SEF_MACL_NO_WRITE_UP equ 100h +SEF_MACL_NO_READ_UP equ 200h +SEF_MACL_NO_EXECUTE_UP equ 400h +SEF_AVOID_OWNER_RESTRICTION equ 1000h +RTL_CRITICAL_SECTION_FLAG_NO_DEBUG_INFO equ 01000000h +RTL_CRITICAL_SECTION_FLAG_DYNAMIC_SPIN equ 02000000h +RTL_CRITICAL_SECTION_FLAG_STATIC_INIT equ 04000000h +RTL_CRITICAL_SECTION_ALL_FLAG_BITS equ 0FF000000h +RTL_CRITICAL_SECTION_DEBUG_FLAG_STATIC_INIT equ 00000001h +RTL_SRWLOCK_INIT equ 0 +RTL_CONDITION_VARIABLE_INIT equ 0 +RTL_CONDITION_VARIABLE_LOCKMODE_SHARED equ 1h +REG_APP_HIVE equ 00000010h +REG_PROCESS_PRIVATE equ 00000020h +REG_START_JOURNAL equ 00000040h +REG_HIVE_EXACT_FILE_GROWTH equ 00000080h +REG_HIVE_NO_RM equ 00000100h +REG_HIVE_SINGLE_LOG equ 00000200h +TRANSACTIONMANAGER_QUERY_INFORMATION equ 0001h +TRANSACTIONMANAGER_SET_INFORMATION equ 0002h +TRANSACTIONMANAGER_RECOVER equ 0004h +TRANSACTIONMANAGER_RENAME equ 0008h +TRANSACTIONMANAGER_CREATE_RM equ 0010h +TRANSACTIONMANAGER_BIND_TRANSACTION equ 0020h +TRANSACTIONMANAGER_GENERIC_EXECUTE equ STANDARD_RIGHTS_EXECUTE +TRANSACTION_QUERY_INFORMATION equ 0001h +TRANSACTION_SET_INFORMATION equ 0002h +TRANSACTION_ENLIST equ 0004h +TRANSACTION_COMMIT equ 0008h +TRANSACTION_ROLLBACK equ 0010h +TRANSACTION_PROPAGATE equ 0020h +TRANSACTION_SAVEPOINT equ 0040h +TRANSACTION_MARSHALL equ TRANSACTION_QUERY_INFORMATION +RESOURCEMANAGER_QUERY_INFORMATION equ 0001h +RESOURCEMANAGER_SET_INFORMATION equ 0002h +RESOURCEMANAGER_RECOVER equ 0004h +RESOURCEMANAGER_ENLIST equ 0008h +RESOURCEMANAGER_GET_NOTIFICATION equ 0010h +RESOURCEMANAGER_REGISTER_PROTOCOL equ 0020h +RESOURCEMANAGER_COMPLETE_PROPAGATION equ 0040h +ENLISTMENT_QUERY_INFORMATION equ 0001h +ENLISTMENT_SET_INFORMATION equ 0002h +ENLISTMENT_RECOVER equ 0004h +ENLISTMENT_SUBORDINATE_RIGHTS equ 0008h +ENLISTMENT_SUPERIOR_RIGHTS equ 0010h +PcTeb equ 18h +ACTIVATION_CONTEXT_SECTION_APPLICATION_SETTINGS equ 10 + +LIST_ENTRY STRUCT + Flink DWORD ? + Blink DWORD ? +LIST_ENTRY ENDS + +SINGLE_LIST_ENTRY STRUCT + Next DWORD ? +SINGLE_LIST_ENTRY ENDS + +OBJECTID STRUCT + Lineage GUID <> + Uniquifier dd ? +OBJECTID ENDS + +LDTBits RECORD rBaseHi:8, Granularity:1,Default_Big : 1,Reserved_0:1,Sys:1,LimitHi:4,Pres:1, Dpl:2, S_bit:1, Type1:4,rBaseMid:8 + +LDT_ENTRY STRUCT + LimitLow dw ? + BaseLow dw ? + union HighWord1 + Bytes LDT_BYTES <> + Bits LDTBits <> + ends +LDT_ENTRY ENDS + +SID STRUCT + Revision db ? + SubAuthorityCount db ? + IdentifierAuthority SID_IDENTIFIER_AUTHORITY <> + SubAuthority dd ANYSIZE_ARRAY dup(?) +SID ENDS + + +ACCESS_ALLOWED_OBJECT_ACE STRUCT + Header ACE_HEADER <> + Mask1 dd ? + Flags dd ? + ObjectType GUID <> + InheritedObjectType GUID <> + SidStart dd ? +ACCESS_ALLOWED_OBJECT_ACE ENDS + +ACCESS_DENIED_OBJECT_ACE STRUCT + Header ACE_HEADER <> + Mask1 dd ? + Flags dd ? + ObjectType GUID <> + InheritedObjectType GUID <> + SidStart dd ? +ACCESS_DENIED_OBJECT_ACE ENDS + +SYSTEM_AUDIT_OBJECT_ACE STRUCT + Header ACE_HEADER <> + Mask1 dd ? + Flags dd ? + ObjectType GUID <> + InheritedObjectType GUID <> + SidStart dd ? +SYSTEM_AUDIT_OBJECT_ACE ENDS + +SYSTEM_ALARM_OBJECT_ACE STRUCT + Header ACE_HEADER <> + Mask1 dd ? + Flags dd ? + ObjectType GUID <> + InheritedObjectType GUID <> + SidStart dd ? +SYSTEM_ALARM_OBJECT_ACE ENDS + +SECURITY_DESCRIPTOR_RELATIVE STRUCT + Revision db ? + Sbz1 db ? + Control1 dw ? + Owner dd ? + Group1 dd ? + Sacl dd ? + Dacl dd ? +SECURITY_DESCRIPTOR_RELATIVE ENDS + +OBJECT_TYPE_LIST STRUCT + Level dw ? + Sbz dw ? + ObjectType dd ? +OBJECT_TYPE_LIST ENDS + +TOKEN_USER STRUCT + User SID_AND_ATTRIBUTES <> +TOKEN_USER ENDS + +TOKEN_OWNER STRUCT + Owner dd ? +TOKEN_OWNER ENDS + +TOKEN_PRIMARY_GROUP STRUCT + PrimaryGroup dd ? +TOKEN_PRIMARY_GROUP ENDS + +TOKEN_DEFAULT_DACL STRUCT + DefaultDacl dd ? +TOKEN_DEFAULT_DACL ENDS + +TOKEN_SOURCE STRUCT + SourceName db TOKEN_SOURCE_LENGTH dup(?) + SourceIdentifier LUID <> +TOKEN_SOURCE ends + +TOKEN_CONTROL STRUCT + TokenId LUID <> + AuthenticationId LUID <> + ModifiedId LUID <> + TokenSource1 TOKEN_SOURCE <> +TOKEN_CONTROL ENDS + +NT_TIB STRUCT + ExceptionList dd ? + StackBase dd ? + StackLimit dd ? + SubSystemTib dd ? + union + FiberData dd ? + Version dd ? + ends + ArbitraryUserPointer dd ? + Self dd ? +NT_TIB ENDS + +FILE_NOTIFY_INFORMATION STRUCT + NextEntryOffset dd ? + Action dd ? + FileNameLength dd ? + FileName dw ? +FILE_NOTIFY_INFORMATION ENDS + + +REPARSE_DATA_BUFFER STRUCT + ReparseTag dd ? + ReparseDataLength dw ? + Reserved dw ? + union + struct SymbolicLinkReparseBuffer + SubstituteNameOffset dw ? + SubstituteNameLength dw ? + PrintNameOffset dw ? + PrintNameLength dw ? + PathBuffer dw ? + ends + struct MountPointReparseBuffer + SubstituteNameOffset dw ? + SubstituteNameLength dw ? + PrintNameOffset dw ? + PrintNameLength dw ? + PathBuffer dw ? + ends + struct GenericReparseBuffer + DataBuffer db ? + ends + ends +REPARSE_DATA_BUFFER ENDS + +REPARSE_GUID_DATA_BUFFER STRUCT + ReparseTag dd ? + ReparseDataLength dw ? + Reserved dw ? + ReparseGuid GUID <> + struct GenericReparseBuffer + DataBuffer db ? + ends +REPARSE_GUID_DATA_BUFFER ENDS + + +REPARSE_POINT_INFORMATION STRUCT + ReparseDataLength dw ? + UnparsedNameLength dw ? +REPARSE_POINT_INFORMATION ENDS + +POWER_DEVICE_TIMEOUTS STRUCT + ConservationIdleTime DWORD ? + PerformanceIdleTime DWORD ? +POWER_DEVICE_TIMEOUTS ENDS + +IMAGE_VXD_HEADER STRUCT + e32_magic dw ? + e32_border db ? + e32_worder db ? + e32_level dd ? + e32_cpu dw ? + e32_os dw ? + e32_ver dd ? + e32_mflags dd ? + e32_mpages dd ? + e32_startobj dd ? + e32_eip dd ? + e32_stackobj dd ? + e32_esp dd ? + e32_pagesize dd ? + e32_lastpagesize dd ? + e32_fixupsize dd ? + e32_fixupsum dd ? + e32_ldrsize dd ? + e32_ldrsum dd ? + e32_objtab dd ? + e32_objcnt dd ? + e32_objmap dd ? + e32_itermap dd ? + e32_rsrctab dd ? + e32_rsrccnt dd ? + e32_restab dd ? + e32_enttab dd ? + e32_dirtab dd ? + e32_dircnt dd ? + e32_fpagetab dd ? + e32_frectab dd ? + e32_impmod dd ? + e32_impmodcnt dd ? + e32_impproc dd ? + e32_pagesum dd ? + e32_datapage dd ? + e32_preload dd ? + e32_nrestab dd ? + e32_cbnrestab dd ? + e32_nressum dd ? + e32_autodata dd ? + e32_debuginfo dd ? + e32_debuglen dd ? + e32_instpreload dd ? + e32_instdemand dd ? + e32_heapsize dd ? + e32_res3 db 12 dup(?) + e32_winresoff dd ? + e32_winreslen dd ? + e32_devid dw ? + e32_ddkver dw ? +IMAGE_VXD_HEADER ENDS + +IMAGE_ROM_OPTIONAL_HEADER STRUCT + Magic dw ? + MajorLinkerVersion db ? + MinorLinkerVersion db ? + SizeOfCode dd ? + SizeOfInitializedData dd ? + SizeOfUninitializedData dd ? + AddressOfEntryPoint dd ? + BaseOfCode dd ? + BaseOfData dd ? + BaseOfBss dd ? + GprMask dd ? + CprMask dd 4 dup(?) + GpValue dd ? +IMAGE_ROM_OPTIONAL_HEADER ENDS + +IMAGE_ROM_HEADERS STRUCT + FileHeader IMAGE_FILE_HEADER <> + OptionalHeader IMAGE_ROM_OPTIONAL_HEADER <> +IMAGE_ROM_HEADERS ENDS + +IMAGE_SECTION_HEADER STRUCT + Name1 db IMAGE_SIZEOF_SHORT_NAME dup(?) + union Misc + PhysicalAddress dd ? + VirtualSize dd ? + ends + VirtualAddress dd ? + SizeOfRawData dd ? + PointerToRawData dd ? + PointerToRelocations dd ? + PointerToLinenumbers dd ? + NumberOfRelocations dw ? + NumberOfLinenumbers dw ? + Characteristics dd ? +IMAGE_SECTION_HEADER ENDS + +IMAGE_SYMBOL STRUCT + union N + ShortName db 8 dup(?) + struct Name1 + Short1 dd ? + Long1 dd ? + ends + LongName dd 2 dup(?) + ends + Value dd ? + SectionNumber dw ? + Type1 dw ? + StorageClass db ? + NumberOfAuxSymbols db ? +IMAGE_SYMBOL ENDS + +IMAGE_AUX_SYMBOL STRUCT + struct Sym + TagIndex dd ? + union Misc + struct LnSz + Linenumber dw ? + Size1 dw ? + ends + TotalSize dd ? + ends + union FcnAry + struct Function + PointerToLinenumber dd ? + PointerToNextFunction dd ? + ends + struct Array + Dimension dw 4 dup(?) + ends + ends + TvIndex dw ? + ends + struct File + Name1 db IMAGE_SIZEOF_SYMBOL dup(?) + ends + struct Section + Length1 dd ? + NumberOfRelocations dw ? + NumberOfLinenumbers dw ? + CheckSum dd ? + Number dw ? + Selection db ? + ends +IMAGE_AUX_SYMBOL ENDS + +IMAGE_RELOCATION STRUCT + union + VirtualAddress dd ? + RelocCount dd ? + ends + SymbolTableIndex dd ? + Type1 dw ? +IMAGE_RELOCATION ENDS + +IMAGE_LINENUMBER STRUCT + union Type1 + SymbolTableIndex dd ? + VirtualAddress dd ? + ends + Linenumber dw ? +IMAGE_LINENUMBER ENDS + + +IMAGE_BASE_RELOCATION STRUCT + VirtualAddress dd ? + SizeOfBlock dd ? +IMAGE_BASE_RELOCATION ENDS + +IMAGE_ARCHIVE_MEMBER_HEADER STRUCT + Name1 db 16 dup(?) + Date db 12 dup(?) + UserID db 6 dup(?) + GroupID db 6 dup(?) + Mode db 8 dup(?) + Size1 db 10 dup(?) + EndHeader db 2 dup(?) +IMAGE_ARCHIVE_MEMBER_HEADER ENDS + + +IMAGE_IMPORT_BY_NAME STRUCT + Hint dw ? + Name1 db ? +IMAGE_IMPORT_BY_NAME ENDS + +IMAGE_THUNK_DATA32 STRUCT + union u1 + ForwarderString dd ? + Function dd ? + Ordinal dd ? + AddressOfData dd ? + ends +IMAGE_THUNK_DATA32 ENDS + + +IMAGE_TLS_DIRECTORY32 STRUCT + StartAddressOfRawData dd ? + EndAddressOfRawData dd ? + AddressOfIndex dd ? + AddressOfCallBacks dd ? + SizeOfZeroFill dd ? + Characteristics dd ? +IMAGE_TLS_DIRECTORY32 ENDS + +IMAGE_THUNK_DATA EQU +IMAGE_TLS_DIRECTORY EQU + +IMAGE_IMPORT_DESCRIPTOR STRUCT + union + Characteristics dd ? + OriginalFirstThunk dd ? + ends + TimeDateStamp dd ? + ForwarderChain dd ? + Name1 dd ? + FirstThunk dd ? +IMAGE_IMPORT_DESCRIPTOR ENDS + +IMAGE_BOUND_IMPORT_DESCRIPTOR STRUCT + TimeDateStamp dd ? + OffsetModuleName dw ? + NumberOfModuleForwarderRefs dw ? +IMAGE_BOUND_IMPORT_DESCRIPTOR ENDS + +IMAGE_BOUND_FORWARDER_REF STRUCT + TimeDateStamp dd ? + OffsetModuleName dw ? + Reserved dw ? +IMAGE_BOUND_FORWARDER_REF ENDS + +IMAGE_RESOURCE_DIRECTORY STRUCT + Characteristics dd ? + TimeDateStamp dd ? + MajorVersion dw ? + MinorVersion dw ? + NumberOfNamedEntries dw ? + NumberOfIdEntries dw ? +IMAGE_RESOURCE_DIRECTORY ENDS + +IMAGE_RESOURCE_DIRECTORY_ENTRY STRUCT + union + rName RECORD NameIsString:1,NameOffset:31 + Name1 dd ? + Id dw ? + ends + union + OffsetToData dd ? + rDirectory RECORD DataIsDirectory:1,OffsetToDirectory:31 + ends +IMAGE_RESOURCE_DIRECTORY_ENTRY ENDS + +IMAGE_RESOURCE_DIRECTORY_STRING STRUCT + Length1 dw ? + NameString db ? +IMAGE_RESOURCE_DIRECTORY_STRING ENDS + +IMAGE_RESOURCE_DIR_STRING_U STRUCT + Length1 dw ? + NameString dw ? +IMAGE_RESOURCE_DIR_STRING_U ENDS + +IMAGE_RESOURCE_DATA_ENTRY STRUCT + OffsetToData dd ? + Size1 dd ? + CodePage dd ? + Reserved dd ? +IMAGE_RESOURCE_DATA_ENTRY ENDS + +IMAGE_LOAD_CONFIG_DIRECTORY STRUCT + Characteristics dd ? + TimeDateStamp dd ? + MajorVersion dw ? + MinorVersion dw ? + GlobalFlagsClear dd ? + GlobalFlagsSet dd ? + CriticalSectionDefaultTimeout dd ? + DeCommitFreeBlockThreshold dd ? + DeCommitTotalFreeThreshold dd ? + LockPrefixTable dd ? + MaximumAllocationSize dd ? + VirtualMemoryThreshold dd ? + ProcessHeapFlags dd ? + ProcessAffinityMask dd ? + CSDVersion dw ? + Reserved1 dw ? + EditList dd ? + Reserved dd ? +IMAGE_LOAD_CONFIG_DIRECTORY ENDS + +IMAGE_DEBUG_DIRECTORY STRUCT + Characteristics dd ? + TimeDateStamp dd ? + MajorVersion dw ? + MinorVersion dw ? + Type1 dd ? + SizeOfData dd ? + AddressOfRawData dd ? + PointerToRawData dd ? +IMAGE_DEBUG_DIRECTORY ENDS + +IMAGE_COFF_SYMBOLS_HEADER STRUCT + NumberOfSymbols dd ? + LvaToFirstSymbol dd ? + NumberOfLinenumbers dd ? + LvaToFirstLinenumber dd ? + RvaToFirstByteOfCode dd ? + RvaToLastByteOfCode dd ? + RvaToFirstByteOfData dd ? + RvaToLastByteOfData dd ? +IMAGE_COFF_SYMBOLS_HEADER ENDS + + ; FPOProlog RECORD cbFrame : 2, reserved : 1, fUseBP : 1, fHasSEH : 1, cbRegs : 3, cbProlog : 8 + ; FPO_DATA STRUCT + ; ulOffStart dd ? + ; cbProcSize dd ? + ; cdwLocals dd ? + ; cdwParams dw ? + ; rProlog FPOProlog <> + ; FPO_DATA ENDS + +FPO_DATA STRUCT + ulOffStart dd ? + cbProcSize dd ? + cdwLocals dd ? + cdwParams dw ? + cbProlog dw ? + cbRegs dw ? + fHasSEH dw ? + fUseBP dw ? + reserved dw ? + cbFrame dw ? +FPO_DATA ENDS + +IMAGE_DEBUG_MISC STRUCT + DataType dd ? + Length1 dd ? + Unicode BOOLEAN ? + Reserved db 3 dup(?) + Data db ? +IMAGE_DEBUG_MISC ENDS + + +IMAGE_FUNCTION_ENTRY STRUCT + StartingAddress dd ? + EndingAddress dd ? + EndOfPrologue dd ? +IMAGE_FUNCTION_ENTRY ENDS + +IMAGE_SEPARATE_DEBUG_HEADER STRUCT + Signature dw ? + Flags dw ? + Machine dw ? + Characteristics dw ? + TimeDateStamp dd ? + CheckSum dd ? + ImageBase dd ? + SizeOfImage dd ? + NumberOfSections dd ? + ExportedNamesSize dd ? + DebugDirectorySize dd ? + SectionAlignment dd ? + Reserved dd 2 dup(?) +IMAGE_SEPARATE_DEBUG_HEADER ENDS + +ImportRec RECORD Reserved :11,NameType :3,Type2 :2 + +IMPORT_OBJECT_HEADER STRUCT + Sig1 dw ? + Sig2 dw ? + Version dw ? + Machine dw ? + TimeDateStamp dd ? + SizeOfData dd ? + STRUCT + UNION + Ordinal dw ? + Hint dw ? + ENDS + ENDS + rImport ImportRec <> +IMPORT_OBJECT_HEADER ENDS + +MESSAGE_RESOURCE_ENTRY STRUCT + Length1 dw ? + Flags dw ? + Text db ? +MESSAGE_RESOURCE_ENTRY ENDS + +MESSAGE_RESOURCE_BLOCK STRUCT + LowId dd ? + HighId dd ? + OffsetToEntries dd ? +MESSAGE_RESOURCE_BLOCK ENDS + +MESSAGE_RESOURCE_DATA STRUCT + NumberOfBlocks dd ? + Blocks MESSAGE_RESOURCE_BLOCK <> +MESSAGE_RESOURCE_DATA ENDS + +RTL_CRITICAL_SECTION_DEBUG STRUCT + Type1 dw ? + CreatorBackTraceIndex dw ? + CriticalSection dd ? + ProcessLocksList LIST_ENTRY <> + EntryCount dd ? + ContentionCount dd ? + Spare dd 2 dup(?) +RTL_CRITICAL_SECTION_DEBUG ENDS + +EVENTSFORLOGFILE STRUCT + ulSize dd ? + szLogicalLogFile dw MAXLOGICALLOGNAMESIZE dup(?) + ulNumRecords dd ? + pEventLogRecords EVENTLOGRECORD <> +EVENTSFORLOGFILE ENDS + +PACKEDEVENTINFO STRUCT + ulSize dd ? + ulNumEventsForLogFile dd ? + ulOffsets dd ? +PACKEDEVENTINFO ENDS + +TAPE_ERASE STRUCT + Type1 dd ? + Immediate BOOLEAN ? +TAPE_ERASE ENDS + +TAPE_PREPARE STRUCT + Operation dd ? + Immediate BOOLEAN ? +TAPE_PREPARE ENDS + +TAPE_WRITE_MARKS STRUCT + Type1 dd ? + Count dd ? + Immediate BOOLEAN ? +TAPE_WRITE_MARKS ENDS + +TAPE_GET_POSITION STRUCT + Type1 dd ? + Partition dd ? + Offset1 QWORD ? +TAPE_GET_POSITION ENDS + +TAPE_SET_POSITION STRUCT + Method dd ? + Partition dd ? + Offset1 QWORD ? + Immediate BOOLEAN ? +TAPE_SET_POSITION ENDS + +TAPE_GET_DRIVE_PARAMETERS STRUCT + ECC BOOLEAN ? + Compression BOOLEAN ? + DataPadding BOOLEAN ? + ReportSetmarks BOOLEAN ? + DefaultBlockSize dd ? + MaximumBlockSize dd ? + MinimumBlockSize dd ? + MaximumPartitionCount dd ? + FeaturesLow dd ? + FeaturesHigh dd ? + EOTWarningZoneSize dd ? +TAPE_GET_DRIVE_PARAMETERS ENDS + +TAPE_SET_DRIVE_PARAMETERS STRUCT + ECC BOOLEAN ? + Compression BOOLEAN ? + DataPadding BOOLEAN ? + ReportSetmarks BOOLEAN ? + EOTWarningZoneSize dd ? +TAPE_SET_DRIVE_PARAMETERS ENDS + +TAPE_GET_MEDIA_PARAMETERS STRUCT + Capacity QWORD ? + Remaining QWORD ? + BlockSize dd ? + PartitionCount dd ? + WriteProtected BOOLEAN ? +TAPE_GET_MEDIA_PARAMETERS ENDS + +TAPE_SET_MEDIA_PARAMETERS STRUCT + BlockSize dd ? +TAPE_SET_MEDIA_PARAMETERS ENDS + +TAPE_CREATE_PARTITION STRUCT + Method dd ? + Count dd ? + Size1 dd ? +TAPE_CREATE_PARTITION ENDS + +; ------------------------------------- +; additional equates from server 2003 +; ------------------------------------- + +VER_SERVER_NT equ 80000000h +VER_WORKSTATION_NT equ 40000000h +VER_SUITE_SMALLBUSINESS equ 00000001h +VER_SUITE_ENTERPRISE equ 00000002h +VER_SUITE_BACKOFFICE equ 00000004h +VER_SUITE_COMMUNICATIONS equ 00000008h +VER_SUITE_TERMINAL equ 00000010h +VER_SUITE_SMALLBUSINESS_RESTRICTED equ 00000020h +VER_SUITE_EMBEDDEDNT equ 00000040h +VER_SUITE_DATACENTER equ 00000080h +VER_SUITE_SINGLEUSERTS equ 00000100h +VER_SUITE_PERSONAL equ 00000200h +VER_SUITE_BLADE equ 00000400h +VER_SUITE_EMBEDDED_RESTRICTED equ 00000800h +VER_SUITE_SECURITY_APPLIANCE equ 00001000h +LANG_INVARIANT equ 7fh +LANG_DIVEHI equ 65h +LANG_GALICIAN equ 56h +LANG_KYRGYZ equ 40h +LANG_MONGOLIAN equ 50h +LANG_SYRIAC equ 5ah +SUBLANG_KASHMIRI_SASIA equ 02h +DBG_EXCEPTION_HANDLED equ (00010001h) +DBG_COMMAND_EXCEPTION equ (40010009h) +STATUS_REG_NAT_CONSUMPTION equ (0C00002C9h) +STATUS_SXS_EARLY_DEACTIVATION equ (0C015000Fh) +STATUS_SXS_INVALID_DEACTIVATION equ (0C0150010h) +CONTEXT32_LENGTH equ 130h +MD_LFHINT_NONE equ 00h +MD_LFHINT_NT1 equ 01h +MD_LFHINT_NT2 equ 02h +MD_LFHINT_NTA equ 03h +PF_TEMPORAL_LEVEL_1 equ MD_LFHINT_NONE +PF_NON_TEMPORAL_LEVEL_ALL equ MD_LFHINT_NTA +CONTEXT_EXCEPTION_ACTIVE equ 8000000h +CONTEXT_SERVICE_ACTIVE equ 10000000h +CONTEXT_EXCEPTION_REQUEST equ 40000000h +CONTEXT_EXCEPTION_REPORTING equ 80000000h +SECURITY_TERMINAL_SERVER_RID equ (0000000Dh) +SECURITY_REMOTE_LOGON_RID equ (0000000Eh) +SECURITY_THIS_ORGANIZATION_RID equ (0000000Fh) +SECURITY_LOCAL_SERVICE_RID equ (00000013h) +SECURITY_NETWORK_SERVICE_RID equ (00000014h) +SECURITY_NT_NON_UNIQUE_SUB_AUTH_COUNT equ (3h) +SECURITY_PACKAGE_BASE_RID equ (00000040h) +SECURITY_PACKAGE_RID_COUNT equ (2h) +SECURITY_PACKAGE_NTLM_RID equ (0000000Ah) +SECURITY_PACKAGE_SCHANNEL_RID equ (0000000Eh) +SECURITY_PACKAGE_DIGEST_RID equ (00000015h) +SECURITY_MAX_ALWAYS_FILTERED equ (000003E7h) +SECURITY_MIN_NEVER_FILTERED equ (000003E8h) +SECURITY_OTHER_ORGANIZATION_RID equ (000003E8h) +FOREST_USER_RID_MAX equ (000001F3h) +DOMAIN_USER_RID_MAX equ (000003E7h) +DOMAIN_GROUP_RID_ENTERPRISE_ADMINS equ (00000207h) +DOMAIN_GROUP_RID_POLICY_ADMINS equ (00000208h) +DOMAIN_ALIAS_RID_RAS_SERVERS equ (00000229h) +DOMAIN_ALIAS_RID_PREW2KCOMPACCESS equ (0000022Ah) +DOMAIN_ALIAS_RID_REMOTE_DESKTOP_USERS equ (0000022Bh) +DOMAIN_ALIAS_RID_NETWORK_CONFIGURATION_OPS equ (0000022Ch) +DOMAIN_ALIAS_RID_INCOMING_FOREST_TRUST_BUILDERS equ (0000022Dh) +DOMAIN_ALIAS_RID_MONITORING_USERS equ (0000022Eh) +DOMAIN_ALIAS_RID_LOGGING_USERS equ (0000022Fh) +DOMAIN_ALIAS_RID_AUTHORIZATIONACCESS equ (00000230h) +DOMAIN_ALIAS_RID_TS_LICENSE_SERVERS equ (00000231h) +SE_GROUP_RESOURCE equ (20000000h) +ACCESS_ALLOWED_CALLBACK_ACE_TYPE equ (09h) +ACCESS_DENIED_CALLBACK_ACE_TYPE equ (0Ah) +ACCESS_ALLOWED_CALLBACK_OBJECT_ACE_TYPE equ (Bh) +ACCESS_DENIED_CALLBACK_OBJECT_ACE_TYPE equ (Ch) +SYSTEM_AUDIT_CALLBACK_ACE_TYPE equ (Dh) +SYSTEM_ALARM_CALLBACK_ACE_TYPE equ (Eh) +SYSTEM_AUDIT_CALLBACK_OBJECT_ACE_TYPE equ (Fh) +SYSTEM_ALARM_CALLBACK_OBJECT_ACE_TYPE equ (10h) +ACCESS_MAX_MS_V5_ACE_TYPE equ (10h) +SE_RM_CONTROL_VALID equ (4000h) +SECURITY_MAX_IMPERSONATION_LEVEL equ SecurityDelegation +SECURITY_MIN_IMPERSONATION_LEVEL equ SecurityAnonymous +DEFAULT_IMPERSONATION_LEVEL equ SecurityImpersonation +TOKEN_AUDIT_SUCCESS_INCLUDE equ 1h +TOKEN_AUDIT_SUCCESS_EXCLUDE equ 2h +TOKEN_AUDIT_FAILURE_INCLUDE equ 4h +TOKEN_AUDIT_FAILURE_EXCLUDE equ 8h +DISABLE_MAX_PRIVILEGE equ 1h +SANDBOX_INERT equ 2h +PROTECTED_DACL_SECURITY_INFORMATION equ (80000000h) +PROTECTED_SACL_SECURITY_INFORMATION equ (40000000h) +UNPROTECTED_DACL_SECURITY_INFORMATION equ (20000000h) +UNPROTECTED_SACL_SECURITY_INFORMATION equ (10000000h) +PROCESS_SUSPEND_RESUME equ (0800) +FLS_MAXIMUM_AVAILABLE equ 128 +QUOTA_LIMITS_HARDWS_MIN_ENABLE equ 00000001h +QUOTA_LIMITS_HARDWS_MIN_DISABLE equ 00000002h +QUOTA_LIMITS_HARDWS_MAX_ENABLE equ 00000004h +QUOTA_LIMITS_HARDWS_MAX_DISABLE equ 00000008h +JOB_OBJECT_TERMINATE_AT_END_OF_JOB equ 0 +JOB_OBJECT_POST_AT_END_OF_JOB equ 1 +JOB_OBJECT_MSG_END_OF_JOB_TIME equ 1 +JOB_OBJECT_MSG_END_OF_PROCESS_TIME equ 2 +JOB_OBJECT_MSG_ACTIVE_PROCESS_LIMIT equ 3 +JOB_OBJECT_MSG_ACTIVE_PROCESS_ZERO equ 4 +JOB_OBJECT_MSG_NEW_PROCESS equ 6 +JOB_OBJECT_MSG_EXIT_PROCESS equ 7 +JOB_OBJECT_MSG_ABNORMAL_EXIT_PROCESS equ 8 +JOB_OBJECT_MSG_PROCESS_MEMORY_LIMIT equ 9 +JOB_OBJECT_MSG_JOB_MEMORY_LIMIT equ 10 +JOB_OBJECT_LIMIT_WORKINGSET equ 00000001h +JOB_OBJECT_LIMIT_PROCESS_TIME equ 00000002h +JOB_OBJECT_LIMIT_JOB_TIME equ 00000004h +JOB_OBJECT_LIMIT_ACTIVE_PROCESS equ 00000008h +JOB_OBJECT_LIMIT_AFFINITY equ 00000010h +JOB_OBJECT_LIMIT_PRIORITY_CLASS equ 00000020h +JOB_OBJECT_LIMIT_PRESERVE_JOB_TIME equ 00000040h +JOB_OBJECT_LIMIT_SCHEDULING_CLASS equ 00000080h +JOB_OBJECT_LIMIT_PROCESS_MEMORY equ 00000100h +JOB_OBJECT_LIMIT_JOB_MEMORY equ 00000200h +JOB_OBJECT_LIMIT_DIE_ON_UNHANDLED_EXCEPTION equ 00000400h +JOB_OBJECT_LIMIT_BREAKAWAY_OK equ 00000800h +JOB_OBJECT_LIMIT_SILENT_BREAKAWAY_OK equ 00001000h +JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE equ 00002000h +JOB_OBJECT_LIMIT_RESERVED2 equ 00004000h +JOB_OBJECT_LIMIT_RESERVED3 equ 00008000h +JOB_OBJECT_LIMIT_RESERVED4 equ 00010000h +JOB_OBJECT_LIMIT_RESERVED5 equ 00020000h +JOB_OBJECT_LIMIT_RESERVED6 equ 00040000h +JOB_OBJECT_LIMIT_VALID_FLAGS equ 0007ffffh +JOB_OBJECT_BASIC_LIMIT_VALID_FLAGS equ 000000ffh +JOB_OBJECT_EXTENDED_LIMIT_VALID_FLAGS equ 00003fffh +JOB_OBJECT_RESERVED_LIMIT_VALID_FLAGS equ 0007ffffh +JOB_OBJECT_UILIMIT_NONE equ 00000000h +JOB_OBJECT_UILIMIT_HANDLES equ 00000001h +JOB_OBJECT_UILIMIT_READCLIPBOARD equ 00000002h +JOB_OBJECT_UILIMIT_WRITECLIPBOARD equ 00000004h +JOB_OBJECT_UILIMIT_SYSTEMPARAMETERS equ 00000008h +JOB_OBJECT_UILIMIT_DISPLAYSETTINGS equ 00000010h +JOB_OBJECT_UILIMIT_GLOBALATOMS equ 00000020h +JOB_OBJECT_UILIMIT_DESKTOP equ 00000040h +JOB_OBJECT_UILIMIT_EXITWINDOWS equ 00000080h +JOB_OBJECT_UILIMIT_ALL equ 000000FFh +JOB_OBJECT_UI_VALID_FLAGS equ 000000FFh +JOB_OBJECT_SECURITY_NO_ADMIN equ 00000001h +JOB_OBJECT_SECURITY_RESTRICTED_TOKEN equ 00000002h +JOB_OBJECT_SECURITY_ONLY_TOKEN equ 00000004h +JOB_OBJECT_SECURITY_FILTER_TOKENS equ 00000008h +JOB_OBJECT_SECURITY_VALID_FLAGS equ 0000000fh +LTP_PC_SMT equ 1h +PROCESSOR_INTEL_IA64 equ 2200 +PROCESSOR_AMD_X8664 equ 8664 +PROCESSOR_OPTIL equ 494fh +PROCESSOR_ARCHITECTURE_MSIL equ 8 +PROCESSOR_ARCHITECTURE_AMD64 equ 9 +PROCESSOR_ARCHITECTURE_IA32_ON_WIN64 equ 10 +PF_3DNOW_INSTRUCTIONS_AVAILABLE equ 7 +PF_RDTSC_INSTRUCTION_AVAILABLE equ 8 +PF_PAE_ENABLED equ 9 +PF_XMMI64_INSTRUCTIONS_AVAILABLE equ 10 +MEM_WRITE_WATCH equ 200000h +MEM_PHYSICAL equ 400000h +MEM_LARGE_PAGES equ 20000000h +WRITE_WATCH_FLAG_RESET equ 01h +FILE_ATTRIBUTE_DEVICE equ 00000040h +FILE_NAMED_STREAMS equ 00040000h +FILE_READ_ONLY_VOLUME equ 00080000h +IO_REPARSE_TAG_FILTER_MANAGER equ (8000000Bh) +POWER_SYSTEM_MAXIMUM equ 7 +PDCAP_D0_SUPPORTED equ 00000001h +PDCAP_D1_SUPPORTED equ 00000002h +PDCAP_D2_SUPPORTED equ 00000004h +PDCAP_D3_SUPPORTED equ 00000008h +PDCAP_WAKE_FROM_D0_SUPPORTED equ 00000010h +PDCAP_WAKE_FROM_D1_SUPPORTED equ 00000020h +PDCAP_WAKE_FROM_D2_SUPPORTED equ 00000040h +PDCAP_WAKE_FROM_D3_SUPPORTED equ 00000080h +PDCAP_WARM_EJECT_SUPPORTED equ 00000100h +POWER_ACTION_QUERY_ALLOWED equ 00000001h +POWER_ACTION_UI_ALLOWED equ 00000002h +POWER_ACTION_OVERRIDE_APPS equ 00000004h +POWER_ACTION_LIGHTEST_FIRST equ 10000000h +POWER_ACTION_LOCK_CONSOLE equ 20000000h +POWER_ACTION_DISABLE_WAKES equ 40000000h +POWER_ACTION_CRITICAL equ 80000000h +POWER_LEVEL_USER_NOTIFY_TEXT equ 00000001h +POWER_LEVEL_USER_NOTIFY_SOUND equ 00000002h +POWER_LEVEL_USER_NOTIFY_EXEC equ 00000004h +POWER_USER_NOTIFY_BUTTON equ 00000008h +POWER_USER_NOTIFY_SHUTDOWN equ 00000010h +POWER_FORCE_TRIGGER_RESET equ 80000000h +NUM_DISCHARGE_POLICIES equ 4 +DISCHARGE_POLICY_CRITICAL equ 0 +DISCHARGE_POLICY_LOW equ 1 +PO_THROTTLE_NONE equ 0 +PO_THROTTLE_CONSTANT equ 1 +PO_THROTTLE_DEGRADE equ 2 +PO_THROTTLE_ADAPTIVE equ 3 +PO_THROTTLE_MAXIMUM equ 4 +IMAGE_FILE_MACHINE_SH3DSP equ 01a3h +IMAGE_FILE_MACHINE_SH5 equ 01a8h +IMAGE_FILE_MACHINE_AM33 equ 01d3h +IMAGE_FILE_MACHINE_POWERPCFP equ 01f1h +IMAGE_FILE_MACHINE_TRICORE equ 0520h +IMAGE_FILE_MACHINE_CEF equ 0CEFh +IMAGE_FILE_MACHINE_EBC equ 0EBCh +IMAGE_FILE_MACHINE_AMD64 equ 8664h +IMAGE_FILE_MACHINE_M32R equ 9041h +IMAGE_FILE_MACHINE_CEE equ 0C0EEh +IMAGE_SUBSYSTEM_EFI_APPLICATION equ 10 +IMAGE_SUBSYSTEM_EFI_BOOT_SERVICE_DRIVER equ 11 +IMAGE_SUBSYSTEM_EFI_RUNTIME_DRIVER equ 12 +IMAGE_SUBSYSTEM_EFI_ROM equ 13 +IMAGE_SUBSYSTEM_XBOX equ 14 +IMAGE_DLLCHARACTERISTICS_NO_ISOLATION equ 0200h +IMAGE_DLLCHARACTERISTICS_NO_SEH equ 0400h +IMAGE_DLLCHARACTERISTICS_NO_BIND equ 0800h +IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE equ 8000h +IMAGE_SCN_ALIGN_MASK equ 00F00000h +IMAGE_SYM_SECTION_MAX equ 0FEFFh +IMAGE_SYM_CLASS_CLR_TOKEN equ 006Bh +IMAGE_REL_I386_TOKEN equ 000Ch +IMAGE_REL_I386_SECREL7 equ 000Dh +IMAGE_REL_MIPS_ABSOLUTE equ 0000h +IMAGE_REL_MIPS_REFHALF equ 0001h +IMAGE_REL_MIPS_REFWORD equ 0002h +IMAGE_REL_MIPS_JMPADDR equ 0003h +IMAGE_REL_MIPS_REFHI equ 0004h +IMAGE_REL_MIPS_REFLO equ 0005h +IMAGE_REL_MIPS_GPREL equ 0006h +IMAGE_REL_MIPS_LITERAL equ 0007h +IMAGE_REL_MIPS_SECTION equ 000Ah +IMAGE_REL_MIPS_SECREL equ 000Bh +IMAGE_REL_MIPS_SECRELLO equ 000Ch +IMAGE_REL_MIPS_SECRELHI equ 000Dh +IMAGE_REL_MIPS_TOKEN equ 000Eh +IMAGE_REL_MIPS_JMPADDR16 equ 0010h +IMAGE_REL_MIPS_REFWORDNB equ 0022h +IMAGE_REL_MIPS_PAIR equ 0025h +IMAGE_REL_ALPHA_ABSOLUTE equ 0000h +IMAGE_REL_ALPHA_REFLONG equ 0001h +IMAGE_REL_ALPHA_REFQUAD equ 0002h +IMAGE_REL_ALPHA_GPREL32 equ 0003h +IMAGE_REL_ALPHA_LITERAL equ 0004h +IMAGE_REL_ALPHA_LITUSE equ 0005h +IMAGE_REL_ALPHA_GPDISP equ 0006h +IMAGE_REL_ALPHA_BRADDR equ 0007h +IMAGE_REL_ALPHA_HINT equ 0008h +IMAGE_REL_ALPHA_INLINE_REFLONG equ 0009h +IMAGE_REL_ALPHA_REFHI equ 000Ah +IMAGE_REL_ALPHA_REFLO equ 000Bh +IMAGE_REL_ALPHA_PAIR equ 000Ch +IMAGE_REL_ALPHA_MATCH equ 000Dh +IMAGE_REL_ALPHA_SECTION equ 000Eh +IMAGE_REL_ALPHA_SECREL equ 000Fh +IMAGE_REL_ALPHA_REFLONGNB equ 0010h +IMAGE_REL_ALPHA_SECRELLO equ 0011h +IMAGE_REL_ALPHA_SECRELHI equ 0012h +IMAGE_REL_ALPHA_REFQ3 equ 0013h +IMAGE_REL_ALPHA_REFQ2 equ 0014h +IMAGE_REL_ALPHA_REFQ1 equ 0015h +IMAGE_REL_ALPHA_GPRELLO equ 0016h +IMAGE_REL_ALPHA_GPRELHI equ 0017h +IMAGE_REL_PPC_ABSOLUTE equ 0000h +IMAGE_REL_PPC_ADDR64 equ 0001h +IMAGE_REL_PPC_ADDR32 equ 0002h +IMAGE_REL_PPC_ADDR24 equ 0003h +IMAGE_REL_PPC_ADDR16 equ 0004h +IMAGE_REL_PPC_ADDR14 equ 0005h +IMAGE_REL_PPC_REL24 equ 0006h +IMAGE_REL_PPC_REL14 equ 0007h +IMAGE_REL_PPC_TOCREL16 equ 0008h +IMAGE_REL_PPC_TOCREL14 equ 0009h +IMAGE_REL_PPC_ADDR32NB equ 000Ah +IMAGE_REL_PPC_SECREL equ 000Bh +IMAGE_REL_PPC_SECTION equ 000Ch +IMAGE_REL_PPC_IFGLUE equ 000Dh +IMAGE_REL_PPC_IMGLUE equ 000Eh +IMAGE_REL_PPC_SECREL16 equ 000Fh +IMAGE_REL_PPC_REFHI equ 0010h +IMAGE_REL_PPC_REFLO equ 0011h +IMAGE_REL_PPC_PAIR equ 0012h +IMAGE_REL_PPC_SECRELLO equ 0013h +IMAGE_REL_PPC_SECRELHI equ 0014h +IMAGE_REL_PPC_GPREL equ 0015h +IMAGE_REL_PPC_TOKEN equ 0016h +IMAGE_REL_PPC_TYPEMASK equ 00FFh +IMAGE_REL_PPC_NEG equ 0100h +IMAGE_REL_PPC_BRTAKEN equ 0200h +IMAGE_REL_PPC_BRNTAKEN equ 0400h +IMAGE_REL_PPC_TOCDEFN equ 0800h +IMAGE_REL_SH3_ABSOLUTE equ 0000h +IMAGE_REL_SH3_DIRECT16 equ 0001h +IMAGE_REL_SH3_DIRECT32 equ 0002h +IMAGE_REL_SH3_DIRECT8 equ 0003h +IMAGE_REL_SH3_DIRECT8_WORD equ 0004h +IMAGE_REL_SH3_DIRECT8_LONG equ 0005h +IMAGE_REL_SH3_DIRECT4 equ 0006h +IMAGE_REL_SH3_DIRECT4_WORD equ 0007h +IMAGE_REL_SH3_DIRECT4_LONG equ 0008h +IMAGE_REL_SH3_PCREL8_WORD equ 0009h +IMAGE_REL_SH3_PCREL8_LONG equ 000Ah +IMAGE_REL_SH3_PCREL12_WORD equ 000Bh +IMAGE_REL_SH3_STARTOF_SECTION equ 000Ch +IMAGE_REL_SH3_SIZEOF_SECTION equ 000Dh +IMAGE_REL_SH3_SECTION equ 000Eh +IMAGE_REL_SH3_SECREL equ 000Fh +IMAGE_REL_SH3_DIRECT32_NB equ 0010h +IMAGE_REL_SH3_GPREL4_LONG equ 0011h +IMAGE_REL_SH3_TOKEN equ 0012h +IMAGE_REL_ARM_ABSOLUTE equ 0000h +IMAGE_REL_ARM_ADDR32 equ 0001h +IMAGE_REL_ARM_ADDR32NB equ 0002h +IMAGE_REL_ARM_BRANCH24 equ 0003h +IMAGE_REL_ARM_BRANCH11 equ 0004h +IMAGE_REL_ARM_TOKEN equ 0005h +IMAGE_REL_ARM_GPREL12 equ 0006h +IMAGE_REL_ARM_GPREL7 equ 0007h +IMAGE_REL_ARM_BLX24 equ 0008h +IMAGE_REL_ARM_BLX11 equ 0009h +IMAGE_REL_ARM_SECTION equ 000Eh +IMAGE_REL_ARM_SECREL equ 000Fh +IMAGE_REL_AM_ABSOLUTE equ 0000h +IMAGE_REL_AM_ADDR32 equ 0001h +IMAGE_REL_AM_ADDR32NB equ 0002h +IMAGE_REL_AM_CALL32 equ 0003h +IMAGE_REL_AM_FUNCINFO equ 0004h +IMAGE_REL_AM_REL32_1 equ 0005h +IMAGE_REL_AM_REL32_2 equ 0006h +IMAGE_REL_AM_SECREL equ 0007h +IMAGE_REL_AM_SECTION equ 0008h +IMAGE_REL_AM_TOKEN equ 0009h +IMAGE_REL_AMD64_ABSOLUTE equ 0000h +IMAGE_REL_AMD64_ADDR64 equ 0001h +IMAGE_REL_AMD64_ADDR32 equ 0002h +IMAGE_REL_AMD64_ADDR32NB equ 0003h +IMAGE_REL_AMD64_REL32 equ 0004h +IMAGE_REL_AMD64_REL32_1 equ 0005h +IMAGE_REL_AMD64_REL32_2 equ 0006h +IMAGE_REL_AMD64_REL32_3 equ 0007h +IMAGE_REL_AMD64_REL32_4 equ 0008h +IMAGE_REL_AMD64_REL32_5 equ 0009h +IMAGE_REL_AMD64_SECTION equ 000Ah +IMAGE_REL_AMD64_SECREL equ 000Bh +IMAGE_REL_AMD64_SECREL7 equ 000Ch +IMAGE_REL_AMD64_TOKEN equ 000Dh +IMAGE_REL_AMD64_SREL32 equ 000Eh +IMAGE_REL_AMD64_PAIR equ 000Fh +IMAGE_REL_AMD64_SSPAN32 equ 0010h +IMAGE_REL_IA64_ABSOLUTE equ 0000h +IMAGE_REL_IA64_IMM14 equ 0001h +IMAGE_REL_IA64_IMM22 equ 0002h +IMAGE_REL_IA64_IMM64 equ 0003h +IMAGE_REL_IA64_DIR32 equ 0004h +IMAGE_REL_IA64_DIR64 equ 0005h +IMAGE_REL_IA64_PCREL21B equ 0006h +IMAGE_REL_IA64_PCREL21M equ 0007h +IMAGE_REL_IA64_PCREL21F equ 0008h +IMAGE_REL_IA64_GPREL22 equ 0009h +IMAGE_REL_IA64_LTOFF22 equ 000Ah +IMAGE_REL_IA64_SECTION equ 000Bh +IMAGE_REL_IA64_SECREL22 equ 000Ch +IMAGE_REL_IA64_SECREL64I equ 000Dh +IMAGE_REL_IA64_SECREL32 equ 000Eh +IMAGE_REL_IA64_DIR32NB equ 0010h +IMAGE_REL_IA64_SREL14 equ 0011h +IMAGE_REL_IA64_SREL22 equ 0012h +IMAGE_REL_IA64_SREL32 equ 0013h +IMAGE_REL_IA64_UREL32 equ 0014h +IMAGE_REL_IA64_PCREL60X equ 0015h +IMAGE_REL_IA64_PCREL60B equ 0016h +IMAGE_REL_IA64_PCREL60F equ 0017h +IMAGE_REL_IA64_PCREL60I equ 0018h +IMAGE_REL_IA64_PCREL60M equ 0019h +IMAGE_REL_IA64_IMMGPREL64 equ 001Ah +IMAGE_REL_IA64_TOKEN equ 001Bh +IMAGE_REL_IA64_GPREL32 equ 001Ch +IMAGE_REL_IA64_ADDEND equ 001Fh +IMAGE_REL_CEF_ABSOLUTE equ 0000h +IMAGE_REL_CEF_ADDR32 equ 0001h +IMAGE_REL_CEF_ADDR64 equ 0002h +IMAGE_REL_CEF_ADDR32NB equ 0003h +IMAGE_REL_CEF_SECTION equ 0004h +IMAGE_REL_CEF_SECREL equ 0005h +IMAGE_REL_CEF_TOKEN equ 0006h +IMAGE_REL_CEE_ABSOLUTE equ 0000h +IMAGE_REL_CEE_ADDR32 equ 0001h +IMAGE_REL_CEE_ADDR64 equ 0002h +IMAGE_REL_CEE_ADDR32NB equ 0003h +IMAGE_REL_CEE_SECTION equ 0004h +IMAGE_REL_CEE_SECREL equ 0005h +IMAGE_REL_CEE_TOKEN equ 0006h +IMAGE_REL_M32R_ABSOLUTE equ 0000h +IMAGE_REL_M32R_ADDR32 equ 0001h +IMAGE_REL_M32R_ADDR32NB equ 0002h +IMAGE_REL_M32R_ADDR24 equ 0003h +IMAGE_REL_M32R_GPREL16 equ 0004h +IMAGE_REL_M32R_PCREL24 equ 0005h +IMAGE_REL_M32R_PCREL16 equ 0006h +IMAGE_REL_M32R_PCREL8 equ 0007h +IMAGE_REL_M32R_REFHALF equ 0008h +IMAGE_REL_M32R_REFHI equ 0009h +IMAGE_REL_M32R_REFLO equ 000Ah +IMAGE_REL_M32R_PAIR equ 000Bh +IMAGE_REL_M32R_SECTION equ 000Ch +IMAGE_REL_M32R_SECREL32 equ 000Dh +IMAGE_REL_M32R_TOKEN equ 000Eh +EMARCH_ENC_I17_IMM7B_INST_WORD_X equ 3 +EMARCH_ENC_I17_IMM7B_SIZE_X equ 7 +EMARCH_ENC_I17_IMM7B_INST_WORD_POS_X equ 4 +EMARCH_ENC_I17_IMM7B_VAL_POS_X equ 0 +EMARCH_ENC_I17_IMM9D_INST_WORD_X equ 3 +EMARCH_ENC_I17_IMM9D_SIZE_X equ 9 +EMARCH_ENC_I17_IMM9D_INST_WORD_POS_X equ 18 +EMARCH_ENC_I17_IMM9D_VAL_POS_X equ 7 +EMARCH_ENC_I17_IMM5C_INST_WORD_X equ 3 +EMARCH_ENC_I17_IMM5C_SIZE_X equ 5 +EMARCH_ENC_I17_IMM5C_INST_WORD_POS_X equ 13 +EMARCH_ENC_I17_IMM5C_VAL_POS_X equ 16 +EMARCH_ENC_I17_IC_INST_WORD_X equ 3 +EMARCH_ENC_I17_IC_SIZE_X equ 1 +EMARCH_ENC_I17_IC_INST_WORD_POS_X equ 12 +EMARCH_ENC_I17_IC_VAL_POS_X equ 21 +EMARCH_ENC_I17_IMM41a_INST_WORD_X equ 1 +EMARCH_ENC_I17_IMM41a_SIZE_X equ 10 +EMARCH_ENC_I17_IMM41a_INST_WORD_POS_X equ 14 +EMARCH_ENC_I17_IMM41a_VAL_POS_X equ 22 +EMARCH_ENC_I17_IMM41b_INST_WORD_X equ 1 +EMARCH_ENC_I17_IMM41b_SIZE_X equ 8 +EMARCH_ENC_I17_IMM41b_INST_WORD_POS_X equ 24 +EMARCH_ENC_I17_IMM41b_VAL_POS_X equ 32 +EMARCH_ENC_I17_IMM41c_INST_WORD_X equ 2 +EMARCH_ENC_I17_IMM41c_SIZE_X equ 23 +EMARCH_ENC_I17_IMM41c_INST_WORD_POS_X equ 0 +EMARCH_ENC_I17_IMM41c_VAL_POS_X equ 40 +EMARCH_ENC_I17_SIGN_INST_WORD_X equ 3 +EMARCH_ENC_I17_SIGN_SIZE_X equ 1 +EMARCH_ENC_I17_SIGN_INST_WORD_POS_X equ 27 +EMARCH_ENC_I17_SIGN_VAL_POS_X equ 63 +SLIST_ENTRY equ SINGLE_LIST_ENTRY +_SLIST_ENTRY equ _SINGLE_LIST_ENTRY +PSLIST_ENTRY equ PSINGLE_LIST_ENTRY +VER_EQUAL equ 1 +VER_GREATER equ 2 +VER_GREATER_EQUAL equ 3 +VER_LESS equ 4 +VER_LESS_EQUAL equ 5 +VER_AND equ 6 +VER_OR equ 7 +VER_CONDITION_MASK equ 7 +VER_NUM_BITS_PER_CONDITION_MASK equ 3 +VER_MINORVERSION equ 0000001h +VER_MAJORVERSION equ 0000002h +VER_BUILDNUMBER equ 0000004h +VER_PLATFORMID equ 0000008h +VER_SERVICEPACKMINOR equ 0000010h +VER_SERVICEPACKMAJOR equ 0000020h +VER_SUITENAME equ 0000040h +VER_PRODUCT_TYPE equ 0000080h +VER_NT_WORKSTATION equ 0000001h +VER_NT_DOMAIN_CONTROLLER equ 0000002h +VER_NT_SERVER equ 0000003h +RTL_VRF_FLG_FULL_PAGE_HEAP equ 00000001h +RTL_VRF_FLG_RESERVED_DONOTUSE equ 00000002h +RTL_VRF_FLG_HANDLE_CHECKS equ 00000004h +RTL_VRF_FLG_STACK_CHECKS equ 00000008h +RTL_VRF_FLG_APPCOMPAT_CHECKS equ 00000010h +RTL_VRF_FLG_TLS_CHECKS equ 00000020h +RTL_VRF_FLG_DIRTY_STACKS equ 00000040h +RTL_VRF_FLG_RPC_CHECKS equ 00000080h +RTL_VRF_FLG_COM_CHECKS equ 00000100h +RTL_VRF_FLG_DANGEROUS_APIS equ 00000200h +RTL_VRF_FLG_RACE_CHECKS equ 00000400h +RTL_VRF_FLG_DEADLOCK_CHECKS equ 00000800h +RTL_VRF_FLG_FIRST_CHANCE_EXCEPTION_CHECKS equ 00001000h +RTL_VRF_FLG_VIRTUAL_MEM_CHECKS equ 00002000h +RTL_VRF_FLG_ENABLE_LOGGING equ 00004000h +RTL_VRF_FLG_FAST_FILL_HEAP equ 00008000h +RTL_VRF_FLG_VIRTUAL_SPACE_TRACKING equ 00010000h +RTL_VRF_FLG_ENABLED_SYSTEM_WIDE equ 00020000h +RTL_VRF_FLG_MISCELLANEOUS_CHECKS equ 00020000h +RTL_VRF_FLG_LOCK_CHECKS equ 00040000h +APPLICATION_VERIFIER_INTERNAL_ERROR equ 80000000h +APPLICATION_VERIFIER_INTERNAL_WARNING equ 40000000h +APPLICATION_VERIFIER_NO_BREAK equ 20000000h +APPLICATION_VERIFIER_CONTINUABLE_BREAK equ 10000000h +APPLICATION_VERIFIER_UNKNOWN_ERROR equ 0001h +APPLICATION_VERIFIER_ACCESS_VIOLATION equ 0002h +APPLICATION_VERIFIER_UNSYNCHRONIZED_ACCESS equ 0003h +APPLICATION_VERIFIER_EXTREME_SIZE_REQUEST equ 0004h +APPLICATION_VERIFIER_BAD_HEAP_HANDLE equ 0005h +APPLICATION_VERIFIER_SWITCHED_HEAP_HANDLE equ 0006h +APPLICATION_VERIFIER_DOUBLE_FREE equ 0007h +APPLICATION_VERIFIER_CORRUPTED_HEAP_BLOCK equ 0008h +APPLICATION_VERIFIER_DESTROY_PROCESS_HEAP equ 0009h +APPLICATION_VERIFIER_UNEXPECTED_EXCEPTION equ 000Ah +APPLICATION_VERIFIER_STACK_OVERFLOW equ 000Bh +APPLICATION_VERIFIER_TERMINATE_THREAD_CALL equ 0100h +APPLICATION_VERIFIER_INVALID_EXIT_PROCESS_CALL equ 0101h +APPLICATION_VERIFIER_EXIT_THREAD_OWNS_LOCK equ 0200h +APPLICATION_VERIFIER_LOCK_IN_UNLOADED_DLL equ 0201h +APPLICATION_VERIFIER_LOCK_IN_FREED_HEAP equ 0202h +APPLICATION_VERIFIER_LOCK_DOUBLE_INITIALIZE equ 0203h +APPLICATION_VERIFIER_LOCK_IN_FREED_MEMORY equ 0204h +APPLICATION_VERIFIER_LOCK_CORRUPTED equ 0205h +APPLICATION_VERIFIER_LOCK_INVALID_OWNER equ 0206h +APPLICATION_VERIFIER_LOCK_INVALID_RECURSION_COUNT equ 0207h +APPLICATION_VERIFIER_LOCK_INVALID_LOCK_COUNT equ 0208h +APPLICATION_VERIFIER_LOCK_OVER_RELEASED equ 0209h +APPLICATION_VERIFIER_LOCK_NOT_INITIALIZED equ 0210h +APPLICATION_VERIFIER_LOCK_ALREADY_INITIALIZED equ 0211h +APPLICATION_VERIFIER_INVALID_HANDLE equ 0300h +APPLICATION_VERIFIER_INVALID_TLS_VALUE equ 0301h +APPLICATION_VERIFIER_INCORRECT_WAIT_CALL equ 0302h +APPLICATION_VERIFIER_NULL_HANDLE equ 0303h +APPLICATION_VERIFIER_WAIT_IN_DLLMAIN equ 0304h +APPLICATION_VERIFIER_COM_ERROR equ 0400h +APPLICATION_VERIFIER_COM_API_IN_DLLMAIN equ 0401h +APPLICATION_VERIFIER_COM_UNHANDLED_EXCEPTION equ 0402h +APPLICATION_VERIFIER_COM_UNBALANCED_COINIT equ 0403h +APPLICATION_VERIFIER_COM_UNBALANCED_OLEINIT equ 0404h +APPLICATION_VERIFIER_COM_UNBALANCED_SWC equ 0405h +APPLICATION_VERIFIER_COM_NULL_DACL equ 0406h +APPLICATION_VERIFIER_COM_UNSAFE_IMPERSONATION equ 0407h +APPLICATION_VERIFIER_COM_SMUGGLED_WRAPPER equ 0408h +APPLICATION_VERIFIER_COM_SMUGGLED_PROXY equ 0409h +APPLICATION_VERIFIER_COM_CF_SUCCESS_WITH_NULL equ 040Ah +APPLICATION_VERIFIER_COM_GCO_SUCCESS_WITH_NULL equ 040Bh +APPLICATION_VERIFIER_COM_OBJECT_IN_FREED_MEMORY equ 040Ch +APPLICATION_VERIFIER_COM_OBJECT_IN_UNLOADED_DLL equ 040Dh +APPLICATION_VERIFIER_COM_VTBL_IN_FREED_MEMORY equ 040Eh +APPLICATION_VERIFIER_COM_VTBL_IN_UNLOADED_DLL equ 040Fh +APPLICATION_VERIFIER_COM_HOLDING_LOCKS_ON_CALL equ 0410h +APPLICATION_VERIFIER_RPC_ERROR equ 0500h +APPLICATION_VERIFIER_INVALID_FREEMEM equ 0600h +APPLICATION_VERIFIER_INVALID_ALLOCMEM equ 0601h +APPLICATION_VERIFIER_INVALID_MAPVIEW equ 0602h +APPLICATION_VERIFIER_PROBE_INVALID_ADDRESS equ 0603h +APPLICATION_VERIFIER_PROBE_FREE_MEM equ 0604h +APPLICATION_VERIFIER_PROBE_GUARD_PAGE equ 0605h +APPLICATION_VERIFIER_PROBE_NULL equ 0606h +APPLICATION_VERIFIER_PROBE_INVALID_START_OR_SIZE equ 0607h +SEF_AVOID_OWNER_CHECK equ 10h +SEF_DEFAULT_OWNER_FROM_PARENT equ 20h +SEF_DEFAULT_GROUP_FROM_PARENT equ 40h +WT_EXECUTEONLYONCE equ 00000008h +WT_EXECUTEINTIMERTHREAD equ 00000020h +WT_EXECUTELONGFUNCTION equ 00000010h +WT_EXECUTEINPERSISTENTIOTHREAD equ 00000040h +WT_EXECUTEINPERSISTENTTHREAD equ 00000080h +WT_TRANSFER_IMPERSONATION equ 00000100h +ACTIVATIONCONTEXTINFOCLASS equ ACTIVATION_CONTEXT_INFO_CLASS +ACTIVATION_CONTEXT_PATH_TYPE_NONE equ (1) +ACTIVATION_CONTEXT_PATH_TYPE_WIN32_FILE equ (2) +ACTIVATION_CONTEXT_PATH_TYPE_URL equ (3) +ACTIVATION_CONTEXT_PATH_TYPE_ASSEMBLYREF equ (4) +_ASSEMBLY_DLL_REDIRECTION_DETAILED_INFORMATION equ _ASSEMBLY_FILE_DETAILED_INFORMATION +ASSEMBLY_DLL_REDIRECTION_DETAILED_INFORMATION equ ASSEMBLY_FILE_DETAILED_INFORMATION +PASSEMBLY_DLL_REDIRECTION_DETAILED_INFORMATION equ PASSEMBLY_FILE_DETAILED_INFORMATION +PCASSEMBLY_DLL_REDIRECTION_DETAILED_INFORMATION equ PCASSEMBLY_FILE_DETAILED_INFORMATION +DLL_PROCESS_VERIFIER equ 4 +KEY_WOW64_32KEY equ (0200) +KEY_WOW64_64KEY equ (0100) +KEY_WOW64_RES equ (0300) +REG_STANDARD_FORMAT equ 1 +REG_LATEST_FORMAT equ 2 +REG_NO_COMPRESSION equ 4 +REG_FORCE_RESTORE equ (00000008h) +REG_FORCE_UNLOAD equ 1 +REG_QWORD equ ( 11 ) +REG_QWORD_LITTLE_ENDIAN equ ( 11 ) +TAPE_QUERY_DRIVE_PARAMETERS equ 0 +TAPE_QUERY_MEDIA_CAPACITY equ 1 +TAPE_CHECK_FOR_DRIVE_PROBLEM equ 2 +TAPE_QUERY_IO_ERROR_DATA equ 3 +TAPE_QUERY_DEVICE_ERROR_DATA equ 4 +ACTIVATION_CONTEXT_SECTION_ASSEMBLY_INFORMATION equ (1) +ACTIVATION_CONTEXT_SECTION_DLL_REDIRECTION equ (2) +ACTIVATION_CONTEXT_SECTION_WINDOW_CLASS_REDIRECTION equ (3) +ACTIVATION_CONTEXT_SECTION_COM_SERVER_REDIRECTION equ (4) +ACTIVATION_CONTEXT_SECTION_COM_INTERFACE_REDIRECTION equ (5) +ACTIVATION_CONTEXT_SECTION_COM_TYPE_LIBRARY_REDIRECTION equ (6) +ACTIVATION_CONTEXT_SECTION_COM_PROGID_REDIRECTION equ (7) +ACTIVATION_CONTEXT_SECTION_GLOBAL_OBJECT_RENAME_TABLE equ (8) +ACTIVATION_CONTEXT_SECTION_CLR_SURROGATES equ (9) +MAXLONGLONG equ 7fffffffffffffffh +ANSI_NULL equ 0 +UNICODE_NULL equ 0 +UNICODE_STRING_MAX_BYTES equ 065534 +UNICODE_STRING_MAX_CHARS equ 32767 +_MM_HINT_T0 equ 1 +_MM_HINT_T1 equ 2 +_MM_HINT_T2 equ 3 +_MM_HINT_NTA equ 0 +CONTEXT_AMD64 equ 100000h +CONTEXT_ALL equ (CONTEXT_CONTROL or CONTEXT_INTEGER or CONTEXT_SEGMENTS or CONTEXT_FLOATING_POINT or CONTEXT_DEBUG_REGISTERS) +INITIAL_MXCSR equ 1f80h +CONTEXT_ALPHA equ 00020000h +CONTEXT_R4000 equ 00010000h +CONTEXT_IA64 equ 00080000h +SE_PRIVILEGE_REMOVED equ 00000004h +IMAGE_ORDINAL_FLAG64 equ 8000000000000000h +IMAGE_DEBUG_TYPE_CLSID equ 11 +NON_PAGED_DEBUG_SIGNATURE equ 494Eh +COMPRESSION_ENGINE_HIBER equ 0200h + +PS_RATE_PHASE_MASK equ (1 SHL (PS_RATE_PHASE_BITS - 1)) + + ; Structures from WinBase.h + +OVERLAPPED_ENTRY STRUCT + lpCompletionKey DWORD ? + lpOverlapped OVERLAPPED <> + Internal DWORD ? + dwNumberOfBytesTransferred DWORD ? +OVERLAPPED_ENTRY ENDS + +JIT_DEBUG_INFO STRUCT + dwSize DWORD ? + dwProcessorArchitecture DWORD ? + dwThreadID DWORD ? + dwReserved0 DWORD ? + lpExceptionAddress QWORD ? + lpExceptionRecord QWORD ? + lpContextRecord QWORD ? +JIT_DEBUG_INFO ENDS + +MEMORYSTATUSEX STRUCT + dwLength DWORD ? + dwMemoryLoad DWORD ? + ullTotalPhys QWORD ? + ullAvailPhys QWORD ? + ullTotalPageFile QWORD ? + ullAvailPageFile QWORD ? + ullTotalVirtual QWORD ? + ullAvailVirtual QWORD ? + ullAvailExtendedVirtual QWORD ? +MEMORYSTATUSEX ENDS + +DYNAMIC_TIME_ZONE_INFORMATION STRUCT + Bias DWORD ? + StandardName WORD 32 dup (?) + StandardDate SYSTEMTIME <> + StandardBias DWORD ? + DaylightName WORD 32 dup (?) + DaylightDate SYSTEMTIME <> + DaylightBias DWORD ? + TimeZoneKeyName WORD 128 dup (?) + DynamicDaylightTimeDisabled BYTE ? +DYNAMIC_TIME_ZONE_INFORMATION ENDS + +WIN32_FIND_STREAM_DATA STRUCT + StreamSize QWORD ? + cStreamName WORD MAX_PATH + 36 dup (?) +WIN32_FIND_STREAM_DATA ENDS + +ACTCTXA STRUCT + cbSize DWORD ? + dwFlags DWORD ? + lpSource DWORD ? + wProcessorArchitecture WORD ? + wLangId WORD ? + lpAssemblyDirectory DWORD ? + lpResourceName DWORD ? + lpApplicationName DWORD ? + hModule DWORD ? +ACTCTXA ENDS + +ACTCTXW STRUCT + cbSize DWORD ? + dwFlags DWORD ? + lpSource DWORD ? + wProcessorArchitecture WORD ? + wLangId WORD ? + lpAssemblyDirectory DWORD ? + lpResourceName DWORD ? + lpApplicationName DWORD ? + hModule DWORD ? +ACTCTXW ENDS + +ACTCTX_SECTION_KEYED_DATA_2600 STRUCT + cbSize DWORD ? + ulDataFormatVersion DWORD ? + lpData DWORD ? + ulLength DWORD ? + lpSectionGlobalData DWORD ? + ulSectionGlobalDataLength DWORD ? + lpSectionBase DWORD ? + ulSectionTotalLength DWORD ? + hActCtx DWORD ? + ulAssemblyRosterIndex DWORD ? +ACTCTX_SECTION_KEYED_DATA_2600 ENDS + +ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA STRUCT + lpInformation DWORD ? + lpSectionBase DWORD ? + ulSectionLength DWORD ? + lpSectionGlobalDataBase DWORD ? + ulSectionGlobalDataLength DWORD ? +ACTCTX_SECTION_KEYED_DATA_ASSEMBLY_METADATA ENDS + +ACTIVATION_CONTEXT_BASIC_INFORMATION STRUCT + hActCtx DWORD ? + dwFlags DWORD ? +ACTIVATION_CONTEXT_BASIC_INFORMATION ENDS + +FILE_BASIC_INFO STRUCT + CreationTime QWORD ? + LastAccessTime QWORD ? + LastWriteTime QWORD ? + ChangeTime QWORD ? + FileAttributes DWORD ? +FILE_BASIC_INFO ENDS + +FILE_STANDARD_INFO STRUCT + AllocationSize QWORD ? + EndOfFile QWORD ? + NumberOfLinks DWORD ? + DeletePending BYTE ? + Directory BYTE ? +FILE_STANDARD_INFO ENDS + +FILE_NAME_INFO STRUCT + FileNameLength DWORD ? + FileName WORD 1 dup (?) +FILE_NAME_INFO ENDS + +FILE_RENAME_INFO STRUCT + ReplaceIfExists BYTE ? + RootDirectory DWORD ? + FileNameLength DWORD ? + FileName WORD 1 dup (?) +FILE_RENAME_INFO ENDS + +FILE_ALLOCATION_INFO STRUCT + AllocationSize QWORD ? +FILE_ALLOCATION_INFO ENDS + +FILE_END_OF_FILE_INFO STRUCT + EndOfFile QWORD ? +FILE_END_OF_FILE_INFO ENDS + +FILE_STREAM_INFO STRUCT + NextEntryOffset DWORD ? + StreamNameLength DWORD ? + StreamSize QWORD ? + StreamAllocationSize QWORD ? + StreamName WORD 1 dup (?) +FILE_STREAM_INFO ENDS + +FILE_COMPRESSION_INFO STRUCT + CompressedFileSize QWORD ? + CompressionFormat WORD ? + CompressionUnitShift BYTE ? + ChunkShift BYTE ? + ClusterShift BYTE ? + Reserved BYTE 3 dup (?) +FILE_COMPRESSION_INFO ENDS + +FILE_ATTRIBUTE_TAG_INFO STRUCT + FileAttributes DWORD ? + ReparseTag DWORD ? +FILE_ATTRIBUTE_TAG_INFO ENDS + +FILE_DISPOSITION_INFO STRUCT + DeleteFile BYTE ? +FILE_DISPOSITION_INFO ENDS + +FILE_ID_BOTH_DIR_INFO STRUCT + NextEntryOffset DWORD ? + FileIndex DWORD ? + CreationTime QWORD ? + LastAccessTime QWORD ? + LastWriteTime QWORD ? + ChangeTime QWORD ? + EndOfFile QWORD ? + AllocationSize QWORD ? + FileAttributes DWORD ? + FileNameLength DWORD ? + EaSize DWORD ? + ShortNameLength BYTE ? + ShortName WORD 12 dup (?) + FileId QWORD ? + FileName WORD 1 dup (?) +FILE_ID_BOTH_DIR_INFO ENDS + +;;;; end winnt + +;;;; imaghlp + +; --------------------- Imagehlp.h EQUATES --------------------- + +API_VERSION_NUMBER equ 9 +AddrMode1616 equ 0 +AddrMode1632 equ 1 +AddrModeFlat equ 3 +AddrModeReal equ 2 +BIND_ALL_IMAGES equ 000000004h +BIND_CACHE_IMPORT_DLLS equ 000000008h +BIND_NO_BOUND_IMPORTS equ 000000001h +BIND_NO_UPDATE equ 000000002h +BIND_REPORT_64BIT_VA equ 00000010h +CBA_DEBUG_INFO equ 10000000h +CBA_DEFERRED_SYMBOL_LOAD_CANCEL equ 00000007h +CBA_DEFERRED_SYMBOL_LOAD_COMPLETE equ 000000002h +CBA_DEFERRED_SYMBOL_LOAD_FAILURE equ 000000003h +CBA_DEFERRED_SYMBOL_LOAD_PARTIAL equ 00000020h +CBA_DEFERRED_SYMBOL_LOAD_START equ 000000001h +CBA_DUPLICATE_SYMBOL equ 000000005h +CBA_EVENT equ 00000010h +CBA_READ_MEMORY equ 00000006h +CBA_SET_OPTIONS equ 00000008h +CBA_SYMBOLS_UNLOADED equ 000000004h +CERT_PE_IMAGE_DIGEST_ALL_IMPORT_INFO equ 004h +CERT_PE_IMAGE_DIGEST_DEBUG_INFO equ 001h +CERT_PE_IMAGE_DIGEST_NON_PE_INFO equ 008h +CERT_PE_IMAGE_DIGEST_RESOURCES equ 002h +CERT_SECTION_TYPE_ANY equ 0FFh +CHECKSUM_MAPVIEW_FAILURE equ 3 +CHECKSUM_MAP_FAILURE equ 2 +CHECKSUM_OPEN_FAILURE equ 1 +CHECKSUM_SUCCESS equ 0 +CHECKSUM_UNICODE_FAILURE equ 4 +DBHHEADER_DEBUGDIRS equ 1h +DSLFLAG_MISMATCHED_DBG equ 2h +IMAGEHLP_SYMBOL_INFO_VALUEPRESENT equ 1 +IMAGE_SEPARATION equ 65536 +MAX_SYM_NAME equ 2000 +MINIDUMP_MISC1_PROCESS_ID equ 00000001h +MINIDUMP_MISC1_PROCESS_TIMES equ 00000002h +MINIDUMP_VERSION equ 42899 +SLMFLAG_VIRTUAL equ 1h +SPLITSYM_EXTRACT_ALL equ 000000002h +SPLITSYM_REMOVE_PRIVATE equ 000000001h +SPLITSYM_SYMBOLPATH_IS_SRC equ 000000004h +SSRVACTION_EVENT equ 3 +SSRVACTION_QUERYCANCEL equ 2 +SSRVACTION_TRACE equ 1 +SSRVOPT_CALLBACK equ 0001h +SSRVOPT_DOWNSTREAM_STORE equ 2000h +SSRVOPT_DWORD equ 0002h +SSRVOPT_DWORDPTR equ 0004h +SSRVOPT_GUIDPTR equ 0008h +SSRVOPT_NOCOPY equ 0040h +SSRVOPT_OLDGUIDPTR equ 0010h +SSRVOPT_PARAMTYPE equ 0100h +SSRVOPT_PARENTWIN equ 0080h +SSRVOPT_PROXY equ 1000h +SSRVOPT_RESET equ -1 +SSRVOPT_SECURE equ 0200h +SSRVOPT_SETCONTEXT equ 0800h +SSRVOPT_TRACE equ 0400h +SSRVOPT_UNATTENDED equ 0020h +SYMENUMFLAG_FULLSRCH equ 1 +SYMENUMFLAG_SPEEDSRCH equ 2 +SYMFLAG_CONSTANT equ 00000100h +SYMFLAG_EXPORT equ 00000200h +SYMFLAG_FORWARDER equ 00000400h +SYMFLAG_FRAMEREL equ 00000020h +SYMFLAG_FUNCTION equ 00000800h +SYMFLAG_LOCAL equ 00000080h +SYMFLAG_PARAMETER equ 00000040h +SYMFLAG_REGISTER equ 00000008h +SYMFLAG_REGREL equ 00000010h +SYMFLAG_THUNK equ 00002000h +SYMFLAG_TLSREL equ 00004000h +SYMFLAG_VALUEPRESENT equ 00000001h +SYMFLAG_VIRTUAL equ 00001000h +SYMF_CONSTANT equ 00000100h +SYMF_EXPORT equ 00000200h +SYMF_FORWARDER equ 00000400h +SYMF_FRAMEREL equ 00000020h +SYMF_FUNCTION equ 00000800h +SYMF_LOCAL equ 00000080h +SYMF_OMAP_GENERATED equ 000000001h +SYMF_OMAP_MODIFIED equ 000000002h +SYMF_PARAMETER equ 00000040h +SYMF_REGISTER equ 00000008h +SYMF_REGREL equ 00000010h +SYMF_THUNK equ 00002000h +SYMF_TLSREL equ 00004000h +SYMF_VIRTUAL equ 00001000h +SYMOPT_ALLOW_ABSOLUTE_SYMBOLS equ 00000800h +SYMOPT_AUTO_PUBLICS equ 00010000h +SYMOPT_CASE_INSENSITIVE equ 000000001h +SYMOPT_DEBUG equ 80000000h +SYMOPT_DEFERRED_LOADS equ 000000004h +SYMOPT_EXACT_SYMBOLS equ 00000400h +SYMOPT_FAIL_CRITICAL_ERRORS equ 00000200h +SYMOPT_IGNORE_CVREC equ 00000080h +SYMOPT_IGNORE_NT_SYMPATH equ 00001000h +SYMOPT_INCLUDE_32BIT_MODULES equ 00002000h +SYMOPT_LOAD_ANYTHING equ 00000040h +SYMOPT_LOAD_LINES equ 000000010h +SYMOPT_NO_CPP equ 000000008h +SYMOPT_NO_IMAGE_SEARCH equ 00020000h +SYMOPT_NO_PROMPTS equ 00080000h +SYMOPT_NO_PUBLICS equ 00008000h +SYMOPT_NO_UNQUALIFIED_LOADS equ 00000100h +SYMOPT_OMAP_FIND_NEAREST equ 000000020h +SYMOPT_PUBLICS_ONLY equ 00004000h +SYMOPT_SECURE equ 00040000h +SYMOPT_UNDNAME equ 000000002h +SymCoff equ 1 +SymCv equ 2 +SymDeferred equ 5 +SymExport equ 4 +SymNone equ 0 +SymPdb equ 3 +SymSym equ 6 +UNDNAME_32_BIT_DECODE equ 00800h +UNDNAME_COMPLETE equ 00000h +UNDNAME_NAME_ONLY equ 01000h +UNDNAME_NO_ACCESS_SPECIFIERS equ 00080h +UNDNAME_NO_ALLOCATION_LANGUAGE equ 00010h +UNDNAME_NO_ALLOCATION_MODEL equ 00008h +UNDNAME_NO_ARGUMENTS equ 02000h +UNDNAME_NO_CV_THISTYPE equ 00040h +UNDNAME_NO_FUNCTION_RETURNS equ 00004h +UNDNAME_NO_LEADING_UNDERSCORES equ 00001h +UNDNAME_NO_MEMBER_TYPE equ 00200h +UNDNAME_NO_MS_KEYWORDS equ 00002h +UNDNAME_NO_MS_THISTYPE equ 00020h +UNDNAME_NO_RETURN_UDT_MODEL equ 00400h +UNDNAME_NO_SPECIAL_SYMS equ 04000h +UNDNAME_NO_THISTYPE equ 00060h +UNDNAME_NO_THROW_SIGNATURES equ 00100h + +; --------------------- Imagehlp.h STRUCTURES --------------------- + +LOADED_IMAGE STRUCT + ModuleName DWORD ? + hFile DWORD ? + MappedAddress DWORD ? + FileHeader DWORD ? + LastRvaSection DWORD ? + NumberOfSections DWORD ? + Sections DWORD ? + Characteristics DWORD ? + fSystemImage BYTE ? + fDOSImage BYTE ? + Links DWORD ? + SizeOfImage DWORD ? +LOADED_IMAGE ENDS + +IMAGE_DEBUG_INFORMATION STRUCT + List LIST_ENTRY <> + Size1 DWORD ? + MappedBase DWORD ? + Machine WORD ? + Characteristics WORD ? + CheckSum DWORD ? + ImageBase DWORD ? + SizeOfImage DWORD ? + NumberOfSections DWORD ? + Sections DWORD ? + ExportedNamesSize DWORD ? + ExportedNames DWORD ? + NumberOfFunctionTableEntries DWORD ? + FunctionTableEntries DWORD ? + LowestFunctionStartingAddress DWORD ? + HighestFunctionEndingAddress DWORD ? + NumberOfFpoTableEntries DWORD ? + FpoTableEntries DWORD ? + SizeOfCoffSymbols DWORD ? + CoffSymbols DWORD ? + SizeOfCodeViewSymbols DWORD ? + CodeViewSymbols DWORD ? + ImageFilePath DWORD ? + ImageFileName DWORD ? + DebugFilePath DWORD ? + TimeDateStamp DWORD ? + RomImage BYTE ? + DebugDirectory DWORD ? + NumberOfDebugDirectories DWORD ? + Reserved DWORD 3 dup (?) +IMAGE_DEBUG_INFORMATION ENDS + +ADDRESS STRUCT + Offset1 DWORD ? + Segment1 WORD ? + Mode DWORD ? +ADDRESS ENDS + +KDHELP STRUCT + Thread DWORD ? + ThCallbackStack DWORD ? + NextCallback DWORD ? + FramePointer DWORD ? + KiCallUserMode DWORD ? + KeUserCallbackDispatcher DWORD ? + SystemRangeStart DWORD ? +KDHELP ENDS + +STACKFRAME STRUCT + AddrPC ADDRESS <> + AddrReturn ADDRESS <> + AddrFrame ADDRESS <> + AddrStack ADDRESS <> + FuncTableEntry DWORD ? + Params DWORD 4 dup (?) + Far1 BOOL ? + Virtual BOOL ? + Reserved DWORD 3 dup (?) + KdHelp KDHELP <> +STACKFRAME ENDS + +API_VERSION STRUCT + MajorVersion WORD ? + MinorVersion WORD ? + Revision WORD ? + Reserved WORD ? +API_VERSION ENDS + +IMAGEHLP_SYMBOL STRUCT + SizeOfStruct DWORD ? + Address DWORD ? + Size1 DWORD ? + Flags DWORD ? + MaxNameLength DWORD ? + Name1 db ? +IMAGEHLP_SYMBOL ENDS + +IMAGEHLP_MODULE STRUCT + SizeOfStruct DWORD ? + BaseOfImage DWORD ? + ImageSize DWORD ? + TimeDateStamp DWORD ? + CheckSum DWORD ? + NumSyms DWORD ? + SymType1 DWORD ? + ModuleName BYTE 32 dup (?) + ImageName BYTE 256 dup (?) + LoadedImageName BYTE 256 dup (?) +IMAGEHLP_MODULE ENDS + +IMAGEHLP_LINE STRUCT + SizeOfStruct DWORD ? + Key DWORD ? + LineNumber DWORD ? + FileName DWORD ? + Address DWORD ? +IMAGEHLP_LINE ENDS + +IMAGEHLP_DEFERRED_SYMBOL_LOAD STRUCT + SizeOfStruct DWORD ? + BaseOfImage DWORD ? + CheckSum DWORD ? + TimeDateStamp DWORD ? + FileName BYTE MAX_PATH dup (?) + Reparse BYTE ? +IMAGEHLP_DEFERRED_SYMBOL_LOAD ENDS + +IMAGEHLP_DUPLICATE_SYMBOL STRUCT + SizeOfStruct DWORD ? + NumberOfDups DWORD ? + Symbol DWORD ? + SelectedSymbol DWORD ? +IMAGEHLP_DUPLICATE_SYMBOL ENDS + +;;;; end imaghlp + +;;;; excpt + +;--------------------------------------[ Excpt.h ]-------------------------- + +ExceptionContinueExecution equ 0 +ExceptionContinueSearch equ 1 +ExceptionNestedException equ 2 +ExceptionCollidedUnwind equ 3 + +;;;; end excpt + +;;;; wtypes + +;-------------------------------------[ wtypes.h ]------------------------------ +IID EQU +CLSID EQU +MEMCTX_TASK equ 1 +MEMCTX_SHARED equ 2 +MEMCTX_MACSYSTEM equ 3 +MEMCTX_UNKNOWN equ -1 +MEMCTX_SAME equ -2 +ROTFLAGS_REGISTRATIONKEEPSALIVE equ 1 +ROTFLAGS_ALLOWANYCLIENT equ 2 +ROT_COMPARE_MAX equ 2048 +CLSCTX_INPROC_SERVER equ 1 +CLSCTX_INPROC_HANDLER equ 2 +CLSCTX_LOCAL_SERVER equ 4 +CLSCTX_INPROC_SERVER16 equ 8 +CLSCTX_REMOTE_SERVER equ 10h +CLSCTX_INPROC_HANDLER16 equ 20h +CLSCTX_INPROC_SERVERX86 equ 40h +CLSCTX_INPROC_HANDLERX86 equ 80h +CLSCTX_ESERVER_HANDLER equ 100h +MSHLFLAGS_NORMAL equ 0 +MSHLFLAGS_TABLESTRONG equ 1 +MSHLFLAGS_TABLEWEAK equ 2 +MSHLFLAGS_NOPING equ 4 +MSHCTX_LOCAL equ 0 +MSHCTX_NOSHAREDMEM equ 1 +MSHCTX_DIFFERENTMACHINE equ 2 +MSHCTX_INPROC equ 3 +DVASPECT_CONTENT equ 1 +DVASPECT_THUMBNAIL equ 2 +DVASPECT_ICON equ 4 +DVASPECT_DOCPRINT equ 8 +STGC_DEFAULT equ 0 +STGC_OVERWRITE equ 1 +STGC_ONLYIFCURRENT equ 2 +STGC_DANGEROUSLYCOMMITMERELYTODISKCACHE equ 4 +STGC_CONSOLIDATE equ 8 +STGMOVE_MOVE equ 0 +STGMOVE_COPY equ 1 +STGMOVE_SHALLOWCOPY equ 2 +STATFLAG_DEFAULT equ 0 +STATFLAG_NONAME equ 1 +STATFLAG_NOOPEN equ 2 +WDT_INPROC_CALL equ 48746457h +WDT_REMOTE_CALL equ 52746457h +VARIANT_TRUE equ 0ffffh +VARIANT_FALSE equ 0 +DECIMAL_NEG equ 80 +APPINFO_PUBLISHED equ 1 +APPINFO_SHELLNEW equ APPINFO_PUBLISHED + 1 +APPINFO_INSERTABLE equ APPINFO_SHELLNEW + 1 +ACTFLG_RunLocally equ 1 +ACTFLG_RunOnce equ 2 +ACTFLG_SystemWide equ 4 +ACTFLG_Published equ 8 +ACTFLG_Assigned equ 16 +ACTFLG_UserInstall equ 32 +ExeNamePath equ 0 +DllNamePath equ ExeNamePath + 1 +TlbNamePath equ DllNamePath + 1 +CabFilePath equ TlbNamePath + 1 +InfFilePath equ CabFilePath + 1 +DrwFilePath equ InfFilePath + 1 +SetupNamePath equ DrwFilePath + 1 +TYSPEC_CLSID equ 0 +TYSPEC_FILEEXT equ TYSPEC_CLSID + 1 +TYSPEC_MIMETYPE equ TYSPEC_FILEEXT + 1 +TYSPEC_PROGID equ TYSPEC_MIMETYPE + 1 +TYSPEC_IID equ TYSPEC_PROGID + 1 +TYSPEC_TYPELIB equ TYSPEC_IID + 1 +TYSPEC_FILENAME equ TYSPEC_TYPELIB + 1 +TYSPEC_JAVACLASS equ TYSPEC_FILENAME + 1 +TYSPEC_PACKAGENAME equ TYSPEC_JAVACLASS + 1 +VT_EMPTY equ 0 +VT_NULL equ 1 +VT_I2 equ 2 +VT_I4 equ 3 +VT_R4 equ 4 +VT_R8 equ 5 +VT_CY equ 6 +VT_DATE equ 7 +VT_BSTR equ 8 +VT_DISPATCH equ 9 +VT_ERROR equ 10 +VT_BOOL equ 11 +VT_VARIANT equ 12 +VT_UNKNOWN equ 13 +VT_DECIMAL equ 14 +VT_I1 equ 16 +VT_UI1 equ 17 +VT_UI2 equ 18 +VT_UI4 equ 19 +VT_I8 equ 20 +VT_UI8 equ 21 +VT_INT equ 22 +VT_UINT equ 23 +VT_VOID equ 24 +VT_HRESULT equ 25 +VT_PTR equ 26 +VT_SAFEARRAY equ 27 +VT_CARRAY equ 28 +VT_USERDEFINED equ 29 +VT_LPSTR equ 30 +VT_LPWSTR equ 31 +VT_RECORD equ 36 +VT_FILETIME equ 64 +VT_BLOB equ 65 +VT_STREAM equ 66 +VT_STORAGE equ 67 +VT_STREAMED_OBJECT equ 68 +VT_STORED_OBJECT equ 69 +VT_BLOB_OBJECT equ 70 +VT_CF equ 71 +VT_CLSID equ 72 +VT_BSTR_BLOB equ 0fffh +VT_VECTOR equ 1000h +VT_ARRAY equ 2000h +VT_BYREF equ 4000h +VT_RESERVED equ 8000h +VT_ILLEGAL equ 0ffffh +VT_ILLEGALMASKED equ 0fffh +VT_TYPEMASK equ 0fffh + +RemHGLOBAL STRUCT + fNullHGlobal DWORD ? + cbData DWORD ? + data db ? +RemHGLOBAL ENDS + +RemHMETAFILEPICT STRUCT + imm DWORD ? + xExt DWORD ? + yExt DWORD ? + cbData DWORD ? + data db ? +RemHMETAFILEPICT ENDS + +RemHENHMETAFILE STRUCT + cbData DWORD ? + data db ? +RemHENHMETAFILE ENDS + +RemHBITMAP STRUCT + cbData DWORD ? + data db ? +RemHBITMAP ENDS + +RemHPALETTE STRUCT + cbData DWORD ? + data db ? +RemHPALETTE ENDS + +RemHBRUSH STRUCT + cbData DWORD ? + data db ? +RemHBRUSH ENDS + +COAUTHIDENTITY STRUCT + User DWORD ? + UserLength DWORD ? + Domain DWORD ? + DomainLength DWORD ? + Password DWORD ? + PasswordLength DWORD ? + Flags DWORD ? +COAUTHIDENTITY ENDS + +COAUTHINFO STRUCT + dwAuthnSvc DWORD ? + dwAuthzSvc DWORD ? + pwszServerPrincName DWORD ? + dwAuthnLevel DWORD ? + dwImpersonationLevel DWORD ? + pAuthIdentityData DWORD ? + dwCapabilities DWORD ? +COAUTHINFO ENDS + +BYTE_BLOB STRUCT + clSize DWORD ? + abData db ? +BYTE_BLOB ENDS + +WORD_BLOB STRUCT + clSize DWORD ? + asData dw ? +WORD_BLOB ENDS + +DWORD_BLOB STRUCT + clSize DWORD ? + alData DWORD ? +DWORD_BLOB ENDS + +FLAGGED_BYTE_BLOB STRUCT + fFlags DWORD ? + clSize DWORD ? + abData db ? +FLAGGED_BYTE_BLOB ENDS + +FLAGGED_WORD_BLOB STRUCT + fFlags DWORD ? + clSize DWORD ? + asData dw ? +FLAGGED_WORD_BLOB ENDS + +BYTE_SIZEDARR STRUCT + clSize DWORD ? + pData DWORD ? +BYTE_SIZEDARR ENDS + +WORD_SIZEDARR STRUCT + clSize DWORD ? + pData DWORD ? +WORD_SIZEDARR ENDS + +DWORD_SIZEDARR STRUCT + clSize DWORD ? + pData DWORD ? +DWORD_SIZEDARR ENDS + +HYPER_SIZEDARR STRUCT + clSize DWORD ? + pData DWORD ? +HYPER_SIZEDARR ENDS + +userCLIPFORMAT STRUCT + fContext DWORD ? + union u + dwValue DWORD ? + pwszName DWORD ? + ends +userCLIPFORMAT ENDS + +GDI_NONREMOTE STRUCT + fContext DWORD ? + union u + hInproc DWORD ? + hRemote DWORD ? + ends +GDI_NONREMOTE ENDS + +userHGLOBAL STRUCT + fContext DWORD ? + union u + hInproc DWORD ? + hRemote DWORD ? + hGlobal DWORD ? + ends +userHGLOBAL ENDS + +userHMETAFILE STRUCT + fContext DWORD ? + union u + hInproc DWORD ? + hRemote DWORD ? + hGlobal DWORD ? + ends +userHMETAFILE ENDS + +remoteMETAFILEPICT STRUCT + imm DWORD ? + xExt DWORD ? + yExt DWORD ? + hMF DWORD ? +remoteMETAFILEPICT ENDS + +userHMETAFILEPICT STRUCT + fContext DWORD ? + union u + hInproc DWORD ? + hRemote DWORD ? + hGlobal DWORD ? + ends +userHMETAFILEPICT ENDS + +userHENHMETAFILE STRUCT + fContext DWORD ? + union u + hInproc DWORD ? + hRemote DWORD ? + hGlobal DWORD ? + ends +userHENHMETAFILE ENDS + +userBITMAP STRUCT + bmType DWORD ? + bmWidth DWORD ? + bmHeight DWORD ? + bmWidthBytes DWORD ? + bmPlanes dw ? + bmBitsPixel dw ? + cbSize DWORD ? + pBuffer db ? +userBITMAP ENDS + +userHBITMAP STRUCT + fContext DWORD ? + union u + hInproc dd ? + hRemote dd ? + hGlobal dd ? + ends +userHBITMAP ENDS + +rpcLOGPALETTE STRUCT + palVersion dw ? + palNumEntries dw ? + palPalEntry PALETTEENTRY <> +rpcLOGPALETTE ENDS + +userHPALETTE STRUCT + fContext dd ? + union u + hInproc dd ? + hRemote dd ? + hGlobal dd ? + ends +userHPALETTE ENDS + +RemotableHandle STRUCT + fContext dd ? + union u + hInproc dd ? + hRemote dd ? + ends +RemotableHandle ENDS + +BSTRBLOB STRUCT + cbSize dd ? + pData dd ? +BSTRBLOB ENDS + +BLOB STRUCT + cbSize dd ? + pBlobData dd ? +BLOB ENDS + +CLIPDATA STRUCT + cbSize dd ? + ulClipFmt dd ? + pClipData dd ? +CLIPDATA ENDS + +CSPLATFORM STRUCT + dwPlatformId dd ? + dwVersionHi dd ? + dwVersionLo dd ? + dwProcessorArch dd ? +CSPLATFORM ENDS + +QUERYCONTEXT STRUCT + dwContext dd ? + Platform CSPLATFORM <> + Locale dd ? + dwVersionHi dd ? + dwVersionLo dd ? +QUERYCONTEXT ENDS + +uCLSSPEC STRUCT + tyspec dd ? + union tagged_union + clsid CLSID <> + iid IID <> + typelibID GUID <> + pFileExt dd ? + pMimeType dd ? + pProgId dd ? + pFileName dd ? + pJavaClassName dd ? + pPackageName dd ? + ends +uCLSSPEC ENDS + +PUBLISHEDAPPINFO STRUCT + pwszFileExtension dd ? + pwszDisplayName dd ? + pwszPackagePath dd ? +PUBLISHEDAPPINFO ENDS + +APPDETAIL STRUCT + AppID GUID <> + cClasses dd ? + prgClsIdList dd ? + cTypeLibIds dd ? + prgTypeLibIdList dd ? + cServers dd ? + prgServerNames dd ? +APPDETAIL ENDS + +;;;; end wtypes + +;;;; mmsys + +;-------------------------------------------[ mmsystem.h ]-------------------------------- + +MM_DRVM_OPEN equ 3D0h +MM_DRVM_CLOSE equ 3D1h +MM_DRVM_DATA equ 3D2h +MM_DRVM_ERROR equ 3D3h +MM_STREAM_OPEN equ 3D4h +MM_STREAM_CLOSE equ 3D5h +MM_STREAM_DONE equ 3D6h +MM_STREAM_ERROR equ 3D7h +MM_MIXM_LINE_CHANGE equ 3D0h +MM_MIXM_CONTROL_CHANGE equ 3D1h +MMSYSERR_BADDB equ (MMSYSERR_BASE + 14) +MMSYSERR_KEYNOTFOUND equ (MMSYSERR_BASE + 15) +MMSYSERR_READERROR equ (MMSYSERR_BASE + 16) +MMSYSERR_WRITEERROR equ (MMSYSERR_BASE + 17) +MMSYSERR_DELETEERROR equ (MMSYSERR_BASE + 18) +MMSYSERR_VALNOTFOUND equ (MMSYSERR_BASE + 19) +MMSYSERR_NODRIVERCB equ (MMSYSERR_BASE + 20) +CALLBACK_THREAD equ (CALLBACK_TASK) +CALLBACK_EVENT equ 50000h +WAVECAPS_SAMPLEACCURATE equ 20h +WAVECAPS_DIRECTSOUND equ 40h +MIDIERR_BADOPENMODE equ (MIDIERR_BASE + 6) +MIDIERR_DONT_CONTINUE equ (MIDIERR_BASE + 7) +MIDIPATCHSIZE equ 128 +MEVT_SHORTMSG equ 0 +MEVT_TEMPO equ 1 +MEVT_NOP equ 2 +MEVT_LONGMSG equ 80h +MEVT_COMMENT equ 82h +MEVT_VERSION equ 84h +MMIOERR_PATHNOTFOUND equ (MMIOERR_BASE + 11) +MMIOERR_ACCESSDENIED equ (MMIOERR_BASE + 12) +MMIOERR_SHARINGVIOLATION equ (MMIOERR_BASE + 13) +MMIOERR_NETWORKERROR equ (MMIOERR_BASE + 14) +MMIOERR_TOOMANYOPENFILES equ (MMIOERR_BASE + 15) +MMIOERR_INVALIDFILE equ (MMIOERR_BASE + 16) +CFSEPCHAR equ '+' +MCIERR_NO_IDENTITY equ (MCIERR_BASE + 94) +MCI_INFO_MEDIA_UPC equ 400h +MCI_INFO_MEDIA_IDENTITY equ 800h +MCI_INFO_NAME equ 1000h +MCI_INFO_COPYRIGHT equ 2000h +MCI_CDA_STATUS_TYPE_TRACK equ 4001h +MCI_CDA_TRACK_AUDIO equ (MCI_CD_OFFSET + 0) +MCI_CDA_TRACK_OTHER equ (MCI_CD_OFFSET + 1) +MCI_SEQ_STATUS_NAME equ 400Bh +MCI_SEQ_STATUS_COPYRIGHT equ 400Ch + +MIXERLINEA STRUCT DWORD + cbStruct DWORD ? + dwDestination DWORD ? + dwSource DWORD ? + dwLineID DWORD ? + fdwLine DWORD ? + dwUser DWORD ? + dwComponentType DWORD ? + cChannels DWORD ? + cConnections DWORD ? + cControls DWORD ? + szShortName db MIXER_SHORT_NAME_CHARS dup(?) + szName db MIXER_LONG_NAME_CHARS dup(?) + struct Target + dwType dd ? + dwDeviceID dd ? + wMid dw ? + wPid dw ? + vDriverVersion MMVERSION ? + szPname db MAXPNAMELEN dup(?) + ends +MIXERLINEA ENDS + +MIXERLINEW STRUCT DWORD + cbStruct DWORD ? + dwDestination DWORD ? + dwSource DWORD ? + dwLineID DWORD ? + fdwLine DWORD ? + dwUser DWORD ? + dwComponentType DWORD ? + cChannels DWORD ? + cConnections DWORD ? + cControls DWORD ? + szShortName dw MIXER_SHORT_NAME_CHARS dup(?) + szName dw MIXER_LONG_NAME_CHARS dup(?) + struct Target + dwType dd ? + dwDeviceID dd ? + wMid dw ? + wPid dw ? + vDriverVersion MMVERSION ? + szPname dw MAXPNAMELEN dup(?) + ends +MIXERLINEW ENDS + +IFDEF __UNICODE__ + MIXERLINE EQU +ELSE + MIXERLINE EQU +ENDIF + +MIXERCONTROLA STRUCT DWORD + cbStruct DWORD ? + dwControlID DWORD ? + dwControlType DWORD ? + fdwControl DWORD ? + cMultipleItems DWORD ? + szShortName db MIXER_SHORT_NAME_CHARS dup(?) + szName db MIXER_LONG_NAME_CHARS dup(?) + union Bounds + struct + lMinimum dd ? + lMaximum dd ? + ends + struct + dwMinimum dd ? + dwMaximum dd ? + ends + dwReserved dd 6 dup(?) + ends + union Metrics + cSteps dd ? + cbCustomData dd ? + dwReserved dd 6 dup(?) + ends +MIXERCONTROLA ENDS + +MIXERCONTROLW STRUCT DWORD + cbStruct DWORD ? + dwControlID DWORD ? + dwControlType DWORD ? + fdwControl DWORD ? + cMultipleItems DWORD ? + szShortName dw MIXER_SHORT_NAME_CHARS dup(?) + szName dw MIXER_LONG_NAME_CHARS dup(?) + union Bounds + struct + lMinimum dd ? + lMaximum dd ? + ends + struct + dwMinimum dd ? + dwMaximum dd ? + ends + dwReserved dd 6 dup(?) + ends + union Metrics + cSteps dd ? + cbCustomData dd ? + dwReserved dd 6 dup(?) + ends +MIXERCONTROLW ENDS + +IFDEF __UNICODE__ + MIXERCONTROL EQU +ELSE + MIXERCONTROL EQU +ENDIF + +WAVEFORMATEX STRUCT + wFormatTag dw ? + nChannels dw ? + nSamplesPerSec dd ? + nAvgBytesPerSec dd ? + nBlockAlign dw ? + wBitsPerSample dw ? + cbSize dw ? +WAVEFORMATEX ENDS + +MIXERCONTROLDETAILS_LISTTEXTA STRUCT + dwParam1 dd ? + dwParam2 dd ? + szName db MIXER_LONG_NAME_CHARS dup(?) +MIXERCONTROLDETAILS_LISTTEXTA ENDS + +MIXERCONTROLDETAILS_LISTTEXTW STRUCT + dwParam1 dd ? + dwParam2 dd ? + szName dw MIXER_LONG_NAME_CHARS dup(?) +MIXERCONTROLDETAILS_LISTTEXTW ENDS + +IFDEF __UNICODE__ + MIXERCONTROLDETAILS_LISTTEXT EQU +ELSE + MIXERCONTROLDETAILS_LISTTEXT EQU +ENDIF + +; ------------------------------------------------- +; Thew following equates were contributed by "bart" +; ------------------------------------------------- +SND_ALIAS_SYSTEMASTERISK equ 00002A53h +SND_ALIAS_SYSTEMQUESTION equ 00003F53h +SND_ALIAS_SYSTEMHAND equ 00004853h +SND_ALIAS_SYSTEMEXIT equ 00004553h +SND_ALIAS_SYSTEMSTART equ 00005353h +SND_ALIAS_SYSTEMWELCOME equ 00005753h +SND_ALIAS_SYSTEMEXCLAMATION equ 00002153h +SND_ALIAS_SYSTEMDEFAULT equ 00004453h + + +WAVE_FORMAT_44M08 equ 00000100h +WAVE_FORMAT_44S08 equ 00000200h +WAVE_FORMAT_44M16 equ 00000400h +WAVE_FORMAT_44S16 equ 00000800h +WAVE_FORMAT_48M08 equ 00001000h +WAVE_FORMAT_48S08 equ 00002000h +WAVE_FORMAT_48M16 equ 00004000h +WAVE_FORMAT_48S16 equ 00008000h +WAVE_FORMAT_96M08 equ 00010000h +WAVE_FORMAT_96S08 equ 00020000h +WAVE_FORMAT_96M16 equ 00040000h +WAVE_FORMAT_96S16 equ 00080000h +MOD_WAVETABLE equ 6 +MOD_SWSYNTH equ 7 +TIME_CALLBACK_FUNCTION equ 0000h +TIME_CALLBACK_EVENT_SET equ 0010h +TIME_CALLBACK_EVENT_PULSE equ 0020h +TIME_KILL_SYNCHRONOUS equ 0100h +JOYCAPS_HASZ equ 0001h +JOYCAPS_HASR equ 0002h +JOYCAPS_HASU equ 0004h +JOYCAPS_HASV equ 0008h +JOYCAPS_HASPOV equ 0010h +JOYCAPS_POV4DIR equ 0020h +JOYCAPS_POVCTS equ 0040h + +;;;; end mmsys + +;;;; cpl + +;----------------------------------------[ cpl.h ]-------------------------------- + +WM_CPL_LAUNCH equ WM_USER+1000 +WM_CPL_LAUNCHED equ WM_USER+1001 +CPL_DYNAMIC_RES equ 0 +CPL_INIT equ 1 +CPL_GETCOUNT equ 2 +CPL_INQUIRE equ 3 +CPL_SELECT equ 4 +CPL_DBLCLK equ 5 +CPL_STOP equ 6 +CPL_EXIT equ 7 +CPL_NEWINQUIRE equ 8 +CPL_STARTWPARMSA equ 9 +CPL_STARTWPARMSW equ 10 +IFDEF __UNICODE__ + CPL_STARTWPARMS equ CPL_STARTWPARMSW +ELSE + CPL_STARTWPARMS equ CPL_STARTWPARMSA +ENDIF + +CPL_SETUP equ 200 + +CPLINFO STRUCT + idIcon dd ? + idName dd ? + idInfo dd ? + lData dd ? +CPLINFO ENDS + +NEWCPLINFOA STRUCT + dwSize dd ? + dwFlags dd ? + dwHelpContext dd ? + lData dd ? + hIcon dd ? + szName db 32 dup(?) + szInfo db 64 dup(?) + szHelpFile db 128 dup(?) +NEWCPLINFOA ENDS + +NEWCPLINFOW STRUCT + dwSize dd ? + dwFlags dd ? + dwHelpContext dd ? + lData dd ? + hIcon dd ? + szName dw 32 dup(?) + szInfo dw 64 dup(?) + szHelpFile dw 128 dup(?) +NEWCPLINFOW ENDS + +IFDEF __UNICODE__ + NEWCPLINFO EQU +ELSE + NEWCPLINFO EQU +ENDIF + +;--------------------------------------[ cplext.h ]---------------------------------- +CPLPAGE_MOUSE_BUTTONS equ 1 +CPLPAGE_MOUSE_PTRMOTION equ 2 +CPLPAGE_KEYBOARD_SPEED equ 1 + +;;;; end cpl + +;;;; ctl3d + +;--------------------------------------[ ctl3d.h ]------------------------------------ + +CTL3D_SUBCLASS_DYNCREATE equ 1 +CTL3D_NOSUBCLASS_DYNCREATE equ 2 +CTL3D_BUTTON_CTL equ 0 +CTL3D_LISTBOX_CTL equ 1 +CTL3D_EDIT_CTL equ 2 +CTL3D_COMBO_CTL equ 3 +CTL3D_STATIC_CTL equ 4 +CTL3D_BUTTONS equ 1 +CTL3D_LISTBOXES equ 2 +CTL3D_EDITS equ 4 +CTL3D_COMBOS equ 8 +CTL3D_STATICTEXTS equ 10h +CTL3D_STATICFRAMES equ 20h +CTL3D_NODLGWINDOW equ 10000h +CTL3D_ALL equ 0ffffh +WM_DLGBORDER equ WM_USER+3567 +CTL3D_NOBORDER equ 0 +CTL3D_BORDER equ 1 +WM_DLGSUBCLASS equ WM_USER+3568 +CTL3D_NOSUBCLASS equ 0 +CTL3D_SUBCLASS equ 1 +CTLMSGOFFSET equ 3569 +CTL3D_CTLCOLORMSGBOX equ WM_USER+CTLMSGOFFSET +CTL3D_CTLCOLOREDIT equ WM_USER+CTLMSGOFFSET+1 +CTL3D_CTLCOLORLISTBOX equ WM_USER+CTLMSGOFFSET+2 +CTL3D_CTLCOLORBTN equ WM_USER+CTLMSGOFFSET+3 +CTL3D_CTLCOLORSCROLLBAR equ WM_USER+CTLMSGOFFSET+4 +CTL3D_CTLCOLORSTATIC equ WM_USER+CTLMSGOFFSET+5 +CTL3D_CTLCOLORDLG equ WM_USER+CTLMSGOFFSET+6 +CTL3D_3DCHECK equ 26567 + +;;;; end ctl3d + +;;;; shlapi + +; ---------------------------- ShellAPI.h ------------------------------- + +FOF_NOERRORUI equ 400h +FOF_NOCOPYSECURITYATTRIBS equ 800h +SEE_MASK_UNICODE equ 4000h +SEE_MASK_NO_CONSOLE equ 8000h +SEE_MASK_ASYNCOK equ 100000h +SEE_MASK_HMONITOR equ 200000h +SHERB_NOCONFIRMATION equ 1 +SHERB_NOPROGRESSUI equ 2 +SHERB_NOSOUND equ 4 +SHGFI_ATTR_SPECIFIED equ 20000h +SHGNLI_NOUNIQUE equ 4 +PRINTACTION_OPEN equ 0 +PRINTACTION_PROPERTIES equ 1 +PRINTACTION_NETINSTALL equ 2 +PRINTACTION_NETINSTALLLINK equ 3 +PRINTACTION_TESTPAGE equ 4 +PRINTACTION_OPENNETPRN equ 5 +PRINTACTION_DOCUMENTDEFAULTS equ 6 +PRINTACTION_SERVERPROPERTIES equ 7 + +SHQUERYRBINFO STRUCT + cbSize dd ? + i64Size qword ? + i64NumItems qword ? + SHQUERYRBINFO ENDS + +;wininet.h + +INTERNET_INVALID_PORT_NUMBER equ 0 +INTERNET_DEFAULT_FTP_PORT equ 21 +INTERNET_DEFAULT_GOPHER_PORT equ 70 +INTERNET_DEFAULT_HTTP_PORT equ 80 +INTERNET_DEFAULT_HTTPS_PORT equ 443 +INTERNET_DEFAULT_SOCKS_PORT equ 1080 +INTERNET_MAX_HOST_NAME_LENGTH equ 256 +INTERNET_MAX_USER_NAME_LENGTH equ 128 +INTERNET_MAX_PASSWORD_LENGTH equ 128 +INTERNET_MAX_PORT_NUMBER_LENGTH equ 5 +INTERNET_MAX_PORT_NUMBER_VALUE equ 65535 +INTERNET_MAX_PATH_LENGTH equ 2048 +INTERNET_MAX_SCHEME_LENGTH equ 32 +INTERNET_MAX_URL_LENGTH equ INTERNET_MAX_SCHEME_LENGTH + 3 + INTERNET_MAX_PATH_LENGTH +INTERNET_KEEP_ALIVE_UNKNOWN equ 0ffffffffh +INTERNET_KEEP_ALIVE_ENABLED equ 1 +INTERNET_KEEP_ALIVE_DISABLED equ 0 +INTERNET_REQFLAG_FROM_CACHE equ 1 +INTERNET_REQFLAG_ASYNC equ 2 +INTERNET_REQFLAG_VIA_PROXY equ 4 +INTERNET_REQFLAG_NO_HEADERS equ 8 +INTERNET_REQFLAG_PASSIVE equ 10h +INTERNET_REQFLAG_CACHE_WRITE_DISABLED equ 40h +INTERNET_FLAG_RELOAD equ 80000000h +INTERNET_FLAG_RAW_DATA equ 40000000h +INTERNET_FLAG_EXISTING_CONNECT equ 20000000h +INTERNET_FLAG_ASYNC equ 10000000h +INTERNET_FLAG_PASSIVE equ 8000000h +INTERNET_FLAG_NO_CACHE_WRITE equ 4000000h +INTERNET_FLAG_DONT_CACHE equ INTERNET_FLAG_NO_CACHE_WRITE +INTERNET_FLAG_MAKE_PERSISTENT equ 2000000h +INTERNET_FLAG_FROM_CACHE equ 1000000h +INTERNET_FLAG_OFFLINE equ INTERNET_FLAG_FROM_CACHE +INTERNET_FLAG_SECURE equ 800000h +INTERNET_FLAG_KEEP_CONNECTION equ 400000h +INTERNET_FLAG_NO_AUTO_REDIRECT equ 200000h +INTERNET_FLAG_READ_PREFETCH equ 100000h +INTERNET_FLAG_NO_COOKIES equ 80000h +INTERNET_FLAG_NO_AUTH equ 40000h +INTERNET_FLAG_CACHE_IF_NET_FAIL equ 10000h +INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTP equ 8000h +INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTPS equ 4000h +INTERNET_FLAG_IGNORE_CERT_DATE_INVALID equ 2000h +INTERNET_FLAG_IGNORE_CERT_CN_INVALID equ 1000h +INTERNET_FLAG_RESYNCHRONIZE equ 800h +INTERNET_FLAG_HYPERLINK equ 400h +INTERNET_FLAG_NO_UI equ 200h +INTERNET_FLAG_PRAGMA_NOCACHE equ 100h +INTERNET_FLAG_CACHE_ASYNC equ 80h +INTERNET_FLAG_FORMS_SUBMIT equ 40h +INTERNET_FLAG_NEED_FILE equ 10h +INTERNET_FLAG_MUST_CACHE_REQUEST equ INTERNET_FLAG_NEED_FILE +INTERNET_FLAG_TRANSFER_ASCII equ FTP_TRANSFER_TYPE_ASCII +INTERNET_FLAG_TRANSFER_BINARY equ FTP_TRANSFER_TYPE_BINARY +SECURITY_INTERNET_MASK equ INTERNET_FLAG_IGNORE_CERT_CN_INVALID + INTERNET_FLAG_IGNORE_CERT_DATE_INVALID + INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTPS + INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTP +INTERNET_ERROR_MASK_INSERT_CDROM equ 1 +INTERNET_OPTIONS_MASK equ not INTERNET_FLAGS_MASK +WININET_API_FLAG_ASYNC equ 1 +WININET_API_FLAG_SYNC equ 4 +WININET_API_FLAG_USE_CONTEXT equ 8 +INTERNET_NO_CALLBACK equ 0 +INTERNET_RFC1123_FORMAT equ 0 +INTERNET_RFC1123_BUFSIZE equ 30 +ICU_ESCAPE equ 80000000h +ICU_USERNAME equ 40000000h +ICU_NO_ENCODE equ 20000000h +ICU_DECODE equ 10000000h +ICU_NO_META equ 8000000h +ICU_ENCODE_SPACES_ONLY equ 4000000h +ICU_BROWSER_MODE equ 2000000h +INTERNET_OPEN_TYPE_PRECONFIG equ 0 +INTERNET_OPEN_TYPE_DIRECT equ 1 +INTERNET_OPEN_TYPE_PROXY equ 3 +INTERNET_OPEN_TYPE_PRECONFIG_WITH_NO_AUTOPROXY equ 4 +PRE_CONFIG_INTERNET_ACCESS equ INTERNET_OPEN_TYPE_PRECONFIG +LOCAL_INTERNET_ACCESS equ INTERNET_OPEN_TYPE_DIRECT +CERN_PROXY_INTERNET_ACCESS equ INTERNET_OPEN_TYPE_PROXY +INTERNET_SERVICE_URL equ 0 +INTERNET_SERVICE_FTP equ 1 +INTERNET_SERVICE_GOPHER equ 2 +INTERNET_SERVICE_HTTP equ 3 +IRF_ASYNC equ WININET_API_FLAG_ASYNC +IRF_SYNC equ WININET_API_FLAG_SYNC +IRF_USE_CONTEXT equ WININET_API_FLAG_USE_CONTEXT +IRF_NO_WAIT equ 8 +ISO_GLOBAL equ 1 +ISO_REGISTRY equ 2 +ISO_VALID_FLAGS equ (ISO_GLOBAL + ISO_REGISTRY) +INTERNET_OPTION_CALLBACK equ 1 +INTERNET_OPTION_CONNECT_TIMEOUT equ 2 +INTERNET_OPTION_CONNECT_RETRIES equ 3 +INTERNET_OPTION_CONNECT_BACKOFF equ 4 +INTERNET_OPTION_SEND_TIMEOUT equ 5 +INTERNET_OPTION_CONTROL_SEND_TIMEOUT equ INTERNET_OPTION_SEND_TIMEOUT +INTERNET_OPTION_RECEIVE_TIMEOUT equ 6 +INTERNET_OPTION_CONTROL_RECEIVE_TIMEOUT equ INTERNET_OPTION_RECEIVE_TIMEOUT +INTERNET_OPTION_DATA_SEND_TIMEOUT equ 7 +INTERNET_OPTION_DATA_RECEIVE_TIMEOUT equ 8 +INTERNET_OPTION_HANDLE_TYPE equ 9 +INTERNET_OPTION_LISTEN_TIMEOUT equ 11 +INTERNET_OPTION_READ_BUFFER_SIZE equ 12 +INTERNET_OPTION_WRITE_BUFFER_SIZE equ 13 +INTERNET_OPTION_ASYNC_ID equ 15 +INTERNET_OPTION_ASYNC_PRIORITY equ 16 +INTERNET_OPTION_PARENT_HANDLE equ 21 +INTERNET_OPTION_KEEP_CONNECTION equ 22 +INTERNET_OPTION_REQUEST_FLAGS equ 23 +INTERNET_OPTION_EXTENDED_ERROR equ 24 +INTERNET_OPTION_OFFLINE_MODE equ 26 +INTERNET_OPTION_CACHE_STREAM_HANDLE equ 27 +INTERNET_OPTION_USERNAME equ 28 +INTERNET_OPTION_PASSWORD equ 29 +INTERNET_OPTION_ASYNC equ 30 +INTERNET_OPTION_SECURITY_FLAGS equ 31 +INTERNET_OPTION_SECURITY_CERTIFICATE_STRUCT equ 32 +INTERNET_OPTION_DATAFILE_NAME equ 33 +INTERNET_OPTION_URL equ 34 +INTERNET_OPTION_SECURITY_CERTIFICATE equ 35 +INTERNET_OPTION_SECURITY_KEY_BITNESS equ 36 +INTERNET_OPTION_REFRESH equ 37 +INTERNET_OPTION_PROXY equ 38 +INTERNET_OPTION_SETTINGS_CHANGED equ 39 +INTERNET_OPTION_VERSION equ 40 +INTERNET_OPTION_USER_AGENT equ 41 +INTERNET_OPTION_END_BROWSER_SESSION equ 42 +INTERNET_OPTION_PROXY_USERNAME equ 43 +INTERNET_OPTION_PROXY_PASSWORD equ 44 +INTERNET_OPTION_CONTEXT_VALUE equ 45 +INTERNET_OPTION_CONNECT_LIMIT equ 46 +INTERNET_OPTION_SECURITY_SELECT_CLIENT_CERT equ 47 +INTERNET_OPTION_POLICY equ 48 +INTERNET_OPTION_DISCONNECTED_TIMEOUT equ 49 +INTERNET_OPTION_CONNECTED_STATE equ 50 +INTERNET_OPTION_IDLE_STATE equ 51 +INTERNET_OPTION_OFFLINE_SEMANTICS equ 52 +INTERNET_OPTION_SECONDARY_CACHE_KEY equ 53 +INTERNET_OPTION_CALLBACK_FILTER equ 54 +INTERNET_OPTION_CONNECT_TIME equ 55 +INTERNET_OPTION_SEND_THROUGHPUT equ 56 +INTERNET_OPTION_RECEIVE_THROUGHPUT equ 57 +INTERNET_OPTION_REQUEST_PRIORITY equ 58 +INTERNET_OPTION_HTTP_VERSION equ 59 +INTERNET_OPTION_RESET_URLCACHE_SESSION equ 60 +INTERNET_OPTION_ERROR_MASK equ 62 +INTERNET_FIRST_OPTION equ INTERNET_OPTION_CALLBACK +INTERNET_LAST_OPTION equ INTERNET_OPTION_ERROR_MASK +INTERNET_PRIORITY_FOREGROUND equ 1000 +INTERNET_HANDLE_TYPE_INTERNET equ 1 +INTERNET_HANDLE_TYPE_CONNECT_FTP equ 2 +INTERNET_HANDLE_TYPE_CONNECT_GOPHER equ 3 +INTERNET_HANDLE_TYPE_CONNECT_HTTP equ 4 +INTERNET_HANDLE_TYPE_FTP_FIND equ 5 +INTERNET_HANDLE_TYPE_FTP_FIND_HTML equ 6 +INTERNET_HANDLE_TYPE_FTP_FILE equ 7 +INTERNET_HANDLE_TYPE_FTP_FILE_HTML equ 8 +INTERNET_HANDLE_TYPE_GOPHER_FIND equ 9 +INTERNET_HANDLE_TYPE_GOPHER_FIND_HTML equ 10 +INTERNET_HANDLE_TYPE_GOPHER_FILE equ 11 +INTERNET_HANDLE_TYPE_GOPHER_FILE_HTML equ 12 +INTERNET_HANDLE_TYPE_HTTP_REQUEST equ 13 +SECURITY_FLAG_SECURE equ 1 +SECURITY_FLAG_STRENGTH_WEAK equ 10000000h +SECURITY_FLAG_STRENGTH_MEDIUM equ 40000000h +SECURITY_FLAG_STRENGTH_STRONG equ 20000000h +SECURITY_FLAG_UNKNOWNBIT equ 80000000h +SECURITY_FLAG_NORMALBITNESS equ SECURITY_FLAG_STRENGTH_WEAK +SECURITY_FLAG_SSL equ 2 +SECURITY_FLAG_SSL3 equ 4 +SECURITY_FLAG_PCT equ 8 +SECURITY_FLAG_PCT4 equ 10h +SECURITY_FLAG_IETFSSL4 equ 20h +SECURITY_FLAG_40BIT equ SECURITY_FLAG_STRENGTH_WEAK +SECURITY_FLAG_128BIT equ SECURITY_FLAG_STRENGTH_STRONG +SECURITY_FLAG_56BIT equ SECURITY_FLAG_STRENGTH_MEDIUM +SECURITY_FLAG_IGNORE_REVOCATION equ 80h +SECURITY_FLAG_IGNORE_UNKNOWN_CA equ 100h +SECURITY_FLAG_IGNORE_WRONG_USAGE equ 200h +SECURITY_FLAG_IGNORE_CERT_CN_INVALID equ INTERNET_FLAG_IGNORE_CERT_CN_INVALID +SECURITY_FLAG_IGNORE_CERT_DATE_INVALID equ INTERNET_FLAG_IGNORE_CERT_DATE_INVALID +SECURITY_FLAG_IGNORE_REDIRECT_TO_HTTPS equ INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTPS +SECURITY_FLAG_IGNORE_REDIRECT_TO_HTTP equ INTERNET_FLAG_IGNORE_REDIRECT_TO_HTTP +SECURITY_SET_MASK equ (SECURITY_FLAG_IGNORE_REVOCATION+SECURITY_FLAG_IGNORE_UNKNOWN_CA+SECURITY_FLAG_IGNORE_CERT_CN_INVALID+SECURITY_FLAG_IGNORE_CERT_DATE_INVALID+SECURITY_FLAG_IGNORE_WRONG_USAGE) +INTERNET_STATUS_RESOLVING_NAME equ 10 +INTERNET_STATUS_NAME_RESOLVED equ 11 +INTERNET_STATUS_CONNECTING_TO_SERVER equ 20 +INTERNET_STATUS_CONNECTED_TO_SERVER equ 21 +INTERNET_STATUS_SENDING_REQUEST equ 30 +INTERNET_STATUS_REQUEST_SENT equ 31 +INTERNET_STATUS_RECEIVING_RESPONSE equ 40 +INTERNET_STATUS_RESPONSE_RECEIVED equ 41 +INTERNET_STATUS_CTL_RESPONSE_RECEIVED equ 42 +INTERNET_STATUS_PREFETCH equ 43 +INTERNET_STATUS_CLOSING_CONNECTION equ 50 +INTERNET_STATUS_CONNECTION_CLOSED equ 51 +INTERNET_STATUS_HANDLE_CREATED equ 60 +INTERNET_STATUS_HANDLE_CLOSING equ 70 +INTERNET_STATUS_REQUEST_COMPLETE equ 100 +INTERNET_STATUS_REDIRECT equ 110 +INTERNET_STATUS_INTERMEDIATE_RESPONSE equ 120 +INTERNET_STATUS_STATE_CHANGE equ 200 +INTERNET_STATE_CONNECTED equ 1 +INTERNET_STATE_DISCONNECTED equ 2 +INTERNET_STATE_DISCONNECTED_BY_USER equ 10h +INTERNET_STATE_IDLE equ 100h +INTERNET_STATE_BUSY equ 200h +INTERNET_INVALID_STATUS_CALLBACK equ 0ffffffffh +FTP_TRANSFER_TYPE_UNKNOWN equ 0 +FTP_TRANSFER_TYPE_ASCII equ 1 +FTP_TRANSFER_TYPE_BINARY equ 2 +FTP_TRANSFER_TYPE_MASK equ (FTP_TRANSFER_TYPE_ASCII + FTP_TRANSFER_TYPE_BINARY) +MAX_GOPHER_DISPLAY_TEXT equ 128 +MAX_GOPHER_SELECTOR_TEXT equ 256 +MAX_GOPHER_HOST_NAME equ INTERNET_MAX_HOST_NAME_LENGTH +MAX_GOPHER_LOCATOR_LENGTH equ 1+ MAX_GOPHER_DISPLAY_TEXT+ 1 + MAX_GOPHER_SELECTOR_TEXT+ 1+ MAX_GOPHER_HOST_NAME+ 1+ INTERNET_MAX_PORT_NUMBER_LENGTH+ 1+ 1+ 2 +GOPHER_TYPE_TEXT_FILE equ 1 +GOPHER_TYPE_DIRECTORY equ 2 +GOPHER_TYPE_CSO equ 4 +GOPHER_TYPE_ERROR equ 8 +GOPHER_TYPE_MAC_BINHEX equ 10h +GOPHER_TYPE_DOS_ARCHIVE equ 20h +GOPHER_TYPE_UNIX_UUENCODED equ 40h +GOPHER_TYPE_INDEX_SERVER equ 80h +GOPHER_TYPE_TELNET equ 100h +GOPHER_TYPE_BINARY equ 200h +GOPHER_TYPE_REDUNDANT equ 400h +GOPHER_TYPE_TN3270 equ 800h +GOPHER_TYPE_GIF equ 1000h +GOPHER_TYPE_IMAGE equ 2000h +GOPHER_TYPE_BITMAP equ 4000h +GOPHER_TYPE_MOVIE equ 8000h +GOPHER_TYPE_SOUND equ 10000h +GOPHER_TYPE_HTML equ 20000h +GOPHER_TYPE_PDF equ 40000h +GOPHER_TYPE_CALENDAR equ 80000h +GOPHER_TYPE_INLINE equ 100000h +GOPHER_TYPE_UNKNOWN equ 20000000h +GOPHER_TYPE_ASK equ 40000000h +GOPHER_TYPE_GOPHER_PLUS equ 80000000h +GOPHER_TEMP equ GOPHER_TYPE_TEXT_FILE+GOPHER_TYPE_MAC_BINHEX+GOPHER_TYPE_DOS_ARCHIVE+GOPHER_TYPE_UNIX_UUENCODED+GOPHER_TYPE_BINARY +GOPHER_TYPE_FILE_MASK equ GOPHER_TEMP+ GOPHER_TYPE_GIF+ GOPHER_TYPE_IMAGE+ GOPHER_TYPE_BITMAP+GOPHER_TYPE_MOVIE+GOPHER_TYPE_SOUND+ GOPHER_TYPE_HTML+GOPHER_TYPE_PDF+GOPHER_TYPE_CALENDAR+GOPHER_TYPE_INLINE +MAX_GOPHER_CATEGORY_NAME equ 128 +MAX_GOPHER_ATTRIBUTE_NAME equ 128 +MIN_GOPHER_ATTRIBUTE_LENGTH equ 256 +GOPHER_ATTRIBUTE_ID_BASE equ 0abcccc00h +GOPHER_CATEGORY_ID_ALL equ (GOPHER_ATTRIBUTE_ID_BASE + 1) +GOPHER_CATEGORY_ID_INFO equ (GOPHER_ATTRIBUTE_ID_BASE + 2) +GOPHER_CATEGORY_ID_ADMIN equ (GOPHER_ATTRIBUTE_ID_BASE + 3) +GOPHER_CATEGORY_ID_VIEWS equ (GOPHER_ATTRIBUTE_ID_BASE + 4) +GOPHER_CATEGORY_ID_ABSTRACT equ (GOPHER_ATTRIBUTE_ID_BASE + 5) +GOPHER_CATEGORY_ID_VERONICA equ (GOPHER_ATTRIBUTE_ID_BASE + 6) +GOPHER_CATEGORY_ID_ASK equ (GOPHER_ATTRIBUTE_ID_BASE + 7) +GOPHER_CATEGORY_ID_UNKNOWN equ (GOPHER_ATTRIBUTE_ID_BASE + 8) +GOPHER_ATTRIBUTE_ID_ALL equ (GOPHER_ATTRIBUTE_ID_BASE + 9) +GOPHER_ATTRIBUTE_ID_ADMIN equ (GOPHER_ATTRIBUTE_ID_BASE + 10) +GOPHER_ATTRIBUTE_ID_MOD_DATE equ (GOPHER_ATTRIBUTE_ID_BASE + 11) +GOPHER_ATTRIBUTE_ID_TTL equ (GOPHER_ATTRIBUTE_ID_BASE + 12) +GOPHER_ATTRIBUTE_ID_SCORE equ (GOPHER_ATTRIBUTE_ID_BASE + 13) +GOPHER_ATTRIBUTE_ID_RANGE equ (GOPHER_ATTRIBUTE_ID_BASE + 14) +GOPHER_ATTRIBUTE_ID_SITE equ (GOPHER_ATTRIBUTE_ID_BASE + 15) +GOPHER_ATTRIBUTE_ID_ORG equ (GOPHER_ATTRIBUTE_ID_BASE + 16) +GOPHER_ATTRIBUTE_ID_LOCATION equ (GOPHER_ATTRIBUTE_ID_BASE + 17) +GOPHER_ATTRIBUTE_ID_GEOG equ (GOPHER_ATTRIBUTE_ID_BASE + 18) +GOPHER_ATTRIBUTE_ID_TIMEZONE equ (GOPHER_ATTRIBUTE_ID_BASE + 19) +GOPHER_ATTRIBUTE_ID_PROVIDER equ (GOPHER_ATTRIBUTE_ID_BASE + 20) +GOPHER_ATTRIBUTE_ID_VERSION equ (GOPHER_ATTRIBUTE_ID_BASE + 21) +GOPHER_ATTRIBUTE_ID_ABSTRACT equ (GOPHER_ATTRIBUTE_ID_BASE + 22) +GOPHER_ATTRIBUTE_ID_VIEW equ (GOPHER_ATTRIBUTE_ID_BASE + 23) +GOPHER_ATTRIBUTE_ID_TREEWALK equ (GOPHER_ATTRIBUTE_ID_BASE + 24) +GOPHER_ATTRIBUTE_ID_UNKNOWN equ (GOPHER_ATTRIBUTE_ID_BASE + 25) +HTTP_MAJOR_VERSION equ 1 +HTTP_MINOR_VERSION equ 0 +HTTP_VERSION equ A("HTTP/1.0") +HTTP_QUERY_MIME_VERSION equ 0 +HTTP_QUERY_CONTENT_TYPE equ 1 +HTTP_QUERY_CONTENT_TRANSFER_ENCODING equ 2 +HTTP_QUERY_CONTENT_ID equ 3 +HTTP_QUERY_CONTENT_DESCRIPTION equ 4 +HTTP_QUERY_CONTENT_LENGTH equ 5 +HTTP_QUERY_CONTENT_LANGUAGE equ 6 +HTTP_QUERY_ALLOW equ 7 +HTTP_QUERY_PUBLIC equ 8 +HTTP_QUERY_DATE equ 9 +HTTP_QUERY_EXPIRES equ 10 +HTTP_QUERY_LAST_MODIFIED equ 11 +HTTP_QUERY_MESSAGE_ID equ 12 +HTTP_QUERY_URI equ 13 +HTTP_QUERY_DERIVED_FROM equ 14 +HTTP_QUERY_COST equ 15 +HTTP_QUERY_LINK equ 16 +HTTP_QUERY_PRAGMA equ 17 +HTTP_QUERY_VERSION equ 18 +HTTP_QUERY_STATUS_CODE equ 19 +HTTP_QUERY_STATUS_TEXT equ 20 +HTTP_QUERY_RAW_HEADERS equ 21 +HTTP_QUERY_RAW_HEADERS_CRLF equ 22 +HTTP_QUERY_CONNECTION equ 23 +HTTP_QUERY_ACCEPT equ 24 +HTTP_QUERY_ACCEPT_CHARSET equ 25 +HTTP_QUERY_ACCEPT_ENCODING equ 26 +HTTP_QUERY_ACCEPT_LANGUAGE equ 27 +HTTP_QUERY_AUTHORIZATION equ 28 +HTTP_QUERY_CONTENT_ENCODING equ 29 +HTTP_QUERY_FORWARDED equ 30 +HTTP_QUERY_FROM equ 31 +HTTP_QUERY_IF_MODIFIED_SINCE equ 32 +HTTP_QUERY_LOCATION equ 33 +HTTP_QUERY_ORIG_URI equ 34 +HTTP_QUERY_REFERER equ 35 +HTTP_QUERY_RETRY_AFTER equ 36 +HTTP_QUERY_SERVER equ 37 +HTTP_QUERY_TITLE equ 38 +HTTP_QUERY_USER_AGENT equ 39 +HTTP_QUERY_WWW_AUTHENTICATE equ 40 +HTTP_QUERY_PROXY_AUTHENTICATE equ 41 +HTTP_QUERY_ACCEPT_RANGES equ 42 +HTTP_QUERY_SET_COOKIE equ 43 +HTTP_QUERY_COOKIE equ 44 +HTTP_QUERY_REQUEST_METHOD equ 45 +HTTP_QUERY_REFRESH equ 46 +HTTP_QUERY_CONTENT_DISPOSITION equ 47 +HTTP_QUERY_AGE equ 48 +HTTP_QUERY_CACHE_CONTROL equ 49 +HTTP_QUERY_CONTENT_BASE equ 50 +HTTP_QUERY_CONTENT_LOCATION equ 51 +HTTP_QUERY_CONTENT_MD5 equ 52 +HTTP_QUERY_CONTENT_RANGE equ 53 +HTTP_QUERY_ETAG equ 54 +HTTP_QUERY_HOST equ 55 +HTTP_QUERY_IF_MATCH equ 56 +HTTP_QUERY_IF_NONE_MATCH equ 57 +HTTP_QUERY_IF_RANGE equ 58 +HTTP_QUERY_IF_UNMODIFIED_SINCE equ 59 +HTTP_QUERY_MAX_FORWARDS equ 60 +HTTP_QUERY_PROXY_AUTHORIZATION equ 61 +HTTP_QUERY_RANGE equ 62 +HTTP_QUERY_TRANSFER_ENCODING equ 63 +HTTP_QUERY_UPGRADE equ 64 +HTTP_QUERY_VARY equ 65 +HTTP_QUERY_VIA equ 66 +HTTP_QUERY_WARNING equ 67 +HTTP_QUERY_MAX equ 67 +HTTP_QUERY_CUSTOM equ 65535 +HTTP_QUERY_FLAG_REQUEST_HEADERS equ 80000000h +HTTP_QUERY_FLAG_SYSTEMTIME equ 40000000h +HTTP_QUERY_FLAG_NUMBER equ 20000000h +HTTP_QUERY_FLAG_COALESCE equ 10000000h +HTTP_QUERY_MODIFIER_FLAGS_MASK equ (HTTP_QUERY_FLAG_REQUEST_HEADERS+HTTP_QUERY_FLAG_SYSTEMTIME+HTTP_QUERY_FLAG_NUMBER+HTTP_QUERY_FLAG_COALESCE) +HTTP_QUERY_HEADER_MASK equ not HTTP_QUERY_MODIFIER_FLAGS_MASK +HTTP_STATUS_CONTINUE equ 100 +HTTP_STATUS_SWITCH_PROTOCOLS equ 101 +HTTP_STATUS_OK equ 200 +HTTP_STATUS_CREATED equ 201 +HTTP_STATUS_ACCEPTED equ 202 +HTTP_STATUS_PARTIAL equ 203 +HTTP_STATUS_NO_CONTENT equ 204 +HTTP_STATUS_RESET_CONTENT equ 205 +HTTP_STATUS_PARTIAL_CONTENT equ 206 +HTTP_STATUS_AMBIGUOUS equ 300 +HTTP_STATUS_MOVED equ 301 +HTTP_STATUS_REDIRECT equ 302 +HTTP_STATUS_REDIRECT_METHOD equ 303 +HTTP_STATUS_NOT_MODIFIED equ 304 +HTTP_STATUS_USE_PROXY equ 305 +HTTP_STATUS_REDIRECT_KEEP_VERB equ 307 +HTTP_STATUS_BAD_REQUEST equ 400 +HTTP_STATUS_DENIED equ 401 +HTTP_STATUS_PAYMENT_REQ equ 402 +HTTP_STATUS_FORBIDDEN equ 403 +HTTP_STATUS_NOT_FOUND equ 404 +HTTP_STATUS_BAD_METHOD equ 405 +HTTP_STATUS_NONE_ACCEPTABLE equ 406 +HTTP_STATUS_PROXY_AUTH_REQ equ 407 +HTTP_STATUS_REQUEST_TIMEOUT equ 408 +HTTP_STATUS_CONFLICT equ 409 +HTTP_STATUS_GONE equ 410 +HTTP_STATUS_LENGTH_REQUIRED equ 411 +HTTP_STATUS_PRECOND_FAILED equ 412 +HTTP_STATUS_REQUEST_TOO_LARGE equ 413 +HTTP_STATUS_URI_TOO_LONG equ 414 +HTTP_STATUS_UNSUPPORTED_MEDIA equ 415 +HTTP_STATUS_SERVER_ERROR equ 500 +HTTP_STATUS_NOT_SUPPORTED equ 501 +HTTP_STATUS_BAD_GATEWAY equ 502 +HTTP_STATUS_SERVICE_UNAVAIL equ 503 +HTTP_STATUS_GATEWAY_TIMEOUT equ 504 +HTTP_STATUS_VERSION_NOT_SUP equ 505 +HTTP_STATUS_FIRST equ HTTP_STATUS_CONTINUE +HTTP_STATUS_LAST equ HTTP_STATUS_VERSION_NOT_SUP +HTTP_ADDREQ_INDEX_MASK equ 0FFFFh +HTTP_ADDREQ_FLAGS_MASK equ 0FFFF0000h +HTTP_ADDREQ_FLAG_ADD_IF_NEW equ 10000000h +HTTP_ADDREQ_FLAG_ADD equ 20000000h +HTTP_ADDREQ_FLAG_COALESCE_WITH_COMMA equ 40000000h +HTTP_ADDREQ_FLAG_COALESCE_WITH_SEMICOLON equ 1000000h +HTTP_ADDREQ_FLAG_COALESCE equ HTTP_ADDREQ_FLAG_COALESCE_WITH_COMMA +HTTP_ADDREQ_FLAG_REPLACE equ 80000000h +HSR_ASYNC equ WININET_API_FLAG_ASYNC +HSR_SYNC equ WININET_API_FLAG_SYNC +HSR_USE_CONTEXT equ WININET_API_FLAG_USE_CONTEXT +HSR_INITIATE equ 8 +HSR_DOWNLOAD equ 10h +HSR_CHUNKED equ 20h +FLAGS_ERROR_UI_FILTER_FOR_ERRORS equ 1 +FLAGS_ERROR_UI_FLAGS_CHANGE_OPTIONS equ 2 +FLAGS_ERROR_UI_FLAGS_GENERATE_DATA equ 4 +FLAGS_ERROR_UI_FLAGS_NO_UI equ 8 +FLAGS_ERROR_UI_SERIALIZE_DIALOGS equ 10h +INTERNET_ERROR_BASE equ 12000 +ERROR_INTERNET_OUT_OF_HANDLES equ (INTERNET_ERROR_BASE + 1) +ERROR_INTERNET_TIMEOUT equ (INTERNET_ERROR_BASE + 2) +ERROR_INTERNET_EXTENDED_ERROR equ (INTERNET_ERROR_BASE + 3) +ERROR_INTERNET_INTERNAL_ERROR equ (INTERNET_ERROR_BASE + 4) +ERROR_INTERNET_INVALID_URL equ (INTERNET_ERROR_BASE + 5) +ERROR_INTERNET_UNRECOGNIZED_SCHEME equ (INTERNET_ERROR_BASE + 6) +ERROR_INTERNET_NAME_NOT_RESOLVED equ (INTERNET_ERROR_BASE + 7) +ERROR_INTERNET_PROTOCOL_NOT_FOUND equ (INTERNET_ERROR_BASE + 8) +ERROR_INTERNET_INVALID_OPTION equ (INTERNET_ERROR_BASE + 9) +ERROR_INTERNET_BAD_OPTION_LENGTH equ (INTERNET_ERROR_BASE + 10) +ERROR_INTERNET_OPTION_NOT_SETTABLE equ (INTERNET_ERROR_BASE + 11) +ERROR_INTERNET_SHUTDOWN equ (INTERNET_ERROR_BASE + 12) +ERROR_INTERNET_INCORRECT_USER_NAME equ (INTERNET_ERROR_BASE + 13) +ERROR_INTERNET_INCORRECT_PASSWORD equ (INTERNET_ERROR_BASE + 14) +ERROR_INTERNET_LOGIN_FAILURE equ (INTERNET_ERROR_BASE + 15) +ERROR_INTERNET_INVALID_OPERATION equ (INTERNET_ERROR_BASE + 16) +ERROR_INTERNET_OPERATION_CANCELLED equ (INTERNET_ERROR_BASE + 17) +ERROR_INTERNET_INCORRECT_HANDLE_TYPE equ (INTERNET_ERROR_BASE + 18) +ERROR_INTERNET_INCORRECT_HANDLE_STATE equ (INTERNET_ERROR_BASE + 19) +ERROR_INTERNET_NOT_PROXY_REQUEST equ (INTERNET_ERROR_BASE + 20) +ERROR_INTERNET_REGISTRY_VALUE_NOT_FOUND equ (INTERNET_ERROR_BASE + 21) +ERROR_INTERNET_BAD_REGISTRY_PARAMETER equ (INTERNET_ERROR_BASE + 22) +ERROR_INTERNET_NO_DIRECT_ACCESS equ (INTERNET_ERROR_BASE + 23) +ERROR_INTERNET_NO_CONTEXT equ (INTERNET_ERROR_BASE + 24) +ERROR_INTERNET_NO_CALLBACK equ (INTERNET_ERROR_BASE + 25) +ERROR_INTERNET_REQUEST_PENDING equ (INTERNET_ERROR_BASE + 26) +ERROR_INTERNET_INCORRECT_FORMAT equ (INTERNET_ERROR_BASE + 27) +ERROR_INTERNET_ITEM_NOT_FOUND equ (INTERNET_ERROR_BASE + 28) +ERROR_INTERNET_CANNOT_CONNECT equ (INTERNET_ERROR_BASE + 29) +ERROR_INTERNET_CONNECTION_ABORTED equ (INTERNET_ERROR_BASE + 30) +ERROR_INTERNET_CONNECTION_RESET equ (INTERNET_ERROR_BASE + 31) +ERROR_INTERNET_FORCE_RETRY equ (INTERNET_ERROR_BASE + 32) +ERROR_INTERNET_INVALID_PROXY_REQUEST equ (INTERNET_ERROR_BASE + 33) +ERROR_INTERNET_NEED_UI equ (INTERNET_ERROR_BASE + 34) +ERROR_INTERNET_HANDLE_EXISTS equ (INTERNET_ERROR_BASE + 36) +ERROR_INTERNET_SEC_CERT_DATE_INVALID equ (INTERNET_ERROR_BASE + 37) +ERROR_INTERNET_SEC_CERT_CN_INVALID equ (INTERNET_ERROR_BASE + 38) +ERROR_INTERNET_HTTP_TO_HTTPS_ON_REDIR equ (INTERNET_ERROR_BASE + 39) +ERROR_INTERNET_HTTPS_TO_HTTP_ON_REDIR equ (INTERNET_ERROR_BASE + 40) +ERROR_INTERNET_MIXED_SECURITY equ (INTERNET_ERROR_BASE + 41) +ERROR_INTERNET_CHG_POST_IS_NON_SECURE equ (INTERNET_ERROR_BASE + 42) +ERROR_INTERNET_POST_IS_NON_SECURE equ (INTERNET_ERROR_BASE + 43) +ERROR_INTERNET_CLIENT_AUTH_CERT_NEEDED equ (INTERNET_ERROR_BASE + 44) +ERROR_INTERNET_INVALID_CA equ (INTERNET_ERROR_BASE + 45) +ERROR_INTERNET_CLIENT_AUTH_NOT_SETUP equ (INTERNET_ERROR_BASE + 46) +ERROR_INTERNET_ASYNC_THREAD_FAILED equ (INTERNET_ERROR_BASE + 47) +ERROR_INTERNET_REDIRECT_SCHEME_CHANGE equ (INTERNET_ERROR_BASE + 48) +ERROR_INTERNET_DIALOG_PENDING equ (INTERNET_ERROR_BASE + 49) +ERROR_INTERNET_RETRY_DIALOG equ (INTERNET_ERROR_BASE + 50) +ERROR_INTERNET_HTTPS_HTTP_SUBMIT_REDIR equ (INTERNET_ERROR_BASE + 52) +ERROR_INTERNET_INSERT_CDROM equ (INTERNET_ERROR_BASE + 53) +ERROR_FTP_TRANSFER_IN_PROGRESS equ (INTERNET_ERROR_BASE + 110) +ERROR_FTP_DROPPED equ (INTERNET_ERROR_BASE + 111) +ERROR_FTP_NO_PASSIVE_MODE equ (INTERNET_ERROR_BASE + 112) +ERROR_GOPHER_PROTOCOL_ERROR equ (INTERNET_ERROR_BASE + 130) +ERROR_GOPHER_NOT_FILE equ (INTERNET_ERROR_BASE + 131) +ERROR_GOPHER_DATA_ERROR equ (INTERNET_ERROR_BASE + 132) +ERROR_GOPHER_END_OF_DATA equ (INTERNET_ERROR_BASE + 133) +ERROR_GOPHER_INVALID_LOCATOR equ (INTERNET_ERROR_BASE + 134) +ERROR_GOPHER_INCORRECT_LOCATOR_TYPE equ (INTERNET_ERROR_BASE + 135) +ERROR_GOPHER_NOT_GOPHER_PLUS equ (INTERNET_ERROR_BASE + 136) +ERROR_GOPHER_ATTRIBUTE_NOT_FOUND equ (INTERNET_ERROR_BASE + 137) +ERROR_GOPHER_UNKNOWN_LOCATOR equ (INTERNET_ERROR_BASE + 138) +ERROR_HTTP_HEADER_NOT_FOUND equ (INTERNET_ERROR_BASE + 150) +ERROR_HTTP_DOWNLEVEL_SERVER equ (INTERNET_ERROR_BASE + 151) +ERROR_HTTP_INVALID_SERVER_RESPONSE equ (INTERNET_ERROR_BASE + 152) +ERROR_HTTP_INVALID_HEADER equ (INTERNET_ERROR_BASE + 153) +ERROR_HTTP_INVALID_QUERY_REQUEST equ (INTERNET_ERROR_BASE + 154) +ERROR_HTTP_HEADER_ALREADY_EXISTS equ (INTERNET_ERROR_BASE + 155) +ERROR_HTTP_REDIRECT_FAILED equ (INTERNET_ERROR_BASE + 156) +ERROR_HTTP_NOT_REDIRECTED equ (INTERNET_ERROR_BASE + 160) +ERROR_HTTP_COOKIE_NEEDS_CONFIRMATION equ (INTERNET_ERROR_BASE + 161) +ERROR_HTTP_COOKIE_DECLINED equ (INTERNET_ERROR_BASE + 162) +ERROR_HTTP_REDIRECT_NEEDS_CONFIRMATION equ (INTERNET_ERROR_BASE + 168) +ERROR_INTERNET_SECURITY_CHANNEL_ERROR equ (INTERNET_ERROR_BASE + 157) +ERROR_INTERNET_UNABLE_TO_CACHE_FILE equ (INTERNET_ERROR_BASE + 158) +ERROR_INTERNET_TCPIP_NOT_INSTALLED equ (INTERNET_ERROR_BASE + 159) +ERROR_INTERNET_DISCONNECTED equ (INTERNET_ERROR_BASE + 163) +ERROR_INTERNET_SERVER_UNREACHABLE equ (INTERNET_ERROR_BASE + 164) +ERROR_INTERNET_PROXY_SERVER_UNREACHABLE equ (INTERNET_ERROR_BASE + 165) +ERROR_INTERNET_BAD_AUTO_PROXY_SCRIPT equ (INTERNET_ERROR_BASE + 166) +ERROR_INTERNET_UNABLE_TO_DOWNLOAD_SCRIPT equ (INTERNET_ERROR_BASE + 167) +ERROR_INTERNET_SEC_INVALID_CERT equ (INTERNET_ERROR_BASE + 169) +ERROR_INTERNET_SEC_CERT_REVOKED equ (INTERNET_ERROR_BASE + 170) +ERROR_INTERNET_FAILED_DUETOSECURITYCHECK equ (INTERNET_ERROR_BASE + 171) +INTERNET_ERROR_LAST equ ERROR_INTERNET_FAILED_DUETOSECURITYCHECK +NORMAL_CACHE_ENTRY equ 1 +COOKIE_CACHE_ENTRY equ 100000h +URLHISTORY_CACHE_ENTRY equ 200000h +TRACK_OFFLINE_CACHE_ENTRY equ 10h +TRACK_ONLINE_CACHE_ENTRY equ 20h +STICKY_CACHE_ENTRY equ 4 +SPARSE_CACHE_ENTRY equ 10000h +URLCACHE_FIND_DEFAULT_FILTER equ NORMAL_CACHE_ENTRY+COOKIE_CACHE_ENTRY+URLHISTORY_CACHE_ENTRY+TRACK_OFFLINE_CACHE_ENTRY+TRACK_ONLINE_CACHE_ENTRY+STICKY_CACHE_ENTRY +CACHE_ENTRY_ATTRIBUTE_FC equ 4 +CACHE_ENTRY_HITRATE_FC equ 10h +CACHE_ENTRY_MODTIME_FC equ 40h +CACHE_ENTRY_EXPTIME_FC equ 80h +CACHE_ENTRY_ACCTIME_FC equ 100h +CACHE_ENTRY_SYNCTIME_FC equ 200h +CACHE_ENTRY_HEADERINFO_FC equ 400h +CACHE_ENTRY_EXEMPT_DELTA_FC equ 800h +INTERNET_DIAL_UNATTENDED equ 8000h +INTERENT_GOONLINE_REFRESH equ 1 +INTERENT_GOONLINE_MASK equ 1 +INTERNET_AUTODIAL_FORCE_ONLINE equ 1 +INTERNET_AUTODIAL_FORCE_UNATTENDED equ 2 +INTERNET_AUTODIAL_FAILIFSECURITYCHECK equ 4 +INTERNET_AUTODIAL_FLAGS_MASK equ (INTERNET_AUTODIAL_FORCE_ONLINE + INTERNET_AUTODIAL_FORCE_UNATTENDED + INTERNET_AUTODIAL_FAILIFSECURITYCHECK) +INTERNET_CONNECTION_MODEM equ 1 +INTERNET_CONNECTION_LAN equ 2 +INTERNET_CONNECTION_PROXY equ 4 +INTERNET_CONNECTION_MODEM_BUSY equ 8 +INTERNET_CUSTOMDIAL_CONNECT equ 0 +INTERNET_CUSTOMDIAL_UNATTENDED equ 1 +INTERNET_CUSTOMDIAL_DISCONNECT equ 2 +INTERNET_CUSTOMDIAL_SHOWOFFLINE equ 4 +INTERNET_CUSTOMDIAL_SAFE_FOR_UNATTENDED equ 1 +INTERNET_CUSTOMDIAL_WILL_SUPPLY_STATE equ 2 +INTERNET_CUSTOMDIAL_CAN_HANGUP equ 4 +INTERNET_DIALSTATE_DISCONNECTED equ 1 +ISO_FORCE_DISCONNECTED equ 1 +INTERNET_SCHEME_PARTIAL equ -2 +INTERNET_SCHEME_UNKNOWN equ -1 +INTERNET_SCHEME_DEFAULT equ 0 +INTERNET_SCHEME_FTP equ 1 +INTERNET_SCHEME_GOPHER equ 2 +INTERNET_SCHEME_HTTP equ 3 +INTERNET_SCHEME_HTTPS equ 4 +INTERNET_SCHEME_FILE equ 5 +INTERNET_SCHEME_NEWS equ 6 +INTERNET_SCHEME_MAILTO equ 7 +INTERNET_SCHEME_SOCKS equ 8 +INTERNET_SCHEME_FIRST equ INTERNET_SCHEME_FTP +INTERNET_SCHEME_LAST equ INTERNET_SCHEME_SOCKS + +INTERNET_ASYNC_RESULT STRUCT + dwResult dd ? + dwError dd ? +INTERNET_ASYNC_RESULT ENDS + +INTERNET_PROXY_INFO STRUCT + dwAccessType dd ? + lpszProxy dd ? + lpszProxyBypass dd ? +INTERNET_PROXY_INFO ENDS + +INTERNET_VERSION_INFO STRUCT + dwMajorVersion dd ? + dwMinorVersion dd ? +INTERNET_VERSION_INFO ENDS + +HTTP_VERSION_INFO STRUCT + dwMajorVersion dd ? + dwMinorVersion dd ? +HTTP_VERSION_INFO ENDS + +INTERNET_CONNECTED_INFO STRUCT + dwConnectedState dd ? + dwFlags dd ? +INTERNET_CONNECTED_INFO ENDS + +URL_COMPONENTSW STRUCT dword + dwStructSize dd ? + lpszScheme dd ? + dwSchemeLength dd ? + nScheme dd ? + lpszHostName dd ? + dwHostNameLength dd ? + nPort dw ? + lpszUserName dd ? + dwUserNameLength dd ? + lpszPassword dd ? + dwPasswordLength dd ? + lpszUrlPath dd ? + dwUrlPathLength dd ? + lpszExtraInfo dd ? + dwExtraInfoLength dd ? +URL_COMPONENTSW ENDS + +URL_COMPONENTSA STRUCT dword + dwStructSize dd ? + lpszScheme dd ? + dwSchemeLength dd ? + nScheme dd ? + lpszHostName dd ? + dwHostNameLength dd ? + nPort dw ? + lpszUserName dd ? + dwUserNameLength dd ? + lpszPassword dd ? + dwPasswordLength dd ? + lpszUrlPath dd ? + dwUrlPathLength dd ? + lpszExtraInfo dd ? + dwExtraInfoLength dd ? +URL_COMPONENTSA ENDS + +IFDEF __UNICODE__ + URL_COMPONENTS equ +ELSE + URL_COMPONENTS equ +ENDIF + +INTERNET_CERTIFICATE_INFO STRUCT + ftExpiry FILETIME <> + ftStart FILETIME <> + lpszSubjectInfo dd ? + lpszIssuerInfo dd ? + lpszProtocolName dd ? + lpszSignatureAlgName dd ? + lpszEncryptionAlgName dd ? + dwKeySize dd ? +INTERNET_CERTIFICATE_INFO ENDS + +INTERNET_BUFFERS STRUCT + dwStructSize dd ? + Next dd ? + lpcszHeader dd ? + dwHeadersLength dd ? + dwHeadersTotal dd ? + lpvBuffer dd ? + dwBufferLength dd ? + dwBufferTotal dd ? + dwOffsetLow dd ? + dwOffsetHigh dd ? +INTERNET_BUFFERS ENDS +INTERNET_BUFFERSA equ +INTERNET_BUFFERSW equ + +GOPHER_FIND_DATAW STRUCT + DisplayString db MAX_GOPHER_DISPLAY_TEXT + 1 dup(?) + GopherType dd ? + SizeLow dd ? + SizeHigh dd ? + LastModificationTime FILETIME <> + Locator db MAX_GOPHER_LOCATOR_LENGTH + 1 dup(?) +GOPHER_FIND_DATAW ENDS + +GOPHER_FIND_DATAA STRUCT + DisplayString db MAX_GOPHER_DISPLAY_TEXT + 1 dup(?) + GopherType dd ? + SizeLow dd ? + SizeHigh dd ? + LastModificationTime FILETIME <> + Locator db MAX_GOPHER_LOCATOR_LENGTH + 1 dup(?) +GOPHER_FIND_DATAA ENDS + +IFDEF __UNICODE__ + GOPHER_FIND_DATA equ +ELSE + GOPHER_FIND_DATA equ +ENDIF + +GOPHER_ADMIN_ATTRIBUTE_TYPE STRUCT + Comment dd ? + EmailAddress dd ? +GOPHER_ADMIN_ATTRIBUTE_TYPE ENDS + +GOPHER_MOD_DATE_ATTRIBUTE_TYPE STRUCT + DateAndTime FILETIME <> +GOPHER_MOD_DATE_ATTRIBUTE_TYPE ENDS + +GOPHER_TTL_ATTRIBUTE_TYPE STRUCT + Ttl dd ? +GOPHER_TTL_ATTRIBUTE_TYPE ENDS + +GOPHER_SCORE_ATTRIBUTE_TYPE STRUCT + Score dd ? +GOPHER_SCORE_ATTRIBUTE_TYPE ENDS + +GOPHER_SCORE_RANGE_ATTRIBUTE_TYPE STRUCT + LowerBound dd ? + UpperBound dd ? +GOPHER_SCORE_RANGE_ATTRIBUTE_TYPE ENDS + +GOPHER_SITE_ATTRIBUTE_TYPE STRUCT + Site dd ? +GOPHER_SITE_ATTRIBUTE_TYPE ENDS + +GOPHER_ORGANIZATION_ATTRIBUTE_TYPE STRUCT + Organization dd ? +GOPHER_ORGANIZATION_ATTRIBUTE_TYPE ENDS + +GOPHER_LOCATION_ATTRIBUTE_TYPE STRUCT + Location dd ? +GOPHER_LOCATION_ATTRIBUTE_TYPE ENDS + +GOPHER_GEOGRAPHICAL_LOCATION_ATTRIBUTE_TYPE STRUCT + DegreesNorth dd ? + MinutesNorth dd ? + SecondsNorth dd ? + DegreesEast dd ? + MinutesEast dd ? + SecondsEast dd ? +GOPHER_GEOGRAPHICAL_LOCATION_ATTRIBUTE_TYPE ENDS + +GOPHER_TIMEZONE_ATTRIBUTE_TYPE STRUCT + Zone dd ? +GOPHER_TIMEZONE_ATTRIBUTE_TYPE ENDS + +GOPHER_PROVIDER_ATTRIBUTE_TYPE STRUCT + Provider dd ? +GOPHER_PROVIDER_ATTRIBUTE_TYPE ENDS + +GOPHER_VERSION_ATTRIBUTE_TYPE STRUCT + Version dd ? +GOPHER_VERSION_ATTRIBUTE_TYPE ENDS + +GOPHER_ABSTRACT_ATTRIBUTE_TYPE STRUCT + ShortAbstract dd ? + AbstractFile dd ? +GOPHER_ABSTRACT_ATTRIBUTE_TYPE ENDS + +GOPHER_VIEW_ATTRIBUTE_TYPE STRUCT + ContentType dd ? + Language dd ? + iSize dd ? +GOPHER_VIEW_ATTRIBUTE_TYPE ENDS + +GOPHER_VERONICA_ATTRIBUTE_TYPE STRUCT + TreeWalk dd ? +GOPHER_VERONICA_ATTRIBUTE_TYPE ENDS + +GOPHER_ASK_ATTRIBUTE_TYPE STRUCT + QuestionType dd ? + QuestionText dd ? +GOPHER_ASK_ATTRIBUTE_TYPE ENDS + +GOPHER_UNKNOWN_ATTRIBUTE_TYPE STRUCT + Text dd ? +GOPHER_UNKNOWN_ATTRIBUTE_TYPE ENDS + +GOPHER_ATTRIBUTE_TYPE STRUCT + CategoryId dd ? + AttributeId dd ? + union AttributeType + Admin GOPHER_ADMIN_ATTRIBUTE_TYPE <> + ModDate GOPHER_MOD_DATE_ATTRIBUTE_TYPE <> + Ttl GOPHER_TTL_ATTRIBUTE_TYPE <> + Score GOPHER_SCORE_ATTRIBUTE_TYPE <> + ScoreRange GOPHER_SCORE_RANGE_ATTRIBUTE_TYPE <> + Site GOPHER_SITE_ATTRIBUTE_TYPE <> + Organization GOPHER_ORGANIZATION_ATTRIBUTE_TYPE <> + Location GOPHER_LOCATION_ATTRIBUTE_TYPE <> + GeographicalLocation GOPHER_GEOGRAPHICAL_LOCATION_ATTRIBUTE_TYPE <> + TimeZone GOPHER_TIMEZONE_ATTRIBUTE_TYPE <> + Provider GOPHER_PROVIDER_ATTRIBUTE_TYPE <> + Version GOPHER_VERSION_ATTRIBUTE_TYPE <> + Abstract GOPHER_ABSTRACT_ATTRIBUTE_TYPE <> + View GOPHER_VIEW_ATTRIBUTE_TYPE <> + Veronica GOPHER_VERONICA_ATTRIBUTE_TYPE <> + Ask GOPHER_ASK_ATTRIBUTE_TYPE <> + Unknown GOPHER_UNKNOWN_ATTRIBUTE_TYPE <> + ENDS +GOPHER_ATTRIBUTE_TYPE ENDS + +INTERNET_AUTH_NOTIFY_DATA STRUCT + cbStruct dd ? + dwOptions dd ? + pfnNotify dd ? + dwContext dd ? +INTERNET_AUTH_NOTIFY_DATA ENDS + +INTERNET_CACHE_ENTRY_INFO STRUCT + dwStructSize dd ? + lpszSourceUrlName dd ? + lpszLocalFileName dd ? + CacheEntryType dd ? + dwUseCount dd ? + dwHitRate dd ? + dwSizeLow dd ? + dwSizeHigh dd ? + LastModifiedTime FILETIME <> + ExpireTime FILETIME <> + LastAccessTime FILETIME <> + LastSyncTime FILETIME <> + lpHeaderInfo dd ? + dwHeaderInfoSize dd ? + lpszFileExtension dd ? + union + dwReserved dd ? + dwExemptDelta dd ? + ENDS +INTERNET_CACHE_ENTRY_INFO ENDS +INTERNET_CACHE_ENTRY_INFOA equ +INTERNET_CACHE_ENTRY_INFOW equ + +; ----------------------------- shlobj.h ----------------------------- + +CMF_NORMAL equ 0 +CMF_DEFAULTONLY equ 1 +CMF_VERBSONLY equ 2 +CMF_EXPLORE equ 4 +CMF_NOVERBS equ 8 +CMF_CANRENAME equ 10h +CMF_NODEFAULT equ 20h +CMF_INCLUDESTATIC equ 40h +CMF_RESERVED equ 0ffff0000h +GCS_VERBA equ 0 +GCS_VERBW equ 4 +IFDEF __UNICODE__ + GCS_VERB equ GCS_VERBW +ELSE + GCS_VERB equ GCS_VERBA +ENDIF + +GCS_HELPTEXTA equ 1 +GCS_HELPTEXTW equ 5 +IFDEF __UNICODE__ + GCS_HELPTEXT equ GCS_HELPTEXTW +ELSE + GCS_HELPTEXT equ GCS_HELPTEXTA +ENDIF + +GCS_VALIDATEA equ 2 +GCS_VALIDATEW equ 6 +IFDEF __UNICODE__ + GCS_VALIDATE equ GCS_VALIDATEW +ELSE + GCS_VALIDATE equ GCS_VALIDATEA +ENDIF + +GCS_UNICODE equ 4 +CMDSTR_NEWFOLDERA equ A("NewFolder") +CMDSTR_VIEWLISTA equ A("ViewList") +CMDSTR_VIEWDETAILSA equ A("ViewDetails") +CMDSTR_NEWFOLDERW equ L("NewFolder") +CMDSTR_VIEWLISTW equ L("ViewList") +CMDSTR_VIEWDETAILSW equ L("ViewDetails") +IFDEF __UNICODE__ + CMDSTR_NEWFOLDER equ CMDSTR_NEWFOLDERW + CMDSTR_VIEWLIST equ CMDSTR_VIEWLISTW + CMDSTR_VIEWDETAILS equ CMDSTR_VIEWDETAILSW +ELSE + CMDSTR_NEWFOLDER equ CMDSTR_NEWFOLDERA + CMDSTR_VIEWLIST equ CMDSTR_VIEWLISTA + CMDSTR_VIEWDETAILS equ CMDSTR_VIEWDETAILSA +ENDIF + +CMIC_MASK_HOTKEY equ SEE_MASK_HOTKEY +CMIC_MASK_ICON equ SEE_MASK_ICON +CMIC_MASK_FLAG_NO_UI equ SEE_MASK_FLAG_NO_UI +CMIC_MASK_UNICODE equ SEE_MASK_UNICODE +CMIC_MASK_NO_CONSOLE equ SEE_MASK_NO_CONSOLE +CMIC_MASK_HASLINKNAME equ SEE_MASK_HASLINKNAME +CMIC_MASK_FLAG_SEP_VDM equ SEE_MASK_FLAG_SEPVDM +CMIC_MASK_HASTITLE equ SEE_MASK_HASTITLE +CMIC_MASK_ASYNCOK equ SEE_MASK_ASYNCOK +CMIC_MASK_PTINVOKE equ 20000000h +ISIOI_SYSIMAGELISTINDEX equ 4 +SBSP_DEFBROWSER equ 0 +SBSP_SAMEBROWSER equ 1 +SBSP_NEWBROWSER equ 2 +SBSP_DEFMODE equ 0 +SBSP_OPENMODE equ 10h +SBSP_EXPLOREMODE equ 20h +SBSP_ABSOLUTE equ 0 +SBSP_RELATIVE equ 1000h +SBSP_PARENT equ 2000h +SBSP_NAVIGATEBACK equ 4000h +SBSP_NAVIGATEFORWARD equ 8000h +SBSP_ALLOW_AUTONAVIGATE equ 10000h +SBSP_INITIATEDBYHLINKFRAME equ 80000000h +SBSP_REDIRECT equ 40000000h +SBSP_WRITENOHISTORY equ 8000000h +SBSP_NOAUTOSELECT equ 4000000h +FCW_STATUS equ 1 +FCW_TOOLBAR equ 2 +FCW_TREE equ 3 +FCW_INTERNETBAR equ 6 +FCW_PROGRESS equ 8 +FCT_MERGE equ 1 +FCT_CONFIGABLE equ 2 +FCT_ADDTOEND equ 4 +CDBOSC_SETFOCUS equ 0 +CDBOSC_KILLFOCUS equ 1 +CDBOSC_SELCHANGE equ 2 +CDBOSC_RENAME equ 3 +SVSI_DESELECT equ 0 +SVSI_SELECT equ 1 +SVSI_EDIT equ 3 +SVSI_DESELECTOTHERS equ 4 +SVSI_ENSUREVISIBLE equ 8 +SVSI_FOCUSED equ 10h +SVSI_TRANSLATEPT equ 20h +SVGIO_BACKGROUND equ 0 +SVGIO_SELECTION equ 1 +SVGIO_ALLVIEW equ 2 +SV2GV_CURRENTVIEW equ 0ffffffffh +SV2GV_DEFAULTVIEW equ 0fffffffeh +STRRET_WSTR equ 0 +STRRET_OFFSET equ 1 +STRRET_CSTR equ 2 +DROPEFFECT_COPY equ 1 +SFGAO_CANCOPY equ DROPEFFECT_COPY +DROPEFFECT_MOVE equ 2 +SFGAO_CANMOVE equ DROPEFFECT_MOVE +DROPEFFECT_LINK equ 3 +SFGAO_CANLINK equ DROPEFFECT_LINK +SFGAO_CANRENAME equ 10h +SFGAO_CANDELETE equ 20h +SFGAO_HASPROPSHEET equ 40h +SFGAO_DROPTARGET equ 100h +SFGAO_CAPABILITYMASK equ 177h +SFGAO_LINK equ 10000h +SFGAO_SHARE equ 20000h +SFGAO_READONLY equ 40000h +SFGAO_GHOSTED equ 80000h +SFGAO_HIDDEN equ 80000h +SFGAO_DISPLAYATTRMASK equ 0F0000h +SFGAO_FILESYSANCESTOR equ 10000000h +SFGAO_FOLDER equ 20000000h +SFGAO_FILESYSTEM equ 40000000h +SFGAO_HASSUBFOLDER equ 80000000h +SFGAO_CONTENTSMASK equ 80000000h +SFGAO_VALIDATE equ 1000000h +SFGAO_REMOVABLE equ 2000000h +SFGAO_COMPRESSED equ 4000000h +SFGAO_BROWSABLE equ 8000000h +SFGAO_NONENUMERATED equ 100000h +SFGAO_NEWCONTENT equ 200000h +DBIM_MINSIZE equ 1 +DBIM_MAXSIZE equ 2 +DBIM_INTEGRAL equ 4 +DBIM_ACTUAL equ 8 +DBIM_TITLE equ 10h +DBIM_MODEFLAGS equ 20h +DBIM_BKCOLOR equ 40h +DBIMF_NORMAL equ 0 +DBIMF_VARIABLEHEIGHT equ 8 +DBIMF_DEBOSSED equ 20h +DBIMF_BKCOLOR equ 40h +DBIF_VIEWMODE_NORMAL equ 0 +DBIF_VIEWMODE_VERTICAL equ 1 +DBIF_VIEWMODE_FLOATING equ 2 +DBIF_VIEWMODE_TRANSPARENT equ 4 +COMP_ELEM_ALL equ (COMP_ELEM_TYPE+COMP_ELEM_CHECKED+COMP_ELEM_DIRTY+COMP_ELEM_NOSCROLL+COMP_ELEM_POS_LEFT+COMP_ELEM_SIZE_WIDTH+COMP_ELEM_SIZE_HEIGHT+COMP_ELEM_POS_ZINDEX+COMP_ELEM_SOURCE+COMP_ELEM_FRIENDLYNAME) + +CFSTR_SHELLIDLIST equ TEXT("Shell IDList Array") +CFSTR_SHELLIDLISTOFFSET equ TEXT("Shell Object Offsets") +CFSTR_NETRESOURCES equ TEXT("Net Resource") +CFSTR_FILEDESCRIPTORA equ TEXT("FileGroupDescriptor") +CFSTR_FILEDESCRIPTORW equ TEXT("FileGroupDescriptorW") +CFSTR_FILECONTENTS equ TEXT("FileContents") +CFSTR_FILENAMEA equ TEXT("FileName") +CFSTR_FILENAMEW equ TEXT("FileNameW") +CFSTR_PRINTERGROUP equ TEXT("PrinterFriendlyName") +CFSTR_FILENAMEMAPA equ TEXT("FileNameMap") +CFSTR_FILENAMEMAPW equ TEXT("FileNameMapW") +CFSTR_SHELLURL equ TEXT("UniformResourceLocator") +CFSTR_PREFERREDDROPEFFECT equ TEXT("Preferred DropEffect") +CFSTR_PERFORMEDDROPEFFECT equ TEXT("Performed DropEffect") +CFSTR_PASTESUCCEEDED equ TEXT("Paste Succeeded") +CFSTR_INDRAGLOOP equ TEXT("InShellDragLoop") +IFDEF __UNICODE__ + CFSTR_FILEDESCRIPTOR equ CFSTR_FILEDESCRIPTORW + CFSTR_FILENAME equ CFSTR_FILENAMEW + CFSTR_FILENAMEMAP equ CFSTR_FILENAMEMAPW +ELSE + CFSTR_FILEDESCRIPTOR equ CFSTR_FILEDESCRIPTORA + CFSTR_FILENAME equ CFSTR_FILENAMEA + CFSTR_FILENAMEMAP equ CFSTR_FILENAMEMAPA +ENDIF + +SHCNF_PATH equ SHCNF_PATHA +SHCNF_PRINTER equ SHCNF_PRINTERA +SHARD_PATH equ SHARD_PATHA +SLR_NO_UI equ 1 +SLR_ANY_MATCH equ 2 +SLR_UPDATE equ 4 +SLR_NOUPDATE equ 8 +SLGP_SHORTPATH equ 1 +SLGP_UNCPRIORITY equ 2 +SLGP_RAWPATH equ 4 +FWF_AUTOARRANGE equ 1 +FWF_ABBREVIATEDNAMES equ 2 +FWF_SNAPTOGRID equ 4 +FWF_OWNERDATA equ 8 +FWF_BESTFITWINDOW equ 10h +FWF_DESKTOP equ 20h +FWF_SINGLESEL equ 40h +FWF_NOSUBFOLDERS equ 80h +FWF_TRANSPARENT equ 100h +FWF_NOCLIENTEDGE equ 200h +FWF_NOSCROLL equ 400h +FWF_ALIGNLEFT equ 800h +FWF_NOICONS equ 1000h +FWF_SINGLECLICKACTIVATE equ 8000h +FVM_ICON equ 1 +FVM_SMALLICON equ 2 +FVM_LIST equ 3 +FVM_DETAILS equ 4 +SBSC_HIDE equ 0 +SBSC_SHOW equ 1 +SBSC_TOGGLE equ 2 +SBSC_QUERY equ 3 +SBO_DEFAULT equ 0 +SBO_NOBROWSERPAGES equ 1 +SVUIA_DEACTIVATE equ 0 +SVUIA_ACTIVATE_NOFOCUS equ 1 +SVUIA_ACTIVATE_FOCUS equ 2 +SVUIA_INPLACEACTIVATE equ 3 +SHGDN_NORMAL equ 0 +SHGDN_INFOLDER equ 1 +SHGDN_INCLUDE_NONFILESYS equ 2000h +SHGDN_FORADDRESSBAR equ 4000h +SHGDN_FORPARSING equ 8000h +SHCONTF_FOLDERS equ 32 +SHCONTF_NONFOLDERS equ 64 +SHCONTF_INCLUDEHIDDEN equ 128 +DBID_BANDINFOCHANGED equ 0 +DBID_SHOWONLY equ 1 +DBID_MAXIMIZEBAND equ 2 +DTI_ADDUI_DEFAULT equ 0 +DTI_ADDUI_DISPSUBWIZARD equ 1 +FD_CLSID equ 1 +FD_SIZEPOINT equ 2 +FD_ATTRIBUTES equ 4 +FD_CREATETIME equ 8 +FD_ACCESSTIME equ 10h +FD_WRITESTIME equ 20h +FD_FILESIZE equ 40h +FD_LINKUI equ 8000h + +SHELLFLAGSTATE record fShowAllObjects:1,fShowExtensions:1, fNoConfirmRecycle:1,fShowSysFiles:1,fShowCompColor:1,fDoubleClickInWebView:1,fDesktopHTML:1,fWin95Classic:1,fDontPrettyPath:1,fShowAttribCol:1,fMapNetDrvBtn:1,fShowInfoTip:1,fHideIcons:1, fRestFlags:3 + +SHITEMID STRUCT + cb dw ? + abID db 1 dup(?) ; variable length +SHITEMID ENDS + +ITEMIDLIST STRUCT + mkid SHITEMID <> +ITEMIDLIST ENDS + +CMINVOKECOMMANDINFO STRUCT + cbSize dd ? + fMask dd ? + hwnd dd ? + lpVerb dd ? + lpParameters dd ? + lpDirectory dd ? + nShow dd ? + dwHotKey dd ? + hIcon dd ? +CMINVOKECOMMANDINFO ENDS + +CMINVOKECOMMANDINFOEX STRUCT + cbSize dd ? + fMask dd ? + hwnd dd ? + lpVerb dd ? + lpParameters dd ? + lpDirectory dd ? + nShow dd ? + dwHotKey dd ? + hIcon dd ? + lpTitle dd ? + lpVerbW dd ? + lpParametersW dd ? + lpDirectoryW dd ? + lpTitleW dd ? + ptInvoke POINT <> +CMINVOKECOMMANDINFOEX ENDS + +FVSHOWINFO STRUCT + cbSize dd ? + hwndOwner dd ? + iShow dd ? + dwFlags dd ? + rect RECT <> + punkRel dd ? + strNewFile db MAX_PATH dup(?) +FVSHOWINFO ENDS + +FOLDERSETTINGS STRUCT + ViewMode dd ? + fFlags dd ? +FOLDERSETTINGS ENDS + +SV2CVW2_PARAMS STRUCT + cbSize dd ? + psvPrev dd ? + pfs dd ? + psbOwner dd ? + prcView dd ? + pvid dd ? + hwndView dd ? +SV2CVW2_PARAMS ENDS + +BROWSEINFOW STRUCT + hwndOwner dd ? + pidlRoot dd ? + pszDisplayName dd ? + lpszTitle dd ? + ulFlags dd ? + lpfn dd ? + lParam dd ? + iImage dd ? +BROWSEINFOW ENDS + +BROWSEINFOA STRUCT + hwndOwner dd ? + pidlRoot dd ? + pszDisplayName dd ? + lpszTitle dd ? + ulFlags dd ? + lpfn dd ? + lParam dd ? + iImage dd ? +BROWSEINFOA ENDS + +IFDEF __UNICODE__ + BROWSEINFO equ +ELSE + BROWSEINFO equ +ENDIF + +DESKBANDINFO STRUCT + dwMask dd ? + ptMinSize POINT <> + ptMaxSize POINT <> + ptIntegral POINT <> + ptActual POINT <> + wszTitle WCHAR 256 dup(?) + dwModeFlags dd ? + crBkgnd COLORREF ? +DESKBANDINFO ENDS + +WALLPAPEROPT STRUCT + dwSize dd ? + dwStyle dd ? +WALLPAPEROPT ENDS + +COMPONENTSOPT STRUCT + dwSize dd ? + fEnableComponents dd ? + fActiveDesktop dd ? +COMPONENTSOPT ENDS + +COMPPOS STRUCT + dwSize dd ? + iLeft dd ? + iTop dd ? + dwWidth dd ? + dwHeight dd ? + izIndex dd ? + fCanResize dd ? + fCanResizeX dd ? + fCanResizeY dd ? + iPreferredLeftPercent dd ? + iPreferredTopPercent dd ? +COMPPOS ENDS + +COMPONENT STRUCT + dwSize dd ? + dwID dd ? + iComponentType dd ? + fChecked dd ? + fDirty dd ? + fNoScroll dd ? + cpPos COMPPOS <> + wszFriendlyName WCHAR MAX_PATH dup(?) + wszSource WCHAR INTERNET_MAX_URL_LENGTH dup(?) + wszSubscribedURL WCHAR INTERNET_MAX_URL_LENGTH dup(?) +COMPONENT ENDS + +NRESARRAY STRUCT + cItems dd ? + nr NETRESOURCE <> +NRESARRAY ENDS + +CIDA STRUCT + cidl dd ? + aoffset dd 1 dup(?) +CIDA ENDS + +FILEDESCRIPTORA STRUCT + dwFlags dd ? + clsid CLSID <> + sizel SIZEL <> + pointl POINTL <> + dwFileAttributes dd ? + ftCreationTime FILETIME <> + ftLastAccessTime FILETIME <> + ftLastWriteTime FILETIME <> + nFileSizeHigh dd ? + nFileSizeLow dd ? + cFileName db MAX_PATH dup(?) +FILEDESCRIPTORA ENDS + +FILEDESCRIPTORW STRUCT + dwFlags dd ? + clsid CLSID <> + sizel SIZEL <> + pointl POINTL <> + dwFileAttributes dd ? + ftCreationTime FILETIME <> + ftLastAccessTime FILETIME <> + ftLastWriteTime FILETIME <> + nFileSizeHigh dd ? + nFileSizeLow dd ? + cFileName dw MAX_PATH dup(?) +FILEDESCRIPTORW ENDS + +IFDEF __UNICODE__ + FILEDESCRIPTOR equ +ELSE + FILEDESCRIPTOR equ +ENDIF + +FILEGROUPDESCRIPTORA STRUCT + cItems dd ? + fgd FILEDESCRIPTORA <> +FILEGROUPDESCRIPTORA ENDS + +FILEGROUPDESCRIPTORW STRUCT + cItems dd ? + fgd FILEDESCRIPTORW <> +FILEGROUPDESCRIPTORW ENDS + +IFDEF __UNICODE__ + FILEGROUPDESCRIPTOR equ +ELSE + FILEGROUPDESCRIPTOR equ +ENDIF + +DROPFILES STRUCT + pFiles dd ? + pt POINT <> + fNC dd ? + fWide dd ? +DROPFILES ENDS + +SHDESCRIPTIONID STRUCT + dwDescriptionId dd ? + clsid CLSID <> +SHDESCRIPTIONID ENDS + +;;;; end shlapi + +;;;; riched + +; -------------------------- riched structures ----------------------------- + +CHARFORMATA STRUCT + cbSize DWORD ? + dwMask DWORD ? + dwEffects DWORD ? + yHeight DWORD ? + yOffset DWORD ? + crTextColor COLORREF ? + bCharSet BYTE ? + bPitchAndFamily BYTE ? + szFaceName BYTE LF_FACESIZE dup(?) + _wPad2 WORD ? +CHARFORMATA ENDS + +CHARFORMATW STRUCT + cbSize DWORD ? + dwMask DWORD ? + dwEffects DWORD ? + yHeight DWORD ? + yOffset DWORD ? + crTextColor COLORREF ? + bCharSet BYTE ? + bPitchAndFamily BYTE ? + szFaceName WORD LF_FACESIZE dup(?) + _wPad2 WORD ? +CHARFORMATW ENDS + +IFDEF __UNICODE__ + CHARFORMAT equ +ELSE + CHARFORMAT equ +ENDIF + +CHARRANGE STRUCT + cpMin DWORD ? + cpMax DWORD ? +CHARRANGE ENDS + +TEXTRANGEW STRUCT + chrg CHARRANGE <> + lpstrText DWORD ? +TEXTRANGEW ENDS + +TEXTRANGEA STRUCT + chrg CHARRANGE <> + lpstrText DWORD ? +TEXTRANGEA ENDS + +IFDEF __UNICODE__ + TEXTRANGE equ +ELSE + TEXTRANGE equ +ENDIF + +EDITSTREAM STRUCT + dwCookie DWORD ? + dwError DWORD ? + pfnCallback DWORD ? +EDITSTREAM ENDS + +FINDTEXTW STRUCT + chrg CHARRANGE <> + lpstrText DWORD ? +FINDTEXTW ENDS + +FINDTEXTA STRUCT + chrg CHARRANGE <> + lpstrText DWORD ? +FINDTEXTA ENDS + +IFDEF __UNICODE__ + FINDTEXT equ +ELSE + FINDTEXT equ +ENDIF + +FINDTEXTEXW STRUCT + chrg CHARRANGE <> + lpstrText DWORD ? + chrgText CHARRANGE <> +FINDTEXTEXW ENDS + +FINDTEXTEXA STRUCT + chrg CHARRANGE <> + lpstrText DWORD ? + chrgText CHARRANGE <> +FINDTEXTEXA ENDS + +IFDEF __UNICODE__ + FINDTEXTEX equ +ELSE + FINDTEXTEX equ +ENDIF + +FORMATRANGE STRUCT + hdc DWORD ? + hdcTarget DWORD ? + rc RECT <> + rcPage RECT <> + chrg CHARRANGE <> +FORMATRANGE ENDS + +PARAFORMAT STRUCT + cbSize DWORD ? + dwMask DWORD ? + wNumbering WORD ? + wEffects WORD ? + dxStartIndent DWORD ? + dxRightIndent DWORD ? + dxOffset DWORD ? + wAlignment WORD ? + cTabCount WORD ? + rgxTabs DWORD MAX_TAB_STOPS dup(?) +PARAFORMAT ENDS + +PARAFORMAT2 STRUCT + cbSize DWORD ? + dwMask DWORD ? + wNumbering WORD ? + wEffects WORD ? + dxStartIndent DWORD ? + dxRightIndent DWORD ? + dxOffset DWORD ? + wAlignment WORD ? + cTabCount WORD ? + rgxTabs DWORD MAX_TAB_STOPS dup(?) + dySpaceBefore DWORD ? + dySpaceAfter DWORD ? + dyLineSpacing DWORD ? + sStyle WORD ? + bLineSpacingRule BYTE ? + bOutlineLevel BYTE ? + wShadingWeight WORD ? + wShadingStyle WORD ? + wNumberingStart WORD ? + wNumberingStyle WORD ? + wNumberingTab WORD ? + wBorderSpace WORD ? + wBorderWidth WORD ? + wBorders WORD ? +PARAFORMAT2 ENDS + +MSGFILTER STRUCT + nmhdr NMHDR <> + msg DWORD ? + wParam DWORD ? + lParam DWORD ? +MSGFILTER ENDS + +REQRESIZE STRUCT + nmhdr NMHDR <> + rc RECT <> +REQRESIZE ENDS + +SELCHANGE STRUCT + nmhdr NMHDR <> + chrg CHARRANGE <> + seltyp WORD ? +SELCHANGE ENDS + +ENDROPFILES STRUCT + nmhdr NMHDR <> + hDrop DWORD ? + cp DWORD ? + fProtected DWORD ? +ENDROPFILES ENDS + +ENPROTECTED STRUCT + nmhdr NMHDR <> + msg DWORD ? + wPad1 DWORD ? + wParam DWORD ? + wPad2 DWORD ? + lParam DWORD ? + chrg CHARRANGE <> +ENPROTECTED ENDS + +ENSAVECLIPBOARD STRUCT + nmhdr NMHDR <> + cObjectCount DWORD ? + cch DWORD ? +ENSAVECLIPBOARD ENDS + +ENOLEOPFAILED STRUCT + nmhdr NMHDR <> + iob DWORD ? + lOper DWORD ? + hr DWORD ? +ENOLEOPFAILED ENDS + +ENCORRECTTEXT STRUCT + nmhdr NMHDR <> + chrg CHARRANGE <> + seltyp WORD ? +ENCORRECTTEXT ENDS + +PUNCTUATION STRUCT + iSize DWORD ? + szPunctuation DWORD ? +PUNCTUATION ENDS + +COMPCOLOR STRUCT + crText DWORD ? + crBackground DWORD ? + dwEffects DWORD ? +COMPCOLOR ENDS + +REPASTESPECIAL STRUCT + dwAspect DWORD ? + dwParam DWORD ? +REPASTESPECIAL ENDS + +BIDIOPTIONS STRUCT + cdSize DWORD ? + wMask WORD ? + wEffects WORD ? +BIDIOPTIONS ENDS + +;========================[ RichEdit v3 by Ewayne '============================== + +CFM_BACKCOLOR equ 4000000h +CFM_LCID equ 2000000h +CFM_UNDERLINETYPE equ 800000h +CFM_WEIGHT equ 400000h +CFM_SPACING equ 200000h +CFM_KERNING equ 100000h +CFM_STYLE equ 80000h +CFM_ANIMATION equ 40000h +CFM_REVAUTHOR equ 8000h +CFM_SMALLCAPS equ 40h +CFM_ALLCAPS equ 80h +CFM_HIDDEN equ 100h +CFM_OUTLINE equ 200h +CFM_SHADOW equ 400h +CFM_EMBOSS equ 800h +CFM_IMPRINT equ 1000h +CFM_DISABLED equ 2000h +CFM_REVISED equ 4000h +SCF_DEFAULT equ 0 +SCF_ALL equ 4 +SCF_SCF_USEUIRULES equ 8 +CFU_CF1UNDERLINE equ 0ffh +CFU_INVERT equ 0feh +CFU_UNDERLINEHAIRLINE equ 10 +CFU_UNDERLINETHICK equ 9 +CFU_UNDERLINEWAVE equ 8 +CFU_UNDERLINEDASHDOTDOT equ 7 +CFU_UNDERLINEDASHDOT equ 6 +CFU_UNDERLINEDASH equ 5 +CFU_UNDERLINEDOTTED equ 4 +CFU_UNDERLINEDOUBLE equ 3 +CFU_UNDERLINEWORD equ 2 +CFU_UNDERLINE equ 1 +CFU_UNDERLINENONE equ 0 + +PFM_SPACEBEFORE equ 40h +PFM_SPACEAFTER equ 80h +PFM_LINESPACING equ 100h +PFM_STYLE equ 400h +PFM_BORDER equ 800h +PFM_SHADING equ 1000h +PFM_NUMBERINGSTYLE equ 2000h +PFM_NUMBERINGTAB equ 4000h +PFM_NUMBERINGSTART equ 8000h +PFM_RTLPARA equ 10000h +PFM_KEEP equ 20000h +PFM_KEEPNEXT equ 40000h +PFM_PAGEBREAKBEFORE equ 80000h +PFM_NOLINENUMBER equ 100000h +PFM_NOWIDOWCONTROL equ 200000h +PFM_DONOTHYPHEN equ 400000h +PFM_SIDEBYSIDE equ 800000h +PFM_TABLE equ 40000000h +PFM_COLLAPSED equ 1000000h +PFM_OUTLINELEVEL equ 2000000h +PFM_BOX equ 4000000h + +IMECOMPTEXT STRUCT + cb DWORD ? + flags DWORD ? +IMECOMPTEXT ENDS + +CHARFORMAT2A STRUCT + cbSize DWORD ? + dwMask DWORD ? + dwEffects DWORD ? + yHeight DWORD ? + yOffset DWORD ? + crTextColor DWORD ? + bCharSet BYTE ? + bPitchAndFamily BYTE ? + szFaceName BYTE LF_FACESIZE dup(?) + _wPad2 WORD ? + wWeight WORD ? + sSpacing WORD ? + crBackColor DWORD ? + lcid DWORD ? + dwReserved DWORD ? + sStyle WORD ? + wKerning WORD ? + bUnderlineType BYTE ? + bAnimation BYTE ? + bRevAuthor BYTE ? + bReserved1 BYTE ? +CHARFORMAT2A ENDS + +CHARFORMAT2W STRUCT + cbSize DWORD ? + dwMask DWORD ? + dwEffects DWORD ? + yHeight DWORD ? + yOffset DWORD ? + crTextColor DWORD ? + bCharSet BYTE ? + bPitchAndFamily BYTE ? + szFaceName WORD LF_FACESIZE dup (?) + wWeight WORD ? + sSpacing WORD ? + crBackColor DWORD ? + lcid LCID ? + dwReserved DWORD ? + sStyle WORD ? + wKerning WORD ? + bUnderlineType BYTE ? + bAnimation BYTE ? + bRevAuthor BYTE ? + bReserved1 BYTE ? +CHARFORMAT2W ENDS + +IFDEF __UNICODE__ + CHARFORMAT2 equ +ELSE + CHARFORMAT2 equ +ENDIF + +OBJECTPOSITIONS STRUCT + nmhdr NMHDR <> + cObjectCount DWORD ? + pcpPositions DWORD ? +OBJECTPOSITIONS ENDS + +ENLINK STRUCT + nmhdr NMHDR <> + msg DWORD ? + wParam DWORD ? + lParam DWORD ? + chrg CHARRANGE <> +ENLINK ENDS + +;============================[ RICHEDIT.H ]======================= +GETTEXTEX STRUCT + cb DWORD ? ;DWORD + flags DWORD ? ;DWORD + codepage DWORD ? ;UINT + lpDefaultChar DWORD ? ;LPCSTR + lpUsedDefChar DWORD ? ;LPBOOL +GETTEXTEX ENDS + +SETTEXTEX STRUCT + flags DWORD ? + codepage DWORD ? +SETTEXTEX ENDS + +GETTEXTLENGTHEX STRUCT + flags DWORD ? + codepage DWORD ? +GETTEXTLENGTHEX ENDS + +ST_DEFAULT equ 0 +ST_KEEPUNDO equ 1 +ST_SELECTION equ 2 + +; ---------------------- +; edit control messages +; ---------------------- +EM_GETSEL equ 0B0h +EM_SETSEL equ 0B1h +EM_GETRECT equ 0B2h +EM_SETRECT equ 0B3h +EM_SETRECTNP equ 0B4h +EM_SCROLL equ 0B5h +EM_LINESCROLL equ 0B6h +EM_SCROLLCARET equ 0B7h +EM_GETMODIFY equ 0B8h +EM_SETMODIFY equ 0B9h +EM_GETLINECOUNT equ 0BAh +EM_LINEINDEX equ 0BBh +EM_SETHANDLE equ 0BCh +EM_GETHANDLE equ 0BDh +EM_GETTHUMB equ 0BEh +EM_LINELENGTH equ 0C1h +EM_REPLACESEL equ 0C2h +EM_GETLINE equ 0C4h +EM_LIMITTEXT equ 0C5h +EM_CANUNDO equ 0C6h +EM_UNDO equ 0C7h +EM_FMTLINES equ 0C8h +EM_LINEFROMCHAR equ 0C9h +EM_SETTABSTOPS equ 0CBh +EM_SETPASSWORDCHAR equ 0CCh +EM_EMPTYUNDOBUFFER equ 0CDh +EM_GETFIRSTVISIBLELINE equ 0CEh +EM_SETREADONLY equ 0CFh +EM_SETWORDBREAKPROC equ 0D0h +EM_GETWORDBREAKPROC equ 0D1h +EM_GETPASSWORDCHAR equ 0D2h +EM_SETMARGINS equ 0D3h +EM_GETMARGINS equ 0D4h +EM_SETLIMITTEXT equ EM_LIMITTEXT +EM_GETLIMITTEXT equ 0D5h +EM_POSFROMCHAR equ 0D6h +EM_CHARFROMPOS equ 0D7h +EM_SETIMESTATUS equ 0D8h +EM_GETIMESTATUS equ 0D9h + +; -------------------------- riched equates ------------------------------- + +cchTextLimitDefault equ 32767 + +EM_CANPASTE equ WM_USER + 50 +EM_DISPLAYBAND equ WM_USER + 51 +EM_EXGETSEL equ WM_USER + 52 +EM_EXLIMITTEXT equ WM_USER + 53 +EM_EXLINEFROMCHAR equ WM_USER + 54 +EM_EXSETSEL equ WM_USER + 55 +EM_FINDTEXTA equ WM_USER + 56 +EM_FINDTEXTW equ WM_USER + 123 +IFDEF __UNICODE__ + EM_FINDTEXT equ EM_FINDTEXTW +ELSE + EM_FINDTEXT equ EM_FINDTEXTA +ENDIF + +EM_FORMATRANGE equ WM_USER + 57 +EM_GETCHARFORMAT equ WM_USER + 58 +EM_GETEVENTMASK equ WM_USER + 59 +EM_GETOLEINTERFACE equ WM_USER + 60 +EM_GETPARAFORMAT equ WM_USER + 61 +EM_GETSELTEXT equ WM_USER + 62 +EM_HIDESELECTION equ WM_USER + 63 +EM_PASTESPECIAL equ WM_USER + 64 +EM_REQUESTRESIZE equ WM_USER + 65 +EM_SELECTIONTYPE equ WM_USER + 66 +EM_SETBKGNDCOLOR equ WM_USER + 67 +EM_SETCHARFORMAT equ WM_USER + 68 +EM_SETEVENTMASK equ WM_USER + 69 +EM_SETOLECALLBACK equ WM_USER + 70 +EM_SETPARAFORMAT equ WM_USER + 71 +EM_SETTARGETDEVICE equ WM_USER + 72 +EM_STREAMIN equ WM_USER + 73 +EM_STREAMOUT equ WM_USER + 74 +EM_GETTEXTRANGE equ WM_USER + 75 +EM_FINDWORDBREAK equ WM_USER + 76 +EM_SETOPTIONS equ WM_USER + 77 +EM_GETOPTIONS equ WM_USER + 78 +EM_FINDTEXTEXA equ WM_USER + 79 +EM_FINDTEXTEXW equ WM_USER + 124 +IFDEF __UNICODE__ + EM_FINDTEXTEX equ EM_FINDTEXTEXW +ELSE + EM_FINDTEXTEX equ EM_FINDTEXTEXA +ENDIF + +EM_GETWORDBREAKPROCEX equ WM_USER + 80 +EM_SETWORDBREAKPROCEX equ WM_USER + 81 +EM_SETUNDOLIMIT equ WM_USER + 82 +EM_REDO equ WM_USER + 84 +EM_CANREDO equ WM_USER + 85 +EM_GETUNDONAME equ WM_USER + 86 +EM_GETREDONAME equ WM_USER + 87 +EM_STOPGROUPTYPING equ WM_USER + 88 +EM_SETTEXTMODE equ WM_USER + 89 +EM_GETTEXTMODE equ WM_USER + 90 +EM_AUTOURLDETECT equ WM_USER + 91 +EM_GETAUTOURLDETECT equ WM_USER + 92 +EM_SETPALETTE equ WM_USER + 93 +EM_GETTEXTEX equ WM_USER + 94 +EM_GETTEXTLENGTHEX equ WM_USER + 95 +EM_SHOWSCROLLBAR equ WM_USER + 96 + +EM_SETPUNCTUATION equ WM_USER + 100 +EM_GETPUNCTUATION equ WM_USER + 101 +EM_SETWORDWRAPMODE equ WM_USER + 102 +EM_GETWORDWRAPMODE equ WM_USER + 103 +EM_SETIMECOLOR equ WM_USER + 104 +EM_GETIMECOLOR equ WM_USER + 105 +EM_SETIMEOPTIONS equ WM_USER + 106 +EM_GETIMEOPTIONS equ WM_USER + 107 +EM_CONVPOSITION equ WM_USER + 108 +EM_SETLANGOPTIONS equ WM_USER + 120 +EM_GETLANGOPTIONS equ WM_USER + 121 +EM_GETIMECOMPMODE equ WM_USER + 122 +EM_RECONVERSION equ WM_USER + 125 +EM_SETIMEMODEBIAS equ WM_USER + 126 +EM_GETIMEMODEBIAS equ WM_USER + 127 +EM_SETBIDIOPTIONS equ WM_USER + 200 +EM_GETBIDIOPTIONS equ WM_USER + 201 +EM_SETTYPOGRAPHYOPTIONS equ WM_USER + 202 +EM_GETTYPOGRAPHYOPTIONS equ WM_USER + 203 +EM_SETEDITSTYLE equ WM_USER + 204 +EM_GETEDITSTYLE equ WM_USER + 205 + +EM_OUTLINE equ WM_USER + 220 +EM_GETSCROLLPOS equ WM_USER + 221 +EM_SETSCROLLPOS equ WM_USER + 222 +EM_SETFONTSIZE equ WM_USER + 223 +EM_GETZOOM equ WM_USER + 224 +EM_SETZOOM equ WM_USER + 225 + +EM_SETTEXTEX equ WM_USER + 97 + +; ---------------------- +; notification messages +; ---------------------- +EN_SETFOCUS equ 100h +EN_KILLFOCUS equ 200h +EN_CHANGE equ 300h +EN_UPDATE equ 400h +EN_ERRSPACE equ 500h +EN_MAXTEXT equ 501h +EN_HSCROLL equ 601h +EN_VSCROLL equ 602h + +EN_MSGFILTER equ 0700h +EN_REQUESTRESIZE equ 0701h +EN_SELCHANGE equ 0702h +EN_DROPFILES equ 0703h +EN_PROTECTED equ 0704h +EN_CORRECTTEXT equ 0705h +EN_STOPNOUNDO equ 0706h +EN_IMECHANGE equ 0707h +EN_SAVECLIPBOARD equ 0708h +EN_OLEOPFAILED equ 0709h + +; ***************** additional equates from server 2003 ******************* + +SES_NOIME equ 128 +SES_UPPERCASE equ 512 +SES_LOWERCASE equ 1024 +SES_NOINPUTSEQUENCECHK equ 2048 +SES_BIDI equ 4096 +SES_SCROLLONKILLFOCUS equ 8192 +SES_XLTCRCRLFTOCR equ 16384 +SES_DRAFTMODE equ 32768 +SES_USECTF equ 0010000h +SES_HIDEGRIDLINES equ 0020000h +SES_USEATFONT equ 0040000h +SES_CUSTOMLOOK equ 0080000h +SES_LBSCROLLNOTIFY equ 0100000h +SES_CTFALLOWEMBED equ 0200000h +SES_CTFALLOWSMARTTAG equ 0400000h +SES_CTFALLOWPROOFING equ 0800000h +IMF_AUTOKEYBOARD equ 0001h +IMF_AUTOFONT equ 0002h +IMF_IMECANCELCOMPLETE equ 0004h +IMF_IMEALWAYSSENDNOTIFY equ 0008h +IMF_AUTOFONTSIZEADJUST equ 0010h +IMF_UIFONTS equ 0020h +IMF_DUALFONT equ 0080h +ICM_NOTOPEN equ 0000h +ICM_LEVEL3 equ 0001h +ICM_LEVEL2 equ 0002h +ICM_LEVEL2_5 equ 0003h +ICM_LEVEL2_SUI equ 0004h +ICM_CTF equ 0005h +TO_DISABLECUSTOMTEXTOUT equ 4 +TO_ADVANCEDLAYOUT equ 8 +EM_GETVIEWKIND equ (WM_USER + 226) +EM_SETVIEWKIND equ (WM_USER + 227) +EM_GETPAGE equ (WM_USER + 228) +EM_SETPAGE equ (WM_USER + 229) +EM_GETHYPHENATEINFO equ (WM_USER + 230) +EM_SETHYPHENATEINFO equ (WM_USER + 231) +EM_GETPAGEROTATE equ (WM_USER + 235) +EM_SETPAGEROTATE equ (WM_USER + 236) +EM_GETCTFMODEBIAS equ (WM_USER + 237) +EM_SETCTFMODEBIAS equ (WM_USER + 238) +EM_GETCTFOPENSTATUS equ (WM_USER + 240) +EM_SETCTFOPENSTATUS equ (WM_USER + 241) +EM_GETIMECOMPTEXT equ (WM_USER + 242) +EM_ISIME equ (WM_USER + 243) +EM_GETIMEPROPERTY equ (WM_USER + 244) +EPR_0 equ 0 +EPR_270 equ 1 +EPR_180 equ 2 +EPR_90 equ 3 +CTFMODEBIAS_DEFAULT equ 0000h +CTFMODEBIAS_FILENAME equ 0001h +CTFMODEBIAS_NAME equ 0002h +CTFMODEBIAS_READING equ 0003h +CTFMODEBIAS_DATETIME equ 0004h +CTFMODEBIAS_CONVERSATION equ 0005h +CTFMODEBIAS_NUMERIC equ 0006h +CTFMODEBIAS_HIRAGANA equ 0007h +CTFMODEBIAS_KATAKANA equ 0008h +CTFMODEBIAS_HANGUL equ 0009h +CTFMODEBIAS_HALFWIDTHKATAKANA equ 000Ah +CTFMODEBIAS_FULLWIDTHALPHANUMERIC equ 000Bh +CTFMODEBIAS_HALFWIDTHALPHANUMERIC equ 000Ch +IMF_SMODE_PLAURALCLAUSE equ 0001h +IMF_SMODE_NONE equ 0002h +ICT_RESULTREADSTR equ 1 +EMO_EXIT equ 0 +EMO_ENTER equ 1 +EMO_PROMOTE equ 2 +EMO_EXPAND equ 3 +EMO_MOVESELECTION equ 4 +EMO_GETVIEWMODE equ 5 +EMO_EXPANDSELECTION equ 0 +EMO_EXPANDDOCUMENT equ 1 +VM_NORMAL equ 4 +VM_OUTLINE equ 2 +VM_PAGE equ 9 +EN_OBJECTPOSITIONS equ 070ah +EN_DRAGDROPDONE equ 070ch +EN_PARAGRAPHEXPANDED equ 070dh +EN_PAGECHANGE equ 070eh +EN_LOWFIRTF equ 070fh +EN_ALIGNLTR equ 0710h +EN_ALIGNRTL equ 0711h +ENM_SCROLLEVENTS equ 00000008h +ENM_DRAGDROPDONE equ 00000010h +ENM_PARAGRAPHEXPANDED equ 00000020h +ENM_PAGECHANGE equ 00000040h +ENM_LANGCHANGE equ 01000000h +ENM_OBJECTPOSITIONS equ 02000000h +ENM_LINK equ 04000000h +ENM_LOWFIRTF equ 08000000h +ES_NOOLEDRAGDROP equ 00000008h +IMF_MULTIPLEEDIT equ 0400h +CFM_LINK equ 00000020h +CFE_LINK equ 0020h +CFE_SUBSCRIPT equ 00010000h +CFE_SUPERSCRIPT equ 00020000h +CFM_SUBSCRIPT equ CFE_SUBSCRIPT or CFE_SUPERSCRIPT +CFM_SUPERSCRIPT equ CFM_SUBSCRIPT +CFE_SMALLCAPS equ CFM_SMALLCAPS +CFE_ALLCAPS equ CFM_ALLCAPS +CFE_HIDDEN equ CFM_HIDDEN +CFE_OUTLINE equ CFM_OUTLINE +CFE_SHADOW equ CFM_SHADOW +CFE_EMBOSS equ CFM_EMBOSS +CFE_IMPRINT equ CFM_IMPRINT +CFE_DISABLED equ CFM_DISABLED +CFE_REVISED equ CFM_REVISED +CFE_AUTOBACKCOLOR equ CFM_BACKCOLOR +CFU_UNDERLINETHICKLONGDASH equ 18 +CFU_UNDERLINETHICKDOTTED equ 17 +CFU_UNDERLINETHICKDASHDOTDOT equ 16 +CFU_UNDERLINETHICKDASHDOT equ 15 +CFU_UNDERLINETHICKDASH equ 14 +CFU_UNDERLINELONGDASH equ 13 +CFU_UNDERLINEHEAVYWAVE equ 12 +CFU_UNDERLINEDOUBLEWAVE equ 11 +SCF_ASSOCIATEFONT equ 0010h +SCF_NOKBUPDATE equ 0020h +SCF_ASSOCIATEFONT2 equ 0040h +SF_UNICODE equ 0010h +SF_USECODEPAGE equ 0020h +SF_NCRFORNONASCII equ 40h +SFF_WRITEXTRAPAR equ 80h +SFF_PERSISTVIEWSCALE equ 2000h +SFF_KEEPDOCINFO equ 1000h +SFF_PWD equ 0800h +SF_RTFVAL equ 0700h +MAX_TABLE_CELLS equ 63 +PFM_TEXTWRAPPINGBREAK equ 20000000h +PFM_TABLEROWDELIMITER equ 10000000h +PFM_RESERVED2 equ 08000000h +PFN_ARABIC equ 2 +PFN_LCLETTER equ 3 +PFN_UCLETTER equ 4 +PFN_LCROMAN equ 5 +PFN_UCROMAN equ 6 +PFNS_PAREN equ 000h +PFNS_PARENS equ 100h +PFNS_PERIOD equ 200h +PFNS_PLAIN equ 300h +PFNS_NONUMBER equ 400h +PFNS_NEWNUMBER equ 8000h +PFA_JUSTIFY equ 4 +PFA_FULL_INTERWORD equ 4 +PFA_FULL_INTERLETTER equ 5 +PFA_FULL_SCALED equ 6 +PFA_FULL_GLYPHS equ 7 +PFA_SNAP_GRID equ 8 +GCM_RIGHTMOUSEDROP equ 8000h +ST_NEWCHARS equ 4 +GT_SELECTION equ 2 +GT_RAWTEXT equ 4 +GT_NOHIDDENTEXT equ 8 +BOM_DEFPARADIR equ 0001h +BOM_PLAINTEXT equ 0002h +BOM_NEUTRALOVERRIDE equ 0004h +BOM_CONTEXTREADING equ 0008h +BOM_CONTEXTALIGNMENT equ 0010h +BOE_RTLDIR equ 0001h +BOE_PLAINTEXT equ 0002h +BOE_NEUTRALOVERRIDE equ 0004h +BOE_CONTEXTREADING equ 0008h +BOE_CONTEXTALIGNMENT equ 0010h +FR_MATCHDIAC equ 20000000h +FR_MATCHKASHIDA equ 40000000h +FR_MATCHALEFHAMZA equ 80000000h +WCH_EMBEDDING equ 0FFFCh + +;;;; end riched + +;;;; ole + +;OLE Structures and Equates +;---------------------------------------------------------------------------- + +CLSCTX_ALL equ CLSCTX_INPROC_SERVER or CLSCTX_INPROC_HANDLER or CLSCTX_LOCAL_SERVER +CLSCTX_INPROC equ CLSCTX_INPROC_SERVER or CLSCTX_INPROC_HANDLER +CLSCTX_SERVER equ CLSCTX_INPROC_SERVER or CLSCTX_LOCAL_SERVER + +REGCLS_SINGLEUSE equ 0 +REGCLS_MULTIPLEUSE equ 1 +REGCLS_MULTI_SEPARATE equ 2 + +MARSHALINTERFACE_MIN equ 500 +CWCSTORAGENAME equ 32 +STGM_DIRECT equ 0 +STGM_TRANSACTED equ 00010000h +STGM_SIMPLE equ 08000000h +STGM_READ equ 0 +STGM_WRITE equ 00000001h +STGM_READWRITE equ 00000002h +STGM_SHARE_DENY_NONE equ 00000040h +STGM_SHARE_DENY_READ equ 00000030h +STGM_SHARE_DENY_WRITE equ 00000020h +STGM_SHARE_EXCLUSIVE equ 00000010h +STGM_PRIORITY equ 00040000h +STGM_DELETEONRELEASE equ 04000000h +STGM_CREATE equ 00001000h +STGM_CONVERT equ 00020000h +STGM_FAILIFTHERE equ 0 + + ; IID STRUCT DWORD + ; Data1 dd ? + ; Data2 dw ? + ; Data3 dw ? + ; Data4 db 8 dup(?) + ; IID ENDS + +BFFM_SETSTATUSTEXTA equ WM_USER + 100 +BFFM_SETSTATUSTEXTW equ (WM_USER + 104) +IFDEF __UNICODE__ + BFFM_SETSTATUSTEXT equ BFFM_SETSTATUSTEXTW +ELSE + BFFM_SETSTATUSTEXT equ BFFM_SETSTATUSTEXTA +ENDIF + +BFFM_SETSELECTIONA equ WM_USER + 102 +BFFM_SETSELECTIONW equ (WM_USER + 103) +IFDEF __UNICODE__ + BFFM_SETSELECTION equ BFFM_SETSELECTIONW +ELSE + BFFM_SETSELECTION equ BFFM_SETSELECTIONA +ENDIF + +CMIC_VALID_SEE_FLAGS equ SEE_VALID_CMIC_FLAGS ; Internal + +COLORSCHEME struct + dwSize dd ? + clrBtnHighlight COLORREF ? + clrBtnShadow COLORREF ? +COLORSCHEME ends + +NMMOUSE struct + hdr NMHDR <> + dwItemSpec dd ? + dwItemData dd ? + pt POINT <> + dwHitInfo dd ? +NMMOUSE ends + +NMCLICK equ + +HOVER_DEFAULT equ 0FFFFFFFFh + +TRACKMOUSEEVENT struct + cbSize dd ? + dwFlags dd ? + hwndTrack dd ? + dwHoverTime dd ? +TRACKMOUSEEVENT ends + +TBSTYLE_AUTOSIZE equ 10h +TB_SETCOLORSCHEME equ CCM_SETCOLORSCHEME +SWP_NOSENDCHANGING equ 400h +CC_ANYCOLOR equ 100h +TCN_FOCUSCHANGE equ TCN_FIRST - 4 + +STREAM_SEEK_SET equ 0 +STREAM_SEEK_CUR equ 1 +STREAM_SEEK_END equ 2 + +GTL_DEFAULT equ 0 +GTL_USECRLF equ 1 +GTL_PRECISE equ 2 +GTL_CLOSE equ 4 +GTL_NUMCHARS equ 8 +GTL_NUMBYTES equ 16 + +TM_PLAINTEXT equ 1 +TM_RICHTEXT equ 2 +TM_SINGLELEVELUNDO equ 4 +TM_MULTILEVELUNDO equ 8 +TM_SINGLECODEPAGE equ 16 +TM_MULTICODEPAGE equ 32 + +hWndOwner equ hwndOwner + +TO_ADVANCEDTYPOGRAPHY equ 1 +TO_SIMPLELINEBREAK equ 2 +TCS_FLATBUTTONS equ 8 + +TTF_DI_SETITEM equ 8000h +RBBS_USECHEVRON equ 200h +GT_DEFAULT equ 0 +GT_USECRLF equ 1 + +DLLVERSIONINFO struct + cbSize dd ? + dwMajorVersion dd ? + dwMinorVersion dd ? + dwBuildNumber dd ? + dwPlatformID dd ? +DLLVERSIONINFO ends + +BTNS_SHOWTEXT equ 40h +I_IMAGENONE equ -2 + +DTM_FIRST equ 1000h +DTM_SETFORMAT equ DTM_FIRST + 5 +DTM_SETSYSTEMTIME equ DTM_FIRST + 2 +DTM_GETSYSTEMTIME equ DTM_FIRST + 1 +MAX_COMPUTERNAME_LENGTH equ 15 + +;;;; end ole + +;;;; gdiplus + +; Translation by Alonso Murillo, +; revised by qWord, 2011 + +ARGB typedef DWORD + +GdiplusStartupInput STRUCT + GdiplusVersion DWORD ? + DebugEventCallback DWORD ? + SuppressBackgroundThread DWORD ? + SuppressExternalCodecs DWORD ? +GdiplusStartupInput ENDS + +PointF STRUCT + x REAL4 ? + y REAL4 ? +PointF ENDS + +RectF STRUCT + x REAL4 ? + y REAL4 ? + _Width REAL4 ? + Height REAL4 ? +RectF ENDS + +SizeF STRUCT + _Width REAL4 ? + Height REAL4 ? +SizeF ENDS + +AlphaShift EQU 24 +RedShift EQU 16 +GreenShift EQU 8 +BlueShift EQU 0 +AlphaMask EQU 0FF000000h +RedMask EQU 000FF0000h +GreenMask EQU 00000FF00h +BlueMask EQU 0000000FFh + +ImageLockModeRead EQU 1 +ImageLockModeWrite EQU 2 +ImageLockModeReadWrite EQU 3 +ImageLockModeUserInputBuf EQU 4 + +PixelFormat1bppIndexed EQU 30101h +PixelFormat4bppIndexed EQU 30402h +PixelFormat8bppIndexed EQU 30803h +PixelFormat16bppGreyScale EQU 101004h +PixelFormat16bppRGB555 EQU 21005h +PixelFormat16bppRGB565 EQU 21006h +PixelFormat16bppARGB1555 EQU 61007h +PixelFormat24bppRGB EQU 21808h +PixelFormat32bppRGB EQU 22009 +PixelFormat32bppARGB EQU 26200Ah +PixelFormat32bppPARGB EQU 0E200Bh +PixelFormat48bppRGB EQU 10300Ch +PixelFormat64bppARGB EQU 34400Dh +PixelFormat64bppPARGB EQU 1C400Eh +PixelFormatMax EQU 0fh + +PropertyTagTypeByte EQU 1 +PropertyTagTypeASCII EQU 2 +PropertyTagTypeShort EQU 3 +PropertyTagTypeLong EQU 4 +PropertyTagTypeRational EQU 5 +PropertyTagTypeUndefined EQU 7 +PropertyTagTypeSLONG EQU 9 +PropertyTagTypeSRational EQU 10 + + +PropertyTagExifIFD EQU 8769h +PropertyTagGpsIFD EQU 8825h + +PropertyTagNewSubfileType EQU 0FEh +PropertyTagSubfileType EQU 0FFh +PropertyTagImageWidth EQU 100h +PropertyTagImageHeight EQU 101h +PropertyTagBitsPerSample EQU 102h +PropertyTagCompression EQU 103h +PropertyTagPhotometricInterp EQU 106h +PropertyTagThreshHolding EQU 107h +PropertyTagCellWidth EQU 108h +PropertyTagCellHeight EQU 109h +PropertyTagFillOrder EQU 10Ah +PropertyTagDocumentName EQU 10Dh +PropertyTagImageDescription EQU 10Eh +PropertyTagEquipMake EQU 10Fh +PropertyTagEquipModel EQU 110h +PropertyTagStripOffsets EQU 111h +PropertyTagOrientation EQU 112h +PropertyTagSamplesPerPixel EQU 115h +PropertyTagRowsPerStrip EQU 116h +PropertyTagStripBytesCount EQU 117h +PropertyTagMinSampleValue EQU 118h +PropertyTagMaxSampleValue EQU 119h +PropertyTagXResolution EQU 11Ah +PropertyTagYResolution EQU 11Bh +PropertyTagPlanarConfig EQU 11Ch +PropertyTagPageName EQU 11Dh +PropertyTagXPosition EQU 11Eh +PropertyTagYPosition EQU 11Fh +PropertyTagFreeOffset EQU 120h +PropertyTagFreeByteCounts EQU 121h +PropertyTagGrayResponseUnit EQU 122h +PropertyTagGrayResponseCurve EQU 123h +PropertyTagT4Option EQU 124h +PropertyTagT6Option EQU 125h +PropertyTagResolutionUnit EQU 128h +PropertyTagPageNumber EQU 129h +PropertyTagTransferFuncition EQU 12Dh +PropertyTagSoftwareUsed EQU 131h +PropertyTagDateTime EQU 132h +PropertyTagArtist EQU 13Bh +PropertyTagHostComputer EQU 13Ch +PropertyTagPredictor EQU 13Dh +PropertyTagWhitePoint EQU 13Eh +PropertyTagPrimaryChromaticities EQU 13Fh +PropertyTagColorMap EQU 140h +PropertyTagHalftoneHints EQU 141h +PropertyTagTileWidth EQU 142h +PropertyTagTileLength EQU 143h +PropertyTagTileOffset EQU 144h +PropertyTagTileByteCounts EQU 145h +PropertyTagInkSet EQU 14Ch +PropertyTagInkNames EQU 14Dh +PropertyTagNumberOfInks EQU 14Eh +PropertyTagDotRange EQU 150h +PropertyTagTargetPrinter EQU 151h +PropertyTagExtraSamples EQU 152h +PropertyTagSampleFormat EQU 153h +PropertyTagSMinSampleValue EQU 154h +PropertyTagSMaxSampleValue EQU 155h +PropertyTagTransferRange EQU 156h + +PropertyTagJPEGProc EQU 200h +PropertyTagJPEGInterFormat EQU 201h +PropertyTagJPEGInterLength EQU 202h +PropertyTagJPEGRestartInterval EQU 203h +PropertyTagJPEGLosslessPredictors EQU 205h +PropertyTagJPEGPointTransforms EQU 206h +PropertyTagJPEGQTables EQU 207h +PropertyTagJPEGDCTables EQU 208h +PropertyTagJPEGACTables EQU 209h +PropertyTagYCbCrCoefficients EQU 211h +PropertyTagYCbCrSubsampling EQU 212h +PropertyTagYCbCrPositioning EQU 213h +PropertyTagREFBlackWhite EQU 214h +PropertyTagICCProfile EQU 8773h +PropertyTagGamma EQU 301h +PropertyTagICCProfileDescriptor EQU 302h +PropertyTagSRGBRenderingIntent EQU 303h +PropertyTagImageTitle EQU 320h +PropertyTagCopyright EQU 8298h + + +PropertyTagResolutionXUnit EQU 5001h +PropertyTagResolutionYUnit EQU 5002h +PropertyTagResolutionXLengthUnit EQU 5003h +PropertyTagResolutionYLengthUnit EQU 5004h +PropertyTagPrintFlags EQU 5005h +PropertyTagPrintFlagsVersion EQU 5006h +PropertyTagPrintFlagsCrop EQU 5007h +PropertyTagPrintFlagsBleedWidth EQU 5008h +PropertyTagPrintFlagsBleedWidthScale EQU 5009h +PropertyTagHalftoneLPI EQU 500Ah +PropertyTagHalftoneLPIUnit EQU 500Bh +PropertyTagHalftoneDegree EQU 500Ch +PropertyTagHalftoneShape EQU 500Dh +PropertyTagHalftoneMisc EQU 500Eh +PropertyTagHalftoneScreen EQU 500Fh +PropertyTagJPEGQuality EQU 5010h +PropertyTagGridSize EQU 5011h +PropertyTagThumbnailFormat EQU 5012h +PropertyTagThumbnailWidth EQU 5013h +PropertyTagThumbnailHeight EQU 5014h +PropertyTagThumbnailColorDepth EQU 5015h +PropertyTagThumbnailPlanes EQU 5016h +PropertyTagThumbnailRawBytes EQU 5017h +PropertyTagThumbnailSize EQU 5018h +PropertyTagThumbnailCompressedSize EQU 5019h +PropertyTagColorTransferFunction EQU 501Ah +PropertyTagThumbnailData EQU 501Bh + + +PropertyTagThumbnailImageWidth EQU 5020h +PropertyTagThumbnailImageHeight EQU 5021h +PropertyTagThumbnailBitsPerSample EQU 5022h +PropertyTagThumbnailCompression EQU 5023h +PropertyTagThumbnailPhotometricInterp EQU 5024h +PropertyTagThumbnailImageDescription EQU 5025h +PropertyTagThumbnailEquipMake EQU 5026h + +PropertyTagThumbnailEquipModel EQU 5027h +PropertyTagThumbnailStripOffsets EQU 5028h +PropertyTagThumbnailOrientation EQU 5029h +PropertyTagThumbnailSamplesPerPixel EQU 502Ah +PropertyTagThumbnailRowsPerStrip EQU 502Bh +PropertyTagThumbnailStripBytesCount EQU 502Ch +PropertyTagThumbnailResolutionX EQU 502Dh +PropertyTagThumbnailResolutionY EQU 502Eh +PropertyTagThumbnailPlanarConfig EQU 502Fh +PropertyTagThumbnailResolutionUnit EQU 5030h +PropertyTagThumbnailTransferFunction EQU 5031h +PropertyTagThumbnailSoftwareUsed EQU 5032h +PropertyTagThumbnailDateTime EQU 5033h +PropertyTagThumbnailArtist EQU 5034h +PropertyTagThumbnailWhitePoint EQU 5035h +PropertyTagThumbnailPrimaryChromaticities EQU 5036h +PropertyTagThumbnailYCbCrCoefficients EQU 5037h +PropertyTagThumbnailYCbCrSubsampling EQU 5038h +PropertyTagThumbnailYCbCrPositioning EQU 5039h +PropertyTagThumbnailRefBlackWhite EQU 503Ah +PropertyTagThumbnailCopyRight EQU 503Bh +PropertyTagLuminanceTable EQU 5090h +PropertyTagChrominanceTable EQU 5091h +PropertyTagFrameDelay EQU 5100h +PropertyTagLoopCount EQU 5101h +PropertyTagPixelUnit EQU 5110h +PropertyTagPixelPerUnitX EQU 5111h +PropertyTagPixelPerUnitY EQU 5112h +PropertyTagPaletteHistogram EQU 5113h + +PropertyTagExifExposureTime EQU 829Ah +PropertyTagExifFNumber EQU 829Dh +PropertyTagExifExposureProg EQU 8822h +PropertyTagExifSpectralSense EQU 8824h +PropertyTagExifISOSpeed EQU 8827h +PropertyTagExifOECF EQU 8828h +PropertyTagExifVer EQU 9000h +PropertyTagExifDTOrig EQU 9003h +PropertyTagExifDTDigitized EQU 9004h +PropertyTagExifCompConfig EQU 9101h +PropertyTagExifCompBPP EQU 9102h +PropertyTagExifShutterSpeed EQU 9201h +PropertyTagExifAperture EQU 9202h +PropertyTagExifBrightness EQU 9203h +PropertyTagExifExposureBias EQU 9204h +PropertyTagExifMaxAperture EQU 9205h +PropertyTagExifSubjectDist EQU 9206h +PropertyTagExifMeteringMode EQU 9207h +PropertyTagExifLightSource EQU 9208h +PropertyTagExifFlash EQU 9209h +PropertyTagExifFocalLength EQU 920Ah +PropertyTagExifMakerNote EQU 927Ch +PropertyTagExifUserComment EQU 9286h +PropertyTagExifDTSubsec EQU 9290h +PropertyTagExifDTOrigSS EQU 9291h +PropertyTagExifDTDigSS EQU 9292h +PropertyTagExifFPXVer EQU 0A000h +PropertyTagExifColorSpace EQU 0A001h +PropertyTagExifPixXDim EQU 0A002h +PropertyTagExifPixYDim EQU 0A003h +PropertyTagExifRelatedWav EQU 0A004h +PropertyTagExifInterop EQU 0A005h +PropertyTagExifFlashEnergy EQU 0A20Bh +PropertyTagExifSpatialFR EQU 0A20Ch +PropertyTagExifFocalXRes EQU 0A20Eh +PropertyTagExifFocalYRes EQU 0A20Fh +PropertyTagExifFocalResUnit EQU 0A210h +PropertyTagExifSubjectLoc EQU 0A214h +PropertyTagExifExposureIndex EQU 0A215h +PropertyTagExifSensingMethod EQU 0A217h +PropertyTagExifFileSource EQU 0A300h +PropertyTagExifSceneType EQU 0A301h +PropertyTagExifCfaPattern EQU 0A302h +PropertyTagGpsVer EQU 0 +PropertyTagGpsLatitudeRef EQU 1 +PropertyTagGpsLatitude EQU 2 +PropertyTagGpsLongitudeRef EQU 3 +PropertyTagGpsLongitude EQU 4 +PropertyTagGpsAltitudeRef EQU 5 +PropertyTagGpsAltitude EQU 6 +PropertyTagGpsGpsTime EQU 7 +PropertyTagGpsGpsSatellites EQU 8 +PropertyTagGpsGpsStatus EQU 9 +PropertyTagGpsGpsMeasureMode EQU 0Ah +PropertyTagGpsGpsDop EQU 0Bh +PropertyTagGpsSpeedRef EQU 0Ch +PropertyTagGpsSpeed EQU 0Dh +PropertyTagGpsTrackRef EQU 0Eh +PropertyTagGpsTrack EQU 0Fh +PropertyTagGpsImgDirRef EQU 10h +PropertyTagGpsImgDir EQU 11h +PropertyTagGpsMapDatum EQU 12h +PropertyTagGpsDestLatRef EQU 13h +PropertyTagGpsDestLat EQU 14h +PropertyTagGpsDestLongRef EQU 15h +PropertyTagGpsDestLong EQU 16h +PropertyTagGpsDestBearRef EQU 17h +PropertyTagGpsDestBear EQU 18h +PropertyTagGpsDestDistRef EQU 19h +PropertyTagGpsDestDist EQU 1Ah + +COLORBYTES STRUC + BlueByte BYTE ? + GreenByte BYTE ? + RedByte BYTE ? + AlphaByte BYTE ? +COLORBYTES ENDS + +COLORLONG STRUC + longval DWORD ? +COLORLONG ENDS + +ImageCodecInfo STRUC + ClassID GUID <> + FormatID GUID <> + CodecName DWORD ? + DllName DWORD ? + FormatDescription DWORD ? + FilenameExtension DWORD ? + MimeType DWORD ? + flags DWORD ? + Version DWORD ? + SigCount DWORD ? + SigSize DWORD ? + SigPattern DWORD ? + SigMask DWORD ? +ImageCodecInfo ENDS + +EncoderParameter STRUC + pGUID GUID <> + NumberOfValues DWORD ? + vType DWORD ? + value DWORD ? +EncoderParameter ENDS + +EncoderParameters STRUC + Count DWORD ? + Parameter EncoderParameter <> +EncoderParameters ENDS + +ColorPalette STRUC + flags DWORD ? + Count DWORD ? + Entries DWORD ? +ColorPalette ENDS + +ColorMatrix STRUC + m11 REAL4 ? + m12 REAL4 ? + m13 REAL4 ? + m14 REAL4 ? + m15 REAL4 ? + m21 REAL4 ? + m22 REAL4 ? + m23 REAL4 ? + m24 REAL4 ? + m25 REAL4 ? + m31 REAL4 ? + m32 REAL4 ? + m33 REAL4 ? + m34 REAL4 ? + m35 REAL4 ? + m41 REAL4 ? + m42 REAL4 ? + m43 REAL4 ? + m44 REAL4 ? + m45 REAL4 ? + m51 REAL4 ? + m52 REAL4 ? + m53 REAL4 ? + m54 REAL4 ? + m55 REAL4 ? +ColorMatrix ENDS + +BitmapData STRUC + nWidth DWORD ? + nHeight DWORD ? + Stride DWORD ? + PixelFormat DWORD ? + Scan0 DWORD ? + Reserved DWORD ? +BitmapData ENDS + +PathData STRUC + Count DWORD ? + pPoint DWORD ? + types DWORD ? +PathData ENDS + +PropertyItem STRUC + propId DWORD ? + _length DWORD ? + nType WORD ? + value DWORD ? +PropertyItem ENDS + +CharacterRange STRUC + First DWORD ? + _length DWORD ? +CharacterRange ENDS + +PWMFRect16 STRUC + nLEFT WORD ? + nTop WORD ? + nRIGHT WORD ? + nBottom WORD ? +PWMFRect16 ENDS + +WmfPlaceableFileHeader STRUC + Key DWORD ? + Hmf WORD ? + boundingBox PWMFRect16 <> + Inch WORD ? + Reserved DWORD ? + Checksum WORD ? +WmfPlaceableFileHeader ENDS + +ENHMETAHEADER3 STRUC + itype DWORD ? + nSize DWORD ? + rclBounds RECTL <> + rclFrame RECTL <> + dSignature DWORD ? + nVersion DWORD ? + nBytes DWORD ? + nRecords DWORD ? + nHandles WORD ? + sReserved WORD ? + nDescription DWORD ? + offDescription DWORD ? + nPalEntries DWORD ? + szlDevice SIZEL <> + szlMillimeters SIZEL <> +ENHMETAHEADER3 ENDS + +MetafileHeader STRUC + mType DWORD ? + msize DWORD ? + Version DWORD ? + EmfPlusFlags DWORD ? + DpiX REAL4 ? + DpiY REAL4 ? + x DWORD ? + y DWORD ? + nWIDTH DWORD ? + Height DWORD ? + EmfHeader ENHMETAHEADER3 <> + EmfPlusHeaderSize DWORD ? + LogicalDpiX DWORD ? + LogicalDpiY DWORD ? +MetafileHeader ENDS + + +UnitWorld EQU 0 +UnitDisplay EQU 1 +UnitPixel EQU 2 +UnitPoint EQU 3 +UnitInch EQU 4 +UnitDocument EQU 5 +UnitMillimeter EQU 6 + + +ColorsAliceBlue EQU 0FFF0F8FFh +ColorsAntiqueWhite EQU 0FFFAEBD7h +ColorsAqua EQU 0FF00FFFFh +ColorsAquamarine EQU 0FF7FFFD4h +ColorsAzure EQU 0FFF0FFFFh +ColorsBeige EQU 0FFF5F5DCh +ColorsBisque EQU 0FFFFE4C4h +ColorsBlack EQU 0FF000000h +ColorsBlanchedAlmond EQU 0FFFFEBCDh +ColorsBlue EQU 0FF0000FFh +ColorsBlueViolet EQU 0FF8A2BE2h +ColorsBrown EQU 0FFA52A2Ah +ColorsBurlyWood EQU 0FFDEB887h +ColorsCadetBlue EQU 0FF5F9EA0h +ColorsChartreuse EQU 0FF7FFF00h +ColorsChocolate EQU 0FFD2691Eh +ColorsCoral EQU 0FFFF7F50h +ColorsCornflowerBlue EQU 0FF6495EDh +ColorsCornsilk EQU 0FFFFF8DCh +ColorsCrimson EQU 0FFDC143Ch +ColorsCyan EQU 0FF00FFFFh +ColorsDarkBlue EQU 0FF00008Bh +ColorsDarkCyan EQU 0FF008B8Bh +ColorsDarkGoldenrod EQU 0FFB8860Bh +ColorsDarkGray EQU 0FFA9A9A9h +ColorsDarkGreen EQU 0FF006400h +ColorsDarkKhaki EQU 0FFBDB76Bh +ColorsDarkMagenta EQU 0FF8B008Bh +ColorsDarkOliveGreen EQU 0FF556B2Fh +ColorsDarkOrange EQU 0FFFF8C00h +ColorsDarkOrchid EQU 0FF9932CCh +ColorsDarkRed EQU 0FF8B0000h +ColorsDarkSalmon EQU 0FFE9967Ah +ColorsDarkSeaGreen EQU 0FF8FBC8Bh +ColorsDarkSlateBlue EQU 0FF483D8Bh +ColorsDarkSlateGray EQU 0FF2F4F4Fh +ColorsDarkTurquoise EQU 0FF00CED1h +ColorsDarkViolet EQU 0FF9400D3h +ColorsDeepPink EQU 0FFFF1493h +ColorsDeepSkyBlue EQU 0FF00BFFFh +ColorsDimGray EQU 0FF696969h +ColorsDodgerBlue EQU 0FF1E90FFh +ColorsFirebrick EQU 0FFB22222h +ColorsFloralWhite EQU 0FFFFFAF0h +ColorsForestGreen EQU 0FF228B22h +ColorsFuchsia EQU 0FFFF00FFh +ColorsGainsboro EQU 0FFDCDCDCh +ColorsGhostWhite EQU 0FFF8F8FFh +ColorsGold EQU 0FFFFD700h +ColorsGoldenrod EQU 0FFDAA520h +ColorsGray EQU 0FF808080h +ColorsGreen EQU 0FF008000h +ColorsGreenYellow EQU 0FFADFF2Fh +ColorsHoneydew EQU 0FFF0FFF0h +ColorsHotPink EQU 0FFFF69B4h +ColorsIndianRed EQU 0FFCD5C5Ch +ColorsIndigo EQU 0FF4B0082h +ColorsIvory EQU 0FFFFFFF0h +ColorsKhaki EQU 0FFF0E68Ch +ColorsLavender EQU 0FFE6E6FAh +ColorsLavenderBlush EQU 0FFFFF0F5h +ColorsLawnGreen EQU 0FF7CFC00h +ColorsLemonChiffon EQU 0FFFFFACDh +ColorsLightBlue EQU 0FFADD8E6h +ColorsLightCoral EQU 0FFF08080h +ColorsLightCyan EQU 0FFE0FFFFh +ColorsLightGoldenrodYellow EQU 0FFFAFAD2h +ColorsLightGray EQU 0FFD3D3D3h +ColorsLightGreen EQU 0FF90EE90h +ColorsLightPink EQU 0FFFFB6C1h +ColorsLightSalmon EQU 0FFFFA07Ah +ColorsLightSeaGreen EQU 0FF20B2AAh +ColorsLightSkyBlue EQU 0FF87CEFAh +ColorsLightSlateGray EQU 0FF778899h +ColorsLightSteelBlue EQU 0FFB0C4DEh +ColorsLightYellow EQU 0FFFFFFE0h +ColorsLime EQU 0FF00FF00h +ColorsLimeGreen EQU 0FF32CD32h +ColorsLinen EQU 0FFFAF0E6h +ColorsMagenta EQU 0FFFF00FFh +ColorsMaroon EQU 0FF800000h +ColorsMediumAquamarine EQU 0FF66CDAAh +ColorsMediumBlue EQU 0FF0000CDh +ColorsMediumOrchid EQU 0FFBA55D3h +ColorsMediumPurple EQU 0FF9370DBh +ColorsMediumSeaGreen EQU 0FF3CB371h +ColorsMediumSlateBlue EQU 0FF7B68EEh +ColorsMediumSpringGreen EQU 0FF00FA9Ah +ColorsMediumTurquoise EQU 0FF48D1CCh +ColorsMediumVioletRed EQU 0FFC71585h +ColorsMidnightBlue EQU 0FF191970h +ColorsMintCream EQU 0FFF5FFFAh +ColorsMistyRose EQU 0FFFFE4E1h +ColorsMoccasin EQU 0FFFFE4B5h +ColorsNavajoWhite EQU 0FFFFDEADh +ColorsNavy EQU 0FF000080h +ColorsOldLace EQU 0FFFDF5E6h +ColorsOlive EQU 0FF808000h +ColorsOliveDrab EQU 0FF6B8E23h +ColorsOrange EQU 0FFFFA500h +ColorsOrangeRed EQU 0FFFF4500h +ColorsOrchid EQU 0FFDA70D6h +ColorsPaleGoldenrod EQU 0FFEEE8AAh +ColorsPaleGreen EQU 0FF98FB98h +ColorsPaleTurquoise EQU 0FFAFEEEEh +ColorsPaleVioletRed EQU 0FFDB7093h +ColorsPapayaWhip EQU 0FFFFEFD5h +ColorsPeachPuff EQU 0FFFFDAB9h +ColorsPeru EQU 0FFCD853Fh +ColorsPink EQU 0FFFFC0CBh +ColorsPlum EQU 0FFDDA0DDh +ColorsPowderBlue EQU 0FFB0E0E6h +ColorsPurple EQU 0FF800080h +ColorsRed EQU 0FFFF0000h +ColorsRosyBrown EQU 0FFBC8F8Fh +ColorsRoyalBlue EQU 0FF4169E1h +ColorsSaddleBrown EQU 0FF8B4513h +ColorsSalmon EQU 0FFFA8072h +ColorsSandyBrown EQU 0FFF4A460h +ColorsSeaGreen EQU 0FF2E8B57h +ColorsSeaShell EQU 0FFFFF5EEh +ColorsSienna EQU 0FFA0522Dh +ColorsSilver EQU 0FFC0C0C0h +ColorsSkyBlue EQU 0FF87CEEBh +ColorsSlateBlue EQU 0FF6A5ACDh +ColorsSlateGray EQU 0FF708090h +ColorsSnow EQU 0FFFFFAFAh +ColorsSpringGreen EQU 0FF00FF7Fh +ColorsSteelBlue EQU 0FF4682B4h +ColorsTan EQU 0FFD2B48Ch +ColorsTeal EQU 0FF008080h +ColorsThistle EQU 0FFD8BFD8h +ColorsTomato EQU 0FFFF6347h +ColorsTransparent EQU 0FFFFFFh +ColorsTurquoise EQU 0FF40E0D0h +ColorsViolet EQU 0FFEE82EEh +ColorsWheat EQU 0FFF5DEB3h +ColorsWhite EQU 0FFFFFFFFh +ColorsWhiteSmoke EQU 0FFF5F5F5h +ColorsYellow EQU 0FFFFFF00h +ColorsYellowGreen EQU 0FF9ACD32h + + +GpStatusOk EQU 0 +GpStatusGenericError EQU 1 +GpStatusInvalidParameter EQU 2 +GpStatusOutOfMemory EQU 3 +GpStatusObjectBusy EQU 4 +GpStatusInsufficientBuffer EQU 5 +GpStatusNotImplemented EQU 6 +GpStatusWin32Error EQU 7 +GpStatusWrongState EQU 8 +GpStatusAborted EQU 9 +GpStatusFileNotFound EQU 10 +GpStatusValueOverflow EQU 11 +GpStatusAccessDenied EQU 12 +GpStatusUnknownImageFormat EQU 13 +GpStatusFontFamilyNotFound EQU 14 +GpStatusFontStyleNotFound EQU 15 +GpStatusNotTrueTypeFont EQU 16 +GpStatusUnsupportedGdiplusVersion EQU 17 +GpStatusGdiplusNotInitialized EQU 18 +GpStatusPropertyNotFound EQU 19 +GpStatusPropertyNotSupported EQU 20 + + +QualityModeInvalid EQU -1 +QualityModeDefault EQU 0 +QualityModeLow EQU 1 +QualityModeHigh EQU 2 + + +CompositingModeSourceOver EQU 0 +CompositingModeSourceCopy EQU 1 + + +CompositingQualityInvalid EQU QualityModeInvalid +CompositingQualityDefault EQU QualityModeDefault +CompositingQualityHighSpeed EQU QualityModeLow +CompositingQualityHighQuality EQU QualityModeHigh +CompositingQualityGammaCorrected EQU 3 +CompositingQualityAssumeLinear EQU 4 + + +GenericFontFamilySerif EQU 0 +GenericFontFamilySansSerif EQU 1 +GenericFontFamilyMonospace EQU 2 + + +FontStyleRegular EQU 0 +FontStyleBold EQU 1 +FontStyleItalic EQU 2 +FontStyleBoldItalic EQU 3 +FontStyleUnderline EQU 4 +FontStyleStrikeout EQU 8 + +SmoothingModeInvalid EQU QualityModeInvalid +SmoothingModeDefault EQU QualityModeDefault +SmoothingModeHighSpeed EQU QualityModeLow +SmoothingModeHighQuality EQU QualityModeHigh +SmoothingModeNone EQU 3 +SmoothingModeAntiAlias EQU 4 + +FillModeAlternate EQU 0 +FillModeWinding EQU 1 + +InterpolationModeInvalid EQU QualityModeInvalid +InterpolationModeDefault EQU QualityModeDefault +InterpolationModeLowQuality EQU QualityModeLow +InterpolationModeHighQuality EQU QualityModeHigh +InterpolationModeBilinear EQU 3 +InterpolationModeBicubic EQU 4 +InterpolationModeNearestNeighbor EQU 5 +InterpolationModeHighQualityBilinear EQU 6 +InterpolationModeHighQualityBicubic EQU 7 + + +WrapModeTile EQU 0 +WrapModeTileFlipX EQU 1 +WrapModeTileFlipY EQU 2 +WrapModeTileFlipXY EQU 3 +WrapModeClamp EQU 4 + +LinearGradientModeHorizontal EQU 0 +LinearGradientModeVertical EQU 1 +LinearGradientModeForwardDiagonal EQU 2 +LinearGradientModeBackwardDiagonal EQU 3 + +ImageTypeUnknown EQU 0 +ImageTypeBitmap EQU 1 +ImageTypeMetafile EQU 2 + + +HatchStyleHorizontal EQU 0 +HatchStyleVertical EQU 1 +HatchStyleForwardDiagonal EQU 2 +HatchStyleBackwardDiagonal EQU 3 +HatchStyleCross EQU 4 +HatchStyleDiagonalCross EQU 5 +HatchStyle05Percent EQU 6 +HatchStyle10Percent EQU 7 +HatchStyle20Percent EQU 8 +HatchStyle25Percent EQU 9 +HatchStyle30Percent EQU 10 +HatchStyle40Percent EQU 11 +HatchStyle50Percent EQU 12 +HatchStyle60Percent EQU 13 +HatchStyle70Percent EQU 14 +HatchStyle75Percent EQU 15 +HatchStyle80Percent EQU 16 +HatchStyle90Percent EQU 17 +HatchStyleLightDownwardDiagonal EQU 18 +HatchStyleLightUpwardDiagonal EQU 19 +HatchStyleDarkDownwardDiagonal EQU 20 +HatchStyleDarkUpwardDiagonal EQU 21 +HatchStyleWideDownwardDiagonal EQU 22 +HatchStyleWideUpwardDiagonal EQU 23 +HatchStyleLightVertical EQU 24 +HatchStyleLightHorizontal EQU 25 +HatchStyleNarrowVertical EQU 26 +HatchStyleNarrowHorizontal EQU 27 +HatchStyleDarkVertical EQU 28 +HatchStyleDarkHorizontal EQU 29 +HatchStyleDashedDownwardDiagonal EQU 30 +HatchStyleDashedUpwardDiagonal EQU 31 +HatchStyleDashedHorizontal EQU 32 +HatchStyleDashedVertical EQU 33 +HatchStyleSmallConfetti EQU 34 +HatchStyleLargeConfetti EQU 35 +HatchStyleZigZag EQU 36 +HatchStyleWave EQU 37 +HatchStyleDiagonalBrick EQU 38 +HatchStyleHorizontalBrick EQU 39 +HatchStyleWeave EQU 40 +HatchStylePlaid EQU 41 +HatchStyleDivot EQU 42 +HatchStyleDottedGrid EQU 43 +HatchStyleDottedDiamond EQU 44 +HatchStyleShingle EQU 45 +HatchStyleTrellis EQU 46 +HatchStyleSphere EQU 47 +HatchStyleSmallGrid EQU 48 +HatchStyleSmallCheckerBoard EQU 49 +HatchStyleLargeCheckerBoard EQU 50 +HatchStyleOutlinedDiamond EQU 51 +HatchStyleSolidDiamond EQU 52 +HatchStyleTotal EQU 53 +HatchStyleLargeGrid EQU HatchStyleCross +HatchStyleMin EQU HatchStyleHorizontal +HatchStyleMax EQU HatchStyleTotal - 1 + + +MatrixOrderPrepend EQU 0 +MatrixOrderAppend EQU 1 + + +ColorAdjustTypeDefault EQU 0 +ColorAdjustTypeBitmap EQU 1 +ColorAdjustTypeBrush EQU 2 +ColorAdjustTypePen EQU 3 +ColorAdjustTypeText EQU 4 +ColorAdjustTypeCount EQU 5 +ColorAdjustTypeAny EQU 6 + +ColorChannelFlagsC EQU 0 +ColorChannelFlagsM EQU 1 +ColorChannelFlagsY EQU 2 +ColorChannelFlagsK EQU 3 +ColorChannelFlagsLast EQU 4 + +ColorMatrixFlagsDefault EQU 0 +ColorMatrixFlagsSkipGrays EQU 1 +ColorMatrixFlagsAltGray EQU 2 + +PenAlignmentCenter EQU 0 +PenAlignmentInset EQU 1 + + +BrushTypeSolidColor EQU 0 +BrushTypeHatchFill EQU 1 +BrushTypeTextureFill EQU 2 +BrushTypePathGradient EQU 3 +BrushTypeLinearGradient EQU 4 + + +DashStyleSolid EQU 0 +DashStyleDash EQU 1 +DashStyleDot EQU 2 +DashStyleDashDot EQU 3 +DashStyleDashDotDot EQU 4 +DashStyleCustom EQU 5 + +DashCapFlat EQU 0 +DashCapRound EQU 2 +DashCapTriangle EQU 3 + +LineCapFlat EQU 0 +LineCapSquare EQU 1 +LineCapRound EQU 2 +LineCapTriangle EQU 3 +LineCapNoAnchor EQU 010h +LineCapSquareAnchor EQU 011h +LineCapRoundAnchor EQU 012h +LineCapDiamondAnchor EQU 013h +LineCapArrowAnchor EQU 014h +LineCapCustom EQU 0FFh +LineCapAnchorMask EQU 0F0h + + +CustomLineCapTypeDefault EQU 0 +CustomLineCapTypeAdjustableArrow EQU 1 + + +LineJoinMiter EQU 0 +LineJoinBevel EQU 1 +LineJoinRound EQU 2 +LineJoinMiterClipped EQU 3 + + +PenTypeSolidColor EQU BrushTypeSolidColor +PenTypeHatchFill EQU BrushTypeHatchFill +PenTypeTextureFill EQU BrushTypeTextureFill +PenTypePathGradient EQU BrushTypePathGradient +PenTypeLinearGradient EQU BrushTypeLinearGradient +PenTypeUnknown EQU -1 + + +WarpModePerspective EQU 0 +WarpModeBilinear EQU 1 + + +CombineModeReplace EQU 0 +CombineModeIntersect EQU 1 +CombineModeUnion EQU 2 +CombineModeXor EQU 3 +CombineModeExclude EQU 4 +CombineModeComplement EQU 5 + +RotateNoneFlipNone EQU 0 +Rotate90FlipNone EQU 1 +Rotate180FlipNone EQU 2 +Rotate270FlipNone EQU 3 +RotateNoneFlipX EQU 4 +Rotate90FlipX EQU 5 +Rotate180FlipX EQU 6 +Rotate270FlipX EQU 7 +RotateNoneFlipY EQU Rotate180FlipX +Rotate90FlipY EQU Rotate270FlipX +Rotate180FlipY EQU RotateNoneFlipX +Rotate270FlipY EQU Rotate90FlipX +RotateNoneFlipXY EQU Rotate180FlipNone +Rotate90FlipXY EQU Rotate270FlipNone +Rotate180FlipXY EQU RotateNoneFlipNone +Rotate270FlipXY EQU Rotate90FlipNone + + +StringFormatFlagsDirectionRightToLeft EQU 01h +StringFormatFlagsDirectionVertical EQU 02h +StringFormatFlagsNoFitBlackBox EQU 04h +StringFormatFlagsDisplayFormatControl EQU 020h +StringFormatFlagsNoFontFallback EQU 0400h +StringFormatFlagsMeasureTrailingSpaces EQU 0800h +StringFormatFlagsNoWrap EQU 01000h +StringFormatFlagsLineLimit EQU 02000h +StringFormatFlagsNoClip EQU 04000h + +StringTrimmingNone EQU 0 +StringTrimmingCharacter EQU 1 +StringTrimmingWord EQU 2 +StringTrimmingEllipsisCharacter EQU 3 +StringTrimmingEllipsisWord EQU 4 +StringTrimmingEllipsisPath EQU 5 + + +StringDigitSubstituteUser EQU 0 +StringDigitSubstituteNone EQU 1 +StringDigitSubstituteNational EQU 2 +StringDigitSubstituteTraditional EQU 3 + + +HotkeyPrefixNone EQU 0 +HotkeyPrefixShow EQU 1 +HotkeyPrefixHide EQU 2 + + +StringAlignmentNear EQU 0 +StringAlignmentCenter EQU 1 +StringAlignmentFar EQU 2 + +FlushIntentionFlush EQU 0 +FlushIntentionSync EQU 1 + + +EncoderParameterValueTypeByte EQU 1 +EncoderParameterValueTypeASCII EQU 2 +EncoderParameterValueTypeShort EQU 3 +EncoderParameterValueTypeLong EQU 4 +EncoderParameterValueTypeRational EQU 5 +EncoderParameterValueTypeLongRange EQU 6 +EncoderParameterValueTypeUndefined EQU 7 +EncoderParameterValueTypeRationalRange EQU 8 +EncoderValueColorTypeCMYK EQU 0 +EncoderValueColorTypeYCCK EQU 1 +EncoderValueCompressionLZW EQU 2 +EncoderValueCompressionCCITT3 EQU 3 +EncoderValueCompressionCCITT4 EQU 4 +EncoderValueCompressionRle EQU 5 +EncoderValueCompressionNone EQU 6 +EncoderValueScanMethodInterlaced EQU 7 +EncoderValueScanMethodNonInterlaced EQU 8 +EncoderValueVersionGif87 EQU 9 +EncoderValueVersionGif89 EQU 10 +EncoderValueRenderProgressive EQU 11 +EncoderValueRenderNonProgressive EQU 12 +EncoderValueTransformRotate90 EQU 13 +EncoderValueTransformRotate180 EQU 14 +EncoderValueTransformRotate270 EQU 15 +EncoderValueTransformFlipHorizontal EQU 16 +EncoderValueTransformFlipVertical EQU 17 +EncoderValueMultiFrame EQU 18 +EncoderValueLastFrame EQU 19 +EncoderValueFlush EQU 20 +EncoderValueFrameDimensionTime EQU 21 +EncoderValueFrameDimensionResolution EQU 22 +EncoderValueFrameDimensionPage EQU 23 +EncoderCompression EQU 0 +EncoderColorDepth EQU 1 +EncoderScanMethod EQU 2 +EncoderVersion EQU 3 +EncoderRenderMethod EQU 4 +EncoderQuality EQU 5 +EncoderTransformation EQU 6 +EncoderLuminanceTable EQU 7 +EncoderChrominanceTable EQU 8 +EncoderSaveFlag EQU 9 + +PixelOffsetModeInvalid EQU QualityModeInvalid +PixelOffsetModeDefault EQU QualityModeDefault +PixelOffsetModeHighSpeed EQU QualityModeLow +PixelOffsetModeHighQuality EQU QualityModeHigh +PixelOffsetModeNone EQU 3 +PixelOffsetModeHalf EQU 4 + +TextRenderingHintSystemDefault EQU 0 +TextRenderingHintSingleBitPerPixelGridFit EQU 1 +TextRenderingHintSingleBitPerPixel EQU 2 +TextRenderingHintAntiAliasGridFit EQU 3 +TextRenderingHintAntiAlias EQU 4 +TextRenderingHintClearTypeGridFit EQU 5 + +MetafileTypeInvalid EQU 0 +MetafileTypeWmf EQU 1 +MetafileTypeWmfPlaceable EQU 2 +MetafileTypeEmf EQU 3 +MetafileTypeEmfPlusOnly EQU 4 +MetafileTypeEmfPlusDual EQU 5 + + +EmfTypeEmfOnly EQU MetafileTypeEmf +EmfTypeEmfPlusOnly EQU MetafileTypeEmfPlusOnly +EmfTypeEmfPlusDual EQU MetafileTypeEmfPlusDual + + +ObjectTypeInvalid EQU 0 +ObjectTypeBrush EQU 1 +ObjectTypePen EQU 2 +ObjectTypePath EQU 3 +ObjectTypeRegion EQU 4 +ObjectTypeImage EQU 5 +ObjectTypeFont EQU 6 +ObjectTypeStringFormat EQU 7 +ObjectTypeImageAttributes EQU 8 +ObjectTypeCustomLineCap EQU 9 + +ObjectTypeMax EQU ObjectTypeCustomLineCap +ObjectTypeMin EQU ObjectTypeBrush + + +MetafileFrameUnitPixel EQU UnitPixel +MetafileFrameUnitPoint EQU UnitPoint +MetafileFrameUnitInch EQU UnitInch +MetafileFrameUnitDocument EQU UnitDocument +MetafileFrameUnitMillimeter EQU UnitMillimeter +MetafileFrameUnitGdi EQU 7 + + +CoordinateSpaceWorld EQU 0 +CoordinateSpacePage EQU 1 +CoordinateSpaceDevice EQU 2 + +FlatnessDefault EQU 0.25 + +;;;; end gdiplus + +include winextra.inc + +; 垂垂垂垂垂垂垂垂垂垂垂垂垂垂垂垂垂垂垂垂垂垂垂垂垂垂垂垂垂垂垂垂垂垂垂垂? +; It is not recomended that WINDOWS.INC be modified but if you need to add +; equates or structures to WINDOWS.INC, do not write anything after the +; following conditional assembly directive that display the duplicate +; warning or it will be duplicated if the file is included more than once. +; 垂垂垂垂垂垂垂垂垂垂垂垂垂垂垂垂垂垂垂垂垂垂垂垂垂垂垂垂垂垂垂垂垂垂垂垂? + +ELSE +echo ------------------------------------------ +echo WARNING Duplicate include file windows.inc +echo ------------------------------------------ +ENDIF + +``` + +`masm32/winextra.inc`: + +```inc + +;;;; extrahead + +comment * คคคคคคคคคคคคคคคคคคคคคคคคคคคคคคคคคคคคคคคคคคคคคคคคคคคคคคคคคคคคคคคค? + + winextra.inc is the second part of the windows.inc file that is + called by an "include" directive at the end of windows.inc. + + This technique of splitting the windows.inc file is used to avoid + the 32k line count limit in ML.EXE versions 6.14 and 6.15. The later + 32 bit versions of ML.EXE are not effected by this limit. + + This file is covered by the copyright in windows.inc. + + คคคคคคคคคคคคคคคคคคคคคคคคคคคคคคคคคคคคคคคคคคคคคคคคคคคคคคคคคคคคคคคค?* + +IFNDEF _winextra_ +_winextra_ equ <1> + +;;;; end extrahead + +;;;; ddraw + +DIRECTDRAW_VERSION equ 0700h +; IUnknown equ void ; problem with definition of "typedef void" +_FACDD equ 876h +DUMMYUNIONNAMEN equ n +DDENUM_ATTACHEDSECONDARYDEVICES equ 00000001h +DDENUM_DETACHEDSECONDARYDEVICES equ 00000002h +DDENUM_NONDISPLAYDEVICES equ 00000004h +DDCREATE_HARDWAREONLY equ 00000001h +DDCREATE_EMULATIONONLY equ 00000002h +DD_ROP_SPACE equ 256/32 +MAX_DDDEVICEID_STRING equ 512 +DDGDI_GETHOSTIDENTIFIER equ 00000001h +INTERFACE equ IDirectDraw +DDSD_CAPS equ 00000001h +DDSD_HEIGHT equ 00000002h +DDSD_WIDTH equ 00000004h +DDSD_PITCH equ 00000008h +DDSD_BACKBUFFERCOUNT equ 00000020h +DDSD_ZBUFFERBITDEPTH equ 00000040h +DDSD_ALPHABITDEPTH equ 00000080h +DDSD_LPSURFACE equ 00000800h +DDSD_PIXELFORMAT equ 00001000h +DDSD_CKDESTOVERLAY equ 00002000h +DDSD_CKDESTBLT equ 00004000h +DDSD_CKSRCOVERLAY equ 00008000h +DDSD_CKSRCBLT equ 00010000h +DDSD_MIPMAPCOUNT equ 00020000h +DDSD_REFRESHRATE equ 00040000h +DDSD_LINEARSIZE equ 00080000h +DDSD_TEXTURESTAGE equ 00100000h +DDSD_FVF equ 00200000h +DDSD_SRCVBHANDLE equ 00400000h +DDSD_DEPTH equ 00800000h +DDSD_ALL equ 00FFF9EEh +DDOSD_GUID equ 00000001h +DDOSD_COMPRESSION_RATIO equ 00000002h +DDOSD_SCAPS equ 00000004h +DDOSD_OSCAPS equ 00000008h +DDOSD_ALL equ 0000000Fh +DDOSDCAPS_OPTCOMPRESSED equ 00000001h +DDOSDCAPS_OPTREORDERED equ 00000002h +DDOSDCAPS_MONOLITHICMIPMAP equ 00000004h +DDOSDCAPS_VALIDSCAPS equ 30004800h +DDOSDCAPS_VALIDOSCAPS equ 00000007h +DDCOLOR_BRIGHTNESS equ 00000001h +DDCOLOR_CONTRAST equ 00000002h +DDCOLOR_HUE equ 00000004h +DDCOLOR_SATURATION equ 00000008h +DDCOLOR_SHARPNESS equ 00000010h +DDCOLOR_GAMMA equ 00000020h +DDCOLOR_COLORENABLE equ 00000040h +DDSCAPS_RESERVED1 equ 00000001h +DDSCAPS_ALPHA equ 00000002h +DDSCAPS_BACKBUFFER equ 00000004h +DDSCAPS_COMPLEX equ 00000008h +DDSCAPS_FLIP equ 00000010h +DDSCAPS_FRONTBUFFER equ 00000020h +DDSCAPS_OFFSCREENPLAIN equ 00000040h +DDSCAPS_OVERLAY equ 00000080h +DDSCAPS_PALETTE equ 00000100h +DDSCAPS_PRIMARYSURFACE equ 00000200h +DDSCAPS_RESERVED3 equ 00000400h +DDSCAPS_PRIMARYSURFACELEFT equ 00000000h +DDSCAPS_SYSTEMMEMORY equ 00000800h +DDSCAPS_TEXTURE equ 00001000h +DDSCAPS_3DDEVICE equ 00002000h +DDSCAPS_VIDEOMEMORY equ 00004000h +DDSCAPS_VISIBLE equ 00008000h +DDSCAPS_WRITEONLY equ 00010000h +DDSCAPS_ZBUFFER equ 00020000h +DDSCAPS_OWNDC equ 00040000h +DDSCAPS_LIVEVIDEO equ 00080000h +DDSCAPS_HWCODEC equ 00100000h +DDSCAPS_MODEX equ 00200000h +DDSCAPS_MIPMAP equ 00400000h +DDSCAPS_RESERVED2 equ 00800000h +DDSCAPS_ALLOCONLOAD equ 04000000h +DDSCAPS_VIDEOPORT equ 08000000h +DDSCAPS_LOCALVIDMEM equ 10000000h +DDSCAPS_NONLOCALVIDMEM equ 20000000h +DDSCAPS_STANDARDVGAMODE equ 40000000h +DDSCAPS_OPTIMIZED equ 80000000h +DDSCAPS2_RESERVED4 equ 00000002h +DDSCAPS2_HARDWAREDEINTERLACE equ 00000000h +DDSCAPS2_HINTDYNAMIC equ 00000004h +DDSCAPS2_HINTSTATIC equ 00000008h +DDSCAPS2_TEXTUREMANAGE equ 00000010h +DDSCAPS2_RESERVED1 equ 00000020h +DDSCAPS2_RESERVED2 equ 00000040h +DDSCAPS2_OPAQUE equ 00000080h +DDSCAPS2_HINTANTIALIASING equ 00000100h +DDSCAPS2_CUBEMAP equ 00000200h +DDSCAPS2_CUBEMAP_POSITIVEX equ 00000400h +DDSCAPS2_CUBEMAP_NEGATIVEX equ 00000800h +DDSCAPS2_CUBEMAP_POSITIVEY equ 00001000h +DDSCAPS2_CUBEMAP_NEGATIVEY equ 00002000h +DDSCAPS2_CUBEMAP_POSITIVEZ equ 00004000h +DDSCAPS2_CUBEMAP_NEGATIVEZ equ 00008000h +DDSCAPS2_MIPMAPSUBLEVEL equ 00010000h +DDSCAPS2_D3DTEXTUREMANAGE equ 00020000h +DDSCAPS2_DONOTPERSIST equ 00040000h +DDSCAPS2_STEREOSURFACELEFT equ 00080000h +DDSCAPS2_VOLUME equ 00200000h +DDSCAPS2_NOTUSERLOCKABLE equ 00400000h +DDSCAPS2_POINTS equ 00800000h +DDSCAPS2_RTPATCHES equ 01000000h +DDSCAPS2_NPATCHES equ 02000000h +DDSCAPS2_RESERVED3 equ 04000000h +DDSCAPS2_DISCARDBACKBUFFER equ 10000000h +DDSCAPS2_ENABLEALPHACHANNEL equ 20000000h +DDSCAPS2_EXTENDEDFORMATPRIMARY equ 40000000h +DDSCAPS2_ADDITIONALPRIMARY equ 80000000h +DDSCAPS3_MULTISAMPLE_MASK equ 0000001Fh +DDSCAPS3_MULTISAMPLE_QUALITY_MASK equ 000000E0h +DDSCAPS3_MULTISAMPLE_QUALITY_SHIFT equ 5 +DDSCAPS3_RESERVED1 equ 00000100h +DDSCAPS3_RESERVED2 equ 00000200h +DDSCAPS3_LIGHTWEIGHTMIPMAP equ 00000400h +DDSCAPS3_AUTOGENMIPMAP equ 00000800h +DDSCAPS3_DMAP equ 00001000h +DDSCAPS3_CREATESHAREDRESOURCE equ 00002000h +DDSCAPS3_READONLYRESOURCE equ 00004000h +DDSCAPS3_OPENSHAREDRESOURCE equ 00008000h +DDCAPS_3D equ 00000001h +DDCAPS_ALIGNBOUNDARYDEST equ 00000002h +DDCAPS_ALIGNSIZEDEST equ 00000004h +DDCAPS_ALIGNBOUNDARYSRC equ 00000008h +DDCAPS_ALIGNSIZESRC equ 00000010h +DDCAPS_ALIGNSTRIDE equ 00000020h +DDCAPS_BLT equ 00000040h +DDCAPS_BLTQUEUE equ 00000080h +DDCAPS_BLTFOURCC equ 00000100h +DDCAPS_BLTSTRETCH equ 00000200h +DDCAPS_GDI equ 00000400h +DDCAPS_OVERLAY equ 00000800h +DDCAPS_OVERLAYCANTCLIP equ 00001000h +DDCAPS_OVERLAYFOURCC equ 00002000h +DDCAPS_OVERLAYSTRETCH equ 00004000h +DDCAPS_PALETTE equ 00008000h +DDCAPS_PALETTEVSYNC equ 00010000h +DDCAPS_READSCANLINE equ 00020000h +DDCAPS_RESERVED1 equ 00040000h +DDCAPS_VBI equ 00080000h +DDCAPS_ZBLTS equ 00100000h +DDCAPS_ZOVERLAYS equ 00200000h +DDCAPS_COLORKEY equ 00400000h +DDCAPS_ALPHA equ 00800000h +DDCAPS_COLORKEYHWASSIST equ 01000000h +DDCAPS_NOHARDWARE equ 02000000h +DDCAPS_BLTCOLORFILL equ 04000000h +DDCAPS_BANKSWITCHED equ 08000000h +DDCAPS_BLTDEPTHFILL equ 10000000h +DDCAPS_CANCLIP equ 20000000h +DDCAPS_CANCLIPSTRETCHED equ 40000000h +DDCAPS_CANBLTSYSMEM equ 80000000h +DDCAPS2_CERTIFIED equ 00000001h +DDCAPS2_NO2DDURING3DSCENE equ 00000002h +DDCAPS2_VIDEOPORT equ 00000004h +DDCAPS2_AUTOFLIPOVERLAY equ 00000008h +DDCAPS2_CANBOBINTERLEAVED equ 00000010h +DDCAPS2_CANBOBNONINTERLEAVED equ 00000020h +DDCAPS2_COLORCONTROLOVERLAY equ 00000040h +DDCAPS2_COLORCONTROLPRIMARY equ 00000080h +DDCAPS2_CANDROPZ16BIT equ 00000100h +DDCAPS2_NONLOCALVIDMEM equ 00000200h +DDCAPS2_NONLOCALVIDMEMCAPS equ 00000400h +DDCAPS2_NOPAGELOCKREQUIRED equ 00000800h +DDCAPS2_WIDESURFACES equ 00001000h +DDCAPS2_CANFLIPODDEVEN equ 00002000h +DDCAPS2_CANBOBHARDWARE equ 00004000h +DDCAPS2_COPYFOURCC equ 00008000h +DDCAPS2_PRIMARYGAMMA equ 00020000h +DDCAPS2_CANRENDERWINDOWED equ 00080000h +DDCAPS2_CANCALIBRATEGAMMA equ 00100000h +DDCAPS2_FLIPINTERVAL equ 00200000h +DDCAPS2_FLIPNOVSYNC equ 00400000h +DDCAPS2_CANMANAGETEXTURE equ 00800000h +DDCAPS2_TEXMANINNONLOCALVIDMEM equ 01000000h +DDCAPS2_STEREO equ 02000000h +DDCAPS2_SYSTONONLOCAL_AS_SYSTOLOCAL equ 04000000h +DDCAPS2_RESERVED1 equ 08000000h +DDCAPS2_CANMANAGERESOURCE equ 10000000h +DDCAPS2_DYNAMICTEXTURES equ 20000000h +DDCAPS2_CANAUTOGENMIPMAP equ 40000000h +DDCAPS2_CANSHARERESOURCE equ 80000000h +DDFXALPHACAPS_BLTALPHAEDGEBLEND equ 00000001h +DDFXALPHACAPS_BLTALPHAPIXELS equ 00000002h +DDFXALPHACAPS_BLTALPHAPIXELSNEG equ 00000004h +DDFXALPHACAPS_BLTALPHASURFACES equ 00000008h +DDFXALPHACAPS_BLTALPHASURFACESNEG equ 00000010h +DDFXALPHACAPS_OVERLAYALPHAEDGEBLEND equ 00000020h +DDFXALPHACAPS_OVERLAYALPHAPIXELS equ 00000040h +DDFXALPHACAPS_OVERLAYALPHAPIXELSNEG equ 00000080h +DDFXALPHACAPS_OVERLAYALPHASURFACES equ 00000100h +DDFXALPHACAPS_OVERLAYALPHASURFACESNEG equ 00000200h +DDFXCAPS_BLTARITHSTRETCHY equ 00000020h +DDFXCAPS_BLTARITHSTRETCHYN equ 00000010h +DDFXCAPS_BLTMIRRORLEFTRIGHT equ 00000040h +DDFXCAPS_BLTMIRRORUPDOWN equ 00000080h +DDFXCAPS_BLTROTATION equ 00000100h +DDFXCAPS_BLTROTATION90 equ 00000200h +DDFXCAPS_BLTSHRINKX equ 00000400h +DDFXCAPS_BLTSHRINKXN equ 00000800h +DDFXCAPS_BLTSHRINKY equ 00001000h +DDFXCAPS_BLTSHRINKYN equ 00002000h +DDFXCAPS_BLTSTRETCHX equ 00004000h +DDFXCAPS_BLTSTRETCHXN equ 00008000h +DDFXCAPS_BLTSTRETCHY equ 00010000h +DDFXCAPS_BLTSTRETCHYN equ 00020000h +DDFXCAPS_OVERLAYARITHSTRETCHY equ 00040000h +DDFXCAPS_OVERLAYARITHSTRETCHYN equ 00000008h +DDFXCAPS_OVERLAYSHRINKX equ 00080000h +DDFXCAPS_OVERLAYSHRINKXN equ 00100000h +DDFXCAPS_OVERLAYSHRINKY equ 00200000h +DDFXCAPS_OVERLAYSHRINKYN equ 00400000h +DDFXCAPS_OVERLAYSTRETCHX equ 00800000h +DDFXCAPS_OVERLAYSTRETCHXN equ 01000000h +DDFXCAPS_OVERLAYSTRETCHY equ 02000000h +DDFXCAPS_OVERLAYSTRETCHYN equ 04000000h +DDFXCAPS_OVERLAYMIRRORLEFTRIGHT equ 08000000h +DDFXCAPS_OVERLAYMIRRORUPDOWN equ 10000000h +DDFXCAPS_OVERLAYDEINTERLACE equ 20000000h +DDFXCAPS_BLTALPHA equ 00000001h +DDFXCAPS_BLTFILTER equ DDFXCAPS_BLTARITHSTRETCHY +DDFXCAPS_OVERLAYALPHA equ 00000004h +DDFXCAPS_OVERLAYFILTER equ DDFXCAPS_OVERLAYARITHSTRETCHY +DDSVCAPS_RESERVED1 equ 00000001h +DDSVCAPS_RESERVED2 equ 00000002h +DDSVCAPS_RESERVED3 equ 00000004h +DDSVCAPS_RESERVED4 equ 00000008h +DDSVCAPS_STEREOSEQUENTIAL equ 00000010h +DDPCAPS_4BIT equ 00000001h +DDPCAPS_8BITENTRIES equ 00000002h +DDPCAPS_8BIT equ 00000004h +DDPCAPS_INITIALIZE equ 00000000h +DDPCAPS_PRIMARYSURFACE equ 00000010h +DDPCAPS_PRIMARYSURFACELEFT equ 00000020h +DDPCAPS_ALLOW256 equ 00000040h +DDPCAPS_VSYNC equ 00000080h +DDPCAPS_1BIT equ 00000100h +DDPCAPS_2BIT equ 00000200h +DDPCAPS_ALPHA equ 00000400h +DDSPD_IUNKNOWNPOINTER equ 00000001h +DDSPD_VOLATILE equ 00000002h +DDBD_1 equ 00004000h +DDBD_2 equ 00002000h +DDBD_4 equ 00001000h +DDBD_8 equ 00000800h +DDBD_16 equ 00000400h +DDBD_24 equ 00000200h +DDBD_32 equ 00000100h +DDCKEY_COLORSPACE equ 00000001h +DDCKEY_DESTBLT equ 00000002h +DDCKEY_DESTOVERLAY equ 00000004h +DDCKEY_SRCBLT equ 00000008h +DDCKEY_SRCOVERLAY equ 00000010h +DDCKEYCAPS_DESTBLT equ 00000001h +DDCKEYCAPS_DESTBLTCLRSPACE equ 00000002h +DDCKEYCAPS_DESTBLTCLRSPACEYUV equ 00000004h +DDCKEYCAPS_DESTBLTYUV equ 00000008h +DDCKEYCAPS_DESTOVERLAY equ 00000010h +DDCKEYCAPS_DESTOVERLAYCLRSPACE equ 00000020h +DDCKEYCAPS_DESTOVERLAYCLRSPACEYUV equ 00000040h +DDCKEYCAPS_DESTOVERLAYONEACTIVE equ 00000080h +DDCKEYCAPS_DESTOVERLAYYUV equ 00000100h +DDCKEYCAPS_SRCBLT equ 00000200h +DDCKEYCAPS_SRCBLTCLRSPACE equ 00000400h +DDCKEYCAPS_SRCBLTCLRSPACEYUV equ 00000800h +DDCKEYCAPS_SRCBLTYUV equ 00001000h +DDCKEYCAPS_SRCOVERLAY equ 00002000h +DDCKEYCAPS_SRCOVERLAYCLRSPACE equ 00004000h +DDCKEYCAPS_SRCOVERLAYCLRSPACEYUV equ 00008000h +DDCKEYCAPS_SRCOVERLAYONEACTIVE equ 00010000h +DDCKEYCAPS_SRCOVERLAYYUV equ 00020000h +DDCKEYCAPS_NOCOSTOVERLAY equ 00040000h +DDPF_ALPHAPIXELS equ 00000001h +DDPF_ALPHA equ 00000002h +DDPF_FOURCC equ 00000004h +DDPF_PALETTEINDEXED4 equ 00000008h +DDPF_PALETTEINDEXEDTO8 equ 00000010h +DDPF_PALETTEINDEXED8 equ 00000020h +DDPF_RGB equ 00000040h +DDPF_COMPRESSED equ 00000080h +DDPF_RGBTOYUV equ 00000100h +DDPF_YUV equ 00000200h +DDPF_ZBUFFER equ 00000400h +DDPF_PALETTEINDEXED1 equ 00000800h +DDPF_PALETTEINDEXED2 equ 00001000h +DDPF_ZPIXELS equ 00002000h +DDPF_STENCILBUFFER equ 00004000h +DDPF_ALPHAPREMULT equ 00008000h +DDPF_LUMINANCE equ 00020000h +DDPF_BUMPLUMINANCE equ 00040000h +DDPF_BUMPDUDV equ 00080000h +DDENUMSURFACES_ALL equ 00000001h +DDENUMSURFACES_MATCH equ 00000002h +DDENUMSURFACES_NOMATCH equ 00000004h +DDENUMSURFACES_CANBECREATED equ 00000008h +DDENUMSURFACES_DOESEXIST equ 00000010h +DDSDM_STANDARDVGAMODE equ 00000001h +DDEDM_REFRESHRATES equ 00000001h +DDEDM_STANDARDVGAMODES equ 00000002h +DDSCL_FULLSCREEN equ 00000001h +DDSCL_ALLOWREBOOT equ 00000002h +DDSCL_NOWINDOWCHANGES equ 00000004h +DDSCL_NORMAL equ 00000008h +DDSCL_EXCLUSIVE equ 00000010h +DDSCL_ALLOWMODEX equ 00000040h +DDSCL_SETFOCUSWINDOW equ 00000080h +DDSCL_SETDEVICEWINDOW equ 00000100h +DDSCL_CREATEDEVICEWINDOW equ 00000200h +DDSCL_MULTITHREADED equ 00000400h +DDSCL_FPUSETUP equ 00000800h +DDSCL_FPUPRESERVE equ 00001000h +DDBLT_ALPHADEST equ 00000001h +DDBLT_ALPHADESTCONSTOVERRIDE equ 00000002h +DDBLT_ALPHADESTNEG equ 00000004h +DDBLT_ALPHADESTSURFACEOVERRIDE equ 00000008h +DDBLT_ALPHAEDGEBLEND equ 00000010h +DDBLT_ALPHASRC equ 00000020h +DDBLT_ALPHASRCCONSTOVERRIDE equ 00000040h +DDBLT_ALPHASRCNEG equ 00000080h +DDBLT_ALPHASRCSURFACEOVERRIDE equ 00000100h +DDBLT_ASYNC equ 00000200h +DDBLT_COLORFILL equ 00000400h +DDBLT_DDFX equ 00000800h +DDBLT_DDROPS equ 00001000h +DDBLT_KEYDEST equ 00002000h +DDBLT_KEYDESTOVERRIDE equ 00004000h +DDBLT_KEYSRC equ 00008000h +DDBLT_KEYSRCOVERRIDE equ 00010000h +DDBLT_ROP equ 00020000h +DDBLT_ROTATIONANGLE equ 00040000h +DDBLT_ZBUFFER equ 00080000h +DDBLT_ZBUFFERDESTCONSTOVERRIDE equ 00100000h +DDBLT_ZBUFFERDESTOVERRIDE equ 00200000h +DDBLT_ZBUFFERSRCCONSTOVERRIDE equ 00400000h +DDBLT_ZBUFFERSRCOVERRIDE equ 00800000h +DDBLT_WAIT equ 01000000h +DDBLT_DEPTHFILL equ 02000000h +DDBLT_DONOTWAIT equ 08000000h +DDBLT_PRESENTATION equ 10000000h +DDBLT_LAST_PRESENTATION equ 20000000h +DDBLT_EXTENDED_FLAGS equ 40000000h +DDBLT_EXTENDED_LINEAR_CONTENT equ 00000004h +DDBLTFAST_NOCOLORKEY equ 00000000h +DDBLTFAST_SRCCOLORKEY equ 00000001h +DDBLTFAST_DESTCOLORKEY equ 00000002h +DDBLTFAST_WAIT equ 00000010h +DDBLTFAST_DONOTWAIT equ 00000020h +DDFLIP_WAIT equ 00000001h +DDFLIP_EVEN equ 00000002h +DDFLIP_ODD equ 00000004h +DDFLIP_NOVSYNC equ 00000008h +DDFLIP_INTERVAL2 equ 02000000h +DDFLIP_INTERVAL3 equ 03000000h +DDFLIP_INTERVAL4 equ 04000000h +DDFLIP_STEREO equ 00000010h +DDFLIP_DONOTWAIT equ 00000020h +DDOVER_ALPHADEST equ 00000001h +DDOVER_ALPHADESTCONSTOVERRIDE equ 00000002h +DDOVER_ALPHADESTNEG equ 00000004h +DDOVER_ALPHADESTSURFACEOVERRIDE equ 00000008h +DDOVER_ALPHAEDGEBLEND equ 00000010h +DDOVER_ALPHASRC equ 00000020h +DDOVER_ALPHASRCCONSTOVERRIDE equ 00000040h +DDOVER_ALPHASRCNEG equ 00000080h +DDOVER_ALPHASRCSURFACEOVERRIDE equ 00000100h +DDOVER_HIDE equ 00000200h +DDOVER_KEYDEST equ 00000400h +DDOVER_KEYDESTOVERRIDE equ 00000800h +DDOVER_KEYSRC equ 00001000h +DDOVER_KEYSRCOVERRIDE equ 00002000h +DDOVER_SHOW equ 00004000h +DDOVER_ADDDIRTYRECT equ 00008000h +DDOVER_REFRESHDIRTYRECTS equ 00010000h +DDOVER_REFRESHALL equ 00020000h +DDOVER_DDFX equ 00080000h +DDOVER_AUTOFLIP equ 00100000h +DDOVER_BOB equ 00200000h +DDOVER_OVERRIDEBOBWEAVE equ 00400000h +DDOVER_INTERLEAVED equ 00800000h +DDOVER_BOBHARDWARE equ 01000000h +DDOVER_ARGBSCALEFACTORS equ 02000000h +DDOVER_DEGRADEARGBSCALING equ 04000000h +DDSETSURFACEDESC_RECREATEDC equ 00000000h +DDSETSURFACEDESC_PRESERVEDC equ 00000001h +DDLOCK_SURFACEMEMORYPTR equ 00000000h +DDLOCK_WAIT equ 00000001h +DDLOCK_EVENT equ 00000002h +DDLOCK_READONLY equ 00000010h +DDLOCK_WRITEONLY equ 00000020h +DDLOCK_NOSYSLOCK equ 00000800h +DDLOCK_NOOVERWRITE equ 00001000h +DDLOCK_DISCARDCONTENTS equ 00002000h +DDLOCK_OKTOSWAP equ 00002000h +DDLOCK_DONOTWAIT equ 00004000h +DDLOCK_HASVOLUMETEXTUREBOXRECT equ 00008000h +DDLOCK_NODIRTYUPDATE equ 00010000h +DDBLTFX_ARITHSTRETCHY equ 00000001h +DDBLTFX_MIRRORLEFTRIGHT equ 00000002h +DDBLTFX_MIRRORUPDOWN equ 00000004h +DDBLTFX_NOTEARING equ 00000008h +DDBLTFX_ROTATE180 equ 00000010h +DDBLTFX_ROTATE270 equ 00000020h +DDBLTFX_ROTATE90 equ 00000040h +DDBLTFX_ZBUFFERRANGE equ 00000080h +DDBLTFX_ZBUFFERBASEDEST equ 00000100h +DDOVERFX_ARITHSTRETCHY equ 00000001h +DDOVERFX_MIRRORLEFTRIGHT equ 00000002h +DDOVERFX_MIRRORUPDOWN equ 00000004h +DDOVERFX_DEINTERLACE equ 00000008h +DDWAITVB_BLOCKBEGIN equ 00000001h +DDWAITVB_BLOCKBEGINEVENT equ 00000002h +DDWAITVB_BLOCKEND equ 00000004h +DDGFS_CANFLIP equ 00000001h +DDGFS_ISFLIPDONE equ 00000002h +DDGBS_CANBLT equ 00000001h +DDGBS_ISBLTDONE equ 00000002h +DDENUMOVERLAYZ_BACKTOFRONT equ 00000000h +DDENUMOVERLAYZ_FRONTTOBACK equ 00000001h +DDOVERZ_SENDTOFRONT equ 00000000h +DDOVERZ_SENDTOBACK equ 00000001h +DDOVERZ_MOVEFORWARD equ 00000002h +DDOVERZ_MOVEBACKWARD equ 00000003h +DDOVERZ_INSERTINFRONTOF equ 00000004h +DDOVERZ_INSERTINBACKOF equ 00000005h +DDSGR_CALIBRATE equ 00000001h +DDSMT_ISTESTREQUIRED equ 00000001h +DDEM_MODEPASSED equ 00000001h +DDEM_MODEFAILED equ 00000002h +DD_OK equ S_OK +DD_FALSE equ S_FALSE +DDENUMRET_CANCEL equ 0 +DDENUMRET_OK equ 1 +DDERR_GENERIC equ E_FAIL +DDERR_INVALIDPARAMS equ E_INVALIDARG +DDERR_OUTOFMEMORY equ E_OUTOFMEMORY +DDERR_UNSUPPORTED equ E_NOTIMPL +DDERR_NOTINITIALIZED equ CO_E_NOTINITIALIZED + +;;;; end ddraw +;;;; misc + +SHTDN_REASON_FLAG_COMMENT_REQUIRED equ 01000000h +SHTDN_REASON_FLAG_DIRTY_PROBLEM_ID_REQUIRED equ 02000000h +SHTDN_REASON_FLAG_CLEAN_UI equ 04000000h +SHTDN_REASON_FLAG_DIRTY_UI equ 08000000h +SHTDN_REASON_FLAG_USER_DEFINED equ 40000000h +SHTDN_REASON_FLAG_PLANNED equ 80000000h +SHTDN_REASON_MAJOR_OTHER equ 00000000h +SHTDN_REASON_MAJOR_NONE equ 00000000h +SHTDN_REASON_MAJOR_HARDWARE equ 00010000h +SHTDN_REASON_MAJOR_OPERATINGSYSTEM equ 00020000h +SHTDN_REASON_MAJOR_SOFTWARE equ 00030000h +SHTDN_REASON_MAJOR_APPLICATION equ 00040000h +SHTDN_REASON_MAJOR_SYSTEM equ 00050000h +SHTDN_REASON_MAJOR_POWER equ 00060000h +SHTDN_REASON_MAJOR_LEGACY_API equ 00070000h +SHTDN_REASON_MINOR_OTHER equ 00000000h +SHTDN_REASON_MINOR_NONE equ 000000FFh +SHTDN_REASON_MINOR_MAINTENANCE equ 00000001h +SHTDN_REASON_MINOR_INSTALLATION equ 00000002h +SHTDN_REASON_MINOR_UPGRADE equ 00000003h +SHTDN_REASON_MINOR_RECONFIG equ 00000004h +SHTDN_REASON_MINOR_HUNG equ 00000005h +SHTDN_REASON_MINOR_UNSTABLE equ 00000006h +SHTDN_REASON_MINOR_DISK equ 00000007h +SHTDN_REASON_MINOR_PROCESSOR equ 00000008h +SHTDN_REASON_MINOR_NETWORKCARD equ 00000009h +SHTDN_REASON_MINOR_POWER_SUPPLY equ 0000000Ah +SHTDN_REASON_MINOR_CORDUNPLUGGED equ 0000000Bh +SHTDN_REASON_MINOR_ENVIRONMENT equ 0000000Ch +SHTDN_REASON_MINOR_HARDWARE_DRIVER equ 0000000Dh +SHTDN_REASON_MINOR_OTHERDRIVER equ 0000000Eh +SHTDN_REASON_MINOR_BLUESCREEN equ 0000000Fh +SHTDN_REASON_MINOR_SERVICEPACK equ 00000010h +SHTDN_REASON_MINOR_HOTFIX equ 00000011h +SHTDN_REASON_MINOR_SECURITYFIX equ 00000012h +SHTDN_REASON_MINOR_SECURITY equ 00000013h +SHTDN_REASON_MINOR_NETWORK_CONNECTIVITY equ 00000014h +SHTDN_REASON_MINOR_WMI equ 00000015h +SHTDN_REASON_MINOR_SERVICEPACK_UNINSTALL equ 00000016h +SHTDN_REASON_MINOR_HOTFIX_UNINSTALL equ 00000017h +SHTDN_REASON_MINOR_SECURITYFIX_UNINSTALL equ 00000018h +SHTDN_REASON_MINOR_MMC equ 00000019h +SHTDN_REASON_MINOR_SYSTEMRESTORE equ 0000001Ah +SHTDN_REASON_MINOR_TERMSRV equ 00000020h +SHTDN_REASON_MINOR_DC_PROMOTION equ 00000021h +SHTDN_REASON_MINOR_DC_DEMOTION equ 00000022h +SHTDN_REASON_UNKNOWN equ SHTDN_REASON_MINOR_NONE +SHTDN_REASON_VALID_BIT_MASK equ 0C0FFFFFFh +UCLEANUI equ SHTDN_REASON_FLAG_CLEAN_UI +UDIRTYUI equ SHTDN_REASON_FLAG_DIRTY_UI +MAX_REASON_NAME_LEN equ 64 +MAX_REASON_DESC_LEN equ 256 +MAX_REASON_BUGID_LEN equ 32 +MAX_REASON_COMMENT_LEN equ 512 +SHUTDOWN_TYPE_LEN equ 32 +POLICY_SHOWREASONUI_NEVER equ 0 +POLICY_SHOWREASONUI_ALWAYS equ 1 +POLICY_SHOWREASONUI_WORKSTATIONONLY equ 2 +POLICY_SHOWREASONUI_SERVERONLY equ 3 +SNAPSHOT_POLICY_NEVER equ 0 +SNAPSHOT_POLICY_ALWAYS equ 1 +SNAPSHOT_POLICY_UNPLANNED equ 2 +MAX_NUM_REASONS equ 256 + +; richole + +REO_GETOBJ_NO_INTERFACES equ 00000000h +REO_GETOBJ_POLEOBJ equ 00000001h +REO_GETOBJ_PSTG equ 00000002h +REO_GETOBJ_POLESITE equ 00000004h +REO_GETOBJ_ALL_INTERFACES equ 00000007h +REO_NULL equ 00000000h +REO_READWRITEMASK equ 0000003Fh +REO_DONTNEEDPALETTE equ 00000020h +REO_BLANK equ 00000010h +REO_DYNAMICSIZE equ 00000008h +REO_INVERTEDSELECT equ 00000004h +REO_BELOWBASELINE equ 00000002h +REO_RESIZABLE equ 00000001h +REO_LINK equ 80000000h +REO_STATIC equ 40000000h +REO_SELECTED equ 08000000h +REO_OPEN equ 04000000h +REO_INPLACEACTIVE equ 02000000h +REO_HILITED equ 01000000h +REO_LINKAVAILABLE equ 00800000h +REO_GETMETAFILE equ 00400000h +RECO_PASTE equ 00000000h +RECO_DROP equ 00000001h +RECO_COPY equ 00000002h +RECO_CUT equ 00000003h +RECO_DRAG equ 00000004h + +; rtutils + +TRACE_USE_FILE equ 00000001h +TRACE_USE_CONSOLE equ 00000002h +TRACE_NO_SYNCH equ 00000004h +TRACE_NO_STDINFO equ 00000001h +TRACE_USE_MASK equ 00000002h +TRACE_USE_MSEC equ 00000004h +TRACE_USE_DATE equ 00000008h +INVALID_TRACEID equ 0FFFFFFFFh +RTASSERT equ exp +RTUTILS_MAX_PROTOCOL_NAME_LEN equ 40 +RTUTILS_MAX_PROTOCOL_DLL_LEN equ 48 +MAX_PROTOCOL_NAME_LEN equ RTUTILS_MAX_PROTOCOL_NAME_LEN +MAX_PROTOCOL_DLL_LEN equ RTUTILS_MAX_PROTOCOL_DLL_LEN + +; scrnsave + +IDS_DESCRIPTION equ 1 +ID_APP equ 100 +DLG_SCRNSAVECONFIGURE equ 2003 +idsIsPassword equ 1000 +idsIniFile equ 1001 +idsScreenSaver equ 1002 +idsPassword equ 1003 +idsDifferentPW equ 1004 +idsChangePW equ 1005 +idsBadOldPW equ 1006 +idsAppName equ 1007 +idsNoHelpMemory equ 1008 +idsHelpFile equ 1009 +idsDefKeyword equ 1010 +MAXFILELEN equ 13 +TITLEBARNAMELEN equ 40 +APPNAMEBUFFERLEN equ 40 +BUFFLEN equ 255 +SCRM_VERIFYPW equ WM_APP + +; setupAPI + +WINSETUPAPI equ DECLSPEC_IMPORT +_SETUPAPI_VER equ _WIN32_WINNT +LINE_LEN equ 256 +MAX_INF_STRING_LENGTH equ 4096 +MAX_INF_SECTION_NAME_LENGTH equ 255 +MAX_TITLE_LEN equ 60 +MAX_INSTRUCTION_LEN equ 256 +MAX_LABEL_LEN equ 30 +MAX_SERVICE_NAME_LEN equ 256 +MAX_SUBTITLE_LEN equ 256 +SP_ALTPLATFORM_FLAGS_VERSION_RANGE equ 0001h +INF_STYLE_NONE equ 00000000h +INF_STYLE_OLDNT equ 00000001h +INF_STYLE_WIN4 equ 00000002h +INF_STYLE_CACHE_ENABLE equ 00000010h +INF_STYLE_CACHE_DISABLE equ 00000020h +INF_STYLE_CACHE_IGNORE equ 00000040h +DIRID_ABSOLUTE equ -1 +DIRID_ABSOLUTE_16BIT equ 0FFFFh +DIRID_NULL equ 0 +DIRID_SRCPATH equ 1 +DIRID_WINDOWS equ 10 +DIRID_SYSTEM equ 11 +DIRID_DRIVERS equ 12 +DIRID_IOSUBSYS equ DIRID_DRIVERS +DIRID_INF equ 17 +DIRID_HELP equ 18 +DIRID_FONTS equ 20 +DIRID_VIEWERS equ 21 +DIRID_COLOR equ 23 +DIRID_APPS equ 24 +DIRID_SHARED equ 25 +DIRID_BOOT equ 30 +DIRID_SYSTEM16 equ 50 +DIRID_SPOOL equ 51 +DIRID_SPOOLDRIVERS equ 52 +DIRID_USERPROFILE equ 53 +DIRID_LOADER equ 54 +DIRID_PRINTPROCESSOR equ 55 +DIRID_DEFAULT equ DIRID_SYSTEM +DIRID_COMMON_STARTMENU equ 16406 +DIRID_COMMON_PROGRAMS equ 16407 +DIRID_COMMON_STARTUP equ 16408 +DIRID_COMMON_DESKTOPDIRECTORY equ 16409 +DIRID_COMMON_FAVORITES equ 16415 +DIRID_COMMON_APPDATA equ 16419 +DIRID_PROGRAM_FILES equ 16422 +DIRID_SYSTEM_X86 equ 16425 +DIRID_PROGRAM_FILES_X86 equ 16426 +DIRID_PROGRAM_FILES_COMMON equ 16427 +DIRID_PROGRAM_FILES_COMMONX86 equ 16428 +DIRID_COMMON_TEMPLATES equ 16429 +DIRID_COMMON_DOCUMENTS equ 16430 +DIRID_USER equ 8000h +PSP_FILE_CALLBACK equ PSP_FILE_CALLBACK_W +SPFILENOTIFY_STARTQUEUE equ 00000001h +SPFILENOTIFY_ENDQUEUE equ 00000002h +SPFILENOTIFY_STARTSUBQUEUE equ 00000003h +SPFILENOTIFY_ENDSUBQUEUE equ 00000004h +SPFILENOTIFY_STARTDELETE equ 00000005h +SPFILENOTIFY_ENDDELETE equ 00000006h +SPFILENOTIFY_DELETEERROR equ 00000007h +SPFILENOTIFY_STARTRENAME equ 00000008h +SPFILENOTIFY_ENDRENAME equ 00000009h +SPFILENOTIFY_RENAMEERROR equ 0000000Ah +SPFILENOTIFY_STARTCOPY equ 0000000Bh +SPFILENOTIFY_ENDCOPY equ 0000000Ch +SPFILENOTIFY_COPYERROR equ 0000000Dh +SPFILENOTIFY_NEEDMEDIA equ 0000000Eh +SPFILENOTIFY_QUEUESCAN equ 0000000Fh +SPFILENOTIFY_CABINETINFO equ 00000010h +SPFILENOTIFY_FILEINCABINET equ 00000011h +SPFILENOTIFY_NEEDNEWCABINET equ 00000012h +SPFILENOTIFY_FILEEXTRACTED equ 00000013h +SPFILENOTIFY_FILEOPDELAYED equ 00000014h +SPFILENOTIFY_STARTBACKUP equ 00000015h +SPFILENOTIFY_BACKUPERROR equ 00000016h +SPFILENOTIFY_ENDBACKUP equ 00000017h +SPFILENOTIFY_QUEUESCAN_EX equ 00000018h +SPFILENOTIFY_STARTREGISTRATION equ 00000019h +SPFILENOTIFY_ENDREGISTRATION equ 00000020h +SPFILENOTIFY_QUEUESCAN_SIGNERINFO equ 00000040h +SPFILENOTIFY_LANGMISMATCH equ 00010000h +SPFILENOTIFY_TARGETEXISTS equ 00020000h +SPFILENOTIFY_TARGETNEWER equ 00040000h +FILEOP_COPY equ 0 +FILEOP_RENAME equ 1 +FILEOP_DELETE equ 2 +FILEOP_BACKUP equ 3 +FILEOP_ABORT equ 0 +FILEOP_DOIT equ 1 +FILEOP_SKIP equ 2 +FILEOP_RETRY equ FILEOP_DOIT +FILEOP_NEWPATH equ 4 +COPYFLG_WARN_IF_SKIP equ 00000001h +COPYFLG_NOSKIP equ 00000002h +COPYFLG_NOVERSIONCHECK equ 00000004h +COPYFLG_FORCE_FILE_IN_USE equ 00000008h +COPYFLG_NO_OVERWRITE equ 00000010h +COPYFLG_NO_VERSION_DIALOG equ 00000020h +COPYFLG_OVERWRITE_OLDER_ONLY equ 00000040h +COPYFLG_PROTECTED_WINDOWS_DRIVER_FILE equ 00000100h +COPYFLG_REPLACEONLY equ 00000400h +COPYFLG_NODECOMP equ 00000800h +COPYFLG_REPLACE_BOOT_FILE equ 00001000h +COPYFLG_NOPRUNE equ 00002000h +COPYFLG_IN_USE_TRY_RENAME equ 00004000h +DELFLG_IN_USE equ 00000001h +DELFLG_IN_USE1 equ 00010000h +SPREG_SUCCESS equ 00000000h +SPREG_LOADLIBRARY equ 00000001h +SPREG_GETPROCADDR equ 00000002h +SPREG_REGSVR equ 00000003h +SPREG_DLLINSTALL equ 00000004h +SPREG_TIMEOUT equ 00000005h +SPREG_UNKNOWN equ 0FFFFFFFFh +SPINT_ACTIVE equ 00000001h +SPINT_DEFAULT equ 00000002h +SPINT_REMOVED equ 00000004h +SPID_ACTIVE equ SPINT_ACTIVE +SPID_DEFAULT equ SPINT_DEFAULT +SPID_REMOVED equ SPINT_REMOVED +DIF_SELECTDEVICE equ 00000001h +DIF_INSTALLDEVICE equ 00000002h +DIF_ASSIGNRESOURCES equ 00000003h +DIF_PROPERTIES equ 00000004h +DIF_REMOVE equ 00000005h +DIF_FIRSTTIMESETUP equ 00000006h +DIF_FOUNDDEVICE equ 00000007h +DIF_SELECTCLASSDRIVERS equ 00000008h +DIF_VALIDATECLASSDRIVERS equ 00000009h +DIF_INSTALLCLASSDRIVERS equ 0000000Ah +DIF_CALCDISKSPACE equ 0000000Bh +DIF_DESTROYPRIVATEDATA equ 0000000Ch +DIF_VALIDATEDRIVER equ 0000000Dh +DIF_DETECT equ 0000000Fh +DIF_INSTALLWIZARD equ 00000010h +DIF_DESTROYWIZARDDATA equ 00000011h +DIF_PROPERTYCHANGE equ 00000012h +DIF_ENABLECLASS equ 00000013h +DIF_DETECTVERIFY equ 00000014h +DIF_INSTALLDEVICEFILES equ 00000015h +DIF_UNREMOVE equ 00000016h +DIF_SELECTBESTCOMPATDRV equ 00000017h +DIF_ALLOW_INSTALL equ 00000018h +DIF_REGISTERDEVICE equ 00000019h +DIF_NEWDEVICEWIZARD_PRESELECT equ 0000001Ah +DIF_NEWDEVICEWIZARD_SELECT equ 0000001Bh +DIF_NEWDEVICEWIZARD_PREANALYZE equ 0000001Ch +DIF_NEWDEVICEWIZARD_POSTANALYZE equ 0000001Dh +DIF_NEWDEVICEWIZARD_FINISHINSTALL equ 0000001Eh +DIF_UNUSED1 equ 0000001Fh +DIF_INSTALLINTERFACES equ 00000020h +DIF_DETECTCANCEL equ 00000021h +DIF_REGISTER_COINSTALLERS equ 00000022h +DIF_ADDPROPERTYPAGE_ADVANCED equ 00000023h +DIF_ADDPROPERTYPAGE_BASIC equ 00000024h +DIF_RESERVED1 equ 00000025h +DIF_TROUBLESHOOTER equ 00000026h +DIF_POWERMESSAGEWAKE equ 00000027h +DIF_ADDREMOTEPROPERTYPAGE_ADVANCED equ 00000028h +DIF_UPDATEDRIVER_UI equ 00000029h +DIF_FINISHINSTALL_ACTION equ 0000002Ah +DIF_RESERVED2 equ 00000030h +DIF_MOVEDEVICE equ 0000000Eh +DI_SHOWOEM equ 00000001h +DI_SHOWCOMPAT equ 00000002h +DI_SHOWCLASS equ 00000004h +DI_SHOWALL equ 00000007h +DI_NOVCP equ 00000008h +DI_DIDCOMPAT equ 00000010h +DI_DIDCLASS equ 00000020h +DI_AUTOASSIGNRES equ 00000040h +DI_NEEDRESTART equ 00000080h +DI_NEEDREBOOT equ 00000100h +DI_NOBROWSE equ 00000200h +DI_MULTMFGS equ 00000400h +DI_DISABLED equ 00000800h +DI_GENERALPAGE_ADDED equ 00001000h +DI_RESOURCEPAGE_ADDED equ 00002000h +DI_PROPERTIES_CHANGE equ 00004000h +DI_INF_IS_SORTED equ 00008000h +DI_ENUMSINGLEINF equ 00010000h +DI_DONOTCALLCONFIGMG equ 00020000h +DI_INSTALLDISABLED equ 00040000h +DI_COMPAT_FROM_CLASS equ 00080000h +DI_CLASSINSTALLPARAMS equ 00100000h +DI_NODI_DEFAULTACTION equ 00200000h +DI_QUIETINSTALL equ 00800000h +DI_NOFILECOPY equ 01000000h +DI_FORCECOPY equ 02000000h +DI_DRIVERPAGE_ADDED equ 04000000h +DI_USECI_SELECTSTRINGS equ 08000000h +DI_OVERRIDE_INFFLAGS equ 10000000h +DI_PROPS_NOCHANGEUSAGE equ 20000000h +DI_NOSELECTICONS equ 40000000h +DI_NOWRITE_IDS equ 80000000h +DI_FLAGSEX_RESERVED2 equ 00000001h +DI_FLAGSEX_RESERVED3 equ 00000002h +DI_FLAGSEX_CI_FAILED equ 00000004h +DI_FLAGSEX_FINISHINSTALL_ACTION equ 00000008h +DI_FLAGSEX_DIDINFOLIST equ 00000010h +DI_FLAGSEX_DIDCOMPATINFO equ 00000020h +DI_FLAGSEX_FILTERCLASSES equ 00000040h +DI_FLAGSEX_SETFAILEDINSTALL equ 00000080h +DI_FLAGSEX_DEVICECHANGE equ 00000100h +DI_FLAGSEX_ALWAYSWRITEIDS equ 00000200h +DI_FLAGSEX_PROPCHANGE_PENDING equ 00000400h +DI_FLAGSEX_ALLOWEXCLUDEDDRVS equ 00000800h +DI_FLAGSEX_NOUIONQUERYREMOVE equ 00001000h +DI_FLAGSEX_USECLASSFORCOMPAT equ 00002000h +DI_FLAGSEX_RESERVED4 equ 00004000h +DI_FLAGSEX_NO_DRVREG_MODIFY equ 00008000h +DI_FLAGSEX_IN_SYSTEM_SETUP equ 00010000h +DI_FLAGSEX_INET_DRIVER equ 00020000h +DI_FLAGSEX_APPENDDRIVERLIST equ 00040000h +DI_FLAGSEX_PREINSTALLBACKUP equ 00080000h +DI_FLAGSEX_BACKUPONREPLACE equ 00100000h +DI_FLAGSEX_DRIVERLIST_FROM_URL equ 00200000h +DI_FLAGSEX_RESERVED1 equ 00400000h +DI_FLAGSEX_EXCLUDE_OLD_INET_DRIVERS equ 00800000h +DI_FLAGSEX_POWERPAGE_ADDED equ 01000000h +DI_FLAGSEX_FILTERSIMILARDRIVERS equ 02000000h +DI_FLAGSEX_INSTALLEDDRIVER equ 04000000h +DI_FLAGSEX_NO_CLASSLIST_NODE_MERGE equ 08000000h +DI_FLAGSEX_ALTPLATFORM_DRVSEARCH equ 10000000h +DI_FLAGSEX_RESTART_DEVICE_ONLY equ 20000000h +DI_FLAGSEX_RECURSIVESEARCH equ 40000000h +DI_FLAGSEX_SEARCH_PUBLISHED_INFS equ 80000000h +ENABLECLASS_QUERY equ 0 +ENABLECLASS_SUCCESS equ 1 +ENABLECLASS_FAILURE equ 2 +DICS_ENABLE equ 00000001h +DICS_DISABLE equ 00000002h +DICS_PROPCHANGE equ 00000003h +DICS_START equ 00000004h +DICS_STOP equ 00000005h +DICS_FLAG_GLOBAL equ 00000001h +DICS_FLAG_CONFIGSPECIFIC equ 00000002h +DICS_FLAG_CONFIGGENERAL equ 00000004h +DI_REMOVEDEVICE_GLOBAL equ 00000001h +DI_REMOVEDEVICE_CONFIGSPECIFIC equ 00000002h +DI_UNREMOVEDEVICE_CONFIGSPECIFIC equ 00000002h +MAX_INSTALLWIZARD_DYNAPAGES equ 20 +NDW_INSTALLFLAG_DIDFACTDEFS equ 00000001h +NDW_INSTALLFLAG_HARDWAREALLREADYIN equ 00000002h +NDW_INSTALLFLAG_NEEDRESTART equ DI_NEEDRESTART +NDW_INSTALLFLAG_NEEDREBOOT equ DI_NEEDREBOOT +NDW_INSTALLFLAG_NEEDSHUTDOWN equ 00000200h +NDW_INSTALLFLAG_EXPRESSINTRO equ 00000400h +NDW_INSTALLFLAG_SKIPISDEVINSTALLED equ 00000800h +NDW_INSTALLFLAG_NODETECTEDDEVS equ 00001000h +NDW_INSTALLFLAG_INSTALLSPECIFIC equ 00002000h +NDW_INSTALLFLAG_SKIPCLASSLIST equ 00004000h +NDW_INSTALLFLAG_CI_PICKED_OEM equ 00008000h +NDW_INSTALLFLAG_PCMCIAMODE equ 00010000h +NDW_INSTALLFLAG_PCMCIADEVICE equ 00020000h +NDW_INSTALLFLAG_USERCANCEL equ 00040000h +NDW_INSTALLFLAG_KNOWNCLASS equ 00080000h +DYNAWIZ_FLAG_PAGESADDED equ 00000001h +DYNAWIZ_FLAG_ANALYZE_HANDLECONFLICT equ 00000008h +DYNAWIZ_FLAG_INSTALLDET_NEXT equ 00000002h +DYNAWIZ_FLAG_INSTALLDET_PREV equ 00000004h +MIN_IDD_DYNAWIZ_RESOURCE_ID equ 10000 +MAX_IDD_DYNAWIZ_RESOURCE_ID equ 11000 +IDD_DYNAWIZ_FIRSTPAGE equ 10000 +IDD_DYNAWIZ_SELECT_PREVPAGE equ 10001 +IDD_DYNAWIZ_SELECT_NEXTPAGE equ 10002 +IDD_DYNAWIZ_ANALYZE_PREVPAGE equ 10003 +IDD_DYNAWIZ_ANALYZE_NEXTPAGE equ 10004 +IDD_DYNAWIZ_SELECTDEV_PAGE equ 10009 +IDD_DYNAWIZ_ANALYZEDEV_PAGE equ 10010 +IDD_DYNAWIZ_INSTALLDETECTEDDEVS_PAGE equ 10011 +IDD_DYNAWIZ_SELECTCLASS_PAGE equ 10012 +IDD_DYNAWIZ_INSTALLDETECTED_PREVPAGE equ 10006 +IDD_DYNAWIZ_INSTALLDETECTED_NEXTPAGE equ 10007 +IDD_DYNAWIZ_INSTALLDETECTED_NODEVS equ 10008 +DNF_DUPDESC equ 00000001h +DNF_OLDDRIVER equ 00000002h +DNF_EXCLUDEFROMLIST equ 00000004h +DNF_NODRIVER equ 00000008h +DNF_LEGACYINF equ 00000010h +DNF_CLASS_DRIVER equ 00000020h +DNF_COMPATIBLE_DRIVER equ 00000040h +DNF_INET_DRIVER equ 00000080h +DNF_UNUSED1 equ 00000100h +DNF_UNUSED2 equ 00000200h +DNF_OLD_INET_DRIVER equ 00000400h +DNF_BAD_DRIVER equ 00000800h +DNF_DUPPROVIDER equ 00001000h +DNF_INF_IS_SIGNED equ 00002000h +DNF_OEM_F6_INF equ 00004000h +DNF_DUPDRIVERVER equ 00008000h +DNF_BASIC_DRIVER equ 00010000h +DNF_AUTHENTICODE_SIGNED equ 00020000h +DNF_INSTALLEDDRIVER equ 00040000h +DNF_ALWAYSEXCLUDEFROMLIST equ 00080000h +DNF_INBOX_DRIVER equ 00100000h +DNF_UNUSED_21 equ 00200000h +DNF_UNUSED_22 equ 00400000h +DNF_UNUSED_23 equ 00800000h +DNF_UNUSED_24 equ 01000000h +DNF_UNUSED_25 equ 02000000h +DNF_UNUSED_26 equ 04000000h +DNF_UNUSED_27 equ 08000000h +DNF_UNUSED_28 equ 10000000h +DNF_UNUSED_29 equ 20000000h +DNF_UNUSED_30 equ 40000000h +DNF_UNUSED_31 equ 80000000h +DRIVER_HARDWAREID_RANK equ 00000FFFh +DRIVER_HARDWAREID_MASK equ 80000FFFh +DRIVER_UNTRUSTED_RANK equ 80000000h +DRIVER_W9X_SUSPECT_RANK equ 0C0000000h +DRIVER_COMPATID_RANK equ 00003FFFh +DRIVER_UNTRUSTED_HARDWAREID_RANK equ 00008FFFh +DRIVER_UNTRUSTED_COMPATID_RANK equ 0000BFFFh +DRIVER_W9X_SUSPECT_HARDWAREID_RANK equ 0000CFFFh +DRIVER_W9X_SUSPECT_COMPATID_RANK equ 0000FFFFh +SPPSR_SELECT_DEVICE_RESOURCES equ 1 +SPPSR_ENUM_BASIC_DEVICE_PROPERTIES equ 2 +SPPSR_ENUM_ADV_DEVICE_PROPERTIES equ 3 +ERROR_EXPECTED_SECTION_NAME equ APPLICATION_ERROR_MASKorERROR_SEVERITY_ERRORor0 +ERROR_BAD_SECTION_NAME_LINE equ APPLICATION_ERROR_MASKorERROR_SEVERITY_ERRORor1 +ERROR_SECTION_NAME_TOO_LONG equ APPLICATION_ERROR_MASKorERROR_SEVERITY_ERRORor2 +ERROR_GENERAL_SYNTAX equ APPLICATION_ERROR_MASKorERROR_SEVERITY_ERRORor3 +ERROR_WRONG_INF_STYLE equ APPLICATION_ERROR_MASKorERROR_SEVERITY_ERRORor0x100 +ERROR_SECTION_NOT_FOUND equ APPLICATION_ERROR_MASKorERROR_SEVERITY_ERRORor0x101 +ERROR_LINE_NOT_FOUND equ APPLICATION_ERROR_MASKorERROR_SEVERITY_ERRORor0x102 +ERROR_NO_BACKUP equ APPLICATION_ERROR_MASKorERROR_SEVERITY_ERRORor0x103 +ERROR_NO_ASSOCIATED_CLASS equ APPLICATION_ERROR_MASKorERROR_SEVERITY_ERRORor0x200 +ERROR_CLASS_MISMATCH equ APPLICATION_ERROR_MASKorERROR_SEVERITY_ERRORor0x201 +ERROR_DUPLICATE_FOUND equ APPLICATION_ERROR_MASKorERROR_SEVERITY_ERRORor0x202 +ERROR_NO_DRIVER_SELECTED equ APPLICATION_ERROR_MASKorERROR_SEVERITY_ERRORor0x203 +ERROR_KEY_DOES_NOT_EXIST equ APPLICATION_ERROR_MASKorERROR_SEVERITY_ERRORor0x204 +ERROR_INVALID_DEVINST_NAME equ APPLICATION_ERROR_MASKorERROR_SEVERITY_ERRORor0x205 +ERROR_INVALID_CLASS equ APPLICATION_ERROR_MASKorERROR_SEVERITY_ERRORor0x206 +ERROR_DEVINST_ALREADY_EXISTS equ APPLICATION_ERROR_MASKorERROR_SEVERITY_ERRORor0x207 +ERROR_DEVINFO_NOT_REGISTERED equ APPLICATION_ERROR_MASKorERROR_SEVERITY_ERRORor0x208 +ERROR_INVALID_REG_PROPERTY equ APPLICATION_ERROR_MASKorERROR_SEVERITY_ERRORor0x209 +ERROR_NO_INF equ APPLICATION_ERROR_MASKorERROR_SEVERITY_ERRORor0x20A +ERROR_NO_SUCH_DEVINST equ APPLICATION_ERROR_MASKorERROR_SEVERITY_ERRORor0x20B +ERROR_CANT_LOAD_CLASS_ICON equ APPLICATION_ERROR_MASKorERROR_SEVERITY_ERRORor0x20C +ERROR_INVALID_CLASS_INSTALLER equ APPLICATION_ERROR_MASKorERROR_SEVERITY_ERRORor0x20D +ERROR_DI_DO_DEFAULT equ APPLICATION_ERROR_MASKorERROR_SEVERITY_ERRORor0x20E +ERROR_DI_NOFILECOPY equ APPLICATION_ERROR_MASKorERROR_SEVERITY_ERRORor0x20F +ERROR_INVALID_HWPROFILE equ APPLICATION_ERROR_MASKorERROR_SEVERITY_ERRORor0x210 +ERROR_NO_DEVICE_SELECTED equ APPLICATION_ERROR_MASKorERROR_SEVERITY_ERRORor0x211 +ERROR_DEVINFO_LIST_LOCKED equ APPLICATION_ERROR_MASKorERROR_SEVERITY_ERRORor0x212 +ERROR_DEVINFO_DATA_LOCKED equ APPLICATION_ERROR_MASKorERROR_SEVERITY_ERRORor0x213 +ERROR_DI_BAD_PATH equ APPLICATION_ERROR_MASKorERROR_SEVERITY_ERRORor0x214 +ERROR_NO_CLASSINSTALL_PARAMS equ APPLICATION_ERROR_MASKorERROR_SEVERITY_ERRORor0x215 +ERROR_FILEQUEUE_LOCKED equ APPLICATION_ERROR_MASKorERROR_SEVERITY_ERRORor0x216 +ERROR_BAD_SERVICE_INSTALLSECT equ APPLICATION_ERROR_MASKorERROR_SEVERITY_ERRORor0x217 +ERROR_NO_CLASS_DRIVER_LIST equ APPLICATION_ERROR_MASKorERROR_SEVERITY_ERRORor0x218 +ERROR_NO_ASSOCIATED_SERVICE equ APPLICATION_ERROR_MASKorERROR_SEVERITY_ERRORor0x219 +ERROR_NO_DEFAULT_DEVICE_INTERFACE equ APPLICATION_ERROR_MASKorERROR_SEVERITY_ERRORor0x21A +ERROR_DEVICE_INTERFACE_ACTIVE equ APPLICATION_ERROR_MASKorERROR_SEVERITY_ERRORor0x21B +ERROR_DEVICE_INTERFACE_REMOVED equ APPLICATION_ERROR_MASKorERROR_SEVERITY_ERRORor0x21C +ERROR_BAD_INTERFACE_INSTALLSECT equ APPLICATION_ERROR_MASKorERROR_SEVERITY_ERRORor0x21D +ERROR_NO_SUCH_INTERFACE_CLASS equ APPLICATION_ERROR_MASKorERROR_SEVERITY_ERRORor0x21E +ERROR_INVALID_REFERENCE_STRING equ APPLICATION_ERROR_MASKorERROR_SEVERITY_ERRORor0x21F +ERROR_INVALID_MACHINENAME equ APPLICATION_ERROR_MASKorERROR_SEVERITY_ERRORor0x220 +ERROR_REMOTE_COMM_FAILURE equ APPLICATION_ERROR_MASKorERROR_SEVERITY_ERRORor0x221 +ERROR_MACHINE_UNAVAILABLE equ APPLICATION_ERROR_MASKorERROR_SEVERITY_ERRORor0x222 +ERROR_NO_CONFIGMGR_SERVICES equ APPLICATION_ERROR_MASKorERROR_SEVERITY_ERRORor0x223 +ERROR_INVALID_PROPPAGE_PROVIDER equ APPLICATION_ERROR_MASKorERROR_SEVERITY_ERRORor0x224 +ERROR_NO_SUCH_DEVICE_INTERFACE equ APPLICATION_ERROR_MASKorERROR_SEVERITY_ERRORor0x225 +ERROR_DI_POSTPROCESSING_REQUIRED equ APPLICATION_ERROR_MASKorERROR_SEVERITY_ERRORor0x226 +ERROR_INVALID_COINSTALLER equ APPLICATION_ERROR_MASKorERROR_SEVERITY_ERRORor0x227 +ERROR_NO_COMPAT_DRIVERS equ APPLICATION_ERROR_MASKorERROR_SEVERITY_ERRORor0x228 +ERROR_NO_DEVICE_ICON equ APPLICATION_ERROR_MASKorERROR_SEVERITY_ERRORor0x229 +ERROR_INVALID_INF_LOGCONFIG equ APPLICATION_ERROR_MASKorERROR_SEVERITY_ERRORor0x22A +ERROR_DI_DONT_INSTALL equ APPLICATION_ERROR_MASKorERROR_SEVERITY_ERRORor0x22B +ERROR_INVALID_FILTER_DRIVER equ APPLICATION_ERROR_MASKorERROR_SEVERITY_ERRORor0x22C +ERROR_NON_WINDOWS_NT_DRIVER equ APPLICATION_ERROR_MASKorERROR_SEVERITY_ERRORor0x22D +ERROR_NON_WINDOWS_DRIVER equ APPLICATION_ERROR_MASKorERROR_SEVERITY_ERRORor0x22E +ERROR_NO_CATALOG_FOR_OEM_INF equ APPLICATION_ERROR_MASKorERROR_SEVERITY_ERRORor0x22F +ERROR_DEVINSTALL_QUEUE_NONNATIVE equ APPLICATION_ERROR_MASKorERROR_SEVERITY_ERRORor0x230 +ERROR_NOT_DISABLEABLE equ APPLICATION_ERROR_MASKorERROR_SEVERITY_ERRORor0x231 +ERROR_CANT_REMOVE_DEVINST equ APPLICATION_ERROR_MASKorERROR_SEVERITY_ERRORor0x232 +ERROR_INVALID_TARGET equ APPLICATION_ERROR_MASKorERROR_SEVERITY_ERRORor0x233 +ERROR_DRIVER_NONNATIVE equ APPLICATION_ERROR_MASKorERROR_SEVERITY_ERRORor0x234 +ERROR_IN_WOW64 equ APPLICATION_ERROR_MASKorERROR_SEVERITY_ERRORor0x235 +ERROR_SET_SYSTEM_RESTORE_POINT equ APPLICATION_ERROR_MASKorERROR_SEVERITY_ERRORor0x236 +ERROR_SCE_DISABLED equ APPLICATION_ERROR_MASKorERROR_SEVERITY_ERRORor0x238 +ERROR_UNKNOWN_EXCEPTION equ APPLICATION_ERROR_MASKorERROR_SEVERITY_ERRORor0x239 +ERROR_PNP_REGISTRY_ERROR equ APPLICATION_ERROR_MASKorERROR_SEVERITY_ERRORor0x23A +ERROR_REMOTE_REQUEST_UNSUPPORTED equ APPLICATION_ERROR_MASKorERROR_SEVERITY_ERRORor0x23B +ERROR_NOT_AN_INSTALLED_OEM_INF equ APPLICATION_ERROR_MASKorERROR_SEVERITY_ERRORor0x23C +ERROR_INF_IN_USE_BY_DEVICES equ APPLICATION_ERROR_MASKorERROR_SEVERITY_ERRORor0x23D +ERROR_DI_FUNCTION_OBSOLETE equ APPLICATION_ERROR_MASKorERROR_SEVERITY_ERRORor0x23E +ERROR_NO_AUTHENTICODE_CATALOG equ APPLICATION_ERROR_MASKorERROR_SEVERITY_ERRORor0x23F +ERROR_AUTHENTICODE_DISALLOWED equ APPLICATION_ERROR_MASKorERROR_SEVERITY_ERRORor0x240 +ERROR_AUTHENTICODE_TRUSTED_PUBLISHER equ APPLICATION_ERROR_MASKorERROR_SEVERITY_ERRORor0x241 +ERROR_AUTHENTICODE_TRUST_NOT_ESTABLISHED equ APPLICATION_ERROR_MASKorERROR_SEVERITY_ERRORor0x242 +ERROR_AUTHENTICODE_PUBLISHER_NOT_TRUSTED equ APPLICATION_ERROR_MASKorERROR_SEVERITY_ERRORor0x243 +ERROR_SIGNATURE_OSATTRIBUTE_MISMATCH equ APPLICATION_ERROR_MASKorERROR_SEVERITY_ERRORor0x244 +ERROR_ONLY_VALIDATE_VIA_AUTHENTICODE equ APPLICATION_ERROR_MASKorERROR_SEVERITY_ERRORor0x245 +ERROR_DEVICE_INSTALLER_NOT_READY equ APPLICATION_ERROR_MASKorERROR_SEVERITY_ERRORor0x246 +ERROR_DRIVER_STORE_ADD_FAILED equ APPLICATION_ERROR_MASKorERROR_SEVERITY_ERRORor0x247 +ERROR_DEVICE_INSTALL_BLOCKED equ APPLICATION_ERROR_MASKorERROR_SEVERITY_ERRORor0x248 +ERROR_DRIVER_INSTALL_BLOCKED equ APPLICATION_ERROR_MASKorERROR_SEVERITY_ERRORor0x249 +ERROR_WRONG_INF_TYPE equ APPLICATION_ERROR_MASKorERROR_SEVERITY_ERRORor0x24A +ERROR_FILE_HASH_NOT_IN_CATALOG equ APPLICATION_ERROR_MASKorERROR_SEVERITY_ERRORor0x24B +ERROR_DRIVER_STORE_DELETE_FAILED equ APPLICATION_ERROR_MASKorERROR_SEVERITY_ERRORor0x24C +ERROR_UNRECOVERABLE_STACK_OVERFLOW equ APPLICATION_ERROR_MASKorERROR_SEVERITY_ERRORor0x300 +EXCEPTION_SPAPI_UNRECOVERABLE_STACK_OVERFLOW equ ERROR_UNRECOVERABLE_STACK_OVERFLOW +ERROR_NO_DEFAULT_INTERFACE_DEVICE equ ERROR_NO_DEFAULT_DEVICE_INTERFACE +ERROR_INTERFACE_DEVICE_ACTIVE equ ERROR_DEVICE_INTERFACE_ACTIVE +ERROR_INTERFACE_DEVICE_REMOVED equ ERROR_DEVICE_INTERFACE_REMOVED +ERROR_NO_SUCH_INTERFACE_DEVICE equ ERROR_NO_SUCH_DEVICE_INTERFACE +ERROR_NOT_INSTALLED equ APPLICATION_ERROR_MASKorERROR_SEVERITY_ERRORor0x1000 +INFINFO_INF_SPEC_IS_HINF equ 1 +INFINFO_INF_NAME_IS_ABSOLUTE equ 2 +INFINFO_DEFAULT_SEARCH equ 3 +INFINFO_REVERSE_DEFAULT_SEARCH equ 4 +INFINFO_INF_PATH_LIST_SEARCH equ 5 +FILE_COMPRESSION_NONE equ 0 +FILE_COMPRESSION_WINLZA equ 1 +FILE_COMPRESSION_MSZIP equ 2 +FILE_COMPRESSION_NTCAB equ 3 +SRCLIST_TEMPORARY equ 00000001h +SRCLIST_NOBROWSE equ 00000002h +SRCLIST_SYSTEM equ 00000010h +SRCLIST_USER equ 00000020h +SRCLIST_SYSIFADMIN equ 00000040h +SRCLIST_SUBDIRS equ 00000100h +SRCLIST_APPEND equ 00000200h +SRCLIST_NOSTRIPPLATFORM equ 00000400h +IDF_NOBROWSE equ 00000001h +IDF_NOSKIP equ 00000002h +IDF_NODETAILS equ 00000004h +IDF_NOCOMPRESSED equ 00000008h +IDF_CHECKFIRST equ 00000100h +IDF_NOBEEP equ 00000200h +IDF_NOFOREGROUND equ 00000400h +IDF_WARNIFSKIP equ 00000800h +IDF_NOREMOVABLEMEDIAPROMPT equ 00001000h +IDF_USEDISKNAMEASPROMPT equ 00002000h +IDF_OEMDISK equ 80000000h +DPROMPT_SUCCESS equ 0 +DPROMPT_CANCEL equ 1 +DPROMPT_SKIPFILE equ 2 +DPROMPT_BUFFERTOOSMALL equ 3 +DPROMPT_OUTOFMEMORY equ 4 +SETDIRID_NOT_FULL_PATH equ 00000001h +SRCINFO_PATH equ 1 +SRCINFO_TAGFILE equ 2 +SRCINFO_DESCRIPTION equ 3 +SRCINFO_FLAGS equ 4 +SRCINFO_TAGFILE2 equ 5 +SRC_FLAGS_CABFILE equ 0010h +SP_COPY_DELETESOURCE equ 0000001h +SP_COPY_REPLACEONLY equ 0000002h +SP_COPY_NEWER equ 0000004h +SP_COPY_NEWER_OR_SAME equ SP_COPY_NEWER +SP_COPY_NOOVERWRITE equ 0000008h +SP_COPY_NODECOMP equ 0000010h +SP_COPY_LANGUAGEAWARE equ 0000020h +SP_COPY_SOURCE_ABSOLUTE equ 0000040h +SP_COPY_SOURCEPATH_ABSOLUTE equ 0000080h +SP_COPY_IN_USE_NEEDS_REBOOT equ 0000100h +SP_COPY_FORCE_IN_USE equ 0000200h +SP_COPY_NOSKIP equ 0000400h +SP_FLAG_CABINETCONTINUATION equ 0000800h +SP_COPY_FORCE_NOOVERWRITE equ 0001000h +SP_COPY_FORCE_NEWER equ 0002000h +SP_COPY_WARNIFSKIP equ 0004000h +SP_COPY_NOBROWSE equ 0008000h +SP_COPY_NEWER_ONLY equ 0010000h +SP_COPY_RESERVED equ 0020000h +SP_COPY_OEMINF_CATALOG_ONLY equ 0040000h +SP_COPY_REPLACE_BOOT_FILE equ 0080000h +SP_COPY_NOPRUNE equ 0100000h +SP_COPY_OEM_F6_INF equ 0200000h +SP_COPY_ALREADYDECOMP equ 0400000h +SP_COPY_WINDOWS_SIGNED equ 1000000h +SP_COPY_PNPLOCKED equ 2000000h +SP_COPY_IN_USE_TRY_RENAME equ 4000000h +SP_COPY_INBOX_INF equ 8000000h +SP_BACKUP_BACKUPPASS equ 00000001h +SP_BACKUP_DEMANDPASS equ 00000002h +SP_BACKUP_SPECIAL equ 00000004h +SP_BACKUP_BOOTFILE equ 00000008h +SPQ_SCAN_FILE_PRESENCE equ 00000001h +SPQ_SCAN_FILE_VALIDITY equ 00000002h +SPQ_SCAN_USE_CALLBACK equ 00000004h +SPQ_SCAN_USE_CALLBACKEX equ 00000008h +SPQ_SCAN_INFORM_USER equ 00000010h +SPQ_SCAN_PRUNE_COPY_QUEUE equ 00000020h +SPQ_SCAN_USE_CALLBACK_SIGNERINFO equ 00000040h +SPQ_SCAN_PRUNE_DELREN equ 00000080h +SPQ_SCAN_FILE_PRESENCE_WITHOUT_SOURCE equ 00000100h +SPQ_SCAN_FILE_COMPARISON equ 00000200h +SPQ_SCAN_ACTIVATE_DRP equ 00000400h +SPQ_DELAYED_COPY equ 00000001h +SPQ_FLAG_BACKUP_AWARE equ 00000001h +SPQ_FLAG_ABORT_IF_UNSIGNED equ 00000002h +SPQ_FLAG_FILES_MODIFIED equ 00000004h +SPQ_FLAG_DO_SHUFFLEMOVE equ 00000008h +SPQ_FLAG_VALID equ 0000000Fh +SPOST_NONE equ 0 +SPOST_PATH equ 1 +SPOST_URL equ 2 +SPOST_MAX equ 3 +SUOI_FORCEDELETE equ 00000001h +SUOI_INTERNAL1 equ 00000002h +SPDSL_IGNORE_DISK equ 00000001h +SPDSL_DISALLOW_NEGATIVE_ADJUST equ 00000002h +SPFILEQ_FILE_IN_USE equ 00000001h +SPFILEQ_REBOOT_RECOMMENDED equ 00000002h +SPFILEQ_REBOOT_IN_PROGRESS equ 00000004h +FLG_ADDREG_DELREG_BIT equ 00008000h +FLG_ADDREG_BINVALUETYPE equ 00000001h +FLG_ADDREG_NOCLOBBER equ 00000002h +FLG_ADDREG_DELVAL equ 00000004h +FLG_ADDREG_APPEND equ 00000008h +FLG_ADDREG_KEYONLY equ 00000010h +FLG_ADDREG_OVERWRITEONLY equ 00000020h +FLG_ADDREG_64BITKEY equ 00001000h +FLG_ADDREG_KEYONLY_COMMON equ 00002000h +FLG_ADDREG_32BITKEY equ 00004000h +FLG_ADDREG_TYPE_SZ equ 00000000h +FLG_ADDREG_TYPE_MULTI_SZ equ 00010000h +FLG_ADDREG_TYPE_EXPAND_SZ equ 00020000h +FLG_DELREG_VALUE equ 00000000h +FLG_DELREG_TYPE_MASK equ FLG_ADDREG_TYPE_MASK +FLG_DELREG_TYPE_SZ equ FLG_ADDREG_TYPE_SZ +FLG_DELREG_TYPE_MULTI_SZ equ FLG_ADDREG_TYPE_MULTI_SZ +FLG_DELREG_TYPE_EXPAND_SZ equ FLG_ADDREG_TYPE_EXPAND_SZ +FLG_DELREG_TYPE_BINARY equ FLG_ADDREG_TYPE_BINARY +FLG_DELREG_TYPE_DWORD equ FLG_ADDREG_TYPE_DWORD +FLG_DELREG_TYPE_NONE equ FLG_ADDREG_TYPE_NONE +FLG_DELREG_64BITKEY equ FLG_ADDREG_64BITKEY +FLG_DELREG_KEYONLY_COMMON equ FLG_ADDREG_KEYONLY_COMMON +FLG_DELREG_32BITKEY equ FLG_ADDREG_32BITKEY +FLG_DELREG_OPERATION_MASK equ 000000FEh +FLG_BITREG_CLEARBITS equ 00000000h +FLG_BITREG_SETBITS equ 00000001h +FLG_BITREG_64BITKEY equ 00001000h +FLG_BITREG_32BITKEY equ 00004000h +FLG_INI2REG_64BITKEY equ 00001000h +FLG_INI2REG_32BITKEY equ 00004000h +FLG_REGSVR_DLLREGISTER equ 00000001h +FLG_REGSVR_DLLINSTALL equ 00000002h +FLG_PROFITEM_CURRENTUSER equ 00000001h +FLG_PROFITEM_DELETE equ 00000002h +FLG_PROFITEM_GROUP equ 00000004h +FLG_PROFITEM_CSIDL equ 00000008h +FLG_ADDPROPERTY_NOCLOBBER equ 00000001h +FLG_ADDPROPERTY_OVERWRITEONLY equ 00000002h +FLG_ADDPROPERTY_APPEND equ 00000004h +FLG_ADDPROPERTY_OR equ 00000008h +FLG_ADDPROPERTY_AND equ 00000010h +FLG_DELPROPERTY_MULTI_SZ_DELSTRING equ 00000001h +SPINST_LOGCONFIG equ 00000001h +SPINST_INIFILES equ 00000002h +SPINST_REGISTRY equ 00000004h +SPINST_INI2REG equ 00000008h +SPINST_FILES equ 00000010h +SPINST_BITREG equ 00000020h +SPINST_REGSVR equ 00000040h +SPINST_UNREGSVR equ 00000080h +SPINST_PROFILEITEMS equ 00000100h +SPINST_COPYINF equ 00000200h +SPINST_PROPERTIES equ 00000400h +SPINST_ALL equ 000007FFh +SPINST_SINGLESECTION equ 00010000h +SPINST_LOGCONFIG_IS_FORCED equ 00020000h +SPINST_LOGCONFIGS_ARE_OVERRIDES equ 00040000h +SPINST_REGISTERCALLBACKAWARE equ 00080000h +SPINST_DEVICEINSTALL equ 00100000h +SPSVCINST_TAGTOFRONT equ 00000001h +SPSVCINST_ASSOCSERVICE equ 00000002h +SPSVCINST_DELETEEVENTLOGENTRY equ 00000004h +SPSVCINST_NOCLOBBER_DISPLAYNAME equ 00000008h +SPSVCINST_NOCLOBBER_STARTTYPE equ 00000010h +SPSVCINST_NOCLOBBER_ERRORCONTROL equ 00000020h +SPSVCINST_NOCLOBBER_LOADORDERGROUP equ 00000040h +SPSVCINST_NOCLOBBER_DEPENDENCIES equ 00000080h +SPSVCINST_NOCLOBBER_DESCRIPTION equ 00000100h +SPSVCINST_STOPSERVICE equ 00000200h +SPSVCINST_CLOBBER_SECURITY equ 00000400h +SPSVCINST_STARTSERVICE equ 00000800h +SPFILELOG_SYSTEMLOG equ 00000001h +SPFILELOG_FORCENEW equ 00000002h +SPFILELOG_QUERYONLY equ 00000004h +SPFILELOG_OEMFILE equ 00000001h +LogSeverity equ DWORD +LogSevInformation equ 00000000h +LogSevWarning equ 00000001h +LogSevError equ 00000002h +LogSevFatalError equ 00000003h +LogSevMaximum equ 00000004h +DICD_GENERATE_ID equ 00000001h +DICD_INHERIT_CLASSDRVS equ 00000002h +DIOD_INHERIT_CLASSDRVS equ 00000002h +DIOD_CANCEL_REMOVE equ 00000004h +SetupDiEnumInterfaceDevice equ SetupDiEnumDeviceInterfaces +SetupDiCreateInterfaceDeviceW equ SetupDiCreateDeviceInterfaceW +SetupDiCreateInterfaceDeviceA equ SetupDiCreateDeviceInterfaceA +SetupDiCreateInterfaceDevice equ SetupDiCreateDeviceInterfaceW +DIODI_NO_ADD equ 00000001h +SetupDiOpenInterfaceDeviceW equ SetupDiOpenDeviceInterfaceW +SetupDiOpenInterfaceDeviceA equ SetupDiOpenDeviceInterfaceA +SetupDiOpenInterfaceDevice equ SetupDiOpenDeviceInterfaceW +SetupDiGetInterfaceDeviceAlias equ SetupDiGetDeviceInterfaceAlias +SetupDiDeleteInterfaceDeviceData equ SetupDiDeleteDeviceInterfaceData +SetupDiRemoveInterfaceDevice equ SetupDiRemoveDeviceInterface +SetupDiGetInterfaceDeviceDetailW equ SetupDiGetDeviceInterfaceDetailW +SetupDiGetInterfaceDeviceDetailA equ SetupDiGetDeviceInterfaceDetailA +SetupDiGetInterfaceDeviceDetail equ SetupDiGetDeviceInterfaceDetailW +SetupDiInstallInterfaceDevices equ SetupDiInstallDeviceInterfaces +SPRDI_FIND_DUPS equ 00000001h +SPDIT_NODRIVER equ 00000000h +SPDIT_CLASSDRIVER equ 00000001h +SPDIT_COMPATDRIVER equ 00000002h +DIGCF_DEFAULT equ 00000001h +DIGCF_PRESENT equ 00000002h +DIGCF_ALLCLASSES equ 00000004h +DIGCF_PROFILE equ 00000008h +DIGCF_DEVICEINTERFACE equ 00000010h +DIGCF_INTERFACEDEVICE equ DIGCF_DEVICEINTERFACE +DIBCI_NOINSTALLCLASS equ 00000001h +DIBCI_NODISPLAYCLASS equ 00000002h +DIOCR_INSTALLER equ 00000001h +DIOCR_INTERFACE equ 00000002h +SetupDiCreateInterfaceDeviceRegKeyW equ SetupDiCreateDeviceInterfaceRegKeyW +SetupDiCreateInterfaceDeviceRegKeyA equ SetupDiCreateDeviceInterfaceRegKeyA +SetupDiCreateInterfaceDeviceRegKey equ SetupDiCreateDeviceInterfaceRegKeyW +SetupDiOpenInterfaceDeviceRegKey equ SetupDiOpenDeviceInterfaceRegKey +SetupDiDeleteInterfaceDeviceRegKey equ SetupDiDeleteDeviceInterfaceRegKey +DIREG_DEV equ 00000001h +DIREG_DRV equ 00000002h +DIREG_BOTH equ 00000004h +DICLASSPROP_INSTALLER equ 00000001h +DICLASSPROP_INTERFACE equ 00000002h +SPDRP_DEVICEDESC equ 00000000h +SPDRP_HARDWAREID equ 00000001h +SPDRP_COMPATIBLEIDS equ 00000002h +SPDRP_UNUSED0 equ 00000003h +SPDRP_SERVICE equ 00000004h +SPDRP_UNUSED1 equ 00000005h +SPDRP_UNUSED2 equ 00000006h +SPDRP_CLASS equ 00000007h +SPDRP_CLASSGUID equ 00000008h +SPDRP_DRIVER equ 00000009h +SPDRP_CONFIGFLAGS equ 0000000Ah +SPDRP_MFG equ 0000000Bh +SPDRP_FRIENDLYNAME equ 0000000Ch +SPDRP_LOCATION_INFORMATION equ 0000000Dh +SPDRP_PHYSICAL_DEVICE_OBJECT_NAME equ 0000000Eh +SPDRP_CAPABILITIES equ 0000000Fh +SPDRP_UI_NUMBER equ 00000010h +SPDRP_UPPERFILTERS equ 00000011h +SPDRP_LOWERFILTERS equ 00000012h +SPDRP_BUSTYPEGUID equ 00000013h +SPDRP_LEGACYBUSTYPE equ 00000014h +SPDRP_BUSNUMBER equ 00000015h +SPDRP_ENUMERATOR_NAME equ 00000016h +SPDRP_SECURITY equ 00000017h +SPDRP_SECURITY_SDS equ 00000018h +SPDRP_DEVTYPE equ 00000019h +SPDRP_EXCLUSIVE equ 0000001Ah +SPDRP_CHARACTERISTICS equ 0000001Bh +SPDRP_ADDRESS equ 0000001Ch +SPDRP_UI_NUMBER_DESC_FORMAT equ 0000001Dh +SPDRP_DEVICE_POWER_DATA equ 0000001Eh +SPDRP_REMOVAL_POLICY equ 0000001Fh +SPDRP_REMOVAL_POLICY_HW_DEFAULT equ 00000020h +SPDRP_REMOVAL_POLICY_OVERRIDE equ 00000021h +SPDRP_INSTALL_STATE equ 00000022h +SPDRP_LOCATION_PATHS equ 00000023h +SPDRP_MAXIMUM_PROPERTY equ 00000024h +SPCRP_UPPERFILTERS equ 00000011h +SPCRP_LOWERFILTERS equ 00000012h +SPCRP_SECURITY equ 00000017h +SPCRP_SECURITY_SDS equ 00000018h +SPCRP_DEVTYPE equ 00000019h +SPCRP_EXCLUSIVE equ 0000001Ah +SPCRP_CHARACTERISTICS equ 0000001Bh +SPCRP_MAXIMUM_PROPERTY equ 0000001Ch +DMI_MASK equ 00000001h +DMI_BKCOLOR equ 00000002h +DMI_USERECT equ 00000004h +DIGCDP_FLAG_BASIC equ 00000001h +DIGCDP_FLAG_ADVANCED equ 00000002h +DIGCDP_FLAG_REMOTE_BASIC equ 00000003h +DIGCDP_FLAG_REMOTE_ADVANCED equ 00000004h +IDI_RESOURCEFIRST equ 159 +IDI_RESOURCE equ 159 +IDI_RESOURCELAST equ 161 +IDI_RESOURCEOVERLAYFIRST equ 161 +IDI_RESOURCEOVERLAYLAST equ 161 +IDI_CONFLICT equ 161 +IDI_CLASSICON_OVERLAYFIRST equ 500 +IDI_CLASSICON_OVERLAYLAST equ 502 +IDI_PROBLEM_OVL equ 500 +IDI_DISABLED_OVL equ 501 +IDI_FORCED_OVL equ 502 +SPWPT_SELECTDEVICE equ 00000001h +SPWP_USE_DEVINFO_DATA equ 00000001h +SIGNERSCORE_UNKNOWN equ 0FF000000h +SIGNERSCORE_W9X_SUSPECT equ 0C0000000h +SIGNERSCORE_UNSIGNED equ 80000000h +SIGNERSCORE_AUTHENTICODE equ 0F000000h +SIGNERSCORE_WHQL equ 0D000005h +SIGNERSCORE_UNCLASSIFIED equ 0D000004h +SIGNERSCORE_INBOX equ 0D000003h +SIGNERSCORE_LOGO_STANDARD equ 0D000002h +SIGNERSCORE_LOGO_PREMIUM equ 0D000001h +SIGNERSCORE_MASK equ 0FF000000h +SIGNERSCORE_SIGNED_MASK equ 0F0000000h +DICUSTOMDEVPROP_MERGE_MULTISZ equ 00000001h +SCWMI_CLOBBER_SECURITY equ 00000001h + +; shellAPI + +WINSHELLAPI equ DECLSPEC_IMPORT +SHSTDAPI equ STDAPI +SHDOCAPI equ STDAPI +ABM_SETSTATE equ 0000000Ah +SEE_MASK_NOASYNC equ 00000100h +SEE_MASK_NOZONECHECKS equ 00800000h +SEE_MASK_NOQUERYCLASSSTORE equ 01000000h +SEE_MASK_WAITFORINPUTIDLE equ 02000000h +SEE_MASK_FLAG_LOG_USAGE equ 04000000h +DUMMYUNIONNAME equ u +DUMMYUNIONNAME2 equ u2 +DUMMYUNIONNAME3 equ u3 +DUMMYUNIONNAME4 equ u4 +DUMMYUNIONNAME5 equ u5 +NOTIFYICONDATA_V1_SIZE equ NOTIFYICONDATAW_V1_SIZE +NOTIFYICONDATA_V2_SIZE equ NOTIFYICONDATAW_V2_SIZE +NOTIFYICONDATA_V3_SIZE equ NOTIFYICONDATAW_V3_SIZE +NINF_KEY equ 1h +NIM_SETFOCUS equ 00000003h +NIM_SETVERSION equ 00000004h +NOTIFYICON_VERSION equ 3 +NOTIFYICON_VERSION_4 equ 4 +NIF_STATE equ 00000008h +NIF_INFO equ 00000010h +NIF_GUID equ 00000020h +NIF_REALTIME equ 00000040h +NIF_SHOWTIP equ 00000080h +NIS_HIDDEN equ 00000001h +NIS_SHAREDICON equ 00000002h +NIIF_NONE equ 00000000h +NIIF_INFO equ 00000001h +NIIF_WARNING equ 00000002h +NIIF_ERROR equ 00000003h +NIIF_USER equ 00000004h +NIIF_ICON_MASK equ 0000000Fh +NIIF_NOSOUND equ 00000010h +NIIF_LARGE_ICON equ 00000020h +SHGFI_ADDOVERLAYS equ 000000020h +SHGFI_OVERLAYINDEX equ 000000040h +SHGSI_ICONLOCATION equ 0 +SHGSI_ICON equ SHGFI_ICON +SHGSI_SYSICONINDEX equ SHGFI_SYSICONINDEX +SHGSI_LINKOVERLAY equ SHGFI_LINKOVERLAY +SHGSI_SELECTED equ SHGFI_SELECTED +SHGSI_LARGEICON equ SHGFI_LARGEICON +SHGSI_SMALLICON equ SHGFI_SMALLICON +SHGSI_SHELLICONSIZE equ SHGFI_SHELLICONSIZE +SHGetDiskFreeSpace equ SHGetDiskFreeSpaceEx +SHGNLI_NOLNK equ 000000008h +SHGNLI_NOLOCNAME equ 000000010h +PRINT_PROP_FORCE_NAME equ 01h +OFFLINE_STATUS_LOCAL equ 0001h +OFFLINE_STATUS_REMOTE equ 0002h +OFFLINE_STATUS_INCOMPLETE equ 0004h +SHIL_LARGE equ 0 +SHIL_SMALL equ 1 +SHIL_EXTRALARGE equ 2 +SHIL_SYSSMALL equ 3 +SHIL_JUMBO equ 4 +SHIL_LAST equ SHIL_JUMBO +NCM_GETADDRESS equ WM_USER+1 +NCM_SETALLOWTYPE equ WM_USER+2 +NCM_GETALLOWTYPE equ WM_USER+3 +NCM_DISPLAYERRORTIP equ WM_USER+4 + +; shlobj + +SHSTDDOCAPI equ STDAPI +BROWSEUIAPI equ STDAPI +SHFOLDERAPI equ STDAPI +IExtractIconVtbl equ IExtractIconWVtbl +IShellExecuteHookVtbl equ IShellExecuteHookWVtbl +INewShortcutHookVtbl equ INewShortcutHookWVtbl +ICopyHookVtbl equ ICopyHookWVtbl +CMDID_INTSHORTCUTCREATE equ ISHCUTCMDID_INTSHORTCUTCREATE +CFSTR_INETURLA equ CFSTR_SHELLURL +ILCloneFull equ ILClone +ILCloneChild equ ILCloneFirst +SFVSOC_NOSCROLL equ LVSICF_NOSCROLL + +;;;; end misc +;;;; shlobj + +ADDURL_SILENT equ 0001h +AD_APPLY_ALL equ (AD_APPLY_SAVE or AD_APPLY_HTMLGEN or AD_APPLY_REFRESH) +AD_APPLY_BUFFERED_REFRESH equ 00000010h +AD_APPLY_DYNAMICREFRESH equ 00000020h +AD_APPLY_FORCE equ 00000008h +AD_APPLY_HTMLGEN equ 00000002h +AD_APPLY_REFRESH equ 00000004h +AD_APPLY_SAVE equ 00000001h +AD_GETWP_BMP equ 00000000h +AD_GETWP_IMAGE equ 00000001h +AD_GETWP_LAST_APPLIED equ 00000002h +BFFM_ENABLEOK equ (WM_USER + 101) +BFFM_INITIALIZED equ 1 +BFFM_IUNKNOWN equ 5 +BFFM_SELCHANGED equ 2 +BFFM_SETEXPANDED equ (WM_USER + 106) +BFFM_SETOKTEXT equ (WM_USER + 105) +BFFM_VALIDATEFAILEDA equ 3 +BFFM_VALIDATEFAILEDW equ 4 +IFDEF __UNICODE__ + BFFM_VALIDATEFAILED equ BFFM_VALIDATEFAILEDW +ELSE + BFFM_VALIDATEFAILED equ BFFM_VALIDATEFAILEDA +ENDIF + +BIF_BROWSEFORCOMPUTER equ 1000h +BIF_BROWSEFORPRINTER equ 2000h +BIF_BROWSEINCLUDEFILES equ 4000h +BIF_BROWSEINCLUDEURLS equ 0080h +BIF_DONTGOBELOWDOMAIN equ 0002h +BIF_EDITBOX equ 0010h +BIF_NEWDIALOGSTYLE equ 0040h +BIF_NONEWFOLDERBUTTON equ 0200h +BIF_NOTRANSLATETARGETS equ 0400h +BIF_RETURNFSANCESTORS equ 0008h +BIF_RETURNONLYFSDIRS equ 0001h +BIF_SHAREABLE equ 8000h +BIF_STATUSTEXT equ 0004h +BIF_UAHINT equ 0100h +BIF_USENEWUI equ (BIF_NEWDIALOGSTYLE or BIF_EDITBOX) +BIF_VALIDATE equ 0020h +CABINETSTATE_VERSION equ 2 +CDB2GVF_SHOWALLFILES equ 00000001h +CDB2N_CONTEXTMENU_DONE equ 00000001h +CDB2N_CONTEXTMENU_START equ 00000002h +CDBOSC_STATECHANGE equ 00000004h +CLOSEPROPS_DISCARD equ 0001h +CLOSEPROPS_NONE equ 0000h +CMF_EXTENDEDVERBS equ 00000100h +CMF_FINDHACK equ 00000080h +CMIC_MASK_CONTROL_DOWN equ 40000000h +CMIC_MASK_SHIFT_DOWN equ 10000000h +COMPONENT_DEFAULT_LEFT equ 0FFFFh +COMPONENT_DEFAULT_TOP equ 0FFFFh +COMPONENT_TOP equ 3fffffffh +COMP_ELEM_CHECKED equ 00000002h +COMP_ELEM_CURITEMSTATE equ 00004000h +COMP_ELEM_DIRTY equ 00000004h +COMP_ELEM_FRIENDLYNAME equ 00000400h +COMP_ELEM_NOSCROLL equ 00000008h +COMP_ELEM_ORIGINAL_CSI equ 00001000h +COMP_ELEM_POS_LEFT equ 00000010h +COMP_ELEM_POS_TOP equ 00000020h +COMP_ELEM_POS_ZINDEX equ 00000100h +COMP_ELEM_RESTORED_CSI equ 00002000h +COMP_ELEM_SIZE_HEIGHT equ 00000080h +COMP_ELEM_SIZE_WIDTH equ 00000040h +COMP_ELEM_SOURCE equ 00000200h +COMP_ELEM_SUBSCRIBEDURL equ 00000800h +COMP_ELEM_TYPE equ 00000001h +COMP_TYPE_CFHTML equ 4 +COMP_TYPE_CONTROL equ 3 +COMP_TYPE_HTMLDOC equ 0 +COMP_TYPE_MAX equ 4 +COMP_TYPE_PICTURE equ 1 +COMP_TYPE_WEBSITE equ 2 +CSIDL_ADMINTOOLS equ 0030h +CSIDL_ALTSTARTUP equ 001dh +CSIDL_APPDATA equ 001ah +CSIDL_BITBUCKET equ 000ah +CSIDL_CDBURN_AREA equ 003bh +CSIDL_COMMON_ADMINTOOLS equ 002fh +CSIDL_COMMON_ALTSTARTUP equ 001eh +CSIDL_COMMON_APPDATA equ 0023h +CSIDL_COMMON_DESKTOPDIRECTORY equ 0019h +CSIDL_COMMON_DOCUMENTS equ 002eh +CSIDL_COMMON_FAVORITES equ 001fh +CSIDL_COMMON_MUSIC equ 0035h +CSIDL_COMMON_OEM_LINKS equ 003ah +CSIDL_COMMON_PICTURES equ 0036h +CSIDL_COMMON_PROGRAMS equ 0017h +CSIDL_COMMON_STARTMENU equ 0016h +CSIDL_COMMON_STARTUP equ 0018h +CSIDL_COMMON_TEMPLATES equ 002dh +CSIDL_COMMON_VIDEO equ 0037h +CSIDL_COMPUTERSNEARME equ 003dh +CSIDL_CONNECTIONS equ 0031h +CSIDL_CONTROLS equ 0003h +CSIDL_COOKIES equ 0021h +CSIDL_DESKTOP equ 0000h +CSIDL_DESKTOPDIRECTORY equ 0010h +CSIDL_DRIVES equ 0011h +CSIDL_FAVORITES equ 0006h +CSIDL_FLAG_CREATE equ 8000h +CSIDL_FLAG_DONT_UNEXPAND equ 2000h +CSIDL_FLAG_DONT_VERIFY equ 4000h +CSIDL_FLAG_MASK equ 0FF00h +CSIDL_FLAG_NO_ALIAS equ 1000h +CSIDL_FLAG_PER_USER_INIT equ 0800h +CSIDL_FONTS equ 0014h +CSIDL_HISTORY equ 0022h +CSIDL_INTERNET equ 0001h +CSIDL_INTERNET_CACHE equ 0020h +CSIDL_LOCAL_APPDATA equ 001ch +CSIDL_MYDOCUMENTS equ CSIDL_PERSONAL +CSIDL_MYMUSIC equ 000dh +CSIDL_MYPICTURES equ 0027h +CSIDL_MYVIDEO equ 000eh +CSIDL_NETHOOD equ 0013h +CSIDL_NETWORK equ 0012h +CSIDL_PERSONAL equ 0005h +CSIDL_PRINTERS equ 0004h +CSIDL_PRINTHOOD equ 001bh +CSIDL_PROFILE equ 0028h +CSIDL_PROGRAMS equ 0002h +CSIDL_PROGRAM_FILES equ 0026h +CSIDL_PROGRAM_FILESX86 equ 002ah +CSIDL_PROGRAM_FILES_COMMON equ 002bh +CSIDL_PROGRAM_FILES_COMMONX86 equ 002ch +CSIDL_RECENT equ 0008h +CSIDL_RESOURCES equ 0038h +CSIDL_RESOURCES_LOCALIZED equ 0039h +CSIDL_SENDTO equ 0009h +CSIDL_STARTMENU equ 000bh +CSIDL_STARTUP equ 0007h +CSIDL_SYSTEM equ 0025h +CSIDL_SYSTEMX86 equ 0029h +CSIDL_TEMPLATES equ 0015h +CSIDL_WINDOWS equ 0024h +DBC_GS_IDEAL equ 0 +DBC_GS_SIZEDOWN equ 1 +DBC_HIDE equ 0 +DBC_SHOW equ 1 +DBC_SHOWOBSCURE equ 2 +DFM_CMD_COPY equ -3 +DFM_CMD_DELETE equ -1 +DFM_CMD_LINK equ -4 +DFM_CMD_MODALPROP equ -12 +DFM_CMD_MOVE equ -2 +DFM_CMD_NEWFOLDER equ -6 +DFM_CMD_PASTE equ -7 +DFM_CMD_PASTELINK equ -10 +DFM_CMD_PASTESPECIAL equ -11 +DFM_CMD_PROPERTIES equ -5 +DFM_CMD_RENAME equ -13 +DFM_CMD_VIEWDETAILS equ -9 +DFM_CMD_VIEWLIST equ -8 +DFM_GETDEFSTATICID equ 14 +DFM_GETHELPTEXT equ 5 +DFM_GETHELPTEXTW equ 11 +DFM_GETVERBA equ 16 +DFM_GETVERBW equ 15 +DFM_INVOKECOMMAND equ 2 +DFM_INVOKECOMMANDEX equ 12 +DFM_MAPCOMMANDNAME equ 13 +DFM_MERGECONTEXTMENU equ 1 +DFM_MERGECONTEXTMENU_BOTTOM equ 17 +DFM_MERGECONTEXTMENU_TOP equ 10 +DFM_VALIDATECMD equ 9 +DFM_WM_DRAWITEM equ 7 +DFM_WM_INITMENUPOPUP equ 8 +DFM_WM_MEASUREITEM equ 6 +DVASPECT_COPY equ 3 +DVASPECT_LINK equ 4 +DVASPECT_SHORTNAME equ 2 +DWFAF_AUTOHIDE equ 0010h +DWFAF_GROUP1 equ 0002h +DWFAF_GROUP2 equ 0004h +DWFAF_HIDDEN equ 0001h +DWFRF_DELETECONFIGDATA equ 0001h +DWFRF_NORMAL equ 0000h +EXP_DARWIN_ID_SIG equ 0A0000006h +EXP_LOGO3_ID_SIG equ 0A0000007h +EXP_PROPERTYSTORAGE_SIG equ 0A0000009h +EXP_SPECIAL_FOLDER_SIG equ 0A0000005h +EXP_SZ_ICON_SIG equ 0A0000007h +EXP_SZ_LINK_SIG equ 0A0000001h +FCIDM_BROWSERFIRST equ 0a000h +FCIDM_BROWSERLAST equ 0bf00h +FCIDM_GLOBALFIRST equ 8000h +FCIDM_GLOBALLAST equ 9fffh +FCIDM_MENU_EDIT equ FCIDM_GLOBALFIRST+0040h +FCIDM_MENU_EXPLORE equ FCIDM_GLOBALFIRST+0150h +FCIDM_MENU_FAVORITES equ FCIDM_GLOBALFIRST+0170h +FCIDM_MENU_FILE equ FCIDM_GLOBALFIRST+0000h +FCIDM_MENU_FIND equ FCIDM_GLOBALFIRST+0140h +FCIDM_MENU_HELP equ FCIDM_GLOBALFIRST+0100h +FCIDM_MENU_TOOLS equ FCIDM_GLOBALFIRST+00c0h +FCIDM_MENU_TOOLS_SEP_GOTO equ FCIDM_GLOBALFIRST+00c1h +FCIDM_MENU_VIEW equ FCIDM_GLOBALFIRST+0080h +FCIDM_MENU_VIEW_SEP_OPTIONS equ FCIDM_GLOBALFIRST+0081h +FCIDM_SHVIEWFIRST equ 0000h +FCIDM_SHVIEWLAST equ 7fffh +FCIDM_STATUS equ FCIDM_BROWSERFIRST + 1 +FCIDM_TOOLBAR equ FCIDM_BROWSERFIRST + 0 +FCSM_CLSID equ 00000008h +FCSM_FLAGS equ 00000040h +FCSM_ICONFILE equ 00000010h +FCSM_INFOTIP equ 00000004h +FCSM_LOGO equ 00000020h +FCSM_VIEWID equ 00000001h +FCSM_WEBVIEWTEMPLATE equ 00000002h +FCS_FLAG_DRAGDROP equ 2 +FCS_FORCEWRITE equ 00000002h +FCS_READ equ 00000001h +FCS_WRITE equ (FCS_READ or FCS_FORCEWRITE) +FOF_NORECURSEREPARSE equ 8000h +FOF_NORECURSION equ 1000h +FOF_NO_CONNECTED_ELEMENTS equ 2000h +FOF_WANTNUKEWARNING equ 4000h +FVSIF_CANVIEWIT equ 40000000h +FVSIF_NEWFAILED equ 08000000h +FVSIF_NEWFILE equ 80000000h +FVSIF_PINNED equ 00000002h +FVSIF_RECT equ 00000001h +GADOF_DIRTY equ 00000001h +GETPROPS_NONE equ 0000h +GIL_ASYNC equ 0020h +GIL_CHECKSHIELD equ 0200h +GIL_DEFAULTICON equ 0040h +GIL_DONTCACHE equ 0010h +GIL_FORCENOSHIELD equ 0400h +GIL_FORSHELL equ 0002h +GIL_FORSHORTCUT equ 0080h +GIL_NOTFILENAME equ 0008h +GIL_OPENICON equ 0001h +GIL_PERCLASS equ 0004h +GIL_PERINSTANCE equ 0002h +GIL_SHIELD equ 0200h +GIL_SIMULATEDOC equ 0001h +IDC_OFFLINE_HAND equ 103 +IDC_PANTOOL_HAND_CLOSED equ 105 +IDC_PANTOOL_HAND_OPEN equ 104 +IDO_SHGIOI_LINK equ 0FFFFFFEh +IDO_SHGIOI_SHARE equ 0FFFFFFFh +IDO_SHGIOI_SLOWFILE equ 0FFFFFFFDh +IEIFLAG_ASPECT equ 0004h +IEIFLAG_ASYNC equ 0001h +IEIFLAG_CACHE equ 0002h +IEIFLAG_GLEAM equ 0010h +IEIFLAG_OFFLINE equ 0008h +IEIFLAG_ORIGSIZE equ 0040h +IEIFLAG_SCREEN equ 0020h +IRTIR_TASK_FINISHED equ 4 +IRTIR_TASK_NOT_RUNNING equ 0 +IRTIR_TASK_PENDING equ 3 +IRTIR_TASK_RUNNING equ 1 +IRTIR_TASK_SUSPENDED equ 2 +ISFBVIEWMODE_LARGEICONS equ 0002h +ISFBVIEWMODE_LOGOS equ 0003h +ISFBVIEWMODE_SMALLICONS equ 0001h +ISFB_MASK_BKCOLOR equ 00000002h +ISFB_MASK_COLORS equ 00000020h +ISFB_MASK_IDLIST equ 00000010h +ISFB_MASK_SHELLFOLDER equ 00000008h +ISFB_MASK_STATE equ 00000001h +ISFB_MASK_VIEWMODE equ 00000004h +ISFB_STATE_ALLOWRENAME equ 00000002h +ISFB_STATE_BTNMINSIZE equ 00000100h +ISFB_STATE_CHANNELBAR equ 00000010h +ISFB_STATE_DEBOSSED equ 00000001h +ISFB_STATE_DEFAULT equ 00000000h +ISFB_STATE_FULLOPEN equ 00000040h +ISFB_STATE_NONAMESORT equ 00000080h +ISFB_STATE_NOSHOWTEXT equ 00000004h +ISFB_STATE_QLINKSMODE equ 00000020h +ISIOI_ICONFILE equ 00000001h +ISIOI_ICONINDEX equ 00000002h +IS_FULLSCREEN equ 00000002h +IS_NORMAL equ 00000001h +IS_SPLIT equ 00000004h +IS_VALIDSIZESTATEBITS equ (IS_NORMAL or IS_SPLIT or IS_FULLSCREEN) +IS_VALIDSTATEBITS equ (IS_NORMAL or IS_SPLIT or IS_FULLSCREEN or 80000000h or 40000000h +ITSAT_DEFAULT_LPARAM equ 0ffffffffh +ITSAT_DEFAULT_PRIORITY equ 10000000h +ITSAT_MAX_PRIORITY equ 7fffffffh +ITSAT_MIN_PRIORITY equ 00000000h +ITSSFLAG_COMPLETE_ON_DESTROY equ 0000h +ITSSFLAG_FLAGS_MASK equ 0003h +ITSSFLAG_KILL_ON_DESTROY equ 0001h +ITSSFLAG_SUPPORTS_TERMINATE equ 0002h +ITSSFLAG_TASK_PLACEINBACK equ 00000002h +ITSSFLAG_TASK_PLACEINFRONT equ 00000001h +ITSSFLAG_THREAD_POOL_TIMEOUT equ 0020h +ITSSFLAG_THREAD_TERMINATE_TIMEOUT equ 0010h +ITSS_THREAD_DESTROY_DEFAULT_TIMEOUT equ 60000 +ITSS_THREAD_TERMINATE_TIMEOUT equ (INFINITE) +ITSS_THREAD_TIMEOUT_NO_CHANGE equ (INFINITE - 1) +KF_FLAG_CREATE equ 00008000h +KF_FLAG_DEFAULT_PATH equ 00000400h +KF_FLAG_DONT_UNEXPAND equ 00002000h +KF_FLAG_DONT_VERIFY equ 00004000h +KF_FLAG_INIT equ 00000800h +KF_FLAG_NOT_PARENT_RELATIVE equ 00000200h +KF_FLAG_NO_ALIAS equ 00001000h +KF_FLAG_SIMPLE_IDLIST equ 00000100h +MAX_COLUMN_DESC_LEN equ 128 +MAX_COLUMN_NAME_LEN equ 80 +MM_ADDSEPARATOR equ 00000001h +MM_DONTREMOVESEPS equ 00000004h +MM_SUBMENUSHAVEIDS equ 00000002h +NT_CONSOLE_PROPS_SIG equ 0A0000002h +NT_FE_CONSOLE_PROPS_SIG equ 0A0000004h +NUM_POINTS equ 3 +OFASI_EDIT equ 0001h +OFASI_OPENDESKTOP equ 0002h +OI_ASYNC equ 0FFFFEEEEh +OI_DEFAULT equ 00000000h +OPENPROPS_INHIBITPIF equ 8000h +OPENPROPS_NONE equ 0000h +PANE_NAVIGATION equ 5 +PANE_NONE equ -1 +PANE_OFFLINE equ 2 +PANE_PRINTER equ 3 +PANE_PRIVACY equ 7 +PANE_PROGRESS equ 6 +PANE_SSL equ 4 +PANE_ZONE equ 1 +PCS_FATAL equ 80000000h +PCS_PATHTOOLONG equ 00000008h +PCS_REMOVEDCHAR equ 00000002h +PCS_REPLACEDCHAR equ 00000001h +PCS_TRUNCATED equ 00000004h +PDTIMER_PAUSE equ 00000002h +PDTIMER_RESET equ 00000001h +PDTIMER_RESUME equ 00000003h +PIDISF_CACHEDSTICKY equ 00000002h +PIDISF_CACHEIMAGES equ 00000010h +PIDISF_FOLLOWALLLINKS equ 00000020h +PIDISF_RECENTLYCHANGED equ 00000001h +PIDISM_DONTWATCH equ 2 +PIDISM_GLOBAL equ 0 +PIDISM_WATCH equ 1 +PID_INTSITE_AUTHOR equ 3 +PID_INTSITE_CODEPAGE equ 18 +PID_INTSITE_COMMENT equ 8 +PID_INTSITE_CONTENTCODE equ 11 +PID_INTSITE_CONTENTLEN equ 10 +PID_INTSITE_DESCRIPTION equ 7 +PID_INTSITE_FLAGS equ 9 +PID_INTSITE_ICONFILE equ 21 +PID_INTSITE_ICONINDEX equ 20 +PID_INTSITE_LASTMOD equ 5 +PID_INTSITE_LASTVISIT equ 4 +PID_INTSITE_RECURSE equ 12 +PID_INTSITE_SUBSCRIPTION equ 14 +PID_INTSITE_TITLE equ 16 +PID_INTSITE_TRACKING equ 19 +PID_INTSITE_URL equ 15 +PID_INTSITE_VISITCOUNT equ 6 +PID_INTSITE_WATCH equ 13 +PID_INTSITE_WHATSNEW equ 2 +PID_IS_AUTHOR equ 11 +PID_IS_COMMENT equ 13 +PID_IS_DESCRIPTION equ 12 +PID_IS_HOTKEY equ 6 +PID_IS_ICONFILE equ 9 +PID_IS_ICONINDEX equ 8 +PID_IS_NAME equ 4 +PID_IS_SHOWCMD equ 7 +PID_IS_URL equ 2 +PID_IS_WHATSNEW equ 10 +PID_IS_WORKINGDIR equ 5 +PIFDEFFILESIZE equ 80 +PIFDEFPATHSIZE equ 64 +PIFMAXFILEPATH equ 260 +PIFNAMESIZE equ 30 +PIFPARAMSSIZE equ 64 +PIFSHDATASIZE equ 64 +PIFSHPROGSIZE equ 64 +PIFSTARTLOCSIZE equ 63 +PPCF_ADDARGUMENTS equ 00000003h +PPCF_ADDQUOTES equ 00000001h +PPCF_FORCEQUALIFY equ 00000040h +PPCF_LONGESTPOSSIBLE equ 00000080h +PPCF_NODIRECTORIES equ 00000010h +PRF_DONTFINDLNK equ 0008h +PRF_FIRSTDIRDEF equ 0004h +PRF_REQUIREABSOLUTE equ 0010h +PRF_TRYPROGRAMEXTENSIONS equ (0002h or PRF_VERIFYEXISTS) +PRF_VERIFYEXISTS equ 0001h +PROGDLG_AUTOTIME equ 00000002h +PROGDLG_MARQUEEPROGRESS equ 00000020h +PROGDLG_MODAL equ 00000001h +PROGDLG_NOCANCEL equ 00000040h +PROGDLG_NOMINIMIZE equ 00000008h +PROGDLG_NOPROGRESSBAR equ 00000010h +PROGDLG_NORMAL equ 00000000h +PROGDLG_NOTIME equ 00000004h +QCMINFO_PLACE_AFTER equ 1 +QCMINFO_PLACE_BEFORE equ 0 +QIF_CACHED equ 00000001h +QIF_DONTEXPANDFOLDER equ 00000002h +QITIPF_DEFAULT equ 00000000h +QITIPF_LINKNOTARGET equ 00000002h +QITIPF_LINKUSETARGET equ 00000004h +QITIPF_SINGLELINE equ 00000010h +QITIPF_USENAME equ 00000001h +QITIPF_USESLOWTIP equ 00000008h +SBSP_HELPMODE equ 0040h +SBSP_NOTRANSFERHIST equ 0080h +SCHEME_CREATE equ 0080h +SCHEME_DISPLAY equ 0001h +SCHEME_DONOTUSE equ 0040h +SCHEME_EDIT equ 0002h +SCHEME_GLOBAL equ 0008h +SCHEME_LOCAL equ 0004h +SCHEME_REFRESH equ 0010h +SCHEME_UPDATE equ 0020h +SETPROPS_NONE equ 0000h +SFGAO_CANMONIKER equ 00400000h +SFVM_ADDOBJECT equ 00000003h +SFVM_ADDPROPERTYPAGES equ 47 +SFVM_BACKGROUNDENUM equ 32 +SFVM_BACKGROUNDENUMDONE equ 48 +SFVM_COLUMNCLICK equ 24 +SFVM_DEFITEMCOUNT equ 26 +SFVM_DEFVIEWMODE equ 27 +SFVM_DIDDRAGDROP equ 36 +SFVM_FSNOTIFY equ 14 +SFVM_GETANIMATION equ 68 +SFVM_GETBUTTONINFO equ 5 +SFVM_GETBUTTONS equ 6 +SFVM_GETDETAILSOF equ 23 +SFVM_GETHELPTEXT equ 3 +SFVM_GETHELPTOPIC equ 63 +SFVM_GETNOTIFY equ 49 +SFVM_GETPANE equ 59 +SFVM_GETSELECTEDOBJECTS equ 00000009h +SFVM_GETSORTDEFAULTS equ 53 +SFVM_GETTOOLTIPTEXT equ 4 +SFVM_GETZONE equ 58 +SFVM_INITMENUPOPUP equ 7 +SFVM_INVOKECOMMAND equ 2 +SFVM_MERGEMENU equ 1 +SFVM_QUERYFSNOTIFY equ 25 +SFVM_REARRANGE equ 00000001h +SFVM_REMOVEOBJECT equ 00000006h +SFVM_SETCLIPBOARD equ 00000010h +SFVM_SETISFV equ 39 +SFVM_SETITEMPOS equ 0000000eh +SFVM_SETPOINTS equ 00000017h +SFVM_SIZE equ 57 +SFVM_THISIDLIST equ 41 +SFVM_UNMERGEMENU equ 28 +SFVM_UPDATEOBJECT equ 00000007h +SFVM_UPDATESTATUSBAR equ 31 +SFVM_WINDOWCREATED equ 15 +SFVSOC_INVALIDATE_ALL equ 00000001h +SFVS_SELECT_ALLITEMS equ 1h +SFVS_SELECT_INVERT equ 2h +SFVS_SELECT_NONE equ 0h +SHARD_PATHA equ 00000002h +SHARD_PATHW equ 00000003h +IFDEF __UNICODE__ + SHARD_PATH equ SHARD_PATHW +ELSE + SHARD_PATH equ SHARD_PATHA +ENDIF + +SHARD_PIDL equ 00000001h +SHCDF_UPDATEITEM equ 00000001h +SHCIDS_ALLFIELDS equ 80000000h +SHCIDS_COLUMNMASK equ 0000FFFFh +SHCNEE_MSI_CHANGE equ 4 +SHCNEE_MSI_UNINSTALL equ 5 +SHCNEE_ORDERCHANGED equ 2 +SHCNE_ALLEVENTS equ 7FFFFFFFh +SHCNE_ASSOCCHANGED equ 08000000h +SHCNE_ATTRIBUTES equ 00000800h +SHCNE_CREATE equ 00000002h +SHCNE_DELETE equ 00000004h +SHCNE_DISKEVENTS equ 0002381Fh +SHCNE_DRIVEADD equ 00000100h +SHCNE_DRIVEADDGUI equ 00010000h +SHCNE_DRIVEREMOVED equ 00000080h +SHCNE_EXTENDED_EVENT equ 04000000h +SHCNE_FREESPACE equ 00040000h +SHCNE_GLOBALEVENTS equ 0C0581E0h +SHCNE_INTERRUPT equ 80000000h +SHCNE_MEDIAINSERTED equ 00000020h +SHCNE_MEDIAREMOVED equ 00000040h +SHCNE_MKDIR equ 00000008h +SHCNE_NETSHARE equ 00000200h +SHCNE_NETUNSHARE equ 00000400h +SHCNE_RENAMEFOLDER equ 00020000h +SHCNE_RENAMEITEM equ 00000001h +SHCNE_RMDIR equ 00000010h +SHCNE_SERVERDISCONNECT equ 00004000h +SHCNE_UPDATEDIR equ 00001000h +SHCNE_UPDATEIMAGE equ 00008000h +SHCNE_UPDATEITEM equ 00002000h +SHCNF_DWORD equ 0003h +SHCNF_FLUSH equ 1000h +SHCNF_FLUSHNOWAIT equ 2000h +SHCNF_IDLIST equ 0000h +SHCNF_NOTIFYRECURSIVE equ 10000h + +SHCNF_PATHA equ 0001h +SHCNF_PATHW equ 0005h +SHCNF_PRINTERA equ 0002h +SHCNF_PRINTERW equ 0006h +IFDEF __UNICODE__ + SHCNF_PATH equ SHCNF_PATHW + SHCNF_PRINTER equ SHCNF_PRINTERW +ELSE + SHCNF_PATH equ SHCNF_PATHA + SHCNF_PRINTER equ SHCNF_PRINTERA +ENDIF + +SHCNF_TYPE equ 00FFh +SHCNRF_InterruptLevel equ 0001h +SHCNRF_NewDelivery equ 8000h +SHCNRF_RecursiveInterrupt equ 1000h +SHCNRF_ShellLevel equ 0002h +SHDID_COMPUTER_AUDIO equ 19 +SHDID_COMPUTER_CDROM equ 10 +SHDID_COMPUTER_DRIVE35 equ 5 +SHDID_COMPUTER_DRIVE525 equ 6 +SHDID_COMPUTER_FIXED equ 8 +SHDID_COMPUTER_IMAGING equ 18 +SHDID_COMPUTER_NETDRIVE equ 9 +SHDID_COMPUTER_OTHER equ 12 +SHDID_COMPUTER_RAMDISK equ 11 +SHDID_COMPUTER_REMOVABLE equ 7 +SHDID_COMPUTER_SHAREDDOCS equ 20 +SHDID_FS_DIRECTORY equ 3 +SHDID_FS_FILE equ 2 +SHDID_FS_OTHER equ 4 +SHDID_MOBILE_DEVICE equ 21 +SHDID_NET_DOMAIN equ 13 +SHDID_NET_OTHER equ 17 +SHDID_NET_RESTOFNET equ 16 +SHDID_NET_SERVER equ 14 +SHDID_NET_SHARE equ 15 +SHDID_ROOT_REGITEM equ 1 +SHELLSTATEVERSION_IE4 equ 9 +SHELLSTATEVERSION_WIN2K equ 10 +SHFMT_CANCEL equ 0FFFFFFFEh +SHFMT_ERROR equ 0FFFFFFFFh +SHFMT_ID_DEFAULT equ 0FFFFh +SHFMT_NOFORMAT equ 0FFFFFFFDh +SHFMT_OPT_FULL equ 0001h +SHFMT_OPT_SYSONLY equ 0002h +SHGDFIL_DESCRIPTIONID equ 3 +SHGDFIL_FINDDATA equ 1 +SHGDFIL_NETRESOURCE equ 2 +SHIMSTCAPFLAG_LOCKABLE equ 0001h +SHIMSTCAPFLAG_PURGEABLE equ 0002h +SHOP_FILEPATH equ 00000002h +SHOP_PRINTERNAME equ 00000001h +SHOP_VOLUMEGUID equ 00000004h +SHPPFW_ASKDIRCREATE equ 00000002h +SHPPFW_DEFAULT equ SHPPFW_DIRCREATE +SHPPFW_DIRCREATE equ 00000001h +SHPPFW_IGNOREFILENAME equ 00000004h +SHPPFW_MEDIACHECKONLY equ 00000010h +SHPPFW_NONE equ 00000000h +SHPPFW_NOWRITECHECK equ 00000008h +SIOM_ICONINDEX equ 2 +SIOM_OVERLAYINDEX equ 1 +SIOM_RESERVED_LINK equ 1 +SIOM_RESERVED_SHARED equ 0 +SIOM_RESERVED_SLOWFILE equ 2 +SSF_AUTOCHECKSELECT equ 00800000h +SSF_DESKTOPHTML equ 00000200h +SSF_DONTPRETTYPATH equ 00000800h +SSF_DOUBLECLICKINWEBVIEW equ 00000080h +SSF_FILTER equ 00010000h +SSF_HIDDENFILEEXTS equ 00000004h +SSF_HIDEICONS equ 00004000h +SSF_ICONSONLY equ 01000000h +SSF_MAPNETDRVBUTTON equ 00001000h +SSF_NOCONFIRMRECYCLE equ 00008000h +SSF_NONETCRAWLING equ 00100000h +SSF_SEPPROCESS equ 00080000h +SSF_SERVERADMINUI equ 00000004h +SSF_SHOWALLOBJECTS equ 00000001h +SSF_SHOWATTRIBCOL equ 00000100h +SSF_SHOWCOMPCOLOR equ 00000008h +SSF_SHOWEXTENSIONS equ 00000002h +SSF_SHOWINFOTIP equ 00002000h +SSF_SHOWSTARTPAGE equ 00400000h +SSF_SHOWSUPERHIDDEN equ 00040000h +SSF_SHOWSYSFILES equ 00000020h +SSF_SHOWTYPEOVERLAY equ 02000000h +SSF_SORTCOLUMNS equ 00000010h +SSF_STARTPANELON equ 00200000h +SSF_WEBVIEW equ 00020000h +SSF_WIN95CLASSIC equ 00000400h +SSM_CLEAR equ 0000h +SSM_REFRESH equ 0002h +SSM_SET equ 0001h +SSM_UPDATE equ 0004h +TBIF_APPEND equ 0 +TBIF_DEFAULT equ 00000000h +TBIF_INTERNETBAR equ 00010000h +TBIF_NOTOOLBAR equ 00030000h +TBIF_PREPEND equ 1 +TBIF_REPLACE equ 2 +TBIF_STANDARDTOOLBAR equ 00020000h +VALIDATEUNC_CONNECT equ 0001h +VALIDATEUNC_NOUI equ 0002h +VALIDATEUNC_PERSIST equ 0008h +VALIDATEUNC_PRINT equ 0004h +VALIDATEUNC_VALID equ 0007h +WPSTYLE_CENTER equ 0 +WPSTYLE_MAX equ 3 +WPSTYLE_STRETCH equ 2 +WPSTYLE_TILE equ 1 + +;;;; end shlobj + +;;;; vfw + +comment * ------------------------ + + Equates from Video for Windows + + ------------------------ * + +BI_1632 equ 32333631h +ICERR_OK equ 0 +ICERR_DONTDRAW equ 1 +ICERR_NEWPALETTE equ 2 +ICERR_GOTOKEYFRAME equ 3 +ICERR_STOPDRAWING equ 4 +ICERR_UNSUPPORTED equ -1 +ICERR_BADFORMAT equ -2 +ICERR_MEMORY equ -3 +ICERR_INTERNAL equ -4 +ICERR_BADFLAGS equ -5 +ICERR_BADPARAM equ -6 +ICERR_BADSIZE equ -7 +ICERR_BADHANDLE equ -8 +ICERR_CANTUPDATE equ -9 +ICERR_ABORT equ -10 +ICERR_ERROR equ -100 +ICERR_BADBITDEPTH equ -200 +ICERR_BADIMAGESIZE equ -201 +ICERR_CUSTOM equ -400 +ICMODE_COMPRESS equ 1 +ICMODE_DECOMPRESS equ 2 +ICMODE_FASTDECOMPRESS equ 3 +ICMODE_QUERY equ 4 +ICMODE_FASTCOMPRESS equ 5 +ICMODE_DRAW equ 8 +ICMODE_INTERNALF_FUNCTION32 equ 8000h +ICMODE_INTERNALF_MASK equ 8000h +AVIIF_LIST equ 00000001h +AVIIF_TWOCC equ 00000002h +AVIIF_KEYFRAME equ 00000010h +ICQUALITY_LOW equ 0 +ICQUALITY_HIGH equ 10000 +ICQUALITY_DEFAULT equ -1 +ICM_USER equ DRV_USER+0000h +ICM_RESERVED equ ICM_RESERVED_LOW +ICM_RESERVED_LOW equ DRV_USER+1000h +ICM_RESERVED_HIGH equ DRV_USER+2000h +ICM_GETSTATE equ ICM_RESERVED+0 +ICM_SETSTATE equ ICM_RESERVED+1 +ICM_GETINFO equ ICM_RESERVED+2 +ICM_CONFIGURE equ ICM_RESERVED+10 +ICM_ABOUT equ ICM_RESERVED+11 +ICM_GETERRORTEXT equ ICM_RESERVED+12 +ICM_GETFORMATNAME equ ICM_RESERVED+20 +ICM_ENUMFORMATS equ ICM_RESERVED+21 +ICM_GETDEFAULTQUALITY equ ICM_RESERVED+30 +ICM_GETQUALITY equ ICM_RESERVED+31 +ICM_SETQUALITY equ ICM_RESERVED+32 +ICM_SET equ ICM_RESERVED+40 +ICM_GET equ ICM_RESERVED+41 +ICM_COMPRESS_GET_FORMAT equ ICM_USER+4 +ICM_COMPRESS_GET_SIZE equ ICM_USER+5 +ICM_COMPRESS_QUERY equ ICM_USER+6 +ICM_COMPRESS_BEGIN equ ICM_USER+7 +ICM_COMPRESS equ ICM_USER+8 +ICM_COMPRESS_END equ ICM_USER+9 +ICM_DECOMPRESS_GET_FORMAT equ ICM_USER+10 +ICM_DECOMPRESS_QUERY equ ICM_USER+11 +ICM_DECOMPRESS_BEGIN equ ICM_USER+12 +ICM_DECOMPRESS equ ICM_USER+13 +ICM_DECOMPRESS_END equ ICM_USER+14 +ICM_DECOMPRESS_SET_PALETTE equ ICM_USER+29 +ICM_DECOMPRESS_GET_PALETTE equ ICM_USER+30 +ICM_DRAW_QUERY equ ICM_USER+31 +ICM_DRAW_BEGIN equ ICM_USER+15 +ICM_DRAW_GET_PALETTE equ ICM_USER+16 +ICM_DRAW_UPDATE equ ICM_USER+17 +ICM_DRAW_START equ ICM_USER+18 +ICM_DRAW_STOP equ ICM_USER+19 +ICM_DRAW_BITS equ ICM_USER+20 +ICM_DRAW_END equ ICM_USER+21 +ICM_DRAW_GETTIME equ ICM_USER+32 +ICM_DRAW equ ICM_USER+33 +ICM_DRAW_WINDOW equ ICM_USER+34 +ICM_DRAW_SETTIME equ ICM_USER+35 +ICM_DRAW_REALIZE equ ICM_USER+36 +ICM_DRAW_FLUSH equ ICM_USER+37 +ICM_DRAW_RENDERBUFFER equ ICM_USER+38 +ICM_DRAW_START_PLAY equ ICM_USER+39 +ICM_DRAW_STOP_PLAY equ ICM_USER+40 +ICM_DRAW_SUGGESTFORMAT equ ICM_USER+50 +ICM_DRAW_CHANGEPALETTE equ ICM_USER+51 +ICM_DRAW_IDLE equ ICM_USER+52 +ICM_GETBUFFERSWANTED equ ICM_USER+41 +ICM_GETDEFAULTKEYFRAMERATE equ ICM_USER+42 +ICM_DECOMPRESSEX_BEGIN equ ICM_USER+60 +ICM_DECOMPRESSEX_QUERY equ ICM_USER+61 +ICM_DECOMPRESSEX equ ICM_USER+62 +ICM_DECOMPRESSEX_END equ ICM_USER+63 +ICM_COMPRESS_FRAMES_INFO equ ICM_USER+70 +ICM_COMPRESS_FRAMES equ ICM_USER+71 +ICM_SET_STATUS_PROC equ ICM_USER+72 +VIDCF_QUALITY equ 0001h +VIDCF_CRUNCH equ 0002h +VIDCF_TEMPORAL equ 0004h +VIDCF_COMPRESSFRAMES equ 0008h +VIDCF_DRAW equ 0010h +VIDCF_FASTTEMPORALC equ 0020h +VIDCF_FASTTEMPORALD equ 0080h +ICCOMPRESS_KEYFRAME equ 00000001h +ICCOMPRESSFRAMES_PADDING equ 00000001h +ICSTATUS_START equ 0 +ICSTATUS_STATUS equ 1 +ICSTATUS_END equ 2 +ICSTATUS_ERROR equ 3 +ICSTATUS_YIELD equ 4 +ICDECOMPRESS_HURRYUP equ 80000000h +ICDECOMPRESS_UPDATE equ 40000000h +ICDECOMPRESS_PREROLL equ 20000000h +ICDECOMPRESS_NULLFRAME equ 10000000h +ICDECOMPRESS_NOTKEYFRAME equ 08000000h +ICDRAW_QUERY equ 00000001h +ICDRAW_FULLSCREEN equ 00000002h +ICDRAW_HDC equ 00000004h +ICDRAW_ANIMATE equ 00000008h +ICDRAW_CONTINUE equ 00000010h +ICDRAW_MEMORYDC equ 00000020h +ICDRAW_UPDATING equ 00000040h +ICDRAW_RENDER equ 00000080h +ICDRAW_BUFFER equ 00000100h +ICDRAW_HURRYUP equ 80000000h +ICDRAW_UPDATE equ 40000000h +ICDRAW_PREROLL equ 20000000h +ICDRAW_NULLFRAME equ 10000000h +ICDRAW_NOTKEYFRAME equ 08000000h +ICINSTALL_UNICODE equ 8000h +ICINSTALL_FUNCTION equ 0001h +ICINSTALL_DRIVER equ 0002h +ICINSTALL_HDRV equ 0004h +ICINSTALL_DRIVERW equ 8002h +ICMF_CONFIGURE_QUERY equ 00000001h +ICMF_ABOUT_QUERY equ 00000001h +ICMF_COMPVARS_VALID equ 00000001h +ICMF_CHOOSE_KEYFRAME equ 0001h +ICMF_CHOOSE_DATARATE equ 0002h +ICMF_CHOOSE_PREVIEW equ 0004h +ICMF_CHOOSE_ALLCOMPRESSORS equ 0008h +DDF_0001 equ 0001h +DDF_UPDATE equ 0002h +DDF_SAME_HDC equ 0004h +DDF_SAME_DRAW equ 0008h +DDF_DONTDRAW equ 0010h +DDF_ANIMATE equ 0020h +DDF_BUFFER equ 0040h +DDF_JUSTDRAWIT equ 0080h +DDF_FULLSCREEN equ 0100h +DDF_BACKGROUNDPAL equ 0200h +DDF_NOTKEYFRAME equ 0400h +DDF_HURRYUP equ 0800h +DDF_HALFTONE equ 1000h +DDF_2000 equ 2000h +DDF_PREROLL equ DDF_DONTDRAW +DDF_SAME_DIB equ DDF_SAME_DRAW +DDF_SAME_SIZE equ DDF_SAME_DRAW +AVIF_HASINDEX equ 00000010h +AVIF_MUSTUSEINDEX equ 00000020h +AVIF_ISINTERLEAVED equ 00000100h +AVIF_WASCAPTUREFILE equ 00010000h +AVIF_COPYRIGHTED equ 00020000h +AVI_HEADERSIZE equ 2048 +AVISF_DISABLED equ 00000001h +AVISF_VIDEO_PALCHANGES equ 00010000h +AVIIF_FIRSTPART equ 00000020h +AVIIF_LASTPART equ 00000040h +AVIIF_MIDPART equ AVIIF_LASTPART or AVIIF_FIRSTPART +AVIIF_NOTIME equ 00000100h +AVIIF_COMPUSE equ 0FFF0000h +AVIGETFRAMEF_BESTDISPLAYFMT equ 1 +AVISTREAMINFO_DISABLED equ 00000001h +AVISTREAMINFO_FORMATCHANGES equ 00010000h +AVIFILEINFO_HASINDEX equ 00000010h +AVIFILEINFO_MUSTUSEINDEX equ 00000020h +AVIFILEINFO_ISINTERLEAVED equ 00000100h +AVIFILEINFO_WASCAPTUREFILE equ 00010000h +AVIFILEINFO_COPYRIGHTED equ 00020000h +AVIFILECAPS_CANREAD equ 00000001h +AVIFILECAPS_CANWRITE equ 00000002h +AVIFILECAPS_ALLKEYFRAMES equ 00000010h +AVIFILECAPS_NOCOMPRESSION equ 00000020h +AVICOMPRESSF_INTERLEAVE equ 00000001h +AVICOMPRESSF_DATARATE equ 00000002h +AVICOMPRESSF_KEYFRAMES equ 00000004h +AVICOMPRESSF_VALID equ 00000008h +AVIFILEHANDLER_CANREAD equ 0001h +AVIFILEHANDLER_CANWRITE equ 0002h +AVIFILEHANDLER_CANACCEPTNONRGB equ 0004h +FIND_DIR equ 0000000Fh +FIND_NEXT equ 00000001h +FIND_PREV equ 00000004h +FIND_FROM_START equ 00000008h +FIND_TYPE equ 000000F0h +FIND_KEY equ 00000010h +FIND_ANY equ 00000020h +FIND_FORMAT equ 00000040h +FIND_RET equ 0000F000h +FIND_POS equ 00000000h +FIND_LENGTH equ 00001000h +FIND_OFFSET equ 00002000h +FIND_SIZE equ 00003000h +FIND_INDEX equ 00004000h +AVIStreamFindKeyFrame equ AVIStreamFindSample +FindKeyFrame equ FindSample +AVIStreamClose equ AVIStreamRelease +AVIFileClose equ AVIFileRelease +AVIStreamInit equ AVIFileInit +AVIStreamExit equ AVIFileExit +SEARCH_NEAREST equ FIND_PREV +SEARCH_BACKWARD equ FIND_PREV +SEARCH_FORWARD equ FIND_NEXT +SEARCH_KEY equ FIND_KEY +SEARCH_ANY equ FIND_ANY +MCIWNDOPENF_NEW equ 0001h +MCIWNDF_NOAUTOSIZEWINDOW equ 0001h +MCIWNDF_NOPLAYBAR equ 0002h +MCIWNDF_NOAUTOSIZEMOVIE equ 0004h +MCIWNDF_NOMENU equ 0008h +MCIWNDF_SHOWNAME equ 0010h +MCIWNDF_SHOWPOS equ 0020h +MCIWNDF_SHOWMODE equ 0040h +MCIWNDF_SHOWALL equ 0070h +MCIWNDF_NOTIFYMODE equ 0100h +MCIWNDF_NOTIFYPOS equ 0200h +MCIWNDF_NOTIFYSIZE equ 0400h +MCIWNDF_NOTIFYERROR equ 1000h +MCIWNDF_NOTIFYALL equ 1F00h +MCIWNDF_NOTIFYANSI equ 0080h +MCIWNDF_NOTIFYMEDIAA equ 0880h +MCIWNDF_NOTIFYMEDIAW equ 0800h +IFDEF __UNICODE__ + MCIWNDF_NOTIFYMEDIA equ MCIWNDF_NOTIFYMEDIAW +ELSE + MCIWNDF_NOTIFYMEDIA equ MCIWNDF_NOTIFYMEDIAA +ENDIF + +MCIWNDF_RECORD equ 2000h +MCIWNDF_NOERRORDLG equ 4000h +MCIWNDF_NOOPEN equ 8000h +MCIWNDM_GETDEVICEID equ WM_USER+100 +MCIWNDM_GETSTART equ WM_USER+103 +MCIWNDM_GETLENGTH equ WM_USER+104 +MCIWNDM_GETEND equ WM_USER+105 +MCIWNDM_EJECT equ WM_USER+107 +MCIWNDM_SETZOOM equ WM_USER+108 +MCIWNDM_GETZOOM equ WM_USER+109 +MCIWNDM_SETVOLUME equ WM_USER+110 +MCIWNDM_GETVOLUME equ WM_USER+111 +MCIWNDM_SETSPEED equ WM_USER+112 +MCIWNDM_GETSPEED equ WM_USER+113 +MCIWNDM_SETREPEAT equ WM_USER+114 +MCIWNDM_GETREPEAT equ WM_USER+115 +MCIWNDM_REALIZE equ WM_USER+118 +MCIWNDM_VALIDATEMEDIA equ WM_USER+121 +MCIWNDM_PLAYFROM equ WM_USER+122 +MCIWNDM_PLAYTO equ WM_USER+123 +MCIWNDM_GETPALETTE equ WM_USER+126 +MCIWNDM_SETPALETTE equ WM_USER+127 +MCIWNDM_SETTIMERS equ WM_USER+129 +MCIWNDM_SETACTIVETIMER equ WM_USER+130 +MCIWNDM_SETINACTIVETIMER equ WM_USER+131 +MCIWNDM_GETACTIVETIMER equ WM_USER+132 +MCIWNDM_GETINACTIVETIMER equ WM_USER+133 +MCIWNDM_CHANGESTYLES equ WM_USER+135 +MCIWNDM_GETSTYLES equ WM_USER+136 +MCIWNDM_GETALIAS equ WM_USER+137 +MCIWNDM_PLAYREVERSE equ WM_USER+139 +MCIWNDM_GET_SOURCE equ WM_USER+140 +MCIWNDM_PUT_SOURCE equ WM_USER+141 +MCIWNDM_GET_DEST equ WM_USER+142 +MCIWNDM_PUT_DEST equ WM_USER+143 +MCIWNDM_CAN_PLAY equ WM_USER+144 +MCIWNDM_CAN_WINDOW equ WM_USER+145 +MCIWNDM_CAN_RECORD equ WM_USER+146 +MCIWNDM_CAN_SAVE equ WM_USER+147 +MCIWNDM_CAN_EJECT equ WM_USER+148 +MCIWNDM_CAN_CONFIG equ WM_USER+149 +MCIWNDM_PALETTEKICK equ WM_USER+150 +MCIWNDM_OPENINTERFACE equ WM_USER+151 +MCIWNDM_SETOWNER equ WM_USER+152 + +MCIWNDM_GETMODEA equ WM_USER+106 +MCIWNDM_GETMODEW equ WM_USER+206 +MCIWNDM_SETTIMEFORMATA equ WM_USER+119 +MCIWNDM_SETTIMEFORMATW equ WM_USER+219 +MCIWNDM_GETTIMEFORMATA equ WM_USER+120 +MCIWNDM_GETTIMEFORMATW equ WM_USER+220 +MCIWNDM_GETFILENAMEA equ WM_USER+124 +MCIWNDM_GETFILENAMEW equ WM_USER+224 +MCIWNDM_GETDEVICEA equ WM_USER+125 +MCIWNDM_GETDEVICEW equ WM_USER+225 +MCIWNDM_GETERRORA equ WM_USER+128 +MCIWNDM_GETERRORW equ WM_USER+228 +MCIWNDM_NEWA equ WM_USER+134 +MCIWNDM_NEWW equ WM_USER+234 +MCIWNDM_RETURNSTRINGA equ WM_USER+138 +MCIWNDM_RETURNSTRINGW equ WM_USER+238 +MCIWNDM_OPENA equ WM_USER+153 +MCIWNDM_OPENW equ WM_USER+252 +MCIWNDM_SENDSTRINGA equ WM_USER+101 +MCIWNDM_SENDSTRINGW equ WM_USER+201 +MCIWNDM_GETPOSITIONA equ WM_USER+102 +MCIWNDM_GETPOSITIONW equ WM_USER+202 + +IFDEF __UNICODE__ + MCIWNDM_GETMODE equ MCIWNDM_GETMODEW + MCIWNDM_SETTIMEFORMAT equ MCIWNDM_SETTIMEFORMATW + MCIWNDM_GETTIMEFORMAT equ MCIWNDM_GETTIMEFORMATW + MCIWNDM_GETFILENAME equ MCIWNDM_GETFILENAMEW + MCIWNDM_GETDEVICE equ MCIWNDM_GETDEVICEW + MCIWNDM_GETERROR equ MCIWNDM_GETERRORW + MCIWNDM_NEW equ MCIWNDM_NEWW + MCIWNDM_RETURNSTRING equ MCIWNDM_RETURNSTRINGW + MCIWNDM_OPEN equ MCIWNDM_OPENW + MCIWNDM_SENDSTRING equ MCIWNDM_SENDSTRINGW + MCIWNDM_GETPOSITION equ MCIWNDM_GETPOSITIONW +ELSE + MCIWNDM_GETMODE equ MCIWNDM_GETMODEA + MCIWNDM_SETTIMEFORMAT equ MCIWNDM_SETTIMEFORMATA + MCIWNDM_GETTIMEFORMAT equ MCIWNDM_GETTIMEFORMATA + MCIWNDM_GETFILENAME equ MCIWNDM_GETFILENAMEA + MCIWNDM_GETDEVICE equ MCIWNDM_GETDEVICEA + MCIWNDM_GETERROR equ MCIWNDM_GETERRORA + MCIWNDM_NEW equ MCIWNDM_NEWA + MCIWNDM_RETURNSTRING equ MCIWNDM_RETURNSTRINGA + MCIWNDM_OPEN equ MCIWNDM_OPENA + MCIWNDM_SENDSTRING equ MCIWNDM_SENDSTRINGA + MCIWNDM_GETPOSITION equ MCIWNDM_GETPOSITIONA +ENDIF + +MCIWNDM_NOTIFYMODE equ WM_USER+200 +MCIWNDM_NOTIFYPOS equ WM_USER+201 +MCIWNDM_NOTIFYSIZE equ WM_USER+202 +MCIWNDM_NOTIFYMEDIA equ WM_USER+203 +MCIWNDM_NOTIFYERROR equ WM_USER+205 +MCIWND_START equ -1 +MCIWND_END equ -2 +DV_ERR_OK equ 0 +DV_ERR_BASE equ 1 +DV_ERR_NONSPECIFIC equ DV_ERR_BASE +DV_ERR_BADFORMAT equ DV_ERR_BASE+1 +DV_ERR_STILLPLAYING equ DV_ERR_BASE+2 +DV_ERR_UNPREPARED equ DV_ERR_BASE+3 +DV_ERR_SYNC equ DV_ERR_BASE+4 +DV_ERR_TOOMANYCHANNELS equ DV_ERR_BASE+5 +DV_ERR_NOTDETECTED equ DV_ERR_BASE+6 +DV_ERR_BADINSTALL equ DV_ERR_BASE+7 +DV_ERR_CREATEPALETTE equ DV_ERR_BASE+8 +DV_ERR_SIZEFIELD equ DV_ERR_BASE+9 +DV_ERR_PARAM1 equ DV_ERR_BASE+10 +DV_ERR_PARAM2 equ DV_ERR_BASE+11 +DV_ERR_CONFIG1 equ DV_ERR_BASE+12 +DV_ERR_CONFIG2 equ DV_ERR_BASE+13 +DV_ERR_FLAGS equ DV_ERR_BASE+14 +DV_ERR_13 equ DV_ERR_BASE+15 +DV_ERR_NOTSUPPORTED equ DV_ERR_BASE+16 +DV_ERR_NOMEM equ DV_ERR_BASE+17 +DV_ERR_ALLOCATED equ DV_ERR_BASE+18 +DV_ERR_BADDEVICEID equ DV_ERR_BASE+19 +DV_ERR_INVALHANDLE equ DV_ERR_BASE+20 +DV_ERR_BADERRNUM equ DV_ERR_BASE+21 +DV_ERR_NO_BUFFERS equ DV_ERR_BASE+22 +DV_ERR_MEM_CONFLICT equ DV_ERR_BASE+23 +DV_ERR_IO_CONFLICT equ DV_ERR_BASE+24 +DV_ERR_DMA_CONFLICT equ DV_ERR_BASE+25 +DV_ERR_INT_CONFLICT equ DV_ERR_BASE+26 +DV_ERR_PROTECT_ONLY equ DV_ERR_BASE+27 +DV_ERR_LASTERROR equ DV_ERR_BASE+27 +DV_ERR_USER_MSG equ DV_ERR_BASE+1000 +DV_VM_OPEN equ MM_DRVM_OPEN +DV_VM_CLOSE equ MM_DRVM_CLOSE +DV_VM_DATA equ MM_DRVM_DATA +DV_VM_ERROR equ MM_DRVM_ERROR +VHDR_DONE equ 00000001h +VHDR_PREPARED equ 00000002h +VHDR_INQUEUE equ 00000004h +VHDR_KEYFRAME equ 00000008h +VHDR_VALID equ 0000000Fh +VCAPS_OVERLAY equ 00000001h +VCAPS_SRC_CAN_CLIP equ 00000002h +VCAPS_DST_CAN_CLIP equ 00000004h +VCAPS_CAN_SCALE equ 00000008h +VIDEO_EXTERNALIN equ 0001h +VIDEO_EXTERNALOUT equ 0002h +VIDEO_IN equ 0004h +VIDEO_OUT equ 0008h +VIDEO_DLG_QUERY equ 0010h +VIDEO_CONFIGURE_QUERY equ 8000h +VIDEO_CONFIGURE_SET equ 1000h +VIDEO_CONFIGURE_GET equ 2000h +VIDEO_CONFIGURE_QUERYSIZE equ 0001h +VIDEO_CONFIGURE_CURRENT equ 0010h +VIDEO_CONFIGURE_NOMINAL equ 0020h +VIDEO_CONFIGURE_MIN equ 0040h +VIDEO_CONFIGURE_MAX equ 0080h +DVM_USER equ 4000h +DVM_CONFIGURE_START equ 1000h +DVM_CONFIGURE_END equ 1FFFh +DVM_PALETTE equ DVM_CONFIGURE_START+1 +DVM_FORMAT equ DVM_CONFIGURE_START+2 +DVM_PALETTERGB555 equ DVM_CONFIGURE_START+3 +DVM_SRC_RECT equ DVM_CONFIGURE_START+4 +DVM_DST_RECT equ DVM_CONFIGURE_START+5 +WM_CAP_START equ WM_USER +WM_CAP_UNICODE_START equ WM_USER+100 +WM_CAP_GET_CAPSTREAMPTR equ WM_CAP_START+1 +WM_CAP_SET_CALLBACK_ERRORA equ WM_CAP_START+2 +WM_CAP_SET_CALLBACK_ERRORW equ WM_CAP_UNICODE_START+2 +WM_CAP_SET_CALLBACK_STATUSA equ WM_CAP_START+3 +WM_CAP_SET_CALLBACK_STATUSW equ WM_CAP_UNICODE_START+3 +WM_CAP_SET_CALLBACK_YIELD equ WM_CAP_START+4 +WM_CAP_SET_CALLBACK_FRAME equ WM_CAP_START+5 +WM_CAP_SET_CALLBACK_VIDEOSTREAM equ WM_CAP_START+6 +WM_CAP_SET_CALLBACK_WAVESTREAM equ WM_CAP_START+7 +WM_CAP_GET_USER_DATA equ WM_CAP_START+8 +WM_CAP_SET_USER_DATA equ WM_CAP_START+9 +WM_CAP_DRIVER_CONNECT equ WM_CAP_START+10 +WM_CAP_DRIVER_DISCONNECT equ WM_CAP_START+11 +WM_CAP_DRIVER_GET_NAMEA equ WM_CAP_START+12 +WM_CAP_DRIVER_GET_NAMEW equ WM_CAP_UNICODE_START+12 +WM_CAP_DRIVER_GET_VERSIONA equ WM_CAP_START+13 +WM_CAP_DRIVER_GET_VERSIONW equ WM_CAP_UNICODE_START+13 +WM_CAP_DRIVER_GET_CAPS equ WM_CAP_START+14 +WM_CAP_FILE_SET_CAPTURE_FILEA equ WM_CAP_START+20 +WM_CAP_FILE_SET_CAPTURE_FILEW equ WM_CAP_UNICODE_START+20 +WM_CAP_FILE_GET_CAPTURE_FILEA equ WM_CAP_START+21 +WM_CAP_FILE_GET_CAPTURE_FILEW equ WM_CAP_UNICODE_START+21 +WM_CAP_FILE_SAVEASA equ WM_CAP_START+23 +WM_CAP_FILE_SAVEASW equ WM_CAP_UNICODE_START+23 +WM_CAP_FILE_SAVEDIBA equ WM_CAP_START+25 +WM_CAP_FILE_SAVEDIBW equ WM_CAP_UNICODE_START+25 +WM_CAP_FILE_ALLOCATE equ WM_CAP_START+22 +WM_CAP_FILE_SET_INFOCHUNK equ WM_CAP_START+24 +WM_CAP_EDIT_COPY equ WM_CAP_START+30 +WM_CAP_SET_AUDIOFORMAT equ WM_CAP_START+35 +WM_CAP_GET_AUDIOFORMAT equ WM_CAP_START+36 +WM_CAP_DLG_VIDEOFORMAT equ WM_CAP_START+41 +WM_CAP_DLG_VIDEOSOURCE equ WM_CAP_START+42 +WM_CAP_DLG_VIDEODISPLAY equ WM_CAP_START+43 +WM_CAP_GET_VIDEOFORMAT equ WM_CAP_START+44 +WM_CAP_SET_VIDEOFORMAT equ WM_CAP_START+45 +WM_CAP_DLG_VIDEOCOMPRESSION equ WM_CAP_START+46 +WM_CAP_SET_PREVIEW equ WM_CAP_START+50 +WM_CAP_SET_OVERLAY equ WM_CAP_START+51 +WM_CAP_SET_PREVIEWRATE equ WM_CAP_START+52 +WM_CAP_SET_SCALE equ WM_CAP_START+53 +WM_CAP_GET_STATUS equ WM_CAP_START+54 +WM_CAP_SET_SCROLL equ WM_CAP_START+55 +WM_CAP_GRAB_FRAME equ WM_CAP_START+60 +WM_CAP_GRAB_FRAME_NOSTOP equ WM_CAP_START+61 +WM_CAP_SEQUENCE equ WM_CAP_START+62 +WM_CAP_SEQUENCE_NOFILE equ WM_CAP_START+63 +WM_CAP_SET_SEQUENCE_SETUP equ WM_CAP_START+64 +WM_CAP_GET_SEQUENCE_SETUP equ WM_CAP_START+65 +WM_CAP_SET_MCI_DEVICEA equ WM_CAP_START+66 +WM_CAP_SET_MCI_DEVICEW equ WM_CAP_UNICODE_START+66 +WM_CAP_GET_MCI_DEVICEA equ WM_CAP_START+67 +WM_CAP_GET_MCI_DEVICEW equ WM_CAP_UNICODE_START+67 +WM_CAP_STOP equ WM_CAP_START+68 +WM_CAP_ABORT equ WM_CAP_START+69 +WM_CAP_SINGLE_FRAME_OPEN equ WM_CAP_START+70 +WM_CAP_SINGLE_FRAME_CLOSE equ WM_CAP_START+71 +WM_CAP_SINGLE_FRAME equ WM_CAP_START+72 +WM_CAP_PAL_OPENA equ WM_CAP_START+80 +WM_CAP_PAL_OPENW equ WM_CAP_UNICODE_START+80 +WM_CAP_PAL_SAVEA equ WM_CAP_START+81 +WM_CAP_PAL_SAVEW equ WM_CAP_UNICODE_START+81 +WM_CAP_PAL_PASTE equ WM_CAP_START+82 +WM_CAP_PAL_AUTOCREATE equ WM_CAP_START+83 +WM_CAP_PAL_MANUALCREATE equ WM_CAP_START+84 +WM_CAP_SET_CALLBACK_CAPCONTROL equ WM_CAP_START+85 +WM_CAP_UNICODE_END equ WM_CAP_PAL_SAVEW +WM_CAP_END equ WM_CAP_UNICODE_END +IFDEF __UNICODE__ + WM_CAP_SET_CALLBACK_ERROR equ WM_CAP_SET_CALLBACK_ERRORW + WM_CAP_SET_CALLBACK_STATUS equ WM_CAP_SET_CALLBACK_STATUSW + WM_CAP_DRIVER_GET_NAME equ WM_CAP_DRIVER_GET_NAMEW + WM_CAP_DRIVER_GET_VERSION equ WM_CAP_DRIVER_GET_VERSIONW + WM_CAP_FILE_SET_CAPTURE_FILE equ WM_CAP_FILE_SET_CAPTURE_FILEW + WM_CAP_FILE_GET_CAPTURE_FILE equ WM_CAP_FILE_GET_CAPTURE_FILEW + WM_CAP_FILE_SAVEAS equ WM_CAP_FILE_SAVEASW + WM_CAP_FILE_SAVEDIB equ WM_CAP_FILE_SAVEDIBW + ;; WM_CAP_SET_MCI_DEVICE equ WM_CAP_SET_MCI_DEVICEW + WM_CAP_GET_MCI_DEVICE equ WM_CAP_GET_MCI_DEVICEW + WM_CAP_PAL_OPEN equ WM_CAP_PAL_OPENW + WM_CAP_PAL_SAVE equ WM_CAP_PAL_SAVEW +ELSE + WM_CAP_SET_CALLBACK_ERROR equ WM_CAP_SET_CALLBACK_ERRORA + WM_CAP_SET_CALLBACK_STATUS equ WM_CAP_SET_CALLBACK_STATUSA + WM_CAP_DRIVER_GET_NAMEA equ WM_CAP_DRIVER_GET_NAMEA + WM_CAP_DRIVER_GET_VERSION equ WM_CAP_DRIVER_GET_VERSIONA + WM_CAP_FILE_SET_CAPTURE_FILE equ WM_CAP_FILE_SET_CAPTURE_FILEA + WM_CAP_FILE_GET_CAPTURE_FILE equ WM_CAP_FILE_GET_CAPTURE_FILEA + WM_CAP_FILE_SAVEAS equ WM_CAP_FILE_SAVEASA + WM_CAP_FILE_SAVEDIB equ WM_CAP_FILE_SAVEDIBA + WM_CAP_SET_MCI_DEVICE equ WM_CAP_SET_MCI_DEVICEA + WM_CAP_GET_MCI_DEVICE equ WM_CAP_GET_MCI_DEVICEA + WM_CAP_PAL_OPEN equ WM_CAP_PAL_OPENA + WM_CAP_PAL_SAVE equ WM_CAP_PAL_SAVEA +ENDIF + +AVSTREAMMASTER_AUDIO equ 0 +AVSTREAMMASTER_NONE equ 1 +CONTROLCALLBACK_PREROLL equ 1 +CONTROLCALLBACK_CAPTURING equ 2 +IDS_CAP_BEGIN equ 300 +IDS_CAP_END equ 301 +IDS_CAP_INFO equ 401 +IDS_CAP_OUTOFMEM equ 402 +IDS_CAP_FILEEXISTS equ 403 +IDS_CAP_ERRORPALOPEN equ 404 +IDS_CAP_ERRORPALSAVE equ 405 +IDS_CAP_ERRORDIBSAVE equ 406 +IDS_CAP_DEFAVIEXT equ 407 +IDS_CAP_DEFPALEXT equ 408 +IDS_CAP_CANTOPEN equ 409 +IDS_CAP_SEQ_MSGSTART equ 410 +IDS_CAP_SEQ_MSGSTOP equ 411 +IDS_CAP_VIDEDITERR equ 412 +IDS_CAP_READONLYFILE equ 413 +IDS_CAP_WRITEERROR equ 414 +IDS_CAP_NODISKSPACE equ 415 +IDS_CAP_SETFILESIZE equ 416 +IDS_CAP_SAVEASPERCENT equ 417 +IDS_CAP_DRIVER_ERROR equ 418 +IDS_CAP_WAVE_OPEN_ERROR equ 419 +IDS_CAP_WAVE_ALLOC_ERROR equ 420 +IDS_CAP_WAVE_PREPARE_ERROR equ 421 +IDS_CAP_WAVE_ADD_ERROR equ 422 +IDS_CAP_WAVE_SIZE_ERROR equ 423 +IDS_CAP_VIDEO_OPEN_ERROR equ 424 +IDS_CAP_VIDEO_ALLOC_ERROR equ 425 +IDS_CAP_VIDEO_PREPARE_ERROR equ 426 +IDS_CAP_VIDEO_ADD_ERROR equ 427 +IDS_CAP_VIDEO_SIZE_ERROR equ 428 +IDS_CAP_FILE_OPEN_ERROR equ 429 +IDS_CAP_FILE_WRITE_ERROR equ 430 +IDS_CAP_RECORDING_ERROR equ 431 +IDS_CAP_RECORDING_ERROR2 equ 432 +IDS_CAP_AVI_INIT_ERROR equ 433 +IDS_CAP_NO_FRAME_CAP_ERROR equ 434 +IDS_CAP_NO_PALETTE_WARN equ 435 +IDS_CAP_MCI_CONTROL_ERROR equ 436 +IDS_CAP_MCI_CANT_STEP_ERROR equ 437 +IDS_CAP_NO_AUDIO_CAP_ERROR equ 438 +IDS_CAP_AVI_DRAWDIB_ERROR equ 439 +IDS_CAP_COMPRESSOR_ERROR equ 440 +IDS_CAP_AUDIO_DROP_ERROR equ 441 +IDS_CAP_AUDIO_DROP_COMPERROR equ 442 +IDS_CAP_STAT_LIVE_MODE equ 500 +IDS_CAP_STAT_OVERLAY_MODE equ 501 +IDS_CAP_STAT_CAP_INIT equ 502 +IDS_CAP_STAT_CAP_FINI equ 503 +IDS_CAP_STAT_PALETTE_BUILD equ 504 +IDS_CAP_STAT_OPTPAL_BUILD equ 505 +IDS_CAP_STAT_I_FRAMES equ 506 +IDS_CAP_STAT_L_FRAMES equ 507 +IDS_CAP_STAT_CAP_L_FRAMES equ 508 +IDS_CAP_STAT_CAP_AUDIO equ 509 +IDS_CAP_STAT_VIDEOCURRENT equ 510 +IDS_CAP_STAT_VIDEOAUDIO equ 511 +IDS_CAP_STAT_VIDEOONLY equ 512 +IDS_CAP_STAT_FRAMESDROPPED equ 513 + +;;;; end vfw + +;;;; wintrust + +WTPF_TRUSTTEST equ 00000020h +WTPF_TESTCANBEVALID equ 00000080h +WTPF_IGNOREEXPIRATION equ 00000100h +WTPF_IGNOREREVOKATION equ 00000200h +WTPF_OFFLINEOK_IND equ 00000400h +WTPF_OFFLINEOK_COM equ 00000800h +WTPF_OFFLINEOKNBU_IND equ 00001000h +WTPF_OFFLINEOKNBU_COM equ 00002000h +WTPF_VERIFY_V1_OFF equ 00010000h +WTPF_IGNOREREVOCATIONONTS equ 00020000h +WTPF_ALLOWONLYPERTRUST equ 00040000h +TRUSTERROR_STEP_WVTPARAMS equ 0 +TRUSTERROR_STEP_FILEIO equ 2 +TRUSTERROR_STEP_SIP equ 3 +TRUSTERROR_STEP_SIPSUBJINFO equ 5 +TRUSTERROR_STEP_CATALOGFILE equ 6 +TRUSTERROR_STEP_CERTSTORE equ 7 +TRUSTERROR_STEP_MESSAGE equ 8 +TRUSTERROR_STEP_MSG_SIGNERCOUNT equ 9 +TRUSTERROR_STEP_MSG_INNERCNTTYPE equ 10 +TRUSTERROR_STEP_MSG_INNERCNT equ 11 +TRUSTERROR_STEP_MSG_STORE equ 12 +TRUSTERROR_STEP_MSG_SIGNERINFO equ 13 +TRUSTERROR_STEP_MSG_SIGNERCERT equ 14 +TRUSTERROR_STEP_MSG_CERTCHAIN equ 15 +TRUSTERROR_STEP_MSG_COUNTERSIGINFO equ 16 +TRUSTERROR_STEP_MSG_COUNTERSIGCERT equ 17 +TRUSTERROR_STEP_VERIFY_MSGHASH equ 18 +TRUSTERROR_STEP_VERIFY_MSGINDIRECTDATA equ 19 +TRUSTERROR_STEP_FINAL_WVTINIT equ 30 +TRUSTERROR_STEP_FINAL_INITPROV equ 31 +TRUSTERROR_STEP_FINAL_OBJPROV equ 32 +TRUSTERROR_STEP_FINAL_SIGPROV equ 33 +TRUSTERROR_STEP_FINAL_CERTPROV equ 34 +TRUSTERROR_STEP_FINAL_CERTCHKPROV equ 35 +TRUSTERROR_STEP_FINAL_POLICYPROV equ 36 +TRUSTERROR_STEP_FINAL_UIPROV equ 37 +TRUSTERROR_MAX_STEPS equ 38 +WT_CURRENT_VERSION equ 00000200h +WT_ADD_ACTION_ID_RET_RESULT_FLAG equ 1h +DWACTION_ALLOCANDFILL equ 1 +DWACTION_FREE equ 2 +SPC_SP_AGENCY_INFO_STRUCT equ 2000 +SPC_MINIMAL_CRITERIA_STRUCT equ 2001 +SPC_FINANCIAL_CRITERIA_STRUCT equ 2002 +SPC_INDIRECT_DATA_CONTENT_STRUCT equ 2003 +SPC_PE_IMAGE_DATA_STRUCT equ 2004 +SPC_LINK_STRUCT equ 2005 +SPC_STATEMENT_TYPE_STRUCT equ 2006 +SPC_SP_OPUS_INFO_STRUCT equ 2007 +SPC_CAB_DATA_STRUCT equ 2008 +SPC_JAVA_CLASS_DATA_STRUCT equ 2009 +SPC_SIGINFO_STRUCT equ 2130 +CAT_NAMEVALUE_STRUCT equ 2221 +CAT_MEMBERINFO_STRUCT equ 2222 +SPC_UUID_LENGTH equ 16 +WIN_CERT_REVISION_1_0 equ 0100h +WIN_CERT_REVISION_2_0 equ 0200h +WIN_CERT_TYPE_X509 equ 0001h +WIN_CERT_TYPE_PKCS_SIGNED_DATA equ 0002h +WIN_CERT_TYPE_RESERVED_1 equ 0003h +WIN_CERT_TYPE_TS_STACK_SIGNED equ 0004h + +;;;; end wintrust + +;;;; winspool + +DSPRINT_PUBLISH equ 00000001h +DSPRINT_UPDATE equ 00000002h +DSPRINT_UNPUBLISH equ 00000004h +DSPRINT_REPUBLISH equ 00000008h +DSPRINT_PENDING equ 80000000h +PRINTER_STATUS_SERVER_UNKNOWN equ 00800000h +PRINTER_STATUS_POWER_SAVE equ 01000000h +PRINTER_ATTRIBUTE_ENABLE_DEVQ equ 00000080h +PRINTER_ATTRIBUTE_KEEPPRINTEDJOBS equ 00000100h +PRINTER_ATTRIBUTE_DO_COMPLETE_FIRST equ 00000200h +PRINTER_ATTRIBUTE_RAW_ONLY equ 00001000h +PRINTER_ATTRIBUTE_PUBLISHED equ 00002000h +PRINTER_ATTRIBUTE_FAX equ 00004000h +PRINTER_ATTRIBUTE_TS equ 00008000h +JOB_CONTROL_SENT_TO_PRINTER equ 6 +JOB_CONTROL_LAST_PAGE_EJECTED equ 7 +JOB_STATUS_DELETED equ 00000100h +JOB_STATUS_BLOCKED_DEVQ equ 00000200h +JOB_STATUS_RESTART equ 00000800h +JOB_STATUS_COMPLETE equ 00001000h +DRIVER_KERNELMODE equ 00000001h +DRIVER_USERMODE equ 00000002h +DPD_DELETE_UNUSED_FILES equ 00000001h +DPD_DELETE_SPECIFIC_VERSION equ 00000002h +DPD_DELETE_ALL_FILES equ 00000004h +APD_STRICT_UPGRADE equ 00000001h +APD_STRICT_DOWNGRADE equ 00000002h +APD_COPY_ALL_FILES equ 00000004h +APD_COPY_NEW_FILES equ 00000008h +APD_COPY_FROM_DIRECTORY equ 00000010h +DI_MEMORYMAP_WRITE equ 00000001h +FORM_USER equ 00000000h +FORM_PRINTER equ 00000002h +NORMAL_PRINT equ 00000000h +REVERSE_PRINT equ 00000001h +PORT_STATUS_TYPE_ERROR equ 1 +PORT_STATUS_TYPE_WARNING equ 2 +PORT_STATUS_TYPE_INFO equ 3 +PORT_STATUS_OFFLINE equ 1 +PORT_STATUS_PAPER_JAM equ 2 +PORT_STATUS_PAPER_OUT equ 3 +PORT_STATUS_OUTPUT_BIN_FULL equ 4 +PORT_STATUS_PAPER_PROBLEM equ 5 +PORT_STATUS_NO_TONER equ 6 +PORT_STATUS_DOOR_OPEN equ 7 +PORT_STATUS_USER_INTERVENTION equ 8 +PORT_STATUS_OUT_OF_MEMORY equ 9 +PORT_STATUS_TONER_LOW equ 10 +PORT_STATUS_WARMING_UP equ 11 +PORT_STATUS_POWER_SAVE equ 12 +PRINTER_ENUM_HIDE equ 01000000h +SPOOL_FILE_PERSISTENT equ 00000001h +SPOOL_FILE_TEMPORARY equ 00000002h +PRINTER_NOTIFY_TYPE equ 00h +JOB_NOTIFY_TYPE equ 01h +PRINTER_NOTIFY_FIELD_SERVER_NAME equ 00h +PRINTER_NOTIFY_FIELD_PRINTER_NAME equ 01h +PRINTER_NOTIFY_FIELD_SHARE_NAME equ 02h +PRINTER_NOTIFY_FIELD_PORT_NAME equ 03h +PRINTER_NOTIFY_FIELD_DRIVER_NAME equ 04h +PRINTER_NOTIFY_FIELD_COMMENT equ 05h +PRINTER_NOTIFY_FIELD_LOCATION equ 06h +PRINTER_NOTIFY_FIELD_DEVMODE equ 07h +PRINTER_NOTIFY_FIELD_SEPFILE equ 08h +PRINTER_NOTIFY_FIELD_PRINT_PROCESSOR equ 09h +PRINTER_NOTIFY_FIELD_PARAMETERS equ 0Ah +PRINTER_NOTIFY_FIELD_DATATYPE equ 0Bh +PRINTER_NOTIFY_FIELD_SECURITY_DESCRIPTOR equ 0Ch +PRINTER_NOTIFY_FIELD_ATTRIBUTES equ 0Dh +PRINTER_NOTIFY_FIELD_PRIORITY equ 0Eh +PRINTER_NOTIFY_FIELD_DEFAULT_PRIORITY equ 0Fh +PRINTER_NOTIFY_FIELD_START_TIME equ 10h +PRINTER_NOTIFY_FIELD_UNTIL_TIME equ 11h +PRINTER_NOTIFY_FIELD_STATUS equ 12h +PRINTER_NOTIFY_FIELD_STATUS_STRING equ 13h +PRINTER_NOTIFY_FIELD_CJOBS equ 14h +PRINTER_NOTIFY_FIELD_AVERAGE_PPM equ 15h +PRINTER_NOTIFY_FIELD_TOTAL_PAGES equ 16h +PRINTER_NOTIFY_FIELD_PAGES_PRINTED equ 17h +PRINTER_NOTIFY_FIELD_TOTAL_BYTES equ 18h +PRINTER_NOTIFY_FIELD_BYTES_PRINTED equ 19h +PRINTER_NOTIFY_FIELD_OBJECT_GUID equ 1Ah +JOB_NOTIFY_FIELD_PRINTER_NAME equ 00h +JOB_NOTIFY_FIELD_MACHINE_NAME equ 01h +JOB_NOTIFY_FIELD_PORT_NAME equ 02h +JOB_NOTIFY_FIELD_USER_NAME equ 03h +JOB_NOTIFY_FIELD_NOTIFY_NAME equ 04h +JOB_NOTIFY_FIELD_DATATYPE equ 05h +JOB_NOTIFY_FIELD_PRINT_PROCESSOR equ 06h +JOB_NOTIFY_FIELD_PARAMETERS equ 07h +JOB_NOTIFY_FIELD_DRIVER_NAME equ 08h +JOB_NOTIFY_FIELD_DEVMODE equ 09h +JOB_NOTIFY_FIELD_STATUS equ 0Ah +JOB_NOTIFY_FIELD_STATUS_STRING equ 0Bh +JOB_NOTIFY_FIELD_SECURITY_DESCRIPTOR equ 0Ch +JOB_NOTIFY_FIELD_DOCUMENT equ 0Dh +JOB_NOTIFY_FIELD_PRIORITY equ 0Eh +JOB_NOTIFY_FIELD_POSITION equ 0Fh +JOB_NOTIFY_FIELD_SUBMITTED equ 10h +JOB_NOTIFY_FIELD_START_TIME equ 11h +JOB_NOTIFY_FIELD_UNTIL_TIME equ 12h +JOB_NOTIFY_FIELD_TIME equ 13h +JOB_NOTIFY_FIELD_TOTAL_PAGES equ 14h +JOB_NOTIFY_FIELD_PAGES_PRINTED equ 15h +JOB_NOTIFY_FIELD_TOTAL_BYTES equ 16h +JOB_NOTIFY_FIELD_BYTES_PRINTED equ 17h +PRINTER_NOTIFY_OPTIONS_REFRESH equ 01h +PRINTER_NOTIFY_INFO_DISCARDED equ 01h +BIDI_ACCESS_ADMINISTRATOR equ 1h +BIDI_ACCESS_USER equ 2h +ERROR_BIDI_STATUS_OK equ 0 +ERROR_BIDI_NOT_SUPPORTED equ ERROR_NOT_SUPPORTED +ERROR_BIDI_ERROR_BASE equ 13000 +ERROR_BIDI_STATUS_WARNING equ (ERROR_BIDI_ERROR_BASE + 1) +ERROR_BIDI_SCHEMA_READ_ONLY equ (ERROR_BIDI_ERROR_BASE + 2) +ERROR_BIDI_SERVER_OFFLINE equ (ERROR_BIDI_ERROR_BASE + 3) +ERROR_BIDI_DEVICE_OFFLINE equ (ERROR_BIDI_ERROR_BASE + 4) +ERROR_BIDI_SCHEMA_NOT_SUPPORTED equ (ERROR_BIDI_ERROR_BASE + 5) +PRINTER_CHANGE_FAILED_CONNECTION_PRINTER equ 00000008h +PRINTER_CHANGE_SET_PRINTER_DRIVER equ 20000000h + +;;;; end winspool + +;;;; opengl + +; ------------------------- equates for opengl ---------------------------- + +GL_VERSION_1_1 equ 1 +GL_ACCUM equ 00100h +GL_LOAD equ 00101h +GL_RETURN equ 00102h +GL_MULT equ 00103h +GL_ADD equ 00104h +GL_NEVER equ 00200h +GL_LESS equ 00201h +GL_EQUAL equ 00202h +GL_LEQUAL equ 00203h +GL_GREATER equ 00204h +GL_NOTEQUAL equ 00205h +GL_GEQUAL equ 00206h +GL_ALWAYS equ 00207h +GL_CURRENT_BIT equ 000000001h +GL_POINT_BIT equ 000000002h +GL_LINE_BIT equ 000000004h +GL_POLYGON_BIT equ 000000008h +GL_POLYGON_STIPPLE_BIT equ 000000010h +GL_PIXEL_MODE_BIT equ 000000020h +GL_LIGHTING_BIT equ 000000040h +GL_FOG_BIT equ 000000080h +GL_DEPTH_BUFFER_BIT equ 000000100h +GL_ACCUM_BUFFER_BIT equ 000000200h +GL_STENCIL_BUFFER_BIT equ 000000400h +GL_VIEWPORT_BIT equ 000000800h +GL_TRANSFORM_BIT equ 000001000h +GL_ENABLE_BIT equ 000002000h +GL_COLOR_BUFFER_BIT equ 000004000h +GL_HINT_BIT equ 000008000h +GL_EVAL_BIT equ 000010000h +GL_LIST_BIT equ 000020000h +GL_TEXTURE_BIT equ 000040000h +GL_SCISSOR_BIT equ 000080000h +GL_ALL_ATTRIB_BITS equ 0000fffffh +GL_POINTS equ 00000h +GL_LINES equ 00001h +GL_LINE_LOOP equ 00002h +GL_LINE_STRIP equ 00003h +GL_TRIANGLES equ 00004h +GL_TRIANGLE_STRIP equ 00005h +GL_TRIANGLE_FAN equ 00006h +GL_QUADS equ 00007h +GL_QUAD_STRIP equ 00008h +GL_POLYGON equ 00009h +GL_ZERO equ 0 +GL_ONE equ 1 +GL_SRC_COLOR equ 00300h +GL_ONE_MINUS_SRC_COLOR equ 00301h +GL_SRC_ALPHA equ 00302h +GL_ONE_MINUS_SRC_ALPHA equ 00303h +GL_DST_ALPHA equ 00304h +GL_ONE_MINUS_DST_ALPHA equ 00305h +GL_DST_COLOR equ 00306h +GL_ONE_MINUS_DST_COLOR equ 00307h +GL_SRC_ALPHA_SATURATE equ 00308h +GL_TRUE equ 1 +GL_FALSE equ 0 +GL_CLIP_PLANE0 equ 03000h +GL_CLIP_PLANE1 equ 03001h +GL_CLIP_PLANE2 equ 03002h +GL_CLIP_PLANE3 equ 03003h +GL_CLIP_PLANE4 equ 03004h +GL_CLIP_PLANE5 equ 03005h +GL_BYTE equ 01400h +GL_UNSIGNED_BYTE equ 01401h +GL_SHORT equ 01402h +GL_UNSIGNED_SHORT equ 01403h +GL_INT equ 01404h +GL_UNSIGNED_INT equ 01405h +GL_FLOAT equ 01406h +GL_2_BYTES equ 01407h +GL_3_BYTES equ 01408h +GL_4_BYTES equ 01409h +GL_DOUBLE equ 0140Ah +GL_NONE equ 0 +GL_FRONT_LEFT equ 00400h +GL_FRONT_RIGHT equ 00401h +GL_BACK_LEFT equ 00402h +GL_BACK_RIGHT equ 00403h +GL_FRONT equ 00404h +GL_BACK equ 00405h +GL_LEFT equ 00406h +GL_RIGHT equ 00407h +GL_FRONT_AND_BACK equ 00408h +GL_AUX0 equ 00409h +GL_AUX1 equ 0040Ah +GL_AUX2 equ 0040Bh +GL_AUX3 equ 0040Ch +GL_NO_ERROR equ 0 +GL_INVALID_ENUM equ 00500h +GL_INVALID_VALUE equ 00501h +GL_INVALID_OPERATION equ 00502h +GL_STACK_OVERFLOW equ 00503h +GL_STACK_UNDERFLOW equ 00504h +GL_OUT_OF_MEMORY equ 00505h +GL_2D equ 00600h +GL_3D equ 00601h +GL_3D_COLOR equ 00602h +GL_3D_COLOR_TEXTURE equ 00603h +GL_4D_COLOR_TEXTURE equ 00604h +GL_PASS_THROUGH_TOKEN equ 00700h +GL_POINT_TOKEN equ 00701h +GL_LINE_TOKEN equ 00702h +GL_POLYGON_TOKEN equ 00703h +GL_BITMAP_TOKEN equ 00704h +GL_DRAW_PIXEL_TOKEN equ 00705h +GL_COPY_PIXEL_TOKEN equ 00706h +GL_LINE_RESET_TOKEN equ 00707h +GL_EXP equ 00800h +GL_EXP2 equ 00801h +GL_CW equ 00900h +GL_CCW equ 00901h +GL_COEFF equ 00A00h +GL_ORDER equ 00A01h +GL_DOMAIN equ 00A02h +GL_CURRENT_COLOR equ 00B00h +GL_CURRENT_INDEX equ 00B01h +GL_CURRENT_NORMAL equ 00B02h +GL_CURRENT_TEXTURE_COORDS equ 00B03h +GL_CURRENT_RASTER_COLOR equ 00B04h +GL_CURRENT_RASTER_INDEX equ 00B05h +GL_CURRENT_RASTER_TEXTURE_COORDS equ 00B06h +GL_CURRENT_RASTER_POSITION equ 00B07h +GL_CURRENT_RASTER_POSITION_VALID equ 00B08h +GL_CURRENT_RASTER_DISTANCE equ 00B09h +GL_POINT_SMOOTH equ 00B10h +GL_POINT_SIZE equ 00B11h +GL_POINT_SIZE_RANGE equ 00B12h +GL_POINT_SIZE_GRANULARITY equ 00B13h +GL_LINE_SMOOTH equ 00B20h +GL_LINE_WIDTH equ 00B21h +GL_LINE_WIDTH_RANGE equ 00B22h +GL_LINE_WIDTH_GRANULARITY equ 00B23h +GL_LINE_STIPPLE equ 00B24h +GL_LINE_STIPPLE_PATTERN equ 00B25h +GL_LINE_STIPPLE_REPEAT equ 00B26h +GL_LIST_MODE equ 00B30h +GL_MAX_LIST_NESTING equ 00B31h +GL_LIST_BASE equ 00B32h +GL_LIST_INDEX equ 00B33h +GL_POLYGON_MODE equ 00B40h +GL_POLYGON_SMOOTH equ 00B41h +GL_POLYGON_STIPPLE equ 00B42h +GL_EDGE_FLAG equ 00B43h +GL_CULL_FACE equ 00B44h +GL_CULL_FACE_MODE equ 00B45h +GL_FRONT_FACE equ 00B46h +GL_LIGHTING equ 00B50h +GL_LIGHT_MODEL_LOCAL_VIEWER equ 00B51h +GL_LIGHT_MODEL_TWO_SIDE equ 00B52h +GL_LIGHT_MODEL_AMBIENT equ 00B53h +GL_SHADE_MODEL equ 00B54h +GL_COLOR_MATERIAL_FACE equ 00B55h +GL_COLOR_MATERIAL_PARAMETER equ 00B56h +GL_COLOR_MATERIAL equ 00B57h +GL_FOG equ 00B60h +GL_FOG_INDEX equ 00B61h +GL_FOG_DENSITY equ 00B62h +GL_FOG_START equ 00B63h +GL_FOG_END equ 00B64h +GL_FOG_MODE equ 00B65h +GL_FOG_COLOR equ 00B66h +GL_DEPTH_RANGE equ 00B70h +GL_DEPTH_TEST equ 00B71h +GL_DEPTH_WRITEMASK equ 00B72h +GL_DEPTH_CLEAR_VALUE equ 00B73h +GL_DEPTH_FUNC equ 00B74h +GL_ACCUM_CLEAR_VALUE equ 00B80h +GL_STENCIL_TEST equ 00B90h +GL_STENCIL_CLEAR_VALUE equ 00B91h +GL_STENCIL_FUNC equ 00B92h +GL_STENCIL_VALUE_MASK equ 00B93h +GL_STENCIL_FAIL equ 00B94h +GL_STENCIL_PASS_DEPTH_FAIL equ 00B95h +GL_STENCIL_PASS_DEPTH_PASS equ 00B96h +GL_STENCIL_REF equ 00B97h +GL_STENCIL_WRITEMASK equ 00B98h +GL_MATRIX_MODE equ 00BA0h +GL_NORMALIZE equ 00BA1h +GL_VIEWPORT equ 00BA2h +GL_MODELVIEW_STACK_DEPTH equ 00BA3h +GL_PROJECTION_STACK_DEPTH equ 00BA4h +GL_TEXTURE_STACK_DEPTH equ 00BA5h +GL_MODELVIEW_MATRIX equ 00BA6h +GL_PROJECTION_MATRIX equ 00BA7h +GL_TEXTURE_MATRIX equ 00BA8h +GL_ATTRIB_STACK_DEPTH equ 00BB0h +GL_CLIENT_ATTRIB_STACK_DEPTH equ 00BB1h +GL_ALPHA_TEST equ 00BC0h +GL_ALPHA_TEST_FUNC equ 00BC1h +GL_ALPHA_TEST_REF equ 00BC2h +GL_DITHER equ 00BD0h +GL_BLEND_DST equ 00BE0h +GL_BLEND_SRC equ 00BE1h +GL_BLEND equ 00BE2h +GL_LOGIC_OP_MODE equ 00BF0h +GL_INDEX_LOGIC_OP equ 00BF1h +GL_COLOR_LOGIC_OP equ 00BF2h +GL_AUX_BUFFERS equ 00C00h +GL_DRAW_BUFFER equ 00C01h +GL_READ_BUFFER equ 00C02h +GL_SCISSOR_BOX equ 00C10h +GL_SCISSOR_TEST equ 00C11h +GL_INDEX_CLEAR_VALUE equ 00C20h +GL_INDEX_WRITEMASK equ 00C21h +GL_COLOR_CLEAR_VALUE equ 00C22h +GL_COLOR_WRITEMASK equ 00C23h +GL_INDEX_MODE equ 00C30h +GL_RGBA_MODE equ 00C31h +GL_DOUBLEBUFFER equ 00C32h +GL_STEREO equ 00C33h +GL_RENDER_MODE equ 00C40h +GL_PERSPECTIVE_CORRECTION_HINT equ 00C50h +GL_POINT_SMOOTH_HINT equ 00C51h +GL_LINE_SMOOTH_HINT equ 00C52h +GL_POLYGON_SMOOTH_HINT equ 00C53h +GL_FOG_HINT equ 00C54h +GL_TEXTURE_GEN_S equ 00C60h +GL_TEXTURE_GEN_T equ 00C61h +GL_TEXTURE_GEN_R equ 00C62h +GL_TEXTURE_GEN_Q equ 00C63h +GL_PIXEL_MAP_I_TO_I equ 00C70h +GL_PIXEL_MAP_S_TO_S equ 00C71h +GL_PIXEL_MAP_I_TO_R equ 00C72h +GL_PIXEL_MAP_I_TO_G equ 00C73h +GL_PIXEL_MAP_I_TO_B equ 00C74h +GL_PIXEL_MAP_I_TO_A equ 00C75h +GL_PIXEL_MAP_R_TO_R equ 00C76h +GL_PIXEL_MAP_G_TO_G equ 00C77h +GL_PIXEL_MAP_B_TO_B equ 00C78h +GL_PIXEL_MAP_A_TO_A equ 00C79h +GL_PIXEL_MAP_I_TO_I_SIZE equ 00CB0h +GL_PIXEL_MAP_S_TO_S_SIZE equ 00CB1h +GL_PIXEL_MAP_I_TO_R_SIZE equ 00CB2h +GL_PIXEL_MAP_I_TO_G_SIZE equ 00CB3h +GL_PIXEL_MAP_I_TO_B_SIZE equ 00CB4h +GL_PIXEL_MAP_I_TO_A_SIZE equ 00CB5h +GL_PIXEL_MAP_R_TO_R_SIZE equ 00CB6h +GL_PIXEL_MAP_G_TO_G_SIZE equ 00CB7h +GL_PIXEL_MAP_B_TO_B_SIZE equ 00CB8h +GL_PIXEL_MAP_A_TO_A_SIZE equ 00CB9h +GL_UNPACK_SWAP_BYTES equ 00CF0h +GL_UNPACK_LSB_FIRST equ 00CF1h +GL_UNPACK_ROW_LENGTH equ 00CF2h +GL_UNPACK_SKIP_ROWS equ 00CF3h +GL_UNPACK_SKIP_PIXELS equ 00CF4h +GL_UNPACK_ALIGNMENT equ 00CF5h +GL_PACK_SWAP_BYTES equ 00D00h +GL_PACK_LSB_FIRST equ 00D01h +GL_PACK_ROW_LENGTH equ 00D02h +GL_PACK_SKIP_ROWS equ 00D03h +GL_PACK_SKIP_PIXELS equ 00D04h +GL_PACK_ALIGNMENT equ 00D05h +GL_MAP_COLOR equ 00D10h +GL_MAP_STENCIL equ 00D11h +GL_INDEX_SHIFT equ 00D12h +GL_INDEX_OFFSET equ 00D13h +GL_RED_SCALE equ 00D14h +GL_RED_BIAS equ 00D15h +GL_ZOOM_X equ 00D16h +GL_ZOOM_Y equ 00D17h +GL_GREEN_SCALE equ 00D18h +GL_GREEN_BIAS equ 00D19h +GL_BLUE_SCALE equ 00D1Ah +GL_BLUE_BIAS equ 00D1Bh +GL_ALPHA_SCALE equ 00D1Ch +GL_ALPHA_BIAS equ 00D1Dh +GL_DEPTH_SCALE equ 00D1Eh +GL_DEPTH_BIAS equ 00D1Fh +GL_MAX_EVAL_ORDER equ 00D30h +GL_MAX_LIGHTS equ 00D31h +GL_MAX_CLIP_PLANES equ 00D32h +GL_MAX_TEXTURE_SIZE equ 00D33h +GL_MAX_PIXEL_MAP_TABLE equ 00D34h +GL_MAX_ATTRIB_STACK_DEPTH equ 00D35h +GL_MAX_MODELVIEW_STACK_DEPTH equ 00D36h +GL_MAX_NAME_STACK_DEPTH equ 00D37h +GL_MAX_PROJECTION_STACK_DEPTH equ 00D38h +GL_MAX_TEXTURE_STACK_DEPTH equ 00D39h +GL_MAX_VIEWPORT_DIMS equ 00D3Ah +GL_MAX_CLIENT_ATTRIB_STACK_DEPTH equ 00D3Bh +GL_SUBPIXEL_BITS equ 00D50h +GL_INDEX_BITS equ 00D51h +GL_RED_BITS equ 00D52h +GL_GREEN_BITS equ 00D53h +GL_BLUE_BITS equ 00D54h +GL_ALPHA_BITS equ 00D55h +GL_DEPTH_BITS equ 00D56h +GL_STENCIL_BITS equ 00D57h +GL_ACCUM_RED_BITS equ 00D58h +GL_ACCUM_GREEN_BITS equ 00D59h +GL_ACCUM_BLUE_BITS equ 00D5Ah +GL_ACCUM_ALPHA_BITS equ 00D5Bh +GL_NAME_STACK_DEPTH equ 00D70h +GL_AUTO_NORMAL equ 00D80h +GL_MAP1_COLOR_4 equ 00D90h +GL_MAP1_INDEX equ 00D91h +GL_MAP1_NORMAL equ 00D92h +GL_MAP1_TEXTURE_COORD_1 equ 00D93h +GL_MAP1_TEXTURE_COORD_2 equ 00D94h +GL_MAP1_TEXTURE_COORD_3 equ 00D95h +GL_MAP1_TEXTURE_COORD_4 equ 00D96h +GL_MAP1_VERTEX_3 equ 00D97h +GL_MAP1_VERTEX_4 equ 00D98h +GL_MAP2_COLOR_4 equ 00DB0h +GL_MAP2_INDEX equ 00DB1h +GL_MAP2_NORMAL equ 00DB2h +GL_MAP2_TEXTURE_COORD_1 equ 00DB3h +GL_MAP2_TEXTURE_COORD_2 equ 00DB4h +GL_MAP2_TEXTURE_COORD_3 equ 00DB5h +GL_MAP2_TEXTURE_COORD_4 equ 00DB6h +GL_MAP2_VERTEX_3 equ 00DB7h +GL_MAP2_VERTEX_4 equ 00DB8h +GL_MAP1_GRID_DOMAIN equ 00DD0h +GL_MAP1_GRID_SEGMENTS equ 00DD1h +GL_MAP2_GRID_DOMAIN equ 00DD2h +GL_MAP2_GRID_SEGMENTS equ 00DD3h +GL_TEXTURE_1D equ 00DE0h +GL_TEXTURE_2D equ 00DE1h +GL_FEEDBACK_BUFFER_POINTER equ 00DF0h +GL_FEEDBACK_BUFFER_SIZE equ 00DF1h +GL_FEEDBACK_BUFFER_TYPE equ 00DF2h +GL_SELECTION_BUFFER_POINTER equ 00DF3h +GL_SELECTION_BUFFER_SIZE equ 00DF4h +GL_TEXTURE_WIDTH equ 01000h +GL_TEXTURE_HEIGHT equ 01001h +GL_TEXTURE_INTERNAL_FORMAT equ 01003h +GL_TEXTURE_BORDER_COLOR equ 01004h +GL_TEXTURE_BORDER equ 01005h +GL_DONT_CARE equ 01100h +GL_FASTEST equ 01101h +GL_NICEST equ 01102h +GL_LIGHT0 equ 04000h +GL_LIGHT1 equ 04001h +GL_LIGHT2 equ 04002h +GL_LIGHT3 equ 04003h +GL_LIGHT4 equ 04004h +GL_LIGHT5 equ 04005h +GL_LIGHT6 equ 04006h +GL_LIGHT7 equ 04007h +GL_AMBIENT equ 01200h +GL_DIFFUSE equ 01201h +GL_SPECULAR equ 01202h +GL_POSITION equ 01203h +GL_SPOT_DIRECTION equ 01204h +GL_SPOT_EXPONENT equ 01205h +GL_SPOT_CUTOFF equ 01206h +GL_CONSTANT_ATTENUATION equ 01207h +GL_LINEAR_ATTENUATION equ 01208h +GL_QUADRATIC_ATTENUATION equ 01209h +GL_COMPILE equ 01300h +GL_COMPILE_AND_EXECUTE equ 01301h +GL_CLEAR equ 01500h +GL_AND equ 01501h +GL_AND_REVERSE equ 01502h +GL_COPY equ 01503h +GL_AND_INVERTED equ 01504h +GL_NOOP equ 01505h +GL_XOR equ 01506h +GL_OR equ 01507h +GL_NOR equ 01508h +GL_EQUIV equ 01509h +GL_INVERT equ 0150Ah +GL_OR_REVERSE equ 0150Bh +GL_COPY_INVERTED equ 0150Ch +GL_OR_INVERTED equ 0150Dh +GL_NAND equ 0150Eh +GL_SET equ 0150Fh +GL_EMISSION equ 01600h +GL_SHININESS equ 01601h +GL_AMBIENT_AND_DIFFUSE equ 01602h +GL_COLOR_INDEXES equ 01603h +GL_MODELVIEW equ 01700h +GL_PROJECTION equ 01701h +GL_TEXTURE equ 01702h +GL_COLOR equ 01800h +GL_DEPTH equ 01801h +GL_STENCIL equ 01802h +GL_COLOR_INDEX equ 01900h +GL_STENCIL_INDEX equ 01901h +GL_DEPTH_COMPONENT equ 01902h +GL_RED equ 01903h +GL_GREEN equ 01904h +GL_BLUE equ 01905h +GL_ALPHA equ 01906h +GL_RGB equ 01907h +GL_RGBA equ 01908h +GL_LUMINANCE equ 01909h +GL_LUMINANCE_ALPHA equ 0190Ah +GL_BITMAP equ 01A00h +GL_POINT equ 01B00h +GL_LINE equ 01B01h +GL_FILL equ 01B02h +GL_RENDER equ 01C00h +GL_FEEDBACK equ 01C01h +GL_SELECT equ 01C02h +GL_FLAT equ 01D00h +GL_SMOOTH equ 01D01h +GL_KEEP equ 01E00h +GL_REPLACE equ 01E01h +GL_INCR equ 01E02h +GL_DECR equ 01E03h +GL_VENDOR equ 01F00h +GL_RENDERER equ 01F01h +GL_VERSION equ 01F02h +GL_EXTENSIONS equ 01F03h +GL_S equ 02000h +GL_T equ 02001h +GL_R equ 02002h +GL_Q equ 02003h +GL_MODULATE equ 02100h +GL_DECAL equ 02101h +GL_TEXTURE_ENV_MODE equ 02200h +GL_TEXTURE_ENV_COLOR equ 02201h +GL_TEXTURE_ENV equ 02300h +GL_EYE_LINEAR equ 02400h +GL_OBJECT_LINEAR equ 02401h +GL_SPHERE_MAP equ 02402h +GL_TEXTURE_GEN_MODE equ 02500h +GL_OBJECT_PLANE equ 02501h +GL_EYE_PLANE equ 02502h +GL_NEAREST equ 02600h +GL_LINEAR equ 02601h +GL_NEAREST_MIPMAP_NEAREST equ 02700h +GL_LINEAR_MIPMAP_NEAREST equ 02701h +GL_NEAREST_MIPMAP_LINEAR equ 02702h +GL_LINEAR_MIPMAP_LINEAR equ 02703h +GL_TEXTURE_MAG_FILTER equ 02800h +GL_TEXTURE_MIN_FILTER equ 02801h +GL_TEXTURE_WRAP_S equ 02802h +GL_TEXTURE_WRAP_T equ 02803h +GL_CLAMP equ 02900h +GL_REPEAT equ 02901h +GL_CLIENT_PIXEL_STORE_BIT equ 000000001h +GL_CLIENT_VERTEX_ARRAY_BIT equ 000000002h +GL_CLIENT_ALL_ATTRIB_BITS equ 0ffffffffh +GL_POLYGON_OFFSET_FACTOR equ 08038h +GL_POLYGON_OFFSET_UNITS equ 02A00h +GL_POLYGON_OFFSET_POINT equ 02A01h +GL_POLYGON_OFFSET_LINE equ 02A02h +GL_POLYGON_OFFSET_FILL equ 08037h +GL_ALPHA4 equ 0803Bh +GL_ALPHA8 equ 0803Ch +GL_ALPHA12 equ 0803Dh +GL_ALPHA16 equ 0803Eh +GL_LUMINANCE4 equ 0803Fh +GL_LUMINANCE8 equ 08040h +GL_LUMINANCE12 equ 08041h +GL_LUMINANCE16 equ 08042h +GL_LUMINANCE4_ALPHA4 equ 08043h +GL_LUMINANCE6_ALPHA2 equ 08044h +GL_LUMINANCE8_ALPHA8 equ 08045h +GL_LUMINANCE12_ALPHA4 equ 08046h +GL_LUMINANCE12_ALPHA12 equ 08047h +GL_LUMINANCE16_ALPHA16 equ 08048h +GL_INTENSITY equ 08049h +GL_INTENSITY4 equ 0804Ah +GL_INTENSITY8 equ 0804Bh +GL_INTENSITY12 equ 0804Ch +GL_INTENSITY16 equ 0804Dh +GL_R3_G3_B2 equ 02A10h +GL_RGB4 equ 0804Fh +GL_RGB5 equ 08050h +GL_RGB8 equ 08051h +GL_RGB10 equ 08052h +GL_RGB12 equ 08053h +GL_RGB16 equ 08054h +GL_RGBA2 equ 08055h +GL_RGBA4 equ 08056h +GL_RGB5_A1 equ 08057h +GL_RGBA8 equ 08058h +GL_RGB10_A2 equ 08059h +GL_RGBA12 equ 0805Ah +GL_RGBA16 equ 0805Bh +GL_TEXTURE_RED_SIZE equ 0805Ch +GL_TEXTURE_GREEN_SIZE equ 0805Dh +GL_TEXTURE_BLUE_SIZE equ 0805Eh +GL_TEXTURE_ALPHA_SIZE equ 0805Fh +GL_TEXTURE_LUMINANCE_SIZE equ 08060h +GL_TEXTURE_INTENSITY_SIZE equ 08061h +GL_PROXY_TEXTURE_1D equ 08063h +GL_PROXY_TEXTURE_2D equ 08064h +GL_TEXTURE_PRIORITY equ 08066h +GL_TEXTURE_RESIDENT equ 08067h +GL_TEXTURE_BINDING_1D equ 08068h +GL_TEXTURE_BINDING_2D equ 08069h +GL_VERTEX_ARRAY equ 08074h +GL_NORMAL_ARRAY equ 08075h +GL_COLOR_ARRAY equ 08076h +GL_INDEX_ARRAY equ 08077h +GL_TEXTURE_COORD_ARRAY equ 08078h +GL_EDGE_FLAG_ARRAY equ 08079h +GL_VERTEX_ARRAY_SIZE equ 0807Ah +GL_VERTEX_ARRAY_TYPE equ 0807Bh +GL_VERTEX_ARRAY_STRIDE equ 0807Ch +GL_NORMAL_ARRAY_TYPE equ 0807Eh +GL_NORMAL_ARRAY_STRIDE equ 0807Fh +GL_COLOR_ARRAY_SIZE equ 08081h +GL_COLOR_ARRAY_TYPE equ 08082h +GL_COLOR_ARRAY_STRIDE equ 08083h +GL_INDEX_ARRAY_TYPE equ 08085h +GL_INDEX_ARRAY_STRIDE equ 08086h +GL_TEXTURE_COORD_ARRAY_SIZE equ 08088h +GL_TEXTURE_COORD_ARRAY_TYPE equ 08089h +GL_TEXTURE_COORD_ARRAY_STRIDE equ 0808Ah +GL_EDGE_FLAG_ARRAY_STRIDE equ 0808Ch +GL_VERTEX_ARRAY_POINTER equ 0808Eh +GL_NORMAL_ARRAY_POINTER equ 0808Fh +GL_COLOR_ARRAY_POINTER equ 08090h +GL_INDEX_ARRAY_POINTER equ 08091h +GL_TEXTURE_COORD_ARRAY_POINTER equ 08092h +GL_EDGE_FLAG_ARRAY_POINTER equ 08093h +GL_V2F equ 02A20h +GL_V3F equ 02A21h +GL_C4UB_V2F equ 02A22h +GL_C4UB_V3F equ 02A23h +GL_C3F_V3F equ 02A24h +GL_N3F_V3F equ 02A25h +GL_C4F_N3F_V3F equ 02A26h +GL_T2F_V3F equ 02A27h +GL_T4F_V4F equ 02A28h +GL_T2F_C4UB_V3F equ 02A29h +GL_T2F_C3F_V3F equ 02A2Ah +GL_T2F_N3F_V3F equ 02A2Bh +GL_T2F_C4F_N3F_V3F equ 02A2Ch +GL_T4F_C4F_N3F_V4F equ 02A2Dh +GL_EXT_vertex_array equ 1 +GL_EXT_bgra equ 1 +GL_EXT_paletted_texture equ 1 +GL_WIN_swap_hint equ 1 +GL_WIN_draw_range_elements equ 1 +GL_VERTEX_ARRAY_EXT equ 08074h +GL_NORMAL_ARRAY_EXT equ 08075h +GL_COLOR_ARRAY_EXT equ 08076h +GL_INDEX_ARRAY_EXT equ 08077h +GL_TEXTURE_COORD_ARRAY_EXT equ 08078h +GL_EDGE_FLAG_ARRAY_EXT equ 08079h +GL_VERTEX_ARRAY_SIZE_EXT equ 0807Ah +GL_VERTEX_ARRAY_TYPE_EXT equ 0807Bh +GL_VERTEX_ARRAY_STRIDE_EXT equ 0807Ch +GL_VERTEX_ARRAY_COUNT_EXT equ 0807Dh +GL_NORMAL_ARRAY_TYPE_EXT equ 0807Eh +GL_NORMAL_ARRAY_STRIDE_EXT equ 0807Fh +GL_NORMAL_ARRAY_COUNT_EXT equ 08080h +GL_COLOR_ARRAY_SIZE_EXT equ 08081h +GL_COLOR_ARRAY_TYPE_EXT equ 08082h +GL_COLOR_ARRAY_STRIDE_EXT equ 08083h +GL_COLOR_ARRAY_COUNT_EXT equ 08084h +GL_INDEX_ARRAY_TYPE_EXT equ 08085h +GL_INDEX_ARRAY_STRIDE_EXT equ 08086h +GL_INDEX_ARRAY_COUNT_EXT equ 08087h +GL_TEXTURE_COORD_ARRAY_SIZE_EXT equ 08088h +GL_TEXTURE_COORD_ARRAY_TYPE_EXT equ 08089h +GL_TEXTURE_COORD_ARRAY_STRIDE_EXT equ 0808Ah +GL_TEXTURE_COORD_ARRAY_COUNT_EXT equ 0808Bh +GL_EDGE_FLAG_ARRAY_STRIDE_EXT equ 0808Ch +GL_EDGE_FLAG_ARRAY_COUNT_EXT equ 0808Dh +GL_VERTEX_ARRAY_POINTER_EXT equ 0808Eh +GL_NORMAL_ARRAY_POINTER_EXT equ 0808Fh +GL_COLOR_ARRAY_POINTER_EXT equ 08090h +GL_INDEX_ARRAY_POINTER_EXT equ 08091h +GL_TEXTURE_COORD_ARRAY_POINTER_EXT equ 08092h +GL_EDGE_FLAG_ARRAY_POINTER_EXT equ 08093h +GL_DOUBLE_EXT equ GL_DOUBLE +GL_BGR_EXT equ 080E0h +GL_BGRA_EXT equ 080E1h +GL_COLOR_TABLE_FORMAT_EXT equ 080D8h +GL_COLOR_TABLE_WIDTH_EXT equ 080D9h +GL_COLOR_TABLE_RED_SIZE_EXT equ 080DAh +GL_COLOR_TABLE_GREEN_SIZE_EXT equ 080DBh +GL_COLOR_TABLE_BLUE_SIZE_EXT equ 080DCh +GL_COLOR_TABLE_ALPHA_SIZE_EXT equ 080DDh +GL_COLOR_TABLE_LUMINANCE_SIZE_EXT equ 080DEh +GL_COLOR_TABLE_INTENSITY_SIZE_EXT equ 080DFh +GL_COLOR_INDEX1_EXT equ 080E2h +GL_COLOR_INDEX2_EXT equ 080E3h +GL_COLOR_INDEX4_EXT equ 080E4h +GL_COLOR_INDEX8_EXT equ 080E5h +GL_COLOR_INDEX12_EXT equ 080E6h +GL_COLOR_INDEX16_EXT equ 080E7h +GL_MAX_ELEMENTS_VERTICES_WIN equ 080E8h +GL_MAX_ELEMENTS_INDICES_WIN equ 080E9h +GL_PHONG_WIN equ 080EAh +GL_PHONG_HINT_WIN equ 080EBh +GL_FOG_SPECULAR_TEXTURE_WIN equ 080ECh +GL_LOGIC_OP equ GL_INDEX_LOGIC_OP +GL_TEXTURE_COMPONENTS equ GL_TEXTURE_INTERNAL_FORMAT + +GLU_VERSION_1_1 equ 1 +GLU_VERSION_1_2 equ 1 +GLU_INVALID_ENUM equ 100900 +GLU_INVALID_VALUE equ 100901 +GLU_OUT_OF_MEMORY equ 100902 +GLU_INCOMPATIBLE_GL_VERSION equ 100903 +GLU_VERSION equ 100800 +GLU_EXTENSIONS equ 100801 +GLU_TRUE equ GL_TRUE +GLU_FALSE equ GL_FALSE +GLU_SMOOTH equ 100000 +GLU_FLAT equ 100001 +GLU_NONE equ 100002 +GLU_POINT equ 100010 +GLU_LINE equ 100011 +GLU_FILL equ 100012 +GLU_SILHOUETTE equ 100013 +GLU_OUTSIDE equ 100020 +GLU_INSIDE equ 100021 +GLU_TESS_MAX_COORD equ 1.0e150 +GLU_TESS_WINDING_RULE equ 100140 +GLU_TESS_BOUNDARY_ONLY equ 100141 +GLU_TESS_TOLERANCE equ 100142 +GLU_TESS_WINDING_ODD equ 100130 +GLU_TESS_WINDING_NONZERO equ 100131 +GLU_TESS_WINDING_POSITIVE equ 100132 +GLU_TESS_WINDING_NEGATIVE equ 100133 +GLU_TESS_WINDING_ABS_GEQ_TWO equ 100134 +GLU_TESS_BEGIN equ 100100 +GLU_TESS_VERTEX equ 100101 +GLU_TESS_END equ 100102 +GLU_TESS_ERROR equ 100103 +GLU_TESS_EDGE_FLAG equ 100104 +GLU_TESS_COMBINE equ 100105 +GLU_TESS_BEGIN_DATA equ 100106 +GLU_TESS_VERTEX_DATA equ 100107 +GLU_TESS_END_DATA equ 100108 +GLU_TESS_ERROR_DATA equ 100109 +GLU_TESS_EDGE_FLAG_DATA equ 100110 +GLU_TESS_COMBINE_DATA equ 100111 +GLU_TESS_ERROR1 equ 100151 +GLU_TESS_ERROR2 equ 100152 +GLU_TESS_ERROR3 equ 100153 +GLU_TESS_ERROR4 equ 100154 +GLU_TESS_ERROR5 equ 100155 +GLU_TESS_ERROR6 equ 100156 +GLU_TESS_ERROR7 equ 100157 +GLU_TESS_ERROR8 equ 100158 +GLU_TESS_MISSING_BEGIN_POLYGON equ GLU_TESS_ERROR1 +GLU_TESS_MISSING_BEGIN_CONTOUR equ GLU_TESS_ERROR2 +GLU_TESS_MISSING_END_POLYGON equ GLU_TESS_ERROR3 +GLU_TESS_MISSING_END_CONTOUR equ GLU_TESS_ERROR4 +GLU_TESS_COORD_TOO_LARGE equ GLU_TESS_ERROR5 +GLU_TESS_NEED_COMBINE_CALLBACK equ GLU_TESS_ERROR6 +GLU_AUTO_LOAD_MATRIX equ 100200 +GLU_CULLING equ 100201 +GLU_SAMPLING_TOLERANCE equ 100203 +GLU_DISPLAY_MODE equ 100204 +GLU_PARAMETRIC_TOLERANCE equ 100202 +GLU_SAMPLING_METHOD equ 100205 +GLU_U_STEP equ 100206 +GLU_V_STEP equ 100207 +GLU_PATH_LENGTH equ 100215 +GLU_PARAMETRIC_ERROR equ 100216 +GLU_DOMAIN_DISTANCE equ 100217 +GLU_MAP1_TRIM_2 equ 100210 +GLU_MAP1_TRIM_3 equ 100211 +GLU_OUTLINE_POLYGON equ 100240 +GLU_OUTLINE_PATCH equ 100241 +GLU_NURBS_ERROR1 equ 100251 +GLU_NURBS_ERROR2 equ 100252 +GLU_NURBS_ERROR3 equ 100253 +GLU_NURBS_ERROR4 equ 100254 +GLU_NURBS_ERROR5 equ 100255 +GLU_NURBS_ERROR6 equ 100256 +GLU_NURBS_ERROR7 equ 100257 +GLU_NURBS_ERROR8 equ 100258 +GLU_NURBS_ERROR9 equ 100259 +GLU_NURBS_ERROR10 equ 100260 +GLU_NURBS_ERROR11 equ 100261 +GLU_NURBS_ERROR12 equ 100262 +GLU_NURBS_ERROR13 equ 100263 +GLU_NURBS_ERROR14 equ 100264 +GLU_NURBS_ERROR15 equ 100265 +GLU_NURBS_ERROR16 equ 100266 +GLU_NURBS_ERROR17 equ 100267 +GLU_NURBS_ERROR18 equ 100268 +GLU_NURBS_ERROR19 equ 100269 +GLU_NURBS_ERROR20 equ 100270 +GLU_NURBS_ERROR21 equ 100271 +GLU_NURBS_ERROR22 equ 100272 +GLU_NURBS_ERROR23 equ 100273 +GLU_NURBS_ERROR24 equ 100274 +GLU_NURBS_ERROR25 equ 100275 +GLU_NURBS_ERROR26 equ 100276 +GLU_NURBS_ERROR27 equ 100277 +GLU_NURBS_ERROR28 equ 100278 +GLU_NURBS_ERROR29 equ 100279 +GLU_NURBS_ERROR30 equ 100280 +GLU_NURBS_ERROR31 equ 100281 +GLU_NURBS_ERROR32 equ 100282 +GLU_NURBS_ERROR33 equ 100283 +GLU_NURBS_ERROR34 equ 100284 +GLU_NURBS_ERROR35 equ 100285 +GLU_NURBS_ERROR36 equ 100286 +GLU_NURBS_ERROR37 equ 100287 +GLU_CW equ 100120 +GLU_CCW equ 100121 +GLU_INTERIOR equ 100122 +GLU_EXTERIOR equ 100123 +GLU_UNKNOWN equ 100124 +GLU_BEGIN equ GLU_TESS_BEGIN +GLU_VERTEX equ GLU_TESS_VERTEX +GLU_END equ GLU_TESS_END +GLU_ERROR equ GLU_TESS_ERROR +GLU_EDGE_FLAG equ GLU_TESS_EDGE_FLAG + +;;;; end opengl + +;;;; urlmon + +__REQUIRED_RPCNDR_H_VERSION__ equ 440 +MKSYS_URLMONIKER equ 6 +URL_MK_LEGACY equ 0 +URL_MK_UNIFORM equ 1 +URL_MK_NO_CANONICALIZE equ 2 +FIEF_FLAG_FORCE_JITUI equ 1h +FIEF_FLAG_PEEK equ 2h +FIEF_FLAG_SKIP_INSTALLED_VERSION_CHECK equ 4h +FMFD_DEFAULT equ 00000000h +FMFD_URLASFILENAME equ 00000001h +URLMON_OPTION_USERAGENT equ 10000001h +URLMON_OPTION_USERAGENT_REFRESH equ 10000002h +URLMON_OPTION_URL_ENCODING equ 10000004h +CF_NULL equ 0 +WININETINFO_OPTION_LOCK_HANDLE equ 65534 +URLOSTRM_USECACHEDCOPY_ONLY equ 1h +URLOSTRM_USECACHEDCOPY equ 2h +URLOSTRM_GETNEWESTVERSION equ 3h +PROTOCOLFLAG_NO_PICS_CHECK equ 00000001h +MUTZ_NOSAVEDFILECHECK equ 00000001h +MUTZ_ENFORCERESTRICTED equ 00000100h +MAX_SIZE_SECURITY_ID equ 512 +URLACTION_MIN equ 00001000h +URLACTION_DOWNLOAD_MIN equ 00001000h +URLACTION_DOWNLOAD_SIGNED_ACTIVEX equ 00001001h +URLACTION_DOWNLOAD_UNSIGNED_ACTIVEX equ 00001004h +URLACTION_DOWNLOAD_CURR_MAX equ 00001004h +URLACTION_DOWNLOAD_MAX equ 000011FFh +URLACTION_ACTIVEX_MIN equ 00001200h +URLACTION_ACTIVEX_RUN equ 00001200h +URLPOLICY_ACTIVEX_CHECK_LIST equ 00010000h +URLACTION_ACTIVEX_OVERRIDE_OBJECT_SAFETY equ 00001201h +URLACTION_ACTIVEX_OVERRIDE_DATA_SAFETY equ 00001202h +URLACTION_ACTIVEX_OVERRIDE_SCRIPT_SAFETY equ 00001203h +URLACTION_SCRIPT_OVERRIDE_SAFETY equ 00001401h +URLACTION_ACTIVEX_CONFIRM_NOOBJECTSAFETY equ 00001204h +URLACTION_ACTIVEX_TREATASUNTRUSTED equ 00001205h +URLACTION_ACTIVEX_NO_WEBOC_SCRIPT equ 00001206h +URLACTION_ACTIVEX_CURR_MAX equ 00001206h +URLACTION_ACTIVEX_MAX equ 000013ffh +URLACTION_SCRIPT_MIN equ 00001400h +URLACTION_SCRIPT_RUN equ 00001400h +URLACTION_SCRIPT_JAVA_USE equ 00001402h +URLACTION_SCRIPT_SAFE_ACTIVEX equ 00001405h +URLACTION_CROSS_DOMAIN_DATA equ 00001406h +URLACTION_SCRIPT_PASTE equ 00001407h +URLACTION_SCRIPT_CURR_MAX equ 00001407h +URLACTION_SCRIPT_MAX equ 000015ffh +URLACTION_HTML_MIN equ 00001600h +URLACTION_HTML_SUBMIT_FORMS equ 00001601h +URLACTION_HTML_SUBMIT_FORMS_FROM equ 00001602h +URLACTION_HTML_SUBMIT_FORMS_TO equ 00001603h +URLACTION_HTML_FONT_DOWNLOAD equ 00001604h +URLACTION_HTML_JAVA_RUN equ 00001605h +URLACTION_HTML_USERDATA_SAVE equ 00001606h +URLACTION_HTML_SUBFRAME_NAVIGATE equ 00001607h +URLACTION_HTML_META_REFRESH equ 00001608h +URLACTION_HTML_MIXED_CONTENT equ 00001609h +URLACTION_HTML_MAX equ 000017ffh +URLACTION_SHELL_MIN equ 00001800h +URLACTION_SHELL_INSTALL_DTITEMS equ 00001800h +URLACTION_SHELL_MOVE_OR_COPY equ 00001802h +URLACTION_SHELL_FILE_DOWNLOAD equ 00001803h +URLACTION_SHELL_VERB equ 00001804h +URLACTION_SHELL_WEBVIEW_VERB equ 00001805h +URLACTION_SHELL_SHELLEXECUTE equ 00001806h +URLACTION_SHELL_CURR_MAX equ 00001806h +URLACTION_SHELL_MAX equ 000019ffh +URLACTION_NETWORK_MIN equ 00001A00h +URLACTION_CREDENTIALS_USE equ 00001A00h +URLPOLICY_CREDENTIALS_SILENT_LOGON_OK equ 00000000h +URLPOLICY_CREDENTIALS_MUST_PROMPT_USER equ 00010000h +URLPOLICY_CREDENTIALS_CONDITIONAL_PROMPT equ 00020000h +URLPOLICY_CREDENTIALS_ANONYMOUS_ONLY equ 00030000h +URLACTION_AUTHENTICATE_CLIENT equ 00001A01h +URLPOLICY_AUTHENTICATE_CLEARTEXT_OK equ 00000000h +URLPOLICY_AUTHENTICATE_CHALLENGE_RESPONSE equ 00010000h +URLPOLICY_AUTHENTICATE_MUTUAL_ONLY equ 00030000h +URLACTION_COOKIES equ 00001A02h +URLACTION_COOKIES_SESSION equ 00001A03h +URLACTION_CLIENT_CERT_PROMPT equ 00001A04h +URLACTION_COOKIES_THIRD_PARTY equ 00001A05h +URLACTION_COOKIES_SESSION_THIRD_PARTY equ 00001A06h +URLACTION_COOKIES_ENABLED equ 00001A10h +URLACTION_NETWORK_CURR_MAX equ 00001A10h +URLACTION_NETWORK_MAX equ 00001Bffh +URLACTION_JAVA_MIN equ 00001C00h +URLACTION_JAVA_PERMISSIONS equ 00001C00h +URLPOLICY_JAVA_PROHIBIT equ 00000000h +URLPOLICY_JAVA_HIGH equ 00010000h +URLPOLICY_JAVA_MEDIUM equ 00020000h +URLPOLICY_JAVA_LOW equ 00030000h +URLPOLICY_JAVA_CUSTOM equ 00800000h +URLACTION_JAVA_CURR_MAX equ 00001C00h +URLACTION_JAVA_MAX equ 00001Cffh +URLACTION_INFODELIVERY_MIN equ 00001D00h +URLACTION_INFODELIVERY_NO_ADDING_CHANNELS equ 00001D00h +URLACTION_INFODELIVERY_NO_EDITING_CHANNELS equ 00001D01h +URLACTION_INFODELIVERY_NO_REMOVING_CHANNELS equ 00001D02h +URLACTION_INFODELIVERY_NO_ADDING_SUBSCRIPTIONS equ 00001D03h +URLACTION_INFODELIVERY_NO_EDITING_SUBSCRIPTIONS equ 00001D04h +URLACTION_INFODELIVERY_NO_REMOVING_SUBSCRIPTIONS equ 00001D05h +URLACTION_INFODELIVERY_NO_CHANNEL_LOGGING equ 00001D06h +URLACTION_INFODELIVERY_CURR_MAX equ 00001D06h +URLACTION_INFODELIVERY_MAX equ 00001Dffh +URLACTION_CHANNEL_SOFTDIST_MIN equ 00001E00h +URLACTION_CHANNEL_SOFTDIST_PERMISSIONS equ 00001E05h +URLPOLICY_CHANNEL_SOFTDIST_PROHIBIT equ 00010000h +URLPOLICY_CHANNEL_SOFTDIST_PRECACHE equ 00020000h +URLPOLICY_CHANNEL_SOFTDIST_AUTOINSTALL equ 00030000h +URLACTION_CHANNEL_SOFTDIST_MAX equ 00001Effh +URLPOLICY_ALLOW equ 00h +URLPOLICY_QUERY equ 01h +URLPOLICY_DISALLOW equ 03h +URLPOLICY_NOTIFY_ON_ALLOW equ 10h +URLPOLICY_NOTIFY_ON_DISALLOW equ 20h +URLPOLICY_LOG_ON_ALLOW equ 40h +URLPOLICY_LOG_ON_DISALLOW equ 80h +URLPOLICY_MASK_PERMISSIONS equ 0fh +URLPOLICY_DONTCHECKDLGBOX equ 100h +URLZONE_ESC_FLAG equ 100h +SOFTDIST_FLAG_USAGE_EMAIL equ 00000001h +SOFTDIST_FLAG_USAGE_PRECACHE equ 00000002h +SOFTDIST_FLAG_USAGE_AUTOINSTALL equ 00000004h +SOFTDIST_FLAG_DELETE_SUBSCRIPTION equ 00000008h +SOFTDIST_ADSTATE_NONE equ 00000000h +SOFTDIST_ADSTATE_AVAILABLE equ 00000001h +SOFTDIST_ADSTATE_DOWNLOADED equ 00000002h +SOFTDIST_ADSTATE_INSTALLED equ 00000003h +CONFIRMSAFETYACTION_LOADOBJECT equ 00000001h +FMFD_ENABLEMIMESNIFFING equ 00000002h +FMFD_IGNOREMIMETEXTPLAIN equ 00000004h +URLMON_OPTION_USE_BINDSTRINGCREDS equ 10000008h +URLMON_OPTION_USE_BROWSERAPPSDOCUMENTS equ 10000010h +MK_S_ASYNCHRONOUS equ 000401E8h +S_ASYNCHRONOUS equ MK_S_ASYNCHRONOUS +INET_E_INVALID_URL equ 800C0002h +INET_E_NO_SESSION equ 800C0003h +INET_E_CANNOT_CONNECT equ 800C0004h +INET_E_RESOURCE_NOT_FOUND equ 800C0005h +INET_E_OBJECT_NOT_FOUND equ 800C0006h +INET_E_DATA_NOT_AVAILABLE equ 800C0007h +INET_E_DOWNLOAD_FAILURE equ 800C0008h +INET_E_AUTHENTICATION_REQUIRED equ 800C0009h +INET_E_NO_VALID_MEDIA equ 800C000Ah +INET_E_CONNECTION_TIMEOUT equ 800C000Bh +INET_E_INVALID_REQUEST equ 800C000Ch +INET_E_UNKNOWN_PROTOCOL equ 800C000Dh +INET_E_SECURITY_PROBLEM equ 800C000Eh +INET_E_CANNOT_LOAD_DATA equ 800C000Fh +INET_E_INVALID_CERTIFICATE equ 800C0019h +INET_E_REDIRECT_FAILED equ 800C0014h +INET_E_REDIRECT_TO_DIR equ 800C0015h +INET_E_CANNOT_LOCK_REQUEST equ 800C0016h +INET_E_USE_EXTEND_BINDING equ 800C0017h +INET_E_TERMINATED_BIND equ 800C0018h +INET_E_ERROR_FIRST equ 800C0002h +INET_E_CODE_DOWNLOAD_DECLINED equ 800C0100h +INET_E_RESULT_DISPATCHED equ 800C0200h +INET_E_CANNOT_REPLACE_SFP_FILE equ 800C0300h +INET_E_CODE_INSTALL_SUPPRESSED equ 800C0400h +INET_E_CODE_INSTALL_BLOCKED_BY_HASH_POLICY equ 800C0500h +INET_E_ERROR_LAST equ INET_E_CODE_INSTALL_BLOCKED_BY_HASH_POLICY +Uri_CREATE_ALLOW_RELATIVE equ 00000001h +Uri_CREATE_ALLOW_IMPLICIT_WILDCARD_SCHEME equ 00000002h +Uri_CREATE_ALLOW_IMPLICIT_FILE_SCHEME equ 00000004h +Uri_CREATE_NOFRAG equ 00000008h +Uri_CREATE_NO_CANONICALIZE equ 00000010h +Uri_CREATE_CANONICALIZE equ 00000100h +Uri_CREATE_FILE_USE_DOS_PATH equ 00000020h +Uri_CREATE_DECODE_EXTRA_INFO equ 00000040h +Uri_CREATE_NO_DECODE_EXTRA_INFO equ 00000080h +Uri_CREATE_CRACK_UNKNOWN_SCHEMES equ 00000200h +Uri_CREATE_NO_CRACK_UNKNOWN_SCHEMES equ 00000400h +Uri_CREATE_PRE_PROCESS_HTML_URI equ 00000800h +Uri_CREATE_NO_PRE_PROCESS_HTML_URI equ 00001000h +Uri_CREATE_IE_SETTINGS equ 00002000h +Uri_CREATE_NO_IE_SETTINGS equ 00004000h +Uri_CREATE_NO_ENCODE_FORBIDDEN_CHARACTERS equ 00008000h +Uri_DISPLAY_NO_FRAGMENT equ 00000001h +Uri_PUNYCODE_IDN_HOST equ 00000002h +Uri_DISPLAY_IDN_HOST equ 00000004h +Uri_ENCODING_USER_INFO_AND_PATH_IS_PERCENT_ENCODED_UTF8 equ 00000001h +Uri_ENCODING_USER_INFO_AND_PATH_IS_CP equ 00000002h +Uri_ENCODING_HOST_IS_IDN equ 00000004h +Uri_ENCODING_HOST_IS_PERCENT_ENCODED_UTF8 equ 00000008h +Uri_ENCODING_HOST_IS_PERCENT_ENCODED_CP equ 00000010h +Uri_ENCODING_QUERY_AND_FRAGMENT_IS_PERCENT_ENCODED_UTF8 equ 00000020h +Uri_ENCODING_QUERY_AND_FRAGMENT_IS_CP equ 00000040h +Uri_ENCODING_RFC equ Uri_ENCODING_USER_INFO_AND_PATH_IS_PERCENT_ENCODED_UTF8 or Uri_ENCODING_HOST_IS_PERCENT_ENCODED_UTF8 or Uri_ENCODING_QUERY_AND_FRAGMENT_IS_PERCENT_ENCODED_UTF8 +UriBuilder_USE_ORIGINAL_FLAGS equ 00000001h +SET_FEATURE_ON_THREAD equ 00000001h +SET_FEATURE_ON_PROCESS equ 00000002h +SET_FEATURE_IN_REGISTRY equ 00000004h +SET_FEATURE_ON_THREAD_LOCALMACHINE equ 00000008h +SET_FEATURE_ON_THREAD_INTRANET equ 00000010h +SET_FEATURE_ON_THREAD_TRUSTED equ 00000020h +SET_FEATURE_ON_THREAD_INTERNET equ 00000040h +SET_FEATURE_ON_THREAD_RESTRICTED equ 00000080h +GET_FEATURE_FROM_THREAD equ 00000001h +GET_FEATURE_FROM_PROCESS equ 00000002h +GET_FEATURE_FROM_REGISTRY equ 00000004h +GET_FEATURE_FROM_THREAD_LOCALMACHINE equ 00000008h +GET_FEATURE_FROM_THREAD_INTRANET equ 00000010h +GET_FEATURE_FROM_THREAD_TRUSTED equ 00000020h +GET_FEATURE_FROM_THREAD_INTERNET equ 00000040h +GET_FEATURE_FROM_THREAD_RESTRICTED equ 00000080h +INET_E_USE_DEFAULT_SETTING equ 800C0012h +INET_E_DEFAULT_ACTION equ INET_E_USE_DEFAULT_PROTOCOLHANDLER +INET_E_QUERYOPTION_UNKNOWN equ 800C0013h +INET_E_REDIRECTING equ 800C0014h +MUTZ_ISFILE equ 00000002h +MUTZ_ACCEPT_WILDCARD_SCHEME equ 00000080h +MUTZ_RESERVED equ 00000200h +MUTZ_REQUIRESAVEDFILECHECK equ 00000400h +MUTZ_DONT_UNESCAPE equ 00000800h +MUTZ_DONT_USE_CACHE equ 00001000h +MUTZ_FORCE_INTRANET_FLAGS equ 00002000h +MUTZ_IGNORE_ZONE_MAPPINGS equ 00004000h +URLACTION_ACTIVEX_OVERRIDE_REPURPOSEDETECTION equ 00001207h +URLACTION_ACTIVEX_OVERRIDE_OPTIN equ 00001208h +URLACTION_ACTIVEX_SCRIPTLET_RUN equ 00001209h +URLACTION_ACTIVEX_DYNSRC_VIDEO_AND_ANIMATION equ 0000120Ah +URLACTION_ALLOW_XDOMAIN_SUBFRAME_RESIZE equ 00001408h +URLACTION_HTML_INCLUDE_FILE_PATH equ 0000160Ah +URLACTION_SHELL_EXECUTE_HIGHRISK equ 00001806h +URLACTION_SHELL_EXECUTE_MODRISK equ 00001807h +URLACTION_SHELL_EXECUTE_LOWRISK equ 00001808h +URLACTION_SHELL_POPUPMGR equ 00001809h +URLACTION_SHELL_RTF_OBJECTS_LOAD equ 0000180Ah +URLACTION_SHELL_ENHANCED_DRAGDROP_SECURITY equ 0000180Bh +URLACTION_SHELL_EXTENSIONSECURITY equ 0000180Ch +URLACTION_SHELL_SECURE_DRAGSOURCE equ 0000180Dh +URLACTION_BEHAVIOR_MIN equ 00002000h +URLACTION_BEHAVIOR_RUN equ 00002000h +URLPOLICY_BEHAVIOR_CHECK_LIST equ 00010000h +URLACTION_FEATURE_MIN equ 00002100h +URLACTION_FEATURE_MIME_SNIFFING equ 00002100h +URLACTION_FEATURE_ZONE_ELEVATION equ 00002101h +URLACTION_FEATURE_WINDOW_RESTRICTIONS equ 00002102h +URLACTION_FEATURE_SCRIPT_STATUS_BAR equ 00002103h +URLACTION_FEATURE_FORCE_ADDR_AND_STATUS equ 00002104h +URLACTION_FEATURE_BLOCK_INPUT_PROMPTS equ 00002105h +URLACTION_AUTOMATIC_DOWNLOAD_UI_MIN equ 00002200h +URLACTION_AUTOMATIC_DOWNLOAD_UI equ 00002200h +URLACTION_AUTOMATIC_ACTIVEX_UI equ 00002201h +URLACTION_ALLOW_RESTRICTEDPROTOCOLS equ 00002300h +URLACTION_ALLOW_APEVALUATION equ 00002301h +URLACTION_WINDOWS_BROWSER_APPLICATIONS equ 00002400h +URLACTION_XPS_DOCUMENTS equ 00002401h +URLACTION_LOOSE_XAML equ 00002402h +URLACTION_LOWRIGHTS equ 00002500h +URLACTION_WINFX_SETUP equ 00002600h +GetUrlPolicyPermissions equ dw dw & URLPOLICY_MASK_PERMISSIONS +SECURITY_IE_STATE_GREEN equ 00000000h +SECURITY_IE_STATE_RED equ 00000001h + +;;;; end urlmon + +;;;; mapi + +;---------------------------------------[ mapi.h ]--------------------------------------- + +MAPI_OLE equ 1 +MAPI_OLE_STATIC equ 2 +MAPI_ORIG equ 0 +MAPI_TO equ 1 +MAPI_CC equ 2 +MAPI_BCC equ 3 +MAPI_UNREAD equ 1 +MAPI_RECEIPT_REQUESTED equ 2 +MAPI_SENT equ 4 +MAPI_LOGON_UI equ 1 +MAPI_PASSWORD_UI equ 20000h +MAPI_NEW_SESSION equ 2 +MAPI_FORCE_DOWNLOAD equ 1000h +MAPI_EXTENDED equ 20h +MAPI_DIALOG equ 8 +MAPI_UNREAD_ONLY equ 20h +MAPI_GUARANTEE_FIFO equ 100h +MAPI_LONG_MSGID equ 4000h +MAPI_PEEK equ 80h +MAPI_SUPPRESS_ATTACH equ 800h +MAPI_ENVELOPE_ONLY equ 40h +MAPI_BODY_AS_FILE equ 200h +MAPI_AB_NOMODIFY equ 400h +SUCCESS_SUCCESS equ 0 +MAPI_USER_ABORT equ 1 +MAPI_E_USER_ABORT equ MAPI_USER_ABORT +MAPI_E_FAILURE equ 2 +MAPI_E_LOGON_FAILURE equ 3 +MAPI_E_LOGIN_FAILURE equ MAPI_E_LOGON_FAILURE +MAPI_E_DISK_FULL equ 4 +MAPI_E_INSUFFICIENT_MEMORY equ 5 +MAPI_E_ACCESS_DENIED equ 6 +MAPI_E_TOO_MANY_SESSIONS equ 8 +MAPI_E_TOO_MANY_FILES equ 9 +MAPI_E_TOO_MANY_RECIPIENTS equ 10 +MAPI_E_ATTACHMENT_NOT_FOUND equ 11 +MAPI_E_ATTACHMENT_OPEN_FAILURE equ 12 +MAPI_E_ATTACHMENT_WRITE_FAILURE equ 13 +MAPI_E_UNKNOWN_RECIPIENT equ 14 +MAPI_E_BAD_RECIPTYPE equ 15 +MAPI_E_NO_MESSAGES equ 16 +MAPI_E_INVALID_MESSAGE equ 17 +MAPI_E_TEXT_TOO_LARGE equ 18 +MAPI_E_INVALID_SESSION equ 19 +MAPI_E_TYPE_NOT_SUPPORTED equ 20 +MAPI_E_AMBIGUOUS_RECIPIENT equ 21 +MAPI_E_AMBIG_RECIP equ MAPI_E_AMBIGUOUS_RECIPIENT +MAPI_E_MESSAGE_IN_USE equ 22 +MAPI_E_NETWORK_FAILURE equ 23 +MAPI_E_INVALID_EDITFIELDS equ 24 +MAPI_E_INVALID_RECIPS equ 25 +MAPI_E_NOT_SUPPORTED equ 26 + +MapiFileDesc STRUCT + ulReserved dd ? + flFlags dd ? + nPosition dd ? + lpszPathName dd ? + lpszFileName dd ? + lpFileType dd ? +MapiFileDesc ENDS + +MapiFileTagExt STRUCT + ulReserved dd ? + cbTag dd ? + lpTag dd ? + cbEncoding dd ? + lpEncoding dd ? +MapiFileTagExt ENDS + +MapiRecipDesc STRUCT + ulReserved dd ? + ulRecipClass dd ? + lpszName dd ? + lpszAddress dd ? + ulEIDSize dd ? + lpEntryID dd ? +MapiRecipDesc ENDS + +MapiMessage STRUCT + ulReserved dd ? + lpszSubject dd ? + lpszNoteText dd ? + lpszMessageType dd ? + lpszDateReceived dd ? + lpszConversationID dd ? + flFlags dd ? + lpOriginator dd ? + nRecipCount dd ? + lpRecips dd ? + nFileCount dd ? + lpFiles dd ? +MapiMessage ENDS + +;-------------------------------------[ mapicode.h ]------------------------------------- + +MAPI_E_CALL_FAILED equ E_FAIL +MAPI_E_NOT_ENOUGH_MEMORY equ E_OUTOFMEMORY +MAPI_E_INVALID_PARAMETER equ E_INVALIDARG +MAPI_E_INTERFACE_NOT_SUPPORTED equ E_NOINTERFACE +MAPI_E_NO_ACCESS equ E_ACCESSDENIED +MAPI_E_NO_SUPPORT equ 80040102h +MAPI_E_BAD_CHARWIDTH equ 80040103h +MAPI_E_STRING_TOO_LONG equ 80040105h +MAPI_E_UNKNOWN_FLAGS equ 80040106h +MAPI_E_INVALID_ENTRYID equ 80040107h +MAPI_E_INVALID_OBJECT equ 80040108h +MAPI_E_OBJECT_CHANGED equ 80040109h +MAPI_E_OBJECT_DELETED equ 8004010Ah +MAPI_E_BUSY equ 8004010Bh +MAPI_E_NOT_ENOUGH_DISK equ 8004010Dh +MAPI_E_NOT_ENOUGH_RESOURCES equ 8004010Eh +MAPI_E_NOT_FOUND equ 8004010Fh +MAPI_E_VERSION equ 80040110h +MAPI_E_LOGON_FAILED equ 80040111h +MAPI_E_SESSION_LIMIT equ 80040112h +MAPI_E_USER_CANCEL equ 80040113h +MAPI_E_UNABLE_TO_ABORT equ 80040114h +MAPI_E_NETWORK_ERROR equ 80040115h +MAPI_E_DISK_ERROR equ 80040116h +MAPI_E_TOO_COMPLEX equ 80040117h +MAPI_E_BAD_COLUMN equ 80040118h +MAPI_E_EXTENDED_ERROR equ 80040119h +MAPI_E_COMPUTED equ 8004011Ah +MAPI_E_CORRUPT_DATA equ 8004011Bh +MAPI_E_UNCONFIGURED equ 8004011Ch +MAPI_E_FAILONEPROVIDER equ 8004011Dh +MAPI_E_UNKNOWN_CPID equ 8004011Eh +MAPI_E_UNKNOWN_LCID equ 8004011Fh +MAPI_E_PASSWORD_CHANGE_REQUIRED equ 80040120h +MAPI_E_PASSWORD_EXPIRED equ 80040121h +MAPI_E_INVALID_WORKSTATION_ACCOUNT equ 80040122h +MAPI_E_INVALID_ACCESS_TIME equ 80040123h +MAPI_E_ACCOUNT_DISABLED equ 80040124h +MAPI_E_END_OF_SESSION equ 80040200h +MAPI_E_UNKNOWN_ENTRYID equ 80040201h +MAPI_E_MISSING_REQUIRED_COLUMN equ 80040202h +MAPI_W_NO_SERVICE equ 40203h +MAPI_E_BAD_VALUE equ 80040301h +MAPI_E_INVALID_TYPE equ 80040302h +MAPI_E_TYPE_NO_SUPPORT equ 80040303h +MAPI_E_UNEXPECTED_TYPE equ 80040304h +MAPI_E_TOO_BIG equ 80040305h +MAPI_E_DECLINE_COPY equ 80040306h +MAPI_E_UNEXPECTED_ID equ 80040307h +MAPI_W_ERRORS_RETURNED equ 40380h +MAPI_E_UNABLE_TO_COMPLETE equ 80040400h +MAPI_E_TIMEOUT equ 80040401h +MAPI_E_TABLE_EMPTY equ 80040402h +MAPI_E_TABLE_TOO_BIG equ 80040403h +MAPI_E_INVALID_BOOKMARK equ 80040405h +MAPI_W_POSITION_CHANGED equ 40481h +MAPI_W_APPROX_COUNT equ 40482h +MAPI_E_WAIT equ 80040500h +MAPI_E_CANCEL equ 80040501h +MAPI_E_NOT_ME equ 80040502h +MAPI_W_CANCEL_MESSAGE equ 40580h +MAPI_E_CORRUPT_STORE equ 80040600h +MAPI_E_NOT_IN_QUEUE equ 80040601h +MAPI_E_NO_SUPPRESS equ 80040602h +MAPI_E_COLLISION equ 80040604h +MAPI_E_NOT_INITIALIZED equ 80040605h +MAPI_E_NON_STANDARD equ 80040606h +MAPI_E_NO_RECIPIENTS equ 80040607h +MAPI_E_SUBMITTED equ 80040608h +MAPI_E_HAS_FOLDERS equ 80040609h +MAPI_E_HAS_MESSAGES equ 8004060Ah +MAPI_E_FOLDER_CYCLE equ 8004060Bh +MAPI_W_PARTIAL_COMPLETION equ 40680h +MAPI_E_AMBIGUOUS_RECIP equ 80040700h + +;-----------------------------[ mapidefs.h ]----------------------------- +MAPI_DIM equ 1 +MAPI_NT_SERVICE equ 10000h +MAPI_MODIFY equ 1 +MAPI_ACCESS_MODIFY equ 1 +MAPI_ACCESS_READ equ 2 +MAPI_ACCESS_DELETE equ 4 +MAPI_ACCESS_CREATE_HIERARCHY equ 8 +MAPI_ACCESS_CREATE_CONTENTS equ 10h +MAPI_ACCESS_CREATE_ASSOCIATED equ 20h +MAPI_UNICODE equ 80000000h +fMapiUnicode equ 0 +hrSuccess equ 0 +MAPI_P1 equ 10000000h +MAPI_SUBMITTED equ 80000000h +MAPI_SHORTTERM equ 80h +MAPI_NOTRECIP equ 40h +MAPI_THISSESSION equ 20h +MAPI_NOW equ 10h +MAPI_NOTRESERVED equ 08h +MAPI_COMPOUND equ 80h +MAPI_ONE_OFF_UID equ { 81h, 2bh, 1fh, 0a4h, 0beh, 0a3h, 10h, 19h,09dh, 6eh, 0h, 0ddh, 01h, 0fh, 54h, 02h } +MAPI_ONE_OFF_UNICODE equ 8000h +MAPI_ONE_OFF_NO_RICH_INFO equ 1h +MAPI_STORE equ 1 +MAPI_ADDRBOOK equ 2 +MAPI_FOLDER equ 3 +MAPI_ABCONT equ 4 +MAPI_MESSAGE equ 5 +MAPI_MAILUSER equ 6 +MAPI_ATTACH equ 7 +MAPI_DISTLIST equ 8 +MAPI_PROFSECT equ 9 +MAPI_STATUS equ 0Ah +MAPI_SESSION equ 0Bh +MAPI_FORMINFO equ 0Ch +cchProfileNameMax equ 64 +cchProfilePassMax equ 64 +MV_FLAG equ 1000h +PT_UNSPECIFIED equ 0 +PT_NULL equ 1 +PT_I2 equ 2 +PT_LONG equ 3 +PT_R4 equ 4 +PT_DOUBLE equ 5 +PT_CURRENCY equ 6 +PT_APPTIME equ 7 +PT_ERROR equ 10 +PT_BOOLEAN equ 11 +PT_OBJECT equ 13 +PT_I8 equ 20 +PT_STRING8 equ 30 +PT_UNICODE equ 31 +PT_SYSTIME equ 64 +PT_CLSID equ 72 +PT_BINARY equ 258 +PT_SHORT equ PT_I2 +PT_I4 equ PT_LONG +PT_FLOAT equ PT_R4 +PT_R8 equ PT_DOUBLE +PT_LONGLONG equ PT_I8 +PROP_TYPE_MASK equ 0FFFFh +PROP_ID_NULL equ 0 +PROP_ID_INVALID equ 0FFFFh +PR_NULL equ (PROP_ID_NULL shl 16) +PT_NULL +PT_MV_I2 equ MV_FLAG+PT_I2 +PT_MV_LONG equ MV_FLAG+PT_LONG +PT_MV_R4 equ MV_FLAG+PT_R4 +PT_MV_DOUBLE equ MV_FLAG+PT_DOUBLE +PT_MV_CURRENCY equ MV_FLAG+PT_CURRENCY +PT_MV_APPTIME equ MV_FLAG+PT_APPTIME +PT_MV_SYSTIME equ MV_FLAG+PT_SYSTIME +PT_MV_STRING8 equ MV_FLAG+PT_STRING8 +PT_MV_BINARY equ MV_FLAG+PT_BINARY +PT_MV_UNICODE equ MV_FLAG+PT_UNICODE +PT_MV_CLSID equ MV_FLAG+PT_CLSID +PT_MV_I8 equ MV_FLAG+PT_I8 +PT_MV_SHORT equ PT_MV_I2 +PT_MV_I4 equ PT_MV_LONG +PT_MV_FLOAT equ PT_MV_R4 +PT_MV_R8 equ PT_MV_DOUBLE +PT_MV_LONGLONG equ PT_MV_I8 +MV_INSTANCE equ 2000h +MVI_FLAG equ MV_FLAG + MV_INSTANCE +fnevCriticalError equ 1 +fnevNewMail equ 2 +fnevObjectCreated equ 4 +fnevObjectDeleted equ 8 +fnevObjectModified equ 10h +fnevObjectMoved equ 20h +fnevObjectCopied equ 40h +fnevSearchComplete equ 80h +fnevTableModified equ 100h +fnevStatusObjectModified equ 200h +fnevReservedForMapi equ 40000000h +fnevExtended equ 80000000h +TABLE_CHANGED equ 1 +TABLE_ERROR equ 2 +TABLE_ROW_ADDED equ 3 +TABLE_ROW_DELETED equ 4 +TABLE_ROW_MODIFIED equ 5 +TABLE_SORT_DONE equ 6 +TABLE_RESTRICT_DONE equ 7 +TABLE_SETCOL_DONE equ 8 +TABLE_RELOAD equ 9 +MAPI_TOP_LEVEL equ 01h +MAPI_ERROR_VERSION equ 0 +KEEP_OPEN_READONLY equ 1 +KEEP_OPEN_READWRITE equ 2 +FORCE_SAVE equ 4 +MAPI_CREATE equ 2 +STREAM_APPEND equ 4 +MAPI_MOVE equ 1 +MAPI_NOREPLACE equ 2 +MAPI_DECLINE_OK equ 4 +MAPI_USE_DEFAULT equ 40h +MAPI_NO_STRINGS equ 1 +MAPI_NO_IDS equ 2 +MNID_ID equ 0 +MNID_STRING equ 1 +TBLSTAT_COMPLETE equ 0 +TBLSTAT_QCHANGED equ 7 +TBLSTAT_SORTING equ 9 +TBLSTAT_SORT_ERROR equ 10 +TBLSTAT_SETTING_COLS equ 11 +TBLSTAT_SETCOL_ERROR equ 13 +TBLSTAT_RESTRICTING equ 14 +TBLSTAT_RESTRICT_ERROR equ 15 +TBLTYPE_SNAPSHOT equ 0 +TBLTYPE_KEYSET equ 1 +TBLTYPE_DYNAMIC equ 2 +TABLE_SORT_ASCEND equ 0 +TABLE_SORT_DESCEND equ 1 +TABLE_SORT_COMBINE equ 2 +BOOKMARK_BEGINNING equ 0 +BOOKMARK_CURRENT equ 1 +BOOKMARK_END equ 2 +FL_FULLSTRING equ 0 +FL_SUBSTRING equ 1 +FL_PREFIX equ 2 +FL_IGNORECASE equ 10000h +FL_IGNORENONSPACE equ 20000h +FL_LOOSE equ 40000h +RES_AND equ 0 +RES_OR equ 1 +RES_NOT equ 2 +RES_CONTENT equ 3 +RES_PROPERTY equ 4 +RES_COMPAREPROPS equ 5 +RES_BITMASK equ 6 +RES_SIZE equ 7 +RES_EXIST equ 8 +RES_SUBRESTRICTION equ 9 +RES_COMMENT equ 0Ah +RELOP_LT equ 0 +RELOP_LE equ 1 +RELOP_GT equ 2 +RELOP_GE equ 3 +RELOP_EQ equ 4 +RELOP_NE equ 5 +RELOP_RE equ 6 +BMR_EQZ equ 0 +BMR_NEZ equ 1 +TBL_ALL_COLUMNS equ 1 +TBL_LEAF_ROW equ 1 +TBL_EMPTY_CATEGORY equ 2 +TBL_EXPANDED_CATEGORY equ 3 +TBL_COLLAPSED_CATEGORY equ 4 +TBL_NOWAIT equ 1 +TBL_ASYNC equ 1 +TBL_BATCH equ 2 +DIR_BACKWARD equ 1 +TBL_NOADVANCE equ 1 +PS_PROFILE_PROPERTIES_INIT equ {098h, 15h, 0ACh, 08h, 0AAh, 0B0h, 10h, 1Ah,8Ch, 093h, 08h, 0h, 2Bh, 2Ah, 56h, 0C2h} +MAPI_STORE_PROVIDER equ 33 +MAPI_AB equ 34 +MAPI_AB_PROVIDER equ 35 +MAPI_TRANSPORT_PROVIDER equ 36 +MAPI_SPOOLER equ 37 +MAPI_PROFILE_PROVIDER equ 38 +MAPI_SUBSYSTEM equ 39 +MAPI_HOOK_PROVIDER equ 40 +STATUS_VALIDATE_STATE equ 1 +STATUS_SETTINGS_DIALOG equ 2 +STATUS_CHANGE_PASSWORD equ 4 +STATUS_FLUSH_QUEUES equ 8 +STATUS_DEFAULT_OUTBOUND equ 1 +STATUS_DEFAULT_STORE equ 2 +STATUS_PRIMARY_IDENTITY equ 4 +STATUS_SIMPLE_STORE equ 8 +STATUS_XP_PREFER_LAST equ 10h +STATUS_NO_PRIMARY_IDENTITY equ 20h +STATUS_NO_DEFAULT_STORE equ 40h +STATUS_TEMP_SECTION equ 80h +STATUS_OWN_STORE equ 100h +STATUS_NEED_IPM_TREE equ 800h +STATUS_PRIMARY_STORE equ 1000h +STATUS_SECONDARY_STORE equ 2000h +STATUS_AVAILABLE equ 1 +STATUS_OFFLINE equ 2 +STATUS_FAILURE equ 4 +STATUS_INBOUND_ENABLED equ 10000h +STATUS_INBOUND_ACTIVE equ 20000h +STATUS_INBOUND_FLUSH equ 40000h +STATUS_OUTBOUND_ENABLED equ 100000h +STATUS_OUTBOUND_ACTIVE equ 200000h +STATUS_OUTBOUND_FLUSH equ 400000h +STATUS_REMOTE_ACCESS equ 800000h +SUPPRESS_UI equ 1 +REFRESH_XP_HEADER_CACHE equ 10000h +PROCESS_XP_HEADER_CACHE equ 20000h +FORCE_XP_CONNECT equ 40000h +FORCE_XP_DISCONNECT equ 80000h +CONFIG_CHANGED equ 100000h +ABORT_XP_HEADER_OPERATION equ 200000h +SHOW_XP_SESSION_UI equ 400000h +UI_READONLY equ 1 +FLUSH_UPLOAD equ 2 +FLUSH_DOWNLOAD equ 4 +FLUSH_FORCE equ 8 +FLUSH_NO_UI equ 10h +FLUSH_ASYNC_OK equ 20h +MAPI_BEST_ACCESS equ 10h +CONVENIENT_DEPTH equ 1 +SEARCH_RUNNING equ 1 +SEARCH_REBUILD equ 2 +SEARCH_RECURSIVE equ 4 +SEARCH_FOREGROUND equ 8 +STOP_SEARCH equ 1 +RESTART_SEARCH equ 2 +RECURSIVE_SEARCH equ 4 +SHALLOW_SEARCH equ 8 +FOREGROUND_SEARCH equ 10h +BACKGROUND_SEARCH equ 20h +AB_RECIPIENTS equ 1 +AB_SUBCONTAINERS equ 2 +AB_MODIFIABLE equ 4 +AB_UNMODIFIABLE equ 8 +AB_FIND_ON_OPEN equ 10h +AB_NOT_DEFAULT equ 20h +CREATE_CHECK_DUP_STRICT equ 1 +CREATE_CHECK_DUP_LOOSE equ 2 +CREATE_REPLACE equ 4 +MAPI_UNRESOLVED equ 0 +MAPI_AMBIGUOUS equ 1 +MAPI_RESOLVED equ 2 +MAPI_SEND_NO_RICH_INFO equ 10000h +MAPI_DIAG_NO_DIAGNOSTIC equ -1 +MAPI_DIAG_OR_NAME_UNRECOGNIZED equ 0 +MAPI_DIAG_OR_NAME_AMBIGUOUS equ 1 +MAPI_DIAG_MTS_CONGESTED equ 2 +MAPI_DIAG_LOOP_DETECTED equ 3 +MAPI_DIAG_RECIPIENT_UNAVAILABLE equ 4 +MAPI_DIAG_MAXIMUM_TIME_EXPIRED equ 5 +MAPI_DIAG_EITS_UNSUPPORTED equ 6 +MAPI_DIAG_CONTENT_TOO_LONG equ 7 +MAPI_DIAG_IMPRACTICAL_TO_CONVERT equ 8 +MAPI_DIAG_PROHIBITED_TO_CONVERT equ 9 +MAPI_DIAG_CONVERSION_UNSUBSCRIBED equ 10 +MAPI_DIAG_PARAMETERS_INVALID equ 11 +MAPI_DIAG_CONTENT_SYNTAX_IN_ERROR equ 12 +MAPI_DIAG_LENGTH_CONSTRAINT_VIOLATD equ 13 +MAPI_DIAG_NUMBER_CONSTRAINT_VIOLATD equ 14 +MAPI_DIAG_CONTENT_TYPE_UNSUPPORTED equ 15 +MAPI_DIAG_TOO_MANY_RECIPIENTS equ 16 +MAPI_DIAG_NO_BILATERAL_AGREEMENT equ 17 +MAPI_DIAG_CRITICAL_FUNC_UNSUPPORTED equ 18 +MAPI_DIAG_CONVERSION_LOSS_PROHIB equ 19 +MAPI_DIAG_LINE_TOO_LONG equ 20 +MAPI_DIAG_PAGE_TOO_LONG equ 21 +MAPI_DIAG_PICTORIAL_SYMBOL_LOST equ 22 +MAPI_DIAG_PUNCTUATION_SYMBOL_LOST equ 23 +MAPI_DIAG_ALPHABETIC_CHARACTER_LOST equ 24 +MAPI_DIAG_MULTIPLE_INFO_LOSSES equ 25 +MAPI_DIAG_REASSIGNMENT_PROHIBITED equ 26 +MAPI_DIAG_REDIRECTION_LOOP_DETECTED equ 27 +MAPI_DIAG_EXPANSION_PROHIBITED equ 28 +MAPI_DIAG_SUBMISSION_PROHIBITED equ 29 +MAPI_DIAG_EXPANSION_FAILED equ 30 +MAPI_DIAG_RENDITION_UNSUPPORTED equ 31 +MAPI_DIAG_MAIL_ADDRESS_INCORRECT equ 32 +MAPI_DIAG_MAIL_OFFICE_INCOR_OR_INVD equ 33 +MAPI_DIAG_MAIL_ADDRESS_INCOMPLETE equ 34 +MAPI_DIAG_MAIL_RECIPIENT_UNKNOWN equ 35 +MAPI_DIAG_MAIL_RECIPIENT_DECEASED equ 36 +MAPI_DIAG_MAIL_ORGANIZATION_EXPIRED equ 37 +MAPI_DIAG_MAIL_REFUSED equ 38 +MAPI_DIAG_MAIL_UNCLAIMED equ 39 +MAPI_DIAG_MAIL_RECIPIENT_MOVED equ 40 +MAPI_DIAG_MAIL_RECIPIENT_TRAVELLING equ 41 +MAPI_DIAG_MAIL_RECIPIENT_DEPARTED equ 42 +MAPI_DIAG_MAIL_NEW_ADDRESS_UNKNOWN equ 43 +MAPI_DIAG_MAIL_FORWARDING_UNWANTED equ 44 +MAPI_DIAG_MAIL_FORWARDING_PROHIB equ 45 +MAPI_DIAG_SECURE_MESSAGING_ERROR equ 46 +MAPI_DIAG_DOWNGRADING_IMPOSSIBLE equ 47 +MAPI_MH_DP_PUBLIC_UA equ 0 +MAPI_MH_DP_PRIVATE_UA equ 1 +MAPI_MH_DP_MS equ 2 +MAPI_MH_DP_ML equ 3 +MAPI_MH_DP_PDAU equ 4 +MAPI_MH_DP_PDS_PATRON equ 5 +MAPI_MH_DP_OTHER_AU equ 6 +FOLDER_ROOT equ 0 +FOLDER_GENERIC equ 1 +FOLDER_SEARCH equ 2 +MESSAGE_MOVE equ 1 +MESSAGE_DIALOG equ 2 +OPEN_IF_EXISTS equ 1 +DEL_MESSAGES equ 1 +FOLDER_DIALOG equ 2 +DEL_FOLDERS equ 4 +DEL_ASSOCIATED equ 8 +FOLDER_MOVE equ 1 +COPY_SUBFOLDERS equ 10h +MSGSTATUS_HIGHLIGHTED equ 01h +MSGSTATUS_TAGGED equ 2 +MSGSTATUS_HIDDEN equ 4 +MSGSTATUS_DELMARKED equ 8 +MSGSTATUS_REMOTE_DOWNLOAD equ 01000h +MSGSTATUS_REMOTE_DELETE equ 02000h +RECURSIVE_SORT equ 2 +FLDSTATUS_HIGHLIGHTED equ 1 +FLDSTATUS_TAGGED equ 2 +FLDSTATUS_HIDDEN equ 4 +FLDSTATUS_DELMARKED equ 8 +STORE_ENTRYID_UNIQUE equ 1 +STORE_READONLY equ 2 +STORE_SEARCH_OK equ 4 +STORE_MODIFY_OK equ 8 +STORE_CREATE_OK equ 10h +STORE_ATTACH_OK equ 20h +STORE_OLE_OK equ 40h +STORE_SUBMIT_OK equ 80h +STORE_NOTIFY_OK equ 100h +STORE_MV_PROPS_OK equ 200h +STORE_CATEGORIZE_OK equ 400h +STORE_RTF_OK equ 800h +STORE_RESTRICTION_OK equ 1000h +STORE_SORT_OK equ 2000h +STORE_PUBLIC_FOLDERS equ 4000h +STORE_UNCOMPRESSED_RTF equ 8000h +STORE_HAS_SEARCHES equ 1000000h +LOGOFF_NO_WAIT equ 1 +LOGOFF_ORDERLY equ 2 +LOGOFF_PURGE equ 4 +LOGOFF_ABORT equ 8 +LOGOFF_QUIET equ 10h +LOGOFF_COMPLETE equ 10000h +LOGOFF_INBOUND equ 20000h +LOGOFF_OUTBOUND equ 40000h +LOGOFF_OUTBOUND_QUEUE equ 80000h +MSG_LOCKED equ 1 +MSG_UNLOCKED equ 0 +FOLDER_IPM_SUBTREE_VALID equ 1 +FOLDER_IPM_INBOX_VALID equ 2 +FOLDER_IPM_OUTBOX_VALID equ 4 +FOLDER_IPM_WASTEBASKET_VALID equ 8 +FOLDER_IPM_SENTMAIL_VALID equ 10h +FOLDER_VIEWS_VALID equ 20h +FOLDER_COMMON_VIEWS_VALID equ 40h +FOLDER_FINDER_VALID equ 80h +FORCE_SUBMIT equ 1 +MSGFLAG_READ equ 1 +MSGFLAG_UNMODIFIED equ 2 +MSGFLAG_SUBMIT equ 4 +MSGFLAG_UNSENT equ 8 +MSGFLAG_HASATTACH equ 10h +MSGFLAG_FROMME equ 20h +MSGFLAG_ASSOCIATED equ 40h +MSGFLAG_RESEND equ 80h +MSGFLAG_RN_PENDING equ 100h +MSGFLAG_NRN_PENDING equ 200h +SUBMITFLAG_LOCKED equ 1 +SUBMITFLAG_PREPROCESS equ 2 +MODRECIP_ADD equ 2 +MODRECIP_MODIFY equ 4 +MODRECIP_REMOVE equ 8 +SUPPRESS_RECEIPT equ 1 +CLEAR_READ_FLAG equ 4 +GENERATE_RECEIPT_ONLY equ 10h +CLEAR_RN_PENDING equ 20h +CLEAR_NRN_PENDING equ 40h +ATTACH_DIALOG equ 1 +SECURITY_SIGNED equ 1 +SECURITY_ENCRYPTED equ 2 +PRIO_URGENT equ 1 +PRIO_NORMAL equ 0 +PRIO_NONURGENT equ -1 +SENSITIVITY_NONE equ 0 +SENSITIVITY_PERSONAL equ 1 +SENSITIVITY_PRIVATE equ 2 +SENSITIVITY_COMPANY_CONFIDENTIAL equ 3 +IMPORTANCE_LOW equ 0 +IMPORTANCE_NORMAL equ 1 +IMPORTANCE_HIGH equ 2 +NO_ATTACHMENT equ 0 +ATTACH_BY_VALUE equ 1 +ATTACH_BY_REFERENCE equ 2 +ATTACH_BY_REF_RESOLVE equ 3 +ATTACH_BY_REF_ONLY equ 4 +ATTACH_EMBEDDED_MSG equ 5 +ATTACH_OLE equ 6 +ADRPARM_HELP_CTX equ 0 +DIALOG_MODAL equ 1 +DIALOG_SDI equ 2 +DIALOG_OPTIONS equ 4 +ADDRESS_ONE equ 8 +AB_SELECTONLY equ 10h +AB_RESOLVE equ 20h +DT_MAILUSER equ 0 +DT_DISTLIST equ 1 +DT_FORUM equ 2 +DT_AGENT equ 3 +DT_ORGANIZATION equ 4 +DT_PRIVATE_DISTLIST equ 5 +DT_REMOTE_MAILUSER equ 6 +DT_MODIFIABLE equ 10000h +DT_GLOBAL equ 20000h +DT_LOCAL equ 30000h +DT_WAN equ 40000h +DT_NOT_SPECIFIC equ 50000h +DT_FOLDER equ 1000000h +DT_FOLDER_LINK equ 2000000h +DT_FOLDER_SPECIAL equ 4000000h +MAPI_DEFERRED_ERRORS equ 8h +MAPI_ASSOCIATED equ 40h +MDB_NO_DIALOG equ 1h +MDB_WRITE equ 4h +MDB_TEMPORARY equ 20h +MDB_NO_MAIL equ 80h +AB_NO_DIALOG equ 1 +MAPI_ENABLED equ 0 +MAPI_DISABLED equ 1 +DT_MULTILINE equ 1 +DT_EDITABLE equ 2 +DT_REQUIRED equ 4 +DT_SET_IMMEDIATE equ 8 +DT_PASSWORD_EDIT equ 10h +DT_ACCEPT_DBCS equ 20h +DT_SET_SELECTION equ 40h +DTCT_LABEL equ 0 +DTCT_EDIT equ 1 +DTCT_LBX equ 2 +DTCT_COMBOBOX equ 3 +DTCT_DDLBX equ 4 +DTCT_CHECKBOX equ 5 +DTCT_GROUPBOX equ 6 +DTCT_BUTTON equ 7 +DTCT_PAGE equ 8 +DTCT_RADIOBUTTON equ 9 +DTCT_MVLISTBOX equ 0Bh +DTCT_MVDDLBX equ 0Ch +MAPI_NO_HBAR equ 1 +MAPI_NO_VBAR equ 2 +UI_SERVICE equ 2 +SERVICE_UI_ALWAYS equ 2 +SERVICE_UI_ALLOWED equ 10h +UI_CURRENT_PROVIDER_FIRST equ 4 + +CY UNION + STRUCT + Lo DWORD ? + Hi DWORD ? + ENDS + int64 QWORD ? +CY ENDS + +CURRENCY TEXTEQU + +ENTRYID STRUCT + abFlags db 4 dup(?) + ab db MAPI_DIM dup(?) +ENTRYID ENDS + +MAPIUID STRUCT + ab db 16 dup(?) +MAPIUID ENDS + +SPropTagArray STRUCT + cValues dd ? + aulPropTag dd MAPI_DIM dup(?) +SPropTagArray ENDS + +SBinary STRUCT + cb dd ? + lpb dd ? +SBinary ENDS + +SShortArray STRUCT + cValues dd ? + lpi dd ? +SShortArray ENDS + +SGuidArray STRUCT + cValues dd ? + lpguid dd ? +SGuidArray ENDS + +SRealArray STRUCT + cValues dd ? + lpflt dd ? +SRealArray ENDS + +SLongArray STRUCT + cValues dd ? + lpl dd ? +SLongArray ENDS + +SLargeIntegerArray STRUCT + cValues dd ? + lpli dd ? +SLargeIntegerArray ENDS + +SDateTimeArray STRUCT + cValues dd ? + lpft dd ? +SDateTimeArray ENDS + +SAppTimeArray STRUCT + cValues dd ? + lpat dd ? +SAppTimeArray ENDS + +SCurrencyArray STRUCT + cValues dd ? + lpcur dd ? +SCurrencyArray ENDS + +SBinaryArray STRUCT + cValues dd ? + lpbin dd ? +SBinaryArray ENDS + +SDoubleArray STRUCT + cValues dd ? + lpdbl dd ? +SDoubleArray ENDS + +SWStringArray STRUCT + cValues dd ? + lppszW dd ? +SWStringArray ENDS + +SLPSTRArray STRUCT + cValues dd ? + lppszA dd ? +SLPSTRArray ENDS + +UPV UNION DWORD + i dw ? + l dd ? + ul dd ? + flt dd ? + dbl dq ? + b dw ? + cur CURRENCY <> + at dq ? + ft FILETIME <> + lpszA dd ? + bin SBinary <> + lpszW dd ? + lpguid dd ? + li LARGE_INTEGER <> + MVi SShortArray <> + MVl SLongArray <> + MVflt SRealArray <> + MVdbl SDoubleArray <> + MVcur SCurrencyArray <> + MVat SAppTimeArray <> + MVft SDateTimeArray <> + MVbin SBinaryArray <> + MVszA SLPSTRArray <> + MVszW SWStringArray <> + MVguid SGuidArray <> + MVli SLargeIntegerArray <> + err SCODE ? + x LONG ? +UPV ENDS + +SPropValue STRUCT + ulPropTag dd ? + dwAlignPad dd ? + Value UPV <> +SPropValue ENDS + +SPropProblem STRUCT + ulIndex dd ? + ulPropTag dd ? + scode SCODE ? +SPropProblem ENDS + +SPropProblemArray STRUCT + cProblem dd ? + aProblem SPropProblem MAPI_DIM dup(<>) +SPropProblemArray ENDS + +FLATENTRY STRUCT + cb dd ? + abEntry db MAPI_DIM dup(?) +FLATENTRY ENDS + +FLATENTRYLIST STRUCT + cEntries dd ? + cbEntries dd ? + abEntries db MAPI_DIM dup(?) +FLATENTRYLIST ENDS + +MTSID STRUCT + cb dd ? + ab db MAPI_DIM dup(?) +MTSID ENDS + +FLATMTSIDLIST STRUCT + cMTSIDs dd ? + cbMTSIDs dd ? + abMTSIDs db MAPI_DIM dup(?) +FLATMTSIDLIST ENDS + +ADRENTRY STRUCT + ulReserved1 dd ? + cValues dd ? + rgPropVals dd ? +ADRENTRY ENDS + +ADRLIST STRUCT + cEntries dd ? + aEntries ADRENTRY MAPI_DIM dup(<>) +ADRLIST ENDS + +SRow STRUCT + ulAdrEntryPad dd ? + cValues dd ? + lpProps dd ? +SRow ENDS + +SRowSet STRUCT + cRows dd ? + aRow SRow MAPI_DIM dup(<>) +SRowSet ENDS + +MAPIERROR STRUCT + ulVersion dd ? + lpszError dd ? + lpszComponent dd ? + ulLowLevelError dd ? + ulContext dd ? +MAPIERROR ENDS + +ERROR_NOTIFICATION STRUCT + cbEntryID dd ? + lpEntryID dd ? + scode SCODE ? + ulFlags dd ? + lpMAPIError dd ? +ERROR_NOTIFICATION ENDS + +NEWMAIL_NOTIFICATION STRUCT + cbEntryID dd ? + lpEntryID dd ? + cbParentID dd ? + lpParentID dd ? + ulFlags dd ? + lpszMessageClass dd ? + ulMessageFlags dd ? +NEWMAIL_NOTIFICATION ENDS + +OBJECT_NOTIFICATION STRUCT + cbEntryID dd ? + lpEntryID dd ? + ulObjType dd ? + cbParentID dd ? + lpParentID dd ? + cbOldID dd ? + lpOldID dd ? + cbOldParentID dd ? + lpOldParentID dd ? + lpPropTagArray dd ? +OBJECT_NOTIFICATION ENDS + +TABLE_NOTIFICATION STRUCT + ulTableEvent dd ? + hResult dd ? + propIndex SPropValue <> + propPrior SPropValue <> + row SRow <> + ulPad dd ? +TABLE_NOTIFICATION ENDS + +EXTENDED_NOTIFICATION STRUCT + ulEvent dd ? + cb dd ? + pbEventParameters dd ? +EXTENDED_NOTIFICATION ENDS + +STATUS_OBJECT_NOTIFICATION STRUCT + cbEntryID dd ? + lpEntryID dd ? + cValues dd ? + lpPropVals dd ? +STATUS_OBJECT_NOTIFICATION ENDS + +NOTIFICATION STRUCT + ulEventType dd ? + ulAlignPad dd ? + union info + err ERROR_NOTIFICATION <> + newmail NEWMAIL_NOTIFICATION <> + obj OBJECT_NOTIFICATION <> + tab TABLE_NOTIFICATION <> + ext EXTENDED_NOTIFICATION <> + statobj STATUS_OBJECT_NOTIFICATION <> + ends +NOTIFICATION ENDS + +MAPINAMEID STRUCT + lpguid dd ? + ulKind dd ? + union Kind + lID dd ? + lpwstrName dd ? + ends +MAPINAMEID ENDS + +SSortOrder STRUCT + ulPropTag dd ? + ulOrder dd ? +SSortOrder ENDS + +SSortOrderSet STRUCT + cSorts dd ? + cCategories dd ? + cExpanded dd ? + aSort SSortOrder MAPI_DIM dup(<>) +SSortOrderSet ENDS + +SAndRestriction STRUCT + cRes dd ? + lpRes dd ? +SAndRestriction ENDS + +SOrRestriction STRUCT + cRes dd ? + lpRes dd ? +SOrRestriction ENDS + +SNotRestriction STRUCT + ulReserved dd ? + lpRes dd ? +SNotRestriction ENDS + +SContentRestriction STRUCT + ulFuzzyLevel dd ? + ulPropTag dd ? + lpProp dd ? +SContentRestriction ends + +SBitMaskRestriction STRUCT + relBMR dd ? + ulPropTag dd ? + ulMask dd ? +SBitMaskRestriction ENDS + +SPropertyRestriction STRUCT + relop dd ? + ulPropTag dd ? + lpProp dd ? +SPropertyRestriction ENDS + +SComparePropsRestriction STRUCT + relop dd ? + ulPropTag1 dd ? + ulPropTag2 dd ? +SComparePropsRestriction ENDS + +SSizeRestriction STRUCT + relop dd ? + ulPropTag dd ? + cb dd ? +SSizeRestriction ENDS + +SExistRestriction STRUCT + ulReserved1 dd ? + ulPropTag dd ? + ulReserved2 dd ? +SExistRestriction ENDS + +SSubRestriction STRUCT + ulSubObject dd ? + lpRes dd ? +SSubRestriction ENDS + +SCommentRestriction STRUCT + cValues dd ? + lpRes dd ? + lpProp dd ? +SCommentRestriction ENDS + +SRestriction STRUCT + rt dd ? + union res + resCompareProps SComparePropsRestriction <> + resAnd SAndRestriction <> + resOr SOrRestriction <> + resNot SNotRestriction <> + resContent SContentRestriction <> + resProperty SPropertyRestriction <> + resBitMask SBitMaskRestriction <> + resSize SSizeRestriction <> + resExist SExistRestriction <> + resSub SSubRestriction <> + resComment SCommentRestriction <> + ends +SRestriction ENDS + +FlagList STRUCT + cFlags dd ? + ulFlag dd MAPI_DIM dup(?) +FlagList ENDS + +ADRPARM STRUCT + cbABContEntryID dd ? + lpABContEntryID dd ? + ulFlags dd ? + lpReserved dd ? + ulHelpContext dd ? + lpszHelpFileName dd ? + lpfnABSDI dd ? + lpfnDismiss dd ? + lpvDismissContext dd ? + lpszCaption dd ? + lpszNewEntryTitle dd ? + lpszDestWellsTitle dd ? + cDestFields dd ? + nDestFieldFocus dd ? + lppszDestTitles dd ? + lpulDestComps dd ? + lpContRestriction dd ? + lpHierRestriction dd ? +ADRPARM ENDS + +DTBLLABEL STRUCT + ulbLpszLabelName dd ? + ulFlags dd ? +DTBLLABEL ENDS + +DTBLEDIT STRUCT + ulbLpszCharsAllowed dd ? + ulFlags dd ? + ulNumCharsAllowed dd ? + ulPropTag dd ? +DTBLEDIT ENDS + +DTBLLBX STRUCT + ulFlags dd ? + ulPRSetProperty dd ? + ulPRTableName dd ? +DTBLLBX ENDS + +DTBLCOMBOBOX STRUCT + ulbLpszCharsAllowed dd ? + ulFlags dd ? + ulNumCharsAllowed dd ? + ulPRPropertyName dd ? + ulPRTableName dd ? +DTBLCOMBOBOX ENDS + +DTBLDDLBX STRUCT + ulFlags dd ? + ulPRDisplayProperty dd ? + ulPRSetProperty dd ? + ulPRTableName dd ? +DTBLDDLBX ENDS + +DTBLCHECKBOX STRUCT + ulbLpszLabel dd ? + ulFlags dd ? + ulPRPropertyName dd ? +DTBLCHECKBOX ENDS + +DTBLGROUPBOX STRUCT + ulbLpszLabel dd ? + ulFlags dd ? +DTBLGROUPBOX ENDS + +DTBLBUTTON STRUCT + ulbLpszLabel dd ? + ulFlags dd ? + ulPRControl dd ? +DTBLBUTTON ENDS + +DTBLPAGE STRUCT + ulbLpszLabel dd ? + ulFlags dd ? + ulbLpszComponent dd ? + ulContext dd ? +DTBLPAGE ENDS + +DTBLRADIOBUTTON STRUCT + ulbLpszLabel dd ? + ulFlags dd ? + ulcButtons dd ? + ulPropTag dd ? + lReturnValue dd ? +DTBLRADIOBUTTON ENDS + +DTBLMVLISTBOX STRUCT + ulFlags dd ? + ulMVPropTag dd ? +DTBLMVLISTBOX ENDS + +DTBLMVDDLBX STRUCT + ulFlags dd ? + ulMVPropTag dd ? +DTBLMVDDLBX ENDS + +;-----------------------------------[ mapiform.h ]------------------------------------- +HFRMREG_DEFAULT equ 0 +HFRMREG_LOCAL equ 1 +HFRMREG_PERSONAL equ 2 +HFRMREG_FOLDER equ 3 +SAVE_FORMAT_TEXT equ 1 +SAVE_FORMAT_RICHTEXT equ 2 +VCSTATUS_NEXT equ 1 +VCSTATUS_PREV equ 2 +VCSTATUS_MODAL equ 4 +VCSTATUS_INTERACTIVE equ 8 +VCSTATUS_READONLY equ 10h +VCSTATUS_DELETE equ 10000h +VCSTATUS_COPY equ 20000h +VCSTATUS_MOVE equ 40000h +VCSTATUS_SUBMIT equ 80000h +VCSTATUS_DELETE_IS_MOVE equ 100000h +VCSTATUS_SAVE equ 200000h +VCSTATUS_NEW_MESSAGE equ 400000h +VCDIR_NEXT equ VCSTATUS_NEXT +VCDIR_PREV equ VCSTATUS_PREV +VCDIR_DELETE equ VCSTATUS_DELETE +VCDIR_MOVE equ VCSTATUS_MOVE +FPST_VANILLA equ 0 +FPST_ENUM_PROP equ 1 +MAPI_MESSAGE_BEHAVIOR_IPM equ 0 +MAPI_MESSAGE_BEHAVIOR_FOLDER equ 1 +MAPIFORM_SELECT_ALL_REGISTRIES equ 0 +MAPIFORM_SELECT_FOLDER_REGISTRY_ONLY equ 1 +MAPIFORM_SELECT_NON_FOLDER_REGISTRY_ONLY equ 2 +FORMPROPSET_UNION equ 0 +FORMPROPSET_INTERSECTION equ 1 +MAPIFORM_EXACTMATCH equ 20h +MAPIFORM_CPU_X86 equ 1 +MAPIFORM_CPU_MIP equ 2 +MAPIFORM_CPU_AXP equ 3 +MAPIFORM_CPU_PPC equ 4 +MAPIFORM_CPU_M68 equ 5 +MAPIFORM_OS_WIN_31 equ 1 +MAPIFORM_OS_WINNT_35 equ 2 +MAPIFORM_OS_WIN_95 equ 3 +MAPIFORM_OS_MAC_7x equ 4 +MAPIFORM_OS_WINNT_40 equ 5 +MAPIFORM_INSTALL_DIALOG equ MAPI_DIALOG +MAPIFORM_INSTALL_OVERWRITEONCONFLICT equ 10h + +SAVEOPTS_SAVEIFDIRTY equ 0 +SAVEOPTS_NOSAVE equ 1 +SAVEOPTS_PROMPTSAVE equ 2 + +FORMPRINTSETUP STRUCT + ulFlags dd ? + hDevMode dd ? + hDevNames dd ? + ulFirstPageNumber dd ? + fPrintAttachments dd ? +FORMPRINTSETUP ENDS + +SMAPIFormPropEnumVal STRUCT + pszDisplayName dd ? + nVal dd ? +SMAPIFormPropEnumVal ENDS + +SMAPIFormProp STRUCT + ulFlags dd ? + nPropType dd ? + nmid MAPINAMEID <> + pszDisplayName dd ? + nSpecialType dd ? + union u + struct sl + nmidIdx MAPINAMEID <> + cfpevAvailable dd ? + pfpevAvailable dd ? + ends + ends +SMAPIFormProp ENDS + +SMAPIFormPropArray STRUCT + cProps dd ? + ulPad dd ? + aFormProp SMAPIFormProp MAPI_DIM dup(<>) +SMAPIFormPropArray ENDS + +SMAPIVerb STRUCT + lVerb dd ? + szVerbname dd ? + fuFlags dd ? + grfAttribs dd ? + ulFlags dd ? +SMAPIVerb ENDS + +SMAPIVerbArray STRUCT + cMAPIVerb dd ? + aMAPIVerb SMAPIVerb MAPI_DIM dup(<>) +SMAPIVerbArray ENDS + + +SMessageClassArray STRUCT + cValues dd ? + aMessageClass dd MAPI_DIM dup(?) +SMessageClassArray ENDS + +SMAPIFormInfoArray STRUCT + cForms dd ? + aFormInfo dd MAPI_DIM dup(?) +SMAPIFormInfoArray ENDS + +;--------------------------------[ mapinls.h ]--------------------------- +NORM_IGNOREKANATYPE equ 10000h +NORM_IGNOREWIDTH equ 20000h + +;---------------------------[ mapioid.h ]------------------------------- +OID_TAG equ 0Ah +OID_ENCODING equ 0Bh +CB_OID_1 equ 9 +CB_OID_2 equ 10 +CB_OID_3 equ 11 +CB_OID_4 equ 12 + +;--------------------------[ mapispi.h ]-------------------------------- + +CURRENT_SPI_VERSION equ 10010h +PDK1_SPI_VERSION equ 10000h +PDK2_SPI_VERSION equ 10008h +PDK3_SPI_VERSION equ 10010h +NOTIFY_SYNC equ 40000000h +NOTIFY_CANCELED equ 80000000h +CALLBACK_DISCONTINUE equ 80000000h +NOTIFY_NEWMAIL equ 1 +NOTIFY_READYTOSEND equ 2 +NOTIFY_SENTDEFERRED equ 4 +NOTIFY_CRITSEC equ 1000h +NOTIFY_NONCRIT equ 2000h +NOTIFY_CONFIG_CHANGE equ 4000h +NOTIFY_CRITICAL_ERROR equ 10000000h +NOTIFY_NEWMAIL_RECEIVED equ 20000000h +STATUSROW_UPDATE equ 10000000h +STGSTRM_RESET equ 0 +STGSTRM_CURRENT equ 10000000h +STGSTRM_MODIFY equ 2 +STGSTRM_CREATE equ 1000h +MAPI_NON_READ equ 1 +FILL_ENTRY equ 1 +DEINIT_NORMAL equ 1 +DEINIT_HURRY equ 80000000h +LOGON_NO_DIALOG equ 1 +LOGON_NO_CONNECT equ 4 +LOGON_NO_INBOUND equ 8 +LOGON_NO_OUTBOUND equ 10h +LOGON_SP_IDLE equ 10000h +LOGON_SP_POLL equ 20000h +LOGON_SP_RESOLVE equ 40000h +OPTION_TYPE_RECIPIENT equ 1 +OPTION_TYPE_MESSAGE equ 2 +NOTIFY_ABORT_DEFERRED equ 40000000h +NOTIFY_CANCEL_MESSAGE equ 80000000h +NOTIFY_BEGIN_INBOUND equ 1 +NOTIFY_END_INBOUND equ 10000h +NOTIFY_BEGIN_OUTBOUND equ 2 +NOTIFY_END_OUTBOUND equ 20000h +NOTIFY_BEGIN_INBOUND_FLUSH equ 4 +NOTIFY_END_INBOUND_FLUSH equ 40000h +NOTIFY_BEGIN_OUTBOUND_FLUSH equ 8 +NOTIFY_END_OUTBOUND_FLUSH equ 80000h +LOGOFF_NORMAL equ 1 +LOGOFF_HURRY equ 80000000h +BEGIN_DEFERRED equ 1 +END_RESEND_NOW equ 10000h +END_RESEND_LATER equ 20000h +END_DONT_RESEND equ 40000h +LOGON_SP_TRANSPORT equ 1 +LOGON_SP_PROMPT equ 2 +LOGON_SP_NEWPW equ 4 +LOGON_CHANGED equ 8 +DIALOG_FOLDER equ 1 +DIALOG_MESSAGE equ 2 +DIALOG_PROP equ 4 +DIALOG_ATTACH equ 8 +DIALOG_MOVE equ 10h +DIALOG_COPY equ 20h +DIALOG_DELETE equ 40h +DIALOG_ALLOW_CANCEL equ 80h +DIALOG_CONFIRM_CANCEL equ 100h +NEEDS_PREPROCESSING equ 1 +NEEDS_SPOOLER equ 2 +CHECK_SENDER equ 1 +NON_STANDARD equ 10000h +MSG_SERVICE_UI_READ_ONLY equ 8 +SERVICE_LOGON_FAILED equ 20h +MSG_SERVICE_INSTALL equ 1 +MSG_SERVICE_CREATE equ 2 +MSG_SERVICE_CONFIGURE equ 3 +MSG_SERVICE_DELETE equ 4 +MSG_SERVICE_UNINSTALL equ 5 +MSG_SERVICE_PROVIDER_CREATE equ 6 +MSG_SERVICE_PROVIDER_DELETE equ 7 + +NOTIFKEY STRUCT + cb dd ? + ab db MAPI_DIM dup(?) +NOTIFKEY ENDS + +OPTIONDATA STRUCT + ulFlags dd ? + lpRecipGUID dd ? + lpszAdrType dd ? + lpszDLLName dd ? + ulOrdinal dd ? + cbOptionsData dd ? + lpbOptionsData dd ? + cOptionsProps dd ? + lpOptionsProps dd ? +OPTIONDATA ENDS + +;--------------------------------[ mapitags.h ]----------------------------------- +PR_ACKNOWLEDGEMENT_MODE equ (PT_LONG shl 16)+ 1 +PR_ALTERNATE_RECIPIENT_ALLOWED equ ( PT_BOOLEAN shl 16)+ 2 +PR_AUTHORIZING_USERS equ (PT_BINARY shl 16)+ 3 +PR_AUTO_FORWARD_COMMENT equ (PT_TSTRING shl 16)+ 4 +PR_AUTO_FORWARD_COMMENT_A equ (PT_STRING8 shl 16)+ 4 +PR_AUTO_FORWARD_COMMENT_W equ (PT_UNICODE shl 16)+ 4 +PR_AUTO_FORWARDED equ ( PT_BOOLEAN shl 16)+ 5 +PR_CONTENT_CONFIDENTIALITY_ALGORITHM_ID equ ( PT_BINARY shl 16)+ 6 +PR_CONTENT_CORRELATOR equ ( PT_BINARY shl 16)+ 7 +PR_CONTENT_IDENTIFIER equ ( PT_TSTRING shl 16)+ 8 +PR_CONTENT_IDENTIFIER_A equ ( PT_STRING8 shl 16)+ 8 +PR_CONTENT_IDENTIFIER_W equ ( PT_UNICODE shl 16)+ 8 +PR_CONTENT_LENGTH equ ( PT_LONG shl 16)+ 9 +PR_CONTENT_RETURN_REQUESTED equ ( PT_BOOLEAN shl 16)+ 0Ah +PR_CONVERSATION_KEY equ ( PT_BINARY shl 16)+ 0Bh +PR_CONVERSION_EITS equ ( PT_BINARY shl 16)+ 0Ch +PR_CONVERSION_WITH_LOSS_PROHIBITED equ ( PT_BOOLEAN shl 16)+ 0Dh +PR_CONVERTED_EITS equ ( PT_BINARY shl 16)+ 0Eh +PR_DEFERRED_DELIVERY_TIME equ ( PT_SYSTIME shl 16)+ 0Fh +PR_DELIVER_TIME equ ( PT_SYSTIME shl 16)+ 10h +PR_DISCARD_REASON equ ( PT_LONG shl 16)+ 11h +PR_DISCLOSURE_OF_RECIPIENTS equ ( PT_BOOLEAN shl 16)+ 12h +PR_DL_EXPANSION_HISTORY equ ( PT_BINARY shl 16)+ 13h +PR_DL_EXPANSION_PROHIBITED equ ( PT_BOOLEAN shl 16)+ 14h +PR_EXPIRY_TIME equ ( PT_SYSTIME shl 16)+ 15h +PR_IMPLICIT_CONVERSION_PROHIBITED equ ( PT_BOOLEAN shl 16)+ 16h +PR_IMPORTANCE equ ( PT_LONG shl 16)+ 17h +PR_IPM_ID equ ( PT_BINARY shl 16)+ 18h +PR_LATEST_DELIVERY_TIME equ ( PT_SYSTIME shl 16)+ 19h +PR_MESSAGE_CLASS equ ( PT_TSTRING shl 16)+ 1Ah +PR_MESSAGE_CLASS_A equ ( PT_STRING8 shl 16)+ 1Ah +PR_MESSAGE_CLASS_W equ ( PT_UNICODE shl 16)+ 1Ah +PR_MESSAGE_DELIVERY_ID equ ( PT_BINARY shl 16)+ 1Bh +PR_MESSAGE_SECURITY_LABEL equ ( PT_BINARY shl 16)+ 1Eh +PR_OBSOLETED_IPMS equ ( PT_BINARY shl 16)+ 1Fh +PR_ORIGINALLY_INTENDED_RECIPIENT_NAME equ ( PT_BINARY shl 16)+ 20h +PR_ORIGINAL_EITS equ ( PT_BINARY shl 16)+ 21h +PR_ORIGINATOR_CERTIFICATE equ ( PT_BINARY shl 16)+ 22h +PR_ORIGINATOR_DELIVERY_REPORT_REQUESTED equ ( PT_BOOLEAN shl 16)+ 23h +PR_ORIGINATOR_RETURN_ADDRESS equ ( PT_BINARY shl 16)+ 24h +PR_PARENT_KEY equ ( PT_BINARY shl 16)+ 25h +PR_PRIORITY equ ( PT_LONG shl 16)+ 26h +PR_ORIGIN_CHECK equ ( PT_BINARY shl 16)+ 27h +PR_PROOF_OF_SUBMISSION_REQUESTED equ ( PT_BOOLEAN shl 16)+ 28h +PR_READ_RECEIPT_REQUESTED equ ( PT_BOOLEAN shl 16)+ 29h +PR_RECEIPT_TIME equ ( PT_SYSTIME shl 16)+ 2Ah +PR_RECIPIENT_REASSIGNMENT_PROHIBITED equ ( PT_BOOLEAN shl 16)+ 2Bh +PR_REDIRECTION_HISTORY equ ( PT_BINARY shl 16)+ 2Ch +PR_RELATED_IPMS equ ( PT_BINARY shl 16)+ 2Dh +PR_ORIGINAL_SENSITIVITY equ ( PT_LONG shl 16)+ 2Eh +PR_LANGUAGES equ ( PT_TSTRING shl 16)+ 2Fh +PR_LANGUAGES_A equ ( PT_STRING8 shl 16)+ 2Fh +PR_LANGUAGES_W equ ( PT_UNICODE shl 16)+ 2Fh +PR_REPLY_TIME equ ( PT_SYSTIME shl 16)+ 30h +PR_REPORT_TAG equ ( PT_BINARY shl 16)+ 31h +PR_REPORT_TIME equ ( PT_SYSTIME shl 16)+ 32h +PR_RETURNED_IPM equ ( PT_BOOLEAN shl 16)+ 33h +PR_SECURITY equ ( PT_LONG shl 16)+ 34h +PR_INCOMPLETE_COPY equ ( PT_BOOLEAN shl 16)+ 35h +PR_SENSITIVITY equ ( PT_LONG shl 16)+ 36h +PR_SUBJECT equ ( PT_TSTRING shl 16)+ 37h +PR_SUBJECT_A equ ( PT_STRING8 shl 16)+ 37h +PR_SUBJECT_W equ ( PT_UNICODE shl 16)+ 37h +PR_SUBJECT_IPM equ ( PT_BINARY shl 16)+ 38h +PR_CLIENT_SUBMIT_TIME equ ( PT_SYSTIME shl 16)+ 39h +PR_REPORT_NAME equ ( PT_TSTRING shl 16)+ 3Ah +PR_REPORT_NAME_W equ ( PT_UNICODE shl 16)+ 3Ah +PR_REPORT_NAME_A equ ( PT_STRING8 shl 16)+ 3Ah +PR_SENT_REPRESENTING_SEARCH_KEY equ ( PT_BINARY shl 16)+ 3Bh +PR_X400_CONTENT_TYPE equ ( PT_BINARY shl 16)+ 3Ch +PR_SUBJECT_PREFIX equ ( PT_TSTRING shl 16)+ 3Dh +PR_SUBJECT_PREFIX_W equ ( PT_UNICODE shl 16)+ 3Dh +PR_SUBJECT_PREFIX_A equ ( PT_STRING8 shl 16)+ 3Dh +PR_NON_RECEIPT_REASON equ ( PT_LONG shl 16)+ 3Eh +PR_RECEIVED_BY_ENTRYID equ ( PT_BINARY shl 16)+ 3Fh +PR_RECEIVED_BY_NAME equ ( PT_TSTRING shl 16)+ 40h +PR_RECEIVED_BY_NAME_W equ ( PT_UNICODE shl 16)+ 40h +PR_RECEIVED_BY_NAME_A equ ( PT_STRING8 shl 16)+ 40h +PR_SENT_REPRESENTING_ENTRYID equ ( PT_BINARY shl 16)+ 41h +PR_SENT_REPRESENTING_NAME equ ( PT_TSTRING shl 16)+ 42h +PR_SENT_REPRESENTING_NAME_W equ ( PT_UNICODE shl 16)+ 42h +PR_SENT_REPRESENTING_NAME_A equ ( PT_STRING8 shl 16)+ 42h +PR_RCVD_REPRESENTING_ENTRYID equ ( PT_BINARY shl 16)+ 43h +PR_RCVD_REPRESENTING_NAME equ ( PT_TSTRING shl 16)+ 44h +PR_RCVD_REPRESENTING_NAME_W equ ( PT_UNICODE shl 16)+ 44h +PR_RCVD_REPRESENTING_NAME_A equ ( PT_STRING8 shl 16)+ 44h +PR_REPORT_ENTRYID equ ( PT_BINARY shl 16)+ 45h +PR_READ_RECEIPT_ENTRYID equ ( PT_BINARY shl 16)+ 46h +PR_MESSAGE_SUBMISSION_ID equ ( PT_BINARY shl 16)+ 47h +PR_PROVIDER_SUBMIT_TIME equ ( PT_SYSTIME shl 16)+ 48h +PR_ORIGINAL_SUBJECT equ ( PT_TSTRING shl 16)+ 49h +PR_ORIGINAL_SUBJECT_W equ ( PT_UNICODE shl 16)+ 49h +PR_ORIGINAL_SUBJECT_A equ ( PT_STRING8 shl 16)+ 49h +PR_DISC_VAL equ ( PT_BOOLEAN shl 16)+ 4Ah +PR_ORIG_MESSAGE_CLASS equ ( PT_TSTRING shl 16)+ 4Bh +PR_ORIG_MESSAGE_CLASS_W equ ( PT_UNICODE shl 16)+ 4Bh +PR_ORIG_MESSAGE_CLASS_A equ ( PT_STRING8 shl 16)+ 4Bh +PR_ORIGINAL_AUTHOR_ENTRYID equ ( PT_BINARY shl 16)+ 4Ch +PR_ORIGINAL_AUTHOR_NAME equ ( PT_TSTRING shl 16)+ 4Dh +PR_ORIGINAL_AUTHOR_NAME_W equ ( PT_UNICODE shl 16)+ 4Dh +PR_ORIGINAL_AUTHOR_NAME_A equ ( PT_STRING8 shl 16)+ 4Dh +PR_ORIGINAL_SUBMIT_TIME equ ( PT_SYSTIME shl 16)+ 4Eh +PR_REPLY_RECIPIENT_ENTRIES equ ( PT_BINARY shl 16)+ 4Fh +PR_REPLY_RECIPIENT_NAMES equ ( PT_TSTRING shl 16)+ 50h +PR_REPLY_RECIPIENT_NAMES_W equ ( PT_UNICODE shl 16)+ 50h +PR_REPLY_RECIPIENT_NAMES_A equ ( PT_STRING8 shl 16)+ 50h +PR_RECEIVED_BY_SEARCH_KEY equ ( PT_BINARY shl 16)+ 51h +PR_RCVD_REPRESENTING_SEARCH_KEY equ ( PT_BINARY shl 16)+ 52h +PR_READ_RECEIPT_SEARCH_KEY equ ( PT_BINARY shl 16)+ 53h +PR_REPORT_SEARCH_KEY equ ( PT_BINARY shl 16)+ 54h +PR_ORIGINAL_DELIVERY_TIME equ ( PT_SYSTIME shl 16)+ 55h +PR_ORIGINAL_AUTHOR_SEARCH_KEY equ ( PT_BINARY shl 16)+ 56h +PR_MESSAGE_TO_ME equ ( PT_BOOLEAN shl 16)+ 57h +PR_MESSAGE_CC_ME equ ( PT_BOOLEAN shl 16)+ 58h +PR_MESSAGE_RECIP_ME equ ( PT_BOOLEAN shl 16)+ 59h +PR_ORIGINAL_SENDER_NAME equ ( PT_TSTRING shl 16)+ 5Ah +PR_ORIGINAL_SENDER_NAME_W equ ( PT_UNICODE shl 16)+ 5Ah +PR_ORIGINAL_SENDER_NAME_A equ ( PT_STRING8 shl 16)+ 5Ah +PR_ORIGINAL_SENDER_ENTRYID equ ( PT_BINARY shl 16)+ 5Bh +PR_ORIGINAL_SENDER_SEARCH_KEY equ ( PT_BINARY shl 16)+ 5Ch +PR_ORIGINAL_SENT_REPRESENTING_NAME equ ( PT_TSTRING shl 16)+ 5Dh +PR_ORIGINAL_SENT_REPRESENTING_NAME_W equ ( PT_UNICODE shl 16)+ 5Dh +PR_ORIGINAL_SENT_REPRESENTING_NAME_A equ ( PT_STRING8 shl 16)+ 5Dh +PR_ORIGINAL_SENT_REPRESENTING_ENTRYID equ ( PT_BINARY shl 16)+ 5Eh +PR_ORIGINAL_SENT_REPRESENTING_SEARCH_KEY equ ( PT_BINARY shl 16)+ 5Fh +PR_START_DATE equ ( PT_SYSTIME shl 16)+ 60h +PR_END_DATE equ ( PT_SYSTIME shl 16)+ 61h +PR_OWNER_APPT_ID equ ( PT_LONG shl 16)+ 62h +PR_RESPONSE_REQUESTED equ ( PT_BOOLEAN shl 16)+ 63h +PR_SENT_REPRESENTING_ADDRTYPE equ ( PT_TSTRING shl 16)+ 64h +PR_SENT_REPRESENTING_ADDRTYPE_W equ ( PT_UNICODE shl 16)+ 64h +PR_SENT_REPRESENTING_ADDRTYPE_A equ ( PT_STRING8 shl 16)+ 64h +PR_SENT_REPRESENTING_EMAIL_ADDRESS equ ( PT_TSTRING shl 16)+ 65h +PR_SENT_REPRESENTING_EMAIL_ADDRESS_W equ ( PT_UNICODE shl 16)+ 65h +PR_SENT_REPRESENTING_EMAIL_ADDRESS_A equ ( PT_STRING8 shl 16)+ 65h +PR_ORIGINAL_SENDER_ADDRTYPE equ ( PT_TSTRING shl 16)+ 66h +PR_ORIGINAL_SENDER_ADDRTYPE_W equ ( PT_UNICODE shl 16)+ 66h +PR_ORIGINAL_SENDER_ADDRTYPE_A equ ( PT_STRING8 shl 16)+ 66h +PR_ORIGINAL_SENDER_EMAIL_ADDRESS equ ( PT_TSTRING shl 16)+ 67h +PR_ORIGINAL_SENDER_EMAIL_ADDRESS_W equ ( PT_UNICODE shl 16)+ 67h +PR_ORIGINAL_SENDER_EMAIL_ADDRESS_A equ ( PT_STRING8 shl 16)+ 67h +PR_ORIGINAL_SENT_REPRESENTING_ADDRTYPE equ ( PT_TSTRING shl 16)+ 68h +PR_ORIGINAL_SENT_REPRESENTING_ADDRTYPE_W equ ( PT_UNICODE shl 16)+ 68h +PR_ORIGINAL_SENT_REPRESENTING_ADDRTYPE_A equ ( PT_STRING8 shl 16)+ 68h +PR_ORIGINAL_SENT_REPRESENTING_EMAIL_ADDRESS equ ( PT_TSTRING shl 16)+ 69h +PR_ORIGINAL_SENT_REPRESENTING_EMAIL_ADDRESS_W equ ( PT_UNICODE shl 16)+ 69h +PR_ORIGINAL_SENT_REPRESENTING_EMAIL_ADDRESS_A equ ( PT_STRING8 shl 16)+ 69h +PR_CONVERSATION_TOPIC equ ( PT_TSTRING shl 16)+ 70h +PR_CONVERSATION_TOPIC_W equ ( PT_UNICODE shl 16)+ 70h +PR_CONVERSATION_TOPIC_A equ ( PT_STRING8 shl 16)+ 70h +PR_CONVERSATION_INDEX equ ( PT_BINARY shl 16)+ 71h +PR_ORIGINAL_DISPLAY_BCC equ ( PT_TSTRING shl 16)+ 72h +PR_ORIGINAL_DISPLAY_BCC_W equ ( PT_UNICODE shl 16)+ 72h +PR_ORIGINAL_DISPLAY_BCC_A equ ( PT_STRING8 shl 16)+ 72h +PR_ORIGINAL_DISPLAY_CC equ ( PT_TSTRING shl 16)+ 73h +PR_ORIGINAL_DISPLAY_CC_W equ ( PT_UNICODE shl 16)+ 73h +PR_ORIGINAL_DISPLAY_CC_A equ ( PT_STRING8 shl 16)+ 73h +PR_ORIGINAL_DISPLAY_TO equ ( PT_TSTRING shl 16)+ 74h +PR_ORIGINAL_DISPLAY_TO_W equ ( PT_UNICODE shl 16)+ 74h +PR_ORIGINAL_DISPLAY_TO_A equ ( PT_STRING8 shl 16)+ 74h +PR_RECEIVED_BY_ADDRTYPE equ ( PT_TSTRING shl 16)+ 75h +PR_RECEIVED_BY_ADDRTYPE_W equ ( PT_UNICODE shl 16)+ 75h +PR_RECEIVED_BY_ADDRTYPE_A equ ( PT_STRING8 shl 16)+ 75h +PR_RECEIVED_BY_EMAIL_ADDRESS equ ( PT_TSTRING shl 16)+ 76h +PR_RECEIVED_BY_EMAIL_ADDRESS_W equ ( PT_UNICODE shl 16)+ 76h +PR_RECEIVED_BY_EMAIL_ADDRESS_A equ ( PT_STRING8 shl 16)+ 76h +PR_RCVD_REPRESENTING_ADDRTYPE equ ( PT_TSTRING shl 16)+ 77h +PR_RCVD_REPRESENTING_ADDRTYPE_W equ ( PT_UNICODE shl 16)+ 77h +PR_RCVD_REPRESENTING_ADDRTYPE_A equ ( PT_STRING8 shl 16)+ 77h +PR_RCVD_REPRESENTING_EMAIL_ADDRESS equ ( PT_TSTRING shl 16)+ 78h +PR_RCVD_REPRESENTING_EMAIL_ADDRESS_W equ ( PT_UNICODE shl 16)+ 78h +PR_RCVD_REPRESENTING_EMAIL_ADDRESS_A equ ( PT_STRING8 shl 16)+ 78h +PR_ORIGINAL_AUTHOR_ADDRTYPE equ ( PT_TSTRING shl 16)+ 79h +PR_ORIGINAL_AUTHOR_ADDRTYPE_W equ ( PT_UNICODE shl 16)+ 79h +PR_ORIGINAL_AUTHOR_ADDRTYPE_A equ ( PT_STRING8 shl 16)+ 79h +PR_ORIGINAL_AUTHOR_EMAIL_ADDRESS equ ( PT_TSTRING shl 16)+ 7Ah +PR_ORIGINAL_AUTHOR_EMAIL_ADDRESS_W equ ( PT_UNICODE shl 16)+ 7Ah +PR_ORIGINAL_AUTHOR_EMAIL_ADDRESS_A equ ( PT_STRING8 shl 16)+ 7Ah +PR_ORIGINALLY_INTENDED_RECIP_ADDRTYPE equ ( PT_TSTRING shl 16)+ 7Bh +PR_ORIGINALLY_INTENDED_RECIP_ADDRTYPE_W equ ( PT_UNICODE shl 16)+ 7Bh +PR_ORIGINALLY_INTENDED_RECIP_ADDRTYPE_A equ ( PT_STRING8 shl 16)+ 7Bh +PR_ORIGINALLY_INTENDED_RECIP_EMAIL_ADDRESS equ ( PT_TSTRING shl 16)+ 7Ch +PR_ORIGINALLY_INTENDED_RECIP_EMAIL_ADDRESS_W equ ( PT_UNICODE shl 16)+ 7Ch +PR_ORIGINALLY_INTENDED_RECIP_EMAIL_ADDRESS_A equ ( PT_STRING8 shl 16)+ 7Ch +PR_TRANSPORT_MESSAGE_HEADERS equ (PT_TSTRING shl 16)+ 7Dh +PR_TRANSPORT_MESSAGE_HEADERS_W equ (PT_UNICODE shl 16)+ 7Dh +PR_TRANSPORT_MESSAGE_HEADERS_A equ (PT_STRING8 shl 16)+ 7Dh +PR_DELEGATION equ (PT_BINARY shl 16)+ 7Eh +PR_TNEF_CORRELATION_KEY equ (PT_BINARY shl 16)+ 7Fh +PR_BODY equ ( PT_TSTRING shl 16)+ 1000h +PR_BODY_W equ ( PT_UNICODE shl 16)+ 1000h +PR_BODY_A equ ( PT_STRING8 shl 16)+ 1000h +PR_REPORT_TEXT equ ( PT_TSTRING shl 16)+ 1001h +PR_REPORT_TEXT_W equ ( PT_UNICODE shl 16)+ 1001h +PR_REPORT_TEXT_A equ ( PT_STRING8 shl 16)+ 1001h +PR_ORIGINATOR_AND_DL_EXPANSION_HISTORY equ ( PT_BINARY shl 16)+ 1002h +PR_REPORTING_DL_NAME equ ( PT_BINARY shl 16)+ 1003h +PR_REPORTING_MTA_CERTIFICATE equ ( PT_BINARY shl 16)+ 1004h +PR_RTF_SYNC_BODY_CRC equ ( PT_LONG shl 16)+ 1006h +PR_RTF_SYNC_BODY_COUNT equ ( PT_LONG shl 16)+ 1007h +PR_RTF_SYNC_BODY_TAG equ ( PT_TSTRING shl 16)+ 1008h +PR_RTF_SYNC_BODY_TAG_W equ ( PT_UNICODE shl 16)+ 1008h +PR_RTF_SYNC_BODY_TAG_A equ ( PT_STRING8 shl 16)+ 1008h +PR_RTF_COMPRESSED equ ( PT_BINARY shl 16)+ 1009h +PR_RTF_SYNC_PREFIX_COUNT equ ( PT_LONG shl 16)+ 1010h +PR_RTF_SYNC_TRAILING_COUNT equ ( PT_LONG shl 16)+ 1011h +PR_ORIGINALLY_INTENDED_RECIP_ENTRYID equ ( PT_BINARY shl 16)+ 1012h +PR_CONTENT_INTEGRITY_CHECK equ ( PT_BINARY shl 16)+ 0C00h +PR_EXPLICIT_CONVERSION equ ( PT_LONG shl 16)+ 0C01h +PR_IPM_RETURN_REQUESTED equ ( PT_BOOLEAN shl 16)+ 0C02h +PR_MESSAGE_TOKEN equ ( PT_BINARY shl 16)+ 0C03h +PR_NDR_REASON_CODE equ ( PT_LONG shl 16)+ 0C04h +PR_NDR_DIAG_CODE equ ( PT_LONG shl 16)+ 0C05h +PR_NON_RECEIPT_NOTIFICATION_REQUESTED equ ( PT_BOOLEAN shl 16)+ 0C06h +PR_DELIVERY_POINT equ ( PT_LONG shl 16)+ 0C07h +PR_ORIGINATOR_NON_DELIVERY_REPORT_REQUESTED equ ( PT_BOOLEAN shl 16)+ 0C08h +PR_ORIGINATOR_REQUESTED_ALTERNATE_RECIPIENT equ ( PT_BINARY shl 16)+ 0C09h +PR_PHYSICAL_DELIVERY_BUREAU_FAX_DELIVERY equ ( PT_BOOLEAN shl 16)+ 0C0Ah +PR_PHYSICAL_DELIVERY_MODE equ ( PT_LONG shl 16)+ 0C0Bh +PR_PHYSICAL_DELIVERY_REPORT_REQUEST equ ( PT_LONG shl 16)+ 0C0Ch +PR_PHYSICAL_FORWARDING_ADDRESS equ ( PT_BINARY shl 16)+ 0C0Dh +PR_PHYSICAL_FORWARDING_ADDRESS_REQUESTED equ ( PT_BOOLEAN shl 16)+ 0C0Eh +PR_PHYSICAL_FORWARDING_PROHIBITED equ ( PT_BOOLEAN shl 16)+ 0C0Fh +PR_PHYSICAL_RENDITION_ATTRIBUTES equ ( PT_BINARY shl 16)+ 0C10h +PR_PROOF_OF_DELIVERY equ ( PT_BINARY shl 16)+ 0C11h +PR_PROOF_OF_DELIVERY_REQUESTED equ ( PT_BOOLEAN shl 16)+ 0C12h +PR_RECIPIENT_CERTIFICATE equ ( PT_BINARY shl 16)+ 0C13h +PR_RECIPIENT_NUMBER_FOR_ADVICE equ ( PT_TSTRING shl 16)+ 0C14h +PR_RECIPIENT_NUMBER_FOR_ADVICE_W equ ( PT_UNICODE shl 16)+ 0C14h +PR_RECIPIENT_NUMBER_FOR_ADVICE_A equ ( PT_STRING8 shl 16)+ 0C14h +PR_RECIPIENT_TYPE equ ( PT_LONG shl 16)+ 0C15h +PR_REGISTERED_MAIL_TYPE equ ( PT_LONG shl 16)+ 0C16h +PR_REPLY_REQUESTED equ ( PT_BOOLEAN shl 16)+ 0C17h +PR_REQUESTED_DELIVERY_METHOD equ ( PT_LONG shl 16)+ 0C18h +PR_SENDER_ENTRYID equ ( PT_BINARY shl 16)+ 0C19h +PR_SENDER_NAME equ ( PT_TSTRING shl 16)+ 0C1Ah +PR_SENDER_NAME_W equ ( PT_UNICODE shl 16)+ 0C1Ah +PR_SENDER_NAME_A equ ( PT_STRING8 shl 16)+ 0C1Ah +PR_SUPPLEMENTARY_INFO equ ( PT_TSTRING shl 16)+ 0C1Bh +PR_SUPPLEMENTARY_INFO_W equ ( PT_UNICODE shl 16)+ 0C1Bh +PR_SUPPLEMENTARY_INFO_A equ ( PT_STRING8 shl 16)+ 0C1Bh +PR_TYPE_OF_MTS_USER equ ( PT_LONG shl 16)+ 0C1Ch +PR_SENDER_SEARCH_KEY equ ( PT_BINARY shl 16)+ 0C1Dh +PR_SENDER_ADDRTYPE equ ( PT_TSTRING shl 16)+ 0C1Eh +PR_SENDER_ADDRTYPE_W equ ( PT_UNICODE shl 16)+ 0C1Eh +PR_SENDER_ADDRTYPE_A equ ( PT_STRING8 shl 16)+ 0C1Eh +PR_SENDER_EMAIL_ADDRESS equ ( PT_TSTRING shl 16)+ 0C1Fh +PR_SENDER_EMAIL_ADDRESS_W equ ( PT_UNICODE shl 16)+ 0C1Fh +PR_SENDER_EMAIL_ADDRESS_A equ ( PT_STRING8 shl 16)+ 0C1Fh +PR_CURRENT_VERSION equ ( PT_I8 shl 16)+ 0E00h +PR_DELETE_AFTER_SUBMIT equ ( PT_BOOLEAN shl 16)+ 0E01h +PR_DISPLAY_BCC equ ( PT_TSTRING shl 16)+ 0E02h +PR_DISPLAY_BCC_W equ ( PT_UNICODE shl 16)+ 0E02h +PR_DISPLAY_BCC_A equ ( PT_STRING8 shl 16)+ 0E02h +PR_DISPLAY_CC equ ( PT_TSTRING shl 16)+ 0E03h +PR_DISPLAY_CC_W equ ( PT_UNICODE shl 16)+ 0E03h +PR_DISPLAY_CC_A equ ( PT_STRING8 shl 16)+ 0E03h +PR_DISPLAY_TO equ ( PT_TSTRING shl 16)+ 0E04h +PR_DISPLAY_TO_W equ ( PT_UNICODE shl 16)+ 0E04h +PR_DISPLAY_TO_A equ ( PT_STRING8 shl 16)+ 0E04h +PR_PARENT_DISPLAY equ ( PT_TSTRING shl 16)+ 0E05h +PR_PARENT_DISPLAY_W equ ( PT_UNICODE shl 16)+ 0E05h +PR_PARENT_DISPLAY_A equ ( PT_STRING8 shl 16)+ 0E05h +PR_MESSAGE_DELIVERY_TIME equ ( PT_SYSTIME shl 16)+ 0E06h +PR_MESSAGE_FLAGS equ ( PT_LONG shl 16)+ 0E07h +PR_MESSAGE_SIZE equ ( PT_LONG shl 16)+ 0E08h +PR_PARENT_ENTRYID equ ( PT_BINARY shl 16)+ 0E09h +PR_SENTMAIL_ENTRYID equ ( PT_BINARY shl 16)+ 0E0Ah +PR_CORRELATE equ ( PT_BOOLEAN shl 16)+ 0E0Ch +PR_CORRELATE_MTSID equ ( PT_BINARY shl 16)+ 0E0Dh +PR_DISCRETE_VALUES equ ( PT_BOOLEAN shl 16)+ 0E0Eh +PR_RESPONSIBILITY equ ( PT_BOOLEAN shl 16)+ 0E0Fh +PR_SPOOLER_STATUS equ ( PT_LONG shl 16)+ 0E10h +PR_TRANSPORT_STATUS equ ( PT_LONG shl 16)+ 0E11h +PR_MESSAGE_RECIPIENTS equ ( PT_OBJECT shl 16)+ 0E12h +PR_MESSAGE_ATTACHMENTS equ ( PT_OBJECT shl 16)+ 0E13h +PR_SUBMIT_FLAGS equ ( PT_LONG shl 16)+ 0E14h +PR_RECIPIENT_STATUS equ ( PT_LONG shl 16)+ 0E15h +PR_TRANSPORT_KEY equ ( PT_LONG shl 16)+ 0E16h +PR_MSG_STATUS equ ( PT_LONG shl 16)+ 0E17h +PR_MESSAGE_DOWNLOAD_TIME equ ( PT_LONG shl 16)+ 0E18h +PR_CREATION_VERSION equ ( PT_I8 shl 16)+ 0E19h +PR_MODIFY_VERSION equ ( PT_I8 shl 16)+ 0E1Ah +PR_HASATTACH equ ( PT_BOOLEAN shl 16)+ 0E1Bh +PR_BODY_CRC equ ( PT_LONG shl 16)+ 0E1Ch +PR_NORMALIZED_SUBJECT equ ( PT_TSTRING shl 16)+ 0E1Dh +PR_NORMALIZED_SUBJECT_W equ ( PT_UNICODE shl 16)+ 0E1Dh +PR_NORMALIZED_SUBJECT_A equ ( PT_STRING8 shl 16)+ 0E1Dh +PR_RTF_IN_SYNC equ ( PT_BOOLEAN shl 16)+ 0E1Fh +PR_ATTACH_SIZE equ ( PT_LONG shl 16)+ 0E20h +PR_ATTACH_NUM equ ( PT_LONG shl 16)+ 0E21h +PR_PREPROCESS equ ( PT_BOOLEAN shl 16)+ 0E22h +PR_ORIGINATING_MTA_CERTIFICATE equ ( PT_BINARY shl 16)+ 0E25h +PR_PROOF_OF_SUBMISSION equ ( PT_BINARY shl 16)+ 0E26h +PR_ENTRYID equ ( PT_BINARY shl 16)+ 0FFFh +PR_OBJECT_TYPE equ ( PT_LONG shl 16)+ 0FFEh +PR_ICON equ ( PT_BINARY shl 16)+ 0FFDh +PR_MINI_ICON equ ( PT_BINARY shl 16)+ 0FFCh +PR_STORE_ENTRYID equ ( PT_BINARY shl 16)+ 0FFBh +PR_STORE_RECORD_KEY equ ( PT_BINARY shl 16)+ 0FFAh +PR_RECORD_KEY equ ( PT_BINARY shl 16)+ 0FF9h +PR_MAPPING_SIGNATURE equ ( PT_BINARY shl 16)+ 0FF8h +PR_ACCESS_LEVEL equ ( PT_LONG shl 16)+ 0FF7h +PR_INSTANCE_KEY equ ( PT_BINARY shl 16)+ 0FF6h +PR_ROW_TYPE equ ( PT_LONG shl 16)+ 0FF5h +PR_ACCESS equ ( PT_LONG shl 16)+ 0FF4h +PR_ROWID equ ( PT_LONG shl 16)+ 3000h +PR_DISPLAY_NAME equ ( PT_TSTRING shl 16)+ 3001h +PR_DISPLAY_NAME_W equ ( PT_UNICODE shl 16)+ 3001h +PR_DISPLAY_NAME_A equ ( PT_STRING8 shl 16)+ 3001h +PR_ADDRTYPE equ ( PT_TSTRING shl 16)+ 3002h +PR_ADDRTYPE_W equ ( PT_UNICODE shl 16)+ 3002h +PR_ADDRTYPE_A equ ( PT_STRING8 shl 16)+ 3002h +PR_EMAIL_ADDRESS equ ( PT_TSTRING shl 16)+ 3003h +PR_EMAIL_ADDRESS_W equ ( PT_UNICODE shl 16)+ 3003h +PR_EMAIL_ADDRESS_A equ ( PT_STRING8 shl 16)+ 3003h +PR_COMMENT equ ( PT_TSTRING shl 16)+ 3004h +PR_COMMENT_W equ ( PT_UNICODE shl 16)+ 3004h +PR_COMMENT_A equ ( PT_STRING8 shl 16)+ 3004h +PR_DEPTH equ ( PT_LONG shl 16)+ 3005h +PR_PROVIDER_DISPLAY equ ( PT_TSTRING shl 16)+ 3006h +PR_PROVIDER_DISPLAY_W equ ( PT_UNICODE shl 16)+ 3006h +PR_PROVIDER_DISPLAY_A equ ( PT_STRING8 shl 16)+ 3006h +PR_CREATION_TIME equ ( PT_SYSTIME shl 16)+ 3007h +PR_LAST_MODIFICATION_TIME equ ( PT_SYSTIME shl 16)+ 3008h +PR_RESOURCE_FLAGS equ ( PT_LONG shl 16)+ 3009h +PR_PROVIDER_DLL_NAME equ ( PT_TSTRING shl 16)+ 300Ah +PR_PROVIDER_DLL_NAME_W equ ( PT_UNICODE shl 16)+ 300Ah +PR_PROVIDER_DLL_NAME_A equ ( PT_STRING8 shl 16)+ 300Ah +PR_SEARCH_KEY equ ( PT_BINARY shl 16)+ 300Bh +PR_PROVIDER_UID equ ( PT_BINARY shl 16)+ 300Ch +PR_PROVIDER_ORDINAL equ ( PT_LONG shl 16)+ 300Dh +PR_FORM_VERSION equ (PT_TSTRING shl 16)+ 3301h +PR_FORM_VERSION_W equ (PT_UNICODE shl 16)+ 3301h +PR_FORM_VERSION_A equ (PT_STRING8 shl 16)+ 3301h +PR_FORM_CLSID equ (PT_CLSID shl 16)+ 3302h +PR_FORM_CONTACT_NAME equ (PT_TSTRING shl 16)+ 3303h +PR_FORM_CONTACT_NAME_W equ (PT_UNICODE shl 16)+ 3303h +PR_FORM_CONTACT_NAME_A equ (PT_STRING8 shl 16)+ 3303h +PR_FORM_CATEGORY equ (PT_TSTRING shl 16)+ 3304h +PR_FORM_CATEGORY_W equ (PT_UNICODE shl 16)+ 3304h +PR_FORM_CATEGORY_A equ (PT_STRING8 shl 16)+ 3304h +PR_FORM_CATEGORY_SUB equ (PT_TSTRING shl 16)+ 3305h +PR_FORM_CATEGORY_SUB_W equ (PT_UNICODE shl 16)+ 3305h +PR_FORM_CATEGORY_SUB_A equ (PT_STRING8 shl 16)+ 3305h +PR_FORM_HOST_MAP equ (PT_MV_LONG shl 16)+ 3306h +PR_FORM_HIDDEN equ (PT_BOOLEAN shl 16)+ 3307h +PR_FORM_DESIGNER_NAME equ (PT_TSTRING shl 16)+ 3308h +PR_FORM_DESIGNER_NAME_W equ (PT_UNICODE shl 16)+ 3308h +PR_FORM_DESIGNER_NAME_A equ (PT_STRING8 shl 16)+ 3308h +PR_FORM_DESIGNER_GUID equ (PT_CLSID shl 16)+ 3309h +PR_FORM_MESSAGE_BEHAVIOR equ (PT_LONG shl 16)+ 330Ah +PR_DEFAULT_STORE equ ( PT_BOOLEAN shl 16)+ 3400h +PR_STORE_SUPPORT_MASK equ ( PT_LONG shl 16)+ 340Dh +PR_STORE_STATE equ ( PT_LONG shl 16)+ 340Eh +PR_IPM_SUBTREE_SEARCH_KEY equ ( PT_BINARY shl 16)+ 3410h +PR_IPM_OUTBOX_SEARCH_KEY equ ( PT_BINARY shl 16)+ 3411h +PR_IPM_WASTEBASKET_SEARCH_KEY equ ( PT_BINARY shl 16)+ 3412h +PR_IPM_SENTMAIL_SEARCH_KEY equ ( PT_BINARY shl 16)+ 3413h +PR_MDB_PROVIDER equ ( PT_BINARY shl 16)+ 3414h +PR_RECEIVE_FOLDER_SETTINGS equ ( PT_OBJECT shl 16)+ 3415h +PR_VALID_FOLDER_MASK equ ( PT_LONG shl 16)+ 35DFh +PR_IPM_SUBTREE_ENTRYID equ ( PT_BINARY shl 16)+ 35E0h +PR_IPM_OUTBOX_ENTRYID equ ( PT_BINARY shl 16)+ 35E2h +PR_IPM_WASTEBASKET_ENTRYID equ ( PT_BINARY shl 16)+ 35E3h +PR_IPM_SENTMAIL_ENTRYID equ ( PT_BINARY shl 16)+ 35E4h +PR_VIEWS_ENTRYID equ ( PT_BINARY shl 16)+ 35E5h +PR_COMMON_VIEWS_ENTRYID equ ( PT_BINARY shl 16)+ 35E6h +PR_FINDER_ENTRYID equ ( PT_BINARY shl 16)+ 35E7h +PR_CONTAINER_FLAGS equ ( PT_LONG shl 16)+ 3600h +PR_FOLDER_TYPE equ ( PT_LONG shl 16)+ 3601h +PR_CONTENT_COUNT equ ( PT_LONG shl 16)+ 3602h +PR_CONTENT_UNREAD equ ( PT_LONG shl 16)+ 3603h +PR_CREATE_TEMPLATES equ ( PT_OBJECT shl 16)+ 3604h +PR_DETAILS_TABLE equ ( PT_OBJECT shl 16)+ 3605h +PR_SEARCH equ ( PT_OBJECT shl 16)+ 3607h +PR_SELECTABLE equ ( PT_BOOLEAN shl 16)+ 3609h +PR_SUBFOLDERS equ ( PT_BOOLEAN shl 16)+ 360Ah +PR_STATUS equ ( PT_LONG shl 16)+ 360Bh +PR_ANR equ ( PT_TSTRING shl 16)+ 360Ch +PR_ANR_W equ ( PT_UNICODE shl 16)+ 360Ch +PR_ANR_A equ ( PT_STRING8 shl 16)+ 360Ch +PR_CONTENTS_SORT_ORDER equ ( PT_MV_LONG shl 16)+ 360Dh +PR_CONTAINER_HIERARCHY equ ( PT_OBJECT shl 16)+ 360Eh +PR_CONTAINER_CONTENTS equ ( PT_OBJECT shl 16)+ 360Fh +PR_FOLDER_ASSOCIATED_CONTENTS equ ( PT_OBJECT shl 16)+ 3610h +PR_DEF_CREATE_DL equ ( PT_BINARY shl 16)+ 3611h +PR_DEF_CREATE_MAILUSER equ ( PT_BINARY shl 16)+ 3612h +PR_CONTAINER_CLASS equ ( PT_TSTRING shl 16)+ 3613h +PR_CONTAINER_CLASS_W equ ( PT_UNICODE shl 16)+ 3613h +PR_CONTAINER_CLASS_A equ ( PT_STRING8 shl 16)+ 3613h +PR_CONTAINER_MODIFY_VERSION equ ( PT_I8 shl 16)+ 3614h +PR_AB_PROVIDER_ID equ ( PT_BINARY shl 16)+ 3615h +PR_DEFAULT_VIEW_ENTRYID equ ( PT_BINARY shl 16)+ 3616h +PR_ASSOC_CONTENT_COUNT equ ( PT_LONG shl 16)+ 3617h +PR_ATTACHMENT_X400_PARAMETERS equ ( PT_BINARY shl 16)+ 3700h +PR_ATTACH_DATA_OBJ equ ( PT_OBJECT shl 16)+ 3701h +PR_ATTACH_DATA_BIN equ ( PT_BINARY shl 16)+ 3701h +PR_ATTACH_ENCODING equ ( PT_BINARY shl 16)+ 3702h +PR_ATTACH_EXTENSION equ ( PT_TSTRING shl 16)+ 3703h +PR_ATTACH_EXTENSION_W equ ( PT_UNICODE shl 16)+ 3703h +PR_ATTACH_EXTENSION_A equ ( PT_STRING8 shl 16)+ 3703h +PR_ATTACH_FILENAME equ ( PT_TSTRING shl 16)+ 3704h +PR_ATTACH_FILENAME_W equ ( PT_UNICODE shl 16)+ 3704h +PR_ATTACH_FILENAME_A equ ( PT_STRING8 shl 16)+ 3704h +PR_ATTACH_METHOD equ ( PT_LONG shl 16)+ 3705h +PR_ATTACH_LONG_FILENAME equ ( PT_TSTRING shl 16)+ 3707h +PR_ATTACH_LONG_FILENAME_W equ ( PT_UNICODE shl 16)+ 3707h +PR_ATTACH_LONG_FILENAME_A equ ( PT_STRING8 shl 16)+ 3707h +PR_ATTACH_PATHNAME equ ( PT_TSTRING shl 16)+ 3708h +PR_ATTACH_PATHNAME_W equ ( PT_UNICODE shl 16)+ 3708h +PR_ATTACH_PATHNAME_A equ ( PT_STRING8 shl 16)+ 3708h +PR_ATTACH_RENDERING equ ( PT_BINARY shl 16)+ 3709h +PR_ATTACH_TAG equ ( PT_BINARY shl 16)+ 370Ah +PR_RENDERING_POSITION equ ( PT_LONG shl 16)+ 370Bh +PR_ATTACH_TRANSPORT_NAME equ ( PT_TSTRING shl 16)+ 370Ch +PR_ATTACH_TRANSPORT_NAME_W equ ( PT_UNICODE shl 16)+ 370Ch +PR_ATTACH_TRANSPORT_NAME_A equ ( PT_STRING8 shl 16)+ 370Ch +PR_ATTACH_LONG_PATHNAME equ ( PT_TSTRING shl 16)+ 370Dh +PR_ATTACH_LONG_PATHNAME_W equ ( PT_UNICODE shl 16)+ 370Dh +PR_ATTACH_LONG_PATHNAME_A equ ( PT_STRING8 shl 16)+ 370Dh +PR_ATTACH_MIME_TAG equ ( PT_TSTRING shl 16)+ 370Eh +PR_ATTACH_MIME_TAG_W equ ( PT_UNICODE shl 16)+ 370Eh +PR_ATTACH_MIME_TAG_A equ ( PT_STRING8 shl 16)+ 370Eh +PR_ATTACH_ADDITIONAL_INFO equ ( PT_BINARY shl 16)+ 370Fh +PR_DISPLAY_TYPE equ ( PT_LONG shl 16)+ 3900h +PR_TEMPLATEID equ ( PT_BINARY shl 16)+ 3902h +PR_PRIMARY_CAPABILITY equ ( PT_BINARY shl 16)+ 3904h +PR_7BIT_DISPLAY_NAME equ ( PT_STRING8 shl 16)+ 39FFh +PR_ACCOUNT equ ( PT_TSTRING shl 16)+ 3A00h +PR_ACCOUNT_W equ ( PT_UNICODE shl 16)+ 3A00h +PR_ACCOUNT_A equ ( PT_STRING8 shl 16)+ 3A00h +PR_ALTERNATE_RECIPIENT equ ( PT_BINARY shl 16)+ 3A01h +PR_CALLBACK_TELEPHONE_NUMBER equ ( PT_TSTRING shl 16)+ 3A02h +PR_CALLBACK_TELEPHONE_NUMBER_W equ ( PT_UNICODE shl 16)+ 3A02h +PR_CALLBACK_TELEPHONE_NUMBER_A equ ( PT_STRING8 shl 16)+ 3A02h +PR_CONVERSION_PROHIBITED equ ( PT_BOOLEAN shl 16)+ 3A03h +PR_DISCLOSE_RECIPIENTS equ ( PT_BOOLEAN shl 16)+ 3A04h +PR_GENERATION equ ( PT_TSTRING shl 16)+ 3A05h +PR_GENERATION_W equ ( PT_UNICODE shl 16)+ 3A05h +PR_GENERATION_A equ ( PT_STRING8 shl 16)+ 3A05h +PR_GIVEN_NAME equ ( PT_TSTRING shl 16)+ 3A06h +PR_GIVEN_NAME_W equ ( PT_UNICODE shl 16)+ 3A06h +PR_GIVEN_NAME_A equ ( PT_STRING8 shl 16)+ 3A06h +PR_GOVERNMENT_ID_NUMBER equ ( PT_TSTRING shl 16)+ 3A07h +PR_GOVERNMENT_ID_NUMBER_W equ ( PT_UNICODE shl 16)+ 3A07h +PR_GOVERNMENT_ID_NUMBER_A equ ( PT_STRING8 shl 16)+ 3A07h +PR_BUSINESS_TELEPHONE_NUMBER equ ( PT_TSTRING shl 16)+ 3A08h +PR_BUSINESS_TELEPHONE_NUMBER_W equ ( PT_UNICODE shl 16)+ 3A08h +PR_BUSINESS_TELEPHONE_NUMBER_A equ ( PT_STRING8 shl 16)+ 3A08h +PR_OFFICE_TELEPHONE_NUMBER equ PR_BUSINESS_TELEPHONE_NUMBER +PR_OFFICE_TELEPHONE_NUMBER_W equ PR_BUSINESS_TELEPHONE_NUMBER_W +PR_OFFICE_TELEPHONE_NUMBER_A equ PR_BUSINESS_TELEPHONE_NUMBER_A +PR_HOME_TELEPHONE_NUMBER equ ( PT_TSTRING shl 16)+ 3A09h +PR_HOME_TELEPHONE_NUMBER_W equ ( PT_UNICODE shl 16)+ 3A09h +PR_HOME_TELEPHONE_NUMBER_A equ ( PT_STRING8 shl 16)+ 3A09h +PR_INITIALS equ ( PT_TSTRING shl 16)+ 3A0Ah +PR_INITIALS_W equ ( PT_UNICODE shl 16)+ 3A0Ah +PR_INITIALS_A equ ( PT_STRING8 shl 16)+ 3A0Ah +PR_KEYWORD equ ( PT_TSTRING shl 16)+ 3A0Bh +PR_KEYWORD_W equ ( PT_UNICODE shl 16)+ 3A0Bh +PR_KEYWORD_A equ ( PT_STRING8 shl 16)+ 3A0Bh +PR_LANGUAGE equ ( PT_TSTRING shl 16)+ 3A0Ch +PR_LANGUAGE_W equ ( PT_UNICODE shl 16)+ 3A0Ch +PR_LANGUAGE_A equ ( PT_STRING8 shl 16)+ 3A0Ch +PR_LOCATION equ ( PT_TSTRING shl 16)+ 3A0Dh +PR_LOCATION_W equ ( PT_UNICODE shl 16)+ 3A0Dh +PR_LOCATION_A equ ( PT_STRING8 shl 16)+ 3A0Dh +PR_MAIL_PERMISSION equ ( PT_BOOLEAN shl 16)+ 3A0Eh +PR_MHS_COMMON_NAME equ ( PT_TSTRING shl 16)+ 3A0Fh +PR_MHS_COMMON_NAME_W equ ( PT_UNICODE shl 16)+ 3A0Fh +PR_MHS_COMMON_NAME_A equ ( PT_STRING8 shl 16)+ 3A0Fh +PR_ORGANIZATIONAL_ID_NUMBER equ ( PT_TSTRING shl 16)+ 3A10h +PR_ORGANIZATIONAL_ID_NUMBER_W equ ( PT_UNICODE shl 16)+ 3A10h +PR_ORGANIZATIONAL_ID_NUMBER_A equ ( PT_STRING8 shl 16)+ 3A10h +PR_SURNAME equ ( PT_TSTRING shl 16)+ 3A11h +PR_SURNAME_W equ ( PT_UNICODE shl 16)+ 3A11h +PR_SURNAME_A equ ( PT_STRING8 shl 16)+ 3A11h +PR_ORIGINAL_ENTRYID equ ( PT_BINARY shl 16)+ 3A12h +PR_ORIGINAL_DISPLAY_NAME equ ( PT_TSTRING shl 16)+ 3A13h +PR_ORIGINAL_DISPLAY_NAME_W equ ( PT_UNICODE shl 16)+ 3A13h +PR_ORIGINAL_DISPLAY_NAME_A equ ( PT_STRING8 shl 16)+ 3A13h +PR_ORIGINAL_SEARCH_KEY equ ( PT_BINARY shl 16)+ 3A14h +PR_POSTAL_ADDRESS equ ( PT_TSTRING shl 16)+ 3A15h +PR_POSTAL_ADDRESS_W equ ( PT_UNICODE shl 16)+ 3A15h +PR_POSTAL_ADDRESS_A equ ( PT_STRING8 shl 16)+ 3A15h +PR_COMPANY_NAME equ ( PT_TSTRING shl 16)+ 3A16h +PR_COMPANY_NAME_W equ ( PT_UNICODE shl 16)+ 3A16h +PR_COMPANY_NAME_A equ ( PT_STRING8 shl 16)+ 3A16h +PR_TITLE equ ( PT_TSTRING shl 16)+ 3A17h +PR_TITLE_W equ ( PT_UNICODE shl 16)+ 3A17h +PR_TITLE_A equ ( PT_STRING8 shl 16)+ 3A17h +PR_DEPARTMENT_NAME equ ( PT_TSTRING shl 16)+ 3A18h +PR_DEPARTMENT_NAME_W equ ( PT_UNICODE shl 16)+ 3A18h +PR_DEPARTMENT_NAME_A equ ( PT_STRING8 shl 16)+ 3A18h +PR_OFFICE_LOCATION equ ( PT_TSTRING shl 16)+ 3A19h +PR_OFFICE_LOCATION_W equ ( PT_UNICODE shl 16)+ 3A19h +PR_OFFICE_LOCATION_A equ ( PT_STRING8 shl 16)+ 3A19h +PR_PRIMARY_TELEPHONE_NUMBER equ ( PT_TSTRING shl 16)+ 3A1Ah +PR_PRIMARY_TELEPHONE_NUMBER_W equ ( PT_UNICODE shl 16)+ 3A1Ah +PR_PRIMARY_TELEPHONE_NUMBER_A equ ( PT_STRING8 shl 16)+ 3A1Ah +PR_BUSINESS2_TELEPHONE_NUMBER equ ( PT_TSTRING shl 16)+ 3A1Bh +PR_BUSINESS2_TELEPHONE_NUMBER_W equ ( PT_UNICODE shl 16)+ 3A1Bh +PR_BUSINESS2_TELEPHONE_NUMBER_A equ ( PT_STRING8 shl 16)+ 3A1Bh +PR_OFFICE2_TELEPHONE_NUMBER equ PR_BUSINESS2_TELEPHONE_NUMBER +PR_OFFICE2_TELEPHONE_NUMBER_W equ PR_BUSINESS2_TELEPHONE_NUMBER_W +PR_OFFICE2_TELEPHONE_NUMBER_A equ PR_BUSINESS2_TELEPHONE_NUMBER_A +PR_MOBILE_TELEPHONE_NUMBER equ ( PT_TSTRING shl 16)+ 3A1Ch +PR_MOBILE_TELEPHONE_NUMBER_W equ ( PT_UNICODE shl 16)+ 3A1Ch +PR_MOBILE_TELEPHONE_NUMBER_A equ ( PT_STRING8 shl 16)+ 3A1Ch +PR_CELLULAR_TELEPHONE_NUMBER equ PR_MOBILE_TELEPHONE_NUMBER +PR_CELLULAR_TELEPHONE_NUMBER_W equ PR_MOBILE_TELEPHONE_NUMBER_W +PR_CELLULAR_TELEPHONE_NUMBER_A equ PR_MOBILE_TELEPHONE_NUMBER_A +PR_RADIO_TELEPHONE_NUMBER equ ( PT_TSTRING shl 16)+ 3A1Dh +PR_RADIO_TELEPHONE_NUMBER_W equ ( PT_UNICODE shl 16)+ 3A1Dh +PR_RADIO_TELEPHONE_NUMBER_A equ ( PT_STRING8 shl 16)+ 3A1Dh +PR_CAR_TELEPHONE_NUMBER equ ( PT_TSTRING shl 16)+ 3A1Eh +PR_CAR_TELEPHONE_NUMBER_W equ ( PT_UNICODE shl 16)+ 3A1Eh +PR_CAR_TELEPHONE_NUMBER_A equ ( PT_STRING8 shl 16)+ 3A1Eh +PR_OTHER_TELEPHONE_NUMBER equ ( PT_TSTRING shl 16)+ 3A1Fh +PR_OTHER_TELEPHONE_NUMBER_W equ ( PT_UNICODE shl 16)+ 3A1Fh +PR_OTHER_TELEPHONE_NUMBER_A equ ( PT_STRING8 shl 16)+ 3A1Fh +PR_TRANSMITABLE_DISPLAY_NAME equ ( PT_TSTRING shl 16)+ 3A20h +PR_TRANSMITABLE_DISPLAY_NAME_W equ ( PT_UNICODE shl 16)+ 3A20h +PR_TRANSMITABLE_DISPLAY_NAME_A equ ( PT_STRING8 shl 16)+ 3A20h +PR_PAGER_TELEPHONE_NUMBER equ ( PT_TSTRING shl 16)+ 3A21h +PR_PAGER_TELEPHONE_NUMBER_W equ ( PT_UNICODE shl 16)+ 3A21h +PR_PAGER_TELEPHONE_NUMBER_A equ ( PT_STRING8 shl 16)+ 3A21h +PR_BEEPER_TELEPHONE_NUMBER equ PR_PAGER_TELEPHONE_NUMBER +PR_BEEPER_TELEPHONE_NUMBER_W equ PR_PAGER_TELEPHONE_NUMBER_W +PR_BEEPER_TELEPHONE_NUMBER_A equ PR_PAGER_TELEPHONE_NUMBER_A +PR_USER_CERTIFICATE equ ( PT_BINARY shl 16)+ 3A22h +PR_PRIMARY_FAX_NUMBER equ ( PT_TSTRING shl 16)+ 3A23h +PR_PRIMARY_FAX_NUMBER_W equ ( PT_UNICODE shl 16)+ 3A23h +PR_PRIMARY_FAX_NUMBER_A equ ( PT_STRING8 shl 16)+ 3A23h +PR_BUSINESS_FAX_NUMBER equ ( PT_TSTRING shl 16)+ 3A24h +PR_BUSINESS_FAX_NUMBER_W equ ( PT_UNICODE shl 16)+ 3A24h +PR_BUSINESS_FAX_NUMBER_A equ ( PT_STRING8 shl 16)+ 3A24h +PR_HOME_FAX_NUMBER equ ( PT_TSTRING shl 16)+ 3A25h +PR_HOME_FAX_NUMBER_W equ ( PT_UNICODE shl 16)+ 3A25h +PR_HOME_FAX_NUMBER_A equ ( PT_STRING8 shl 16)+ 3A25h +PR_COUNTRY equ ( PT_TSTRING shl 16)+ 3A26h +PR_COUNTRY_W equ ( PT_UNICODE shl 16)+ 3A26h +PR_COUNTRY_A equ ( PT_STRING8 shl 16)+ 3A26h +PR_BUSINESS_ADDRESS_COUNTRY equ PR_COUNTRY +PR_BUSINESS_ADDRESS_COUNTRY_W equ PR_COUNTRY_W +PR_BUSINESS_ADDRESS_COUNTRY_A equ PR_COUNTRY_A +PR_LOCALITY equ ( PT_TSTRING shl 16)+ 3A27h +PR_LOCALITY_W equ ( PT_UNICODE shl 16)+ 3A27h +PR_LOCALITY_A equ ( PT_STRING8 shl 16)+ 3A27h +PR_BUSINESS_ADDRESS_CITY equ PR_LOCALITY +PR_BUSINESS_ADDRESS_CITY_W equ PR_LOCALITY_W +PR_BUSINESS_ADDRESS_CITY_A equ PR_LOCALITY_A +PR_STATE_OR_PROVINCE equ ( PT_TSTRING shl 16)+ 3A28h +PR_STATE_OR_PROVINCE_W equ ( PT_UNICODE shl 16)+ 3A28h +PR_STATE_OR_PROVINCE_A equ ( PT_STRING8 shl 16)+ 3A28h +PR_BUSINESS_ADDRESS_STATE_OR_PROVINCE equ PR_STATE_OR_PROVINCE +PR_BUSINESS_ADDRESS_STATE_OR_PROVINCE_W equ PR_STATE_OR_PROVINCE_W +PR_BUSINESS_ADDRESS_STATE_OR_PROVINCE_A equ PR_STATE_OR_PROVINCE_A +PR_STREET_ADDRESS equ ( PT_TSTRING shl 16)+ 3A29h +PR_STREET_ADDRESS_W equ ( PT_UNICODE shl 16)+ 3A29h +PR_STREET_ADDRESS_A equ ( PT_STRING8 shl 16)+ 3A29h +PR_BUSINESS_ADDRESS_STREET equ PR_STREET_ADDRESS +PR_BUSINESS_ADDRESS_STREET_W equ PR_STREET_ADDRESS_W +PR_BUSINESS_ADDRESS_STREET_A equ PR_STREET_ADDRESS_A +PR_POSTAL_CODE equ ( PT_TSTRING shl 16)+ 3A2Ah +PR_POSTAL_CODE_W equ ( PT_UNICODE shl 16)+ 3A2Ah +PR_POSTAL_CODE_A equ ( PT_STRING8 shl 16)+ 3A2Ah +PR_BUSINESS_ADDRESS_POSTAL_CODE equ PR_POSTAL_CODE +PR_BUSINESS_ADDRESS_POSTAL_CODE_W equ PR_POSTAL_CODE_W +PR_BUSINESS_ADDRESS_POSTAL_CODE_A equ PR_POSTAL_CODE_A +PR_POST_OFFICE_BOX equ ( PT_TSTRING shl 16)+ 3A2Bh +PR_POST_OFFICE_BOX_W equ ( PT_UNICODE shl 16)+ 3A2Bh +PR_POST_OFFICE_BOX_A equ ( PT_STRING8 shl 16)+ 3A2Bh +PR_BUSINESS_ADDRESS_POST_OFFICE_BOX equ PR_POST_OFFICE_BOX +PR_BUSINESS_ADDRESS_POST_OFFICE_BOX_W equ PR_POST_OFFICE_BOX_W +PR_BUSINESS_ADDRESS_POST_OFFICE_BOX_A equ PR_POST_OFFICE_BOX_A +PR_TELEX_NUMBER equ ( PT_TSTRING shl 16)+ 3A2Ch +PR_TELEX_NUMBER_W equ ( PT_UNICODE shl 16)+ 3A2Ch +PR_TELEX_NUMBER_A equ ( PT_STRING8 shl 16)+ 3A2Ch +PR_ISDN_NUMBER equ ( PT_TSTRING shl 16)+ 3A2Dh +PR_ISDN_NUMBER_W equ ( PT_UNICODE shl 16)+ 3A2Dh +PR_ISDN_NUMBER_A equ ( PT_STRING8 shl 16)+ 3A2Dh +PR_ASSISTANT_TELEPHONE_NUMBER equ ( PT_TSTRING shl 16)+ 3A2Eh +PR_ASSISTANT_TELEPHONE_NUMBER_W equ ( PT_UNICODE shl 16)+ 3A2Eh +PR_ASSISTANT_TELEPHONE_NUMBER_A equ ( PT_STRING8 shl 16)+ 3A2Eh +PR_HOME2_TELEPHONE_NUMBER equ ( PT_TSTRING shl 16)+ 3A2Fh +PR_HOME2_TELEPHONE_NUMBER_W equ ( PT_UNICODE shl 16)+ 3A2Fh +PR_HOME2_TELEPHONE_NUMBER_A equ ( PT_STRING8 shl 16)+ 3A2Fh +PR_ASSISTANT equ ( PT_TSTRING shl 16)+ 3A30h +PR_ASSISTANT_W equ ( PT_UNICODE shl 16)+ 3A30h +PR_ASSISTANT_A equ ( PT_STRING8 shl 16)+ 3A30h +PR_SEND_RICH_INFO equ ( PT_BOOLEAN shl 16)+ 3A40h +PR_WEDDING_ANNIVERSARY equ ( PT_SYSTIME shl 16)+ 3A41h +PR_BIRTHDAY equ ( PT_SYSTIME shl 16)+ 3A42h +PR_HOBBIES equ ( PT_TSTRING shl 16)+ 3A43h +PR_HOBBIES_W equ ( PT_UNICODE shl 16)+ 3A43h +PR_HOBBIES_A equ ( PT_STRING8 shl 16)+ 3A43h +PR_MIDDLE_NAME equ ( PT_TSTRING shl 16)+ 3A44h +PR_MIDDLE_NAME_W equ ( PT_UNICODE shl 16)+ 3A44h +PR_MIDDLE_NAME_A equ ( PT_STRING8 shl 16)+ 3A44h +PR_DISPLAY_NAME_PREFIX equ ( PT_TSTRING shl 16)+ 3A45h +PR_DISPLAY_NAME_PREFIX_W equ ( PT_UNICODE shl 16)+ 3A45h +PR_DISPLAY_NAME_PREFIX_A equ ( PT_STRING8 shl 16)+ 3A45h +PR_PROFESSION equ ( PT_TSTRING shl 16)+ 3A46h +PR_PROFESSION_W equ ( PT_UNICODE shl 16)+ 3A46h +PR_PROFESSION_A equ ( PT_STRING8 shl 16)+ 3A46h +PR_PREFERRED_BY_NAME equ ( PT_TSTRING shl 16)+ 3A47h +PR_PREFERRED_BY_NAME_W equ ( PT_UNICODE shl 16)+ 3A47h +PR_PREFERRED_BY_NAME_A equ ( PT_STRING8 shl 16)+ 3A47h +PR_SPOUSE_NAME equ ( PT_TSTRING shl 16)+ 3A48h +PR_SPOUSE_NAME_W equ ( PT_UNICODE shl 16)+ 3A48h +PR_SPOUSE_NAME_A equ ( PT_STRING8 shl 16)+ 3A48h +PR_COMPUTER_NETWORK_NAME equ ( PT_TSTRING shl 16)+ 3A49h +PR_COMPUTER_NETWORK_NAME_W equ ( PT_UNICODE shl 16)+ 3A49h +PR_COMPUTER_NETWORK_NAME_A equ ( PT_STRING8 shl 16)+ 3A49h +PR_CUSTOMER_ID equ ( PT_TSTRING shl 16)+ 3A4Ah +PR_CUSTOMER_ID_W equ ( PT_UNICODE shl 16)+ 3A4Ah +PR_CUSTOMER_ID_A equ ( PT_STRING8 shl 16)+ 3A4Ah +PR_TTYTDD_PHONE_NUMBER equ ( PT_TSTRING shl 16)+ 3A4Bh +PR_TTYTDD_PHONE_NUMBER_W equ ( PT_UNICODE shl 16)+ 3A4Bh +PR_TTYTDD_PHONE_NUMBER_A equ ( PT_STRING8 shl 16)+ 3A4Bh +PR_FTP_SITE equ ( PT_TSTRING shl 16)+ 3A4Ch +PR_FTP_SITE_W equ ( PT_UNICODE shl 16)+ 3A4Ch +PR_FTP_SITE_A equ ( PT_STRING8 shl 16)+ 3A4Ch +PR_GENDER equ ( PT_SHORT shl 16)+ 3A4Dh +PR_MANAGER_NAME equ ( PT_TSTRING shl 16)+ 3A4Eh +PR_MANAGER_NAME_W equ ( PT_UNICODE shl 16)+ 3A4Eh +PR_MANAGER_NAME_A equ ( PT_STRING8 shl 16)+ 3A4Eh +PR_NICKNAME equ ( PT_TSTRING shl 16)+ 3A4Fh +PR_NICKNAME_W equ ( PT_UNICODE shl 16)+ 3A4Fh +PR_NICKNAME_A equ ( PT_STRING8 shl 16)+ 3A4Fh +PR_PERSONAL_HOME_PAGE equ ( PT_TSTRING shl 16)+ 3A50h +PR_PERSONAL_HOME_PAGE_W equ ( PT_UNICODE shl 16)+ 3A50h +PR_PERSONAL_HOME_PAGE_A equ ( PT_STRING8 shl 16)+ 3A50h +PR_BUSINESS_HOME_PAGE equ ( PT_TSTRING shl 16)+ 3A51h +PR_BUSINESS_HOME_PAGE_W equ ( PT_UNICODE shl 16)+ 3A51h +PR_BUSINESS_HOME_PAGE_A equ ( PT_STRING8 shl 16)+ 3A51h +PR_CONTACT_VERSION equ ( PT_CLSID shl 16)+ 3A52h +PR_CONTACT_ENTRYIDS equ ( PT_MV_BINARY shl 16)+ 3A53h +PR_CONTACT_ADDRTYPES equ ( PT_MV_TSTRING shl 16)+ 3A54h +PR_CONTACT_ADDRTYPES_W equ ( PT_MV_UNICODE shl 16)+ 3A54h +PR_CONTACT_ADDRTYPES_A equ ( PT_MV_STRING8 shl 16)+ 3A54h +PR_CONTACT_DEFAULT_ADDRESS_INDEX equ ( PT_LONG shl 16)+ 3A55h +PR_CONTACT_EMAIL_ADDRESSES equ ( PT_MV_TSTRING shl 16)+ 3A56h +PR_CONTACT_EMAIL_ADDRESSES_W equ ( PT_MV_UNICODE shl 16)+ 3A56h +PR_CONTACT_EMAIL_ADDRESSES_A equ ( PT_MV_STRING8 shl 16)+ 3A56h +PR_COMPANY_MAIN_PHONE_NUMBER equ ( PT_TSTRING shl 16)+ 3A57h +PR_COMPANY_MAIN_PHONE_NUMBER_W equ ( PT_UNICODE shl 16)+ 3A57h +PR_COMPANY_MAIN_PHONE_NUMBER_A equ ( PT_STRING8 shl 16)+ 3A57h +PR_CHILDRENS_NAMES equ ( PT_MV_TSTRING shl 16)+ 3A58h +PR_CHILDRENS_NAMES_W equ ( PT_MV_UNICODE shl 16)+ 3A58h +PR_CHILDRENS_NAMES_A equ ( PT_MV_STRING8 shl 16)+ 3A58h +PR_HOME_ADDRESS_CITY equ ( PT_TSTRING shl 16)+ 3A59h +PR_HOME_ADDRESS_CITY_W equ ( PT_UNICODE shl 16)+ 3A59h +PR_HOME_ADDRESS_CITY_A equ ( PT_STRING8 shl 16)+ 3A59h +PR_HOME_ADDRESS_COUNTRY equ ( PT_TSTRING shl 16)+ 3A5Ah +PR_HOME_ADDRESS_COUNTRY_W equ ( PT_UNICODE shl 16)+ 3A5Ah +PR_HOME_ADDRESS_COUNTRY_A equ ( PT_STRING8 shl 16)+ 3A5Ah +PR_HOME_ADDRESS_POSTAL_CODE equ ( PT_TSTRING shl 16)+ 3A5Bh +PR_HOME_ADDRESS_POSTAL_CODE_W equ ( PT_UNICODE shl 16)+ 3A5Bh +PR_HOME_ADDRESS_POSTAL_CODE_A equ ( PT_STRING8 shl 16)+ 3A5Bh +PR_HOME_ADDRESS_STATE_OR_PROVINCE equ ( PT_TSTRING shl 16)+ 3A5Ch +PR_HOME_ADDRESS_STATE_OR_PROVINCE_W equ ( PT_UNICODE shl 16)+ 3A5Ch +PR_HOME_ADDRESS_STATE_OR_PROVINCE_A equ ( PT_STRING8 shl 16)+ 3A5Ch +PR_HOME_ADDRESS_STREET equ ( PT_TSTRING shl 16)+ 3A5Dh +PR_HOME_ADDRESS_STREET_W equ ( PT_UNICODE shl 16)+ 3A5Dh +PR_HOME_ADDRESS_STREET_A equ ( PT_STRING8 shl 16)+ 3A5Dh +PR_HOME_ADDRESS_POST_OFFICE_BOX equ ( PT_TSTRING shl 16)+ 3A5Eh +PR_HOME_ADDRESS_POST_OFFICE_BOX_W equ ( PT_UNICODE shl 16)+ 3A5Eh +PR_HOME_ADDRESS_POST_OFFICE_BOX_A equ ( PT_STRING8 shl 16)+ 3A5Eh +PR_OTHER_ADDRESS_CITY equ ( PT_TSTRING shl 16)+ 3A5Fh +PR_OTHER_ADDRESS_CITY_W equ ( PT_UNICODE shl 16)+ 3A5Fh +PR_OTHER_ADDRESS_CITY_A equ ( PT_STRING8 shl 16)+ 3A5Fh +PR_OTHER_ADDRESS_COUNTRY equ ( PT_TSTRING shl 16)+ 3A60h +PR_OTHER_ADDRESS_COUNTRY_W equ ( PT_UNICODE shl 16)+ 3A60h +PR_OTHER_ADDRESS_COUNTRY_A equ ( PT_STRING8 shl 16)+ 3A60h +PR_OTHER_ADDRESS_POSTAL_CODE equ ( PT_TSTRING shl 16)+ 3A61h +PR_OTHER_ADDRESS_POSTAL_CODE_W equ ( PT_UNICODE shl 16)+ 3A61h +PR_OTHER_ADDRESS_POSTAL_CODE_A equ ( PT_STRING8 shl 16)+ 3A61h +PR_OTHER_ADDRESS_STATE_OR_PROVINCE equ ( PT_TSTRING shl 16)+ 3A62h +PR_OTHER_ADDRESS_STATE_OR_PROVINCE_W equ ( PT_UNICODE shl 16)+ 3A62h +PR_OTHER_ADDRESS_STATE_OR_PROVINCE_A equ ( PT_STRING8 shl 16)+ 3A62h +PR_OTHER_ADDRESS_STREET equ ( PT_TSTRING shl 16)+ 3A63h +PR_OTHER_ADDRESS_STREET_W equ ( PT_UNICODE shl 16)+ 3A63h +PR_OTHER_ADDRESS_STREET_A equ ( PT_STRING8 shl 16)+ 3A63h +PR_OTHER_ADDRESS_POST_OFFICE_BOX equ ( PT_TSTRING shl 16)+ 3A64h +PR_OTHER_ADDRESS_POST_OFFICE_BOX_W equ ( PT_UNICODE shl 16)+ 3A64h +PR_OTHER_ADDRESS_POST_OFFICE_BOX_A equ ( PT_STRING8 shl 16)+ 3A64h +PR_STORE_PROVIDERS equ ( PT_BINARY shl 16)+ 3D00h +PR_AB_PROVIDERS equ ( PT_BINARY shl 16)+ 3D01h +PR_TRANSPORT_PROVIDERS equ ( PT_BINARY shl 16)+ 3D02h +PR_DEFAULT_PROFILE equ ( PT_BOOLEAN shl 16)+ 3D04h +PR_AB_SEARCH_PATH equ ( PT_MV_BINARY shl 16)+ 3D05h +PR_AB_DEFAULT_DIR equ ( PT_BINARY shl 16)+ 3D06h +PR_AB_DEFAULT_PAB equ ( PT_BINARY shl 16)+ 3D07h +PR_FILTERING_HOOKS equ ( PT_BINARY shl 16)+ 3D08h +PR_SERVICE_NAME equ ( PT_TSTRING shl 16)+ 3D09h +PR_SERVICE_NAME_W equ ( PT_UNICODE shl 16)+ 3D09h +PR_SERVICE_NAME_A equ ( PT_STRING8 shl 16)+ 3D09h +PR_SERVICE_DLL_NAME equ ( PT_TSTRING shl 16)+ 3D0Ah +PR_SERVICE_DLL_NAME_W equ ( PT_UNICODE shl 16)+ 3D0Ah +PR_SERVICE_DLL_NAME_A equ ( PT_STRING8 shl 16)+ 3D0Ah +PR_SERVICE_ENTRY_NAME equ ( PT_STRING8 shl 16)+ 3D0Bh +PR_SERVICE_UID equ ( PT_BINARY shl 16)+ 3D0Ch +PR_SERVICE_EXTRA_UIDS equ ( PT_BINARY shl 16)+ 3D0Dh +PR_SERVICES equ ( PT_BINARY shl 16)+ 3D0Eh +PR_SERVICE_SUPPORT_FILES equ ( PT_MV_TSTRING shl 16)+ 3D0Fh +PR_SERVICE_SUPPORT_FILES_W equ ( PT_MV_UNICODE shl 16)+ 3D0Fh +PR_SERVICE_SUPPORT_FILES_A equ ( PT_MV_STRING8 shl 16)+ 3D0Fh +PR_SERVICE_DELETE_FILES equ ( PT_MV_TSTRING shl 16)+ 3D10h +PR_SERVICE_DELETE_FILES_W equ ( PT_MV_UNICODE shl 16)+ 3D10h +PR_SERVICE_DELETE_FILES_A equ ( PT_MV_STRING8 shl 16)+ 3D10h +PR_AB_SEARCH_PATH_UPDATE equ ( PT_BINARY shl 16)+ 3D11h +PR_PROFILE_NAME equ ( PT_TSTRING shl 16)+ 3D12h +PR_PROFILE_NAME_A equ ( PT_STRING8 shl 16)+ 3D12h +PR_PROFILE_NAME_W equ ( PT_UNICODE shl 16)+ 3D12h +PR_IDENTITY_DISPLAY equ ( PT_TSTRING shl 16)+ 3E00h +PR_IDENTITY_DISPLAY_W equ ( PT_UNICODE shl 16)+ 3E00h +PR_IDENTITY_DISPLAY_A equ ( PT_STRING8 shl 16)+ 3E00h +PR_IDENTITY_ENTRYID equ ( PT_BINARY shl 16)+ 3E01h +PR_RESOURCE_METHODS equ ( PT_LONG shl 16)+ 3E02h +PR_RESOURCE_TYPE equ ( PT_LONG shl 16)+ 3E03h +PR_STATUS_CODE equ ( PT_LONG shl 16)+ 3E04h +PR_IDENTITY_SEARCH_KEY equ ( PT_BINARY shl 16)+ 3E05h +PR_OWN_STORE_ENTRYID equ ( PT_BINARY shl 16)+ 3E06h +PR_RESOURCE_PATH equ ( PT_TSTRING shl 16)+ 3E07h +PR_RESOURCE_PATH_W equ ( PT_UNICODE shl 16)+ 3E07h +PR_RESOURCE_PATH_A equ ( PT_STRING8 shl 16)+ 3E07h +PR_STATUS_STRING equ ( PT_TSTRING shl 16)+ 3E08h +PR_STATUS_STRING_W equ ( PT_UNICODE shl 16)+ 3E08h +PR_STATUS_STRING_A equ ( PT_STRING8 shl 16)+ 3E08h +PR_X400_DEFERRED_DELIVERY_CANCEL equ ( PT_BOOLEAN shl 16)+ 3E09h +PR_HEADER_FOLDER_ENTRYID equ ( PT_BINARY shl 16)+ 3E0Ah +PR_REMOTE_PROGRESS equ ( PT_LONG shl 16)+ 3E0Bh +PR_REMOTE_PROGRESS_TEXT equ ( PT_TSTRING shl 16)+ 3E0Ch +PR_REMOTE_PROGRESS_TEXT_W equ ( PT_UNICODE shl 16)+ 3E0Ch +PR_REMOTE_PROGRESS_TEXT_A equ ( PT_STRING8 shl 16)+ 3E0Ch +PR_REMOTE_VALIDATE_OK equ ( PT_BOOLEAN shl 16)+ 3E0Dh +PR_CONTROL_FLAGS equ ( PT_LONG shl 16)+ 3F00h +PR_CONTROL_STRUCTURE equ ( PT_BINARY shl 16)+ 3F01h +PR_CONTROL_TYPE equ ( PT_LONG shl 16)+ 3F02h +PR_DELTAX equ ( PT_LONG shl 16)+ 3F03h +PR_DELTAY equ ( PT_LONG shl 16)+ 3F04h +PR_XPOS equ ( PT_LONG shl 16)+ 3F05h +PR_YPOS equ ( PT_LONG shl 16)+ 3F06h +PR_CONTROL_ID equ ( PT_BINARY shl 16)+ 3F07h +PR_INITIAL_DETAILS_PANE equ ( PT_LONG shl 16)+ 3F08h +PROP_ID_SECURE_MIN equ 67F0h +PROP_ID_SECURE_MAX equ 67FFh + +;----------------------------------[ mapiutil.h ]------------------------ +IPROP_READONLY equ 1 +IPROP_READWRITE equ 2 +IPROP_CLEAN equ 10000h +IPROP_DIRTY equ 20000h +PRILOWEST equ -32768 +PRIHIGHEST equ 32767 +PRIUSER equ 0 +IRONULL equ 0 +FIROWAIT equ 1 +FIROINTERVAL equ 2 +FIROPERBLOCK equ 4 +FIRODISABLED equ 20h +FIROONCEONLY equ 40h +IRCNULL equ 0 +FIRCPFN equ 1 +FIRCPV equ 2 +FIRCPRI equ 4 +FIRCCSEC equ 8 +FIRCIRO equ 10h +MAPI_FORCE_CREATE equ 1 +MAPI_FULL_IPM_TREE equ 2 +RTF_SYNC_RTF_CHANGED equ 1 +RTF_SYNC_BODY_CHANGED equ 2 + +DTCTL STRUCT + ulCtlType dd ? + ulCtlFlags dd ? + lpbNotif dd ? + cbNotif dd ? + lpszFilter dd ? + ulItemID dd ? + union ctl + lpv dd ? + lplabel dd ? + lpedit dd ? + lplbx dd ? + lpcombobox dd ? + lpddlbx dd ? + lpcheckbox dd ? + lpgroupbox dd ? + lpbutton dd ? + lpradiobutton dd ? + lpmvlbx dd ? + lpmvddlbx dd ? + lppage dd ? + ends +DTCTL ENDS + +DTPAGE STRUCT + cctl dd ? + lpszResourceName dd ? + union + lpszComponent dd ? + ulItemID dd ? + ends + lpctl dd ? +DTPAGE ENDS + +;-----------------------------------[mapiwz.h]------------------------------- +WIZ_QUERYNUMPAGES equ WM_USER+10 +WIZ_NEXT equ WM_USER +11 +WIZ_PREV equ WM_USER +12 +MAPI_PW_FIRST_PROFILE equ 1 +MAPI_PW_LAUNCHED_BY_CONFIG equ 2 +MAPI_PW_ADD_SERVICE_ONLY equ 4 +MAPI_PW_PROVIDER_UI_ONLY equ 8 +MAPI_PW_HIDE_SERVICES_LIST equ 10h +PR_WIZARD_NO_PST_PAGE equ (PT_BOOLEAN shl 16)+6700h +LAUNCHWIZARDENTRYNAME equ A("LAUNCHWIZARD") + +;--------------------------------[ mapix.h]----------------------------- +MAPI_ALLOW_OTHERS equ 8 +MAPI_EXPLICIT_PROFILE equ 10h +MAPI_SERVICE_UI_ALWAYS equ 2000h +MAPI_NO_MAIL equ 8000h +MAPI_TIMEOUT_SHORT equ 100000h +MAPI_SIMPLE_DEFAULT equ (MAPI_LOGON_UI + MAPI_FORCE_DOWNLOAD + MAPI_ALLOW_OTHERS) +MAPI_SIMPLE_EXPLICIT equ (MAPI_NEW_SESSION + MAPI_FORCE_DOWNLOAD + MAPI_EXPLICIT_PROFILE) +MAPI_INIT_VERSION equ 0 +MAPI_MULTITHREAD_NOTIFICATIONS equ 1 +MAPI_LOGOFF_SHARED equ 1 +MAPI_LOGOFF_UI equ 2 +MAPI_DEFAULT_STORE equ 1 +MAPI_SIMPLE_STORE_TEMPORARY equ 2 +MAPI_SIMPLE_STORE_PERMANENT equ 3 +MAPI_PRIMARY_STORE equ 4 +MAPI_SECONDARY_STORE equ 5 +MAPI_POST_MESSAGE equ 1 +MAPI_NEW_MESSAGE equ 2 +MAPI_DEFAULT_SERVICES equ 1 +SERVICE_DEFAULT_STORE equ 1 +SERVICE_SINGLE_COPY equ 2 +SERVICE_CREATE_WITH_STORE equ 4 +SERVICE_PRIMARY_IDENTITY equ 8 +SERVICE_NO_PRIMARY_IDENTITY equ 20h + +MAPIINIT_0 STRUCT + ulVersion dd ? + ulFlags dd ? +MAPIINIT_0 ENDS + +;;;; end mapi + +;;;; winioctl + +FILE_DEVICE_BEEP equ 00000001h +FILE_DEVICE_CD_ROM equ 00000002h +FILE_DEVICE_CD_ROM_FILE_SYSTEM equ 00000003h +FILE_DEVICE_CONTROLLER equ 00000004h +FILE_DEVICE_DATALINK equ 00000005h +FILE_DEVICE_DFS equ 00000006h +FILE_DEVICE_DISK equ 00000007h +FILE_DEVICE_DISK_FILE_SYSTEM equ 00000008h +FILE_DEVICE_FILE_SYSTEM equ 00000009h +FILE_DEVICE_INPORT_PORT equ 0000000ah +FILE_DEVICE_KEYBOARD equ 0000000bh +FILE_DEVICE_MAILSLOT equ 0000000ch +FILE_DEVICE_MIDI_IN equ 0000000dh +FILE_DEVICE_MIDI_OUT equ 0000000eh +FILE_DEVICE_MOUSE equ 0000000fh +FILE_DEVICE_MULTI_UNC_PROVIDER equ 00000010h +FILE_DEVICE_NAMED_PIPE equ 00000011h +FILE_DEVICE_NETWORK equ 00000012h +FILE_DEVICE_NETWORK_BROWSER equ 00000013h +FILE_DEVICE_NETWORK_FILE_SYSTEM equ 00000014h +FILE_DEVICE_NULL equ 00000015h +FILE_DEVICE_PARALLEL_PORT equ 00000016h +FILE_DEVICE_PHYSICAL_NETCARD equ 00000017h +FILE_DEVICE_PRINTER equ 00000018h +FILE_DEVICE_SCANNER equ 00000019h +FILE_DEVICE_SERIAL_MOUSE_PORT equ 0000001ah +FILE_DEVICE_SERIAL_PORT equ 0000001bh +FILE_DEVICE_SCREEN equ 0000001ch +FILE_DEVICE_SOUND equ 0000001dh +FILE_DEVICE_STREAMS equ 0000001eh +FILE_DEVICE_TAPE equ 0000001fh +FILE_DEVICE_TAPE_FILE_SYSTEM equ 00000020h +FILE_DEVICE_TRANSPORT equ 00000021h +FILE_DEVICE_UNKNOWN equ 00000022h +FILE_DEVICE_VIDEO equ 00000023h +FILE_DEVICE_VIRTUAL_DISK equ 00000024h +FILE_DEVICE_WAVE_IN equ 00000025h +FILE_DEVICE_WAVE_OUT equ 00000026h +FILE_DEVICE_8042_PORT equ 00000027h +FILE_DEVICE_NETWORK_REDIRECTOR equ 00000028h +FILE_DEVICE_BATTERY equ 00000029h +FILE_DEVICE_BUS_EXTENDER equ 0000002ah +FILE_DEVICE_MODEM equ 0000002bh +FILE_DEVICE_VDM equ 0000002ch +FILE_DEVICE_MASS_STORAGE equ 0000002dh +FILE_DEVICE_SMB equ 0000002eh +FILE_DEVICE_KS equ 0000002fh +FILE_DEVICE_CHANGER equ 00000030h +FILE_DEVICE_SMARTCARD equ 00000031h +FILE_DEVICE_ACPI equ 00000032h +FILE_DEVICE_DVD equ 00000033h +FILE_DEVICE_FULLSCREEN_VIDEO equ 00000034h +FILE_DEVICE_DFS_FILE_SYSTEM equ 00000035h +FILE_DEVICE_DFS_VOLUME equ 00000036h +FILE_DEVICE_SERENUM equ 00000037h +FILE_DEVICE_TERMSRV equ 00000038h +FILE_DEVICE_KSEC equ 00000039h +METHOD_BUFFERED equ 0 +METHOD_IN_DIRECT equ 1 +METHOD_OUT_DIRECT equ 2 +METHOD_NEITHER equ 3 +FILE_ANY_ACCESS equ 0 +FILE_SPECIAL_ACCESS equ (FILE_ANY_ACCESS) +FILE_READ_ACCESS equ 1 +FILE_WRITE_ACCESS equ 2 +IOCTL_STORAGE_BASE equ FILE_DEVICE_MASS_STORAGE +RECOVERED_WRITES_VALID equ 00000001h +UNRECOVERED_WRITES_VALID equ 00000002h +RECOVERED_READS_VALID equ 00000004h +UNRECOVERED_READS_VALID equ 00000008h +WRITE_COMPRESSION_INFO_VALID equ 00000010h +READ_COMPRESSION_INFO_VALID equ 00000020h +TAPE_RETURN_STATISTICS equ 0 +TAPE_RETURN_ENV_INFO equ 1 +TAPE_RESET_STATISTICS equ 2 +MEDIA_ERASEABLE equ 00000001h +MEDIA_WRITE_ONCE equ 00000002h +MEDIA_READ_ONLY equ 00000004h +MEDIA_READ_WRITE equ 00000008h +MEDIA_WRITE_PROTECTED equ 00000100h +MEDIA_CURRENTLY_MOUNTED equ 80000000h +IOCTL_DISK_BASE equ FILE_DEVICE_DISK +PARTITION_ENTRY_UNUSED equ 00h +PARTITION_FAT_12 equ 01h +PARTITION_XENIX_1 equ 02h +PARTITION_XENIX_2 equ 03h +PARTITION_FAT_16 equ 04h +PARTITION_EXTENDED equ 05h +PARTITION_HUGE equ 06h +PARTITION_IFS equ 07h +PARTITION_FAT32 equ 0Bh +PARTITION_FAT32_XINT13 equ 0Ch +PARTITION_XINT13 equ 0Eh +PARTITION_XINT13_EXTENDED equ 0Fh +PARTITION_PREP equ 41h +PARTITION_LDM equ 42h +PARTITION_UNIX equ 63h +VALID_NTFT equ 0C0h +PARTITION_NTFT equ 80h +HIST_NO_OF_BUCKETS equ 24 +HISTOGRAM_BUCKET_SIZE equ sizeof(HISTOGRAM_BUCKET) +DISK_HISTOGRAM_SIZE equ sizeof(DISK_HISTOGRAM) +DISK_LOGGING_START equ 0 +DISK_LOGGING_STOP equ 1 +DISK_LOGGING_DUMP equ 2 +DISK_BINNING equ 3 +CAP_ATA_ID_CMD equ 1 +CAP_ATAPI_ID_CMD equ 2 +CAP_SMART_CMD equ 4 +ATAPI_ID_CMD equ 0A1h +ID_CMD equ 0ECh +SMART_CMD equ 0B0h +SMART_CYL_LOW equ 4Fh +SMART_CYL_HI equ 0C2h +SMART_NO_ERROR equ 0 +SMART_IDE_ERROR equ 1 +SMART_INVALID_FLAG equ 2 +SMART_INVALID_COMMAND equ 3 +SMART_INVALID_BUFFER equ 4 +SMART_INVALID_DRIVE equ 5 +SMART_INVALID_IOCTL equ 6 +SMART_ERROR_NO_MEM equ 7 +SMART_INVALID_REGISTER equ 8 +SMART_NOT_SUPPORTED equ 9 +SMART_NO_IDE_DEVICE equ 10 +READ_ATTRIBUTE_BUFFER_SIZE equ 512 +IDENTIFY_BUFFER_SIZE equ 512 +READ_THRESHOLD_BUFFER_SIZE equ 512 +READ_ATTRIBUTES equ 0D0h +READ_THRESHOLDS equ 0D1h +ENABLE_DISABLE_AUTOSAVE equ 0D2h +SAVE_ATTRIBUTE_VALUES equ 0D3h +EXECUTE_OFFLINE_DIAGS equ 0D4h +ENABLE_SMART equ 0D8h +DISABLE_SMART equ 0D9h +RETURN_SMART_STATUS equ 0DAh +ENABLE_DISABLE_AUTO_OFFLINE equ 0DBh +IOCTL_CHANGER_BASE equ FILE_DEVICE_CHANGER +MAX_VOLUME_ID_SIZE equ 36 +MAX_VOLUME_TEMPLATE_SIZE equ 40 +VENDOR_ID_LENGTH equ 8 +PRODUCT_ID_LENGTH equ 16 +REVISION_LENGTH equ 4 +SERIAL_NUMBER_LENGTH equ 32 +CHANGER_BAR_CODE_SCANNER_INSTALLED equ 00000001h +CHANGER_INIT_ELEM_STAT_WITH_RANGE equ 00000002h +CHANGER_CLOSE_IEPORT equ 00000004h +CHANGER_OPEN_IEPORT equ 00000008h +CHANGER_STATUS_NON_VOLATILE equ 00000010h +CHANGER_EXCHANGE_MEDIA equ 00000020h +CHANGER_CLEANER_SLOT equ 00000040h +CHANGER_LOCK_UNLOCK equ 00000080h +CHANGER_CARTRIDGE_MAGAZINE equ 00000100h +CHANGER_MEDIUM_FLIP equ 00000200h +CHANGER_POSITION_TO_ELEMENT equ 00000400h +CHANGER_REPORT_IEPORT_STATE equ 00000800h +CHANGER_STORAGE_DRIVE equ 00001000h +CHANGER_STORAGE_IEPORT equ 00002000h +CHANGER_STORAGE_SLOT equ 00004000h +CHANGER_STORAGE_TRANSPORT equ 00008000h +CHANGER_DRIVE_CLEANING_REQUIRED equ 00010000h +CHANGER_PREDISMOUNT_EJECT_REQUIRED equ 00020000h +CHANGER_CLEANER_ACCESS_NOT_VALID equ 00040000h +CHANGER_PREMOUNT_EJECT_REQUIRED equ 00080000h +CHANGER_VOLUME_IDENTIFICATION equ 00100000h +CHANGER_VOLUME_SEARCH equ 00200000h +CHANGER_VOLUME_ASSERT equ 00400000h +CHANGER_VOLUME_REPLACE equ 00800000h +CHANGER_VOLUME_UNDEFINE equ 01000000h +CHANGER_SERIAL_NUMBER_VALID equ 04000000h +CHANGER_DEVICE_REINITIALIZE_CAPABLE equ 08000000h +CHANGER_KEYPAD_ENABLE_DISABLE equ 10000000h +CHANGER_DRIVE_EMPTY_ON_DOOR_ACCESS equ 20000000h +CHANGER_RESERVED_BIT equ 80000000h +CHANGER_PREDISMOUNT_ALIGN_TO_SLOT equ 80000001h +CHANGER_PREDISMOUNT_ALIGN_TO_DRIVE equ 80000002h +CHANGER_CLEANER_AUTODISMOUNT equ 80000004h +CHANGER_TRUE_EXCHANGE_CAPABLE equ 80000008h +CHANGER_SLOTS_USE_TRAYS equ 80000010h +CHANGER_RTN_MEDIA_TO_ORIGINAL_ADDR equ 80000020h +CHANGER_CLEANER_OPS_NOT_SUPPORTED equ 80000040h +CHANGER_IEPORT_USER_CONTROL_OPEN equ 80000080h +CHANGER_IEPORT_USER_CONTROL_CLOSE equ 80000100h +CHANGER_MOVE_EXTENDS_IEPORT equ 80000200h +CHANGER_MOVE_RETRACTS_IEPORT equ 80000400h +CHANGER_TO_TRANSPORT equ 01h +CHANGER_TO_SLOT equ 02h +CHANGER_TO_IEPORT equ 04h +CHANGER_TO_DRIVE equ 08h +LOCK_UNLOCK_IEPORT equ 01h +LOCK_UNLOCK_DOOR equ 02h +LOCK_UNLOCK_KEYPAD equ 04h +LOCK_ELEMENT equ 0 +UNLOCK_ELEMENT equ 1 +EXTEND_IEPORT equ 2 +RETRACT_IEPORT equ 3 +ELEMENT_STATUS_FULL equ 00000001h +ELEMENT_STATUS_IMPEXP equ 00000002h +ELEMENT_STATUS_EXCEPT equ 00000004h +ELEMENT_STATUS_ACCESS equ 00000008h +ELEMENT_STATUS_EXENAB equ 00000010h +ELEMENT_STATUS_INENAB equ 00000020h +ELEMENT_STATUS_LUN_VALID equ 00001000h +ELEMENT_STATUS_ID_VALID equ 00002000h +ELEMENT_STATUS_NOT_BUS equ 00008000h +ELEMENT_STATUS_INVERT equ 00400000h +ELEMENT_STATUS_SVALID equ 00800000h +ELEMENT_STATUS_PVOLTAG equ 10000000h +ELEMENT_STATUS_AVOLTAG equ 20000000h +ERROR_LABEL_UNREADABLE equ 00000001h +ERROR_LABEL_QUESTIONABLE equ 00000002h +ERROR_SLOT_NOT_PRESENT equ 00000004h +ERROR_DRIVE_NOT_INSTALLED equ 00000008h +ERROR_TRAY_MALFUNCTION equ 00000010h +ERROR_INIT_STATUS_NEEDED equ 00000011h +ERROR_UNHANDLED_ERROR equ 0FFFFFFFFh +SEARCH_ALL equ 0h +SEARCH_PRIMARY equ 1h +SEARCH_ALTERNATE equ 2h +SEARCH_ALL_NO_SEQ equ 4h +SEARCH_PRI_NO_SEQ equ 5h +SEARCH_ALT_NO_SEQ equ 6h +ASSERT_PRIMARY equ 8h +ASSERT_ALTERNATE equ 9h +REPLACE_PRIMARY equ 0Ah +REPLACE_ALTERNATE equ 0Bh +UNDEFINE_PRIMARY equ 0Ch +UNDEFINE_ALTERNATE equ 0Dh +SERIAL_LSRMST_ESCAPE equ 0 +SERIAL_LSRMST_LSR_DATA equ 1 +SERIAL_LSRMST_LSR_NODATA equ 2 +SERIAL_LSRMST_MST equ 3 +SERIAL_IOC_FCR_FIFO_ENABLE equ 00000001 +SERIAL_IOC_FCR_RCVR_RESET equ 00000002 +SERIAL_IOC_FCR_XMIT_RESET equ 00000004 +SERIAL_IOC_FCR_DMA_MODE equ 00000008 +SERIAL_IOC_FCR_RES1 equ 00000010 +SERIAL_IOC_FCR_RES2 equ 00000020 +SERIAL_IOC_FCR_RCVR_TRIGGER_LSB equ 00000040 +SERIAL_IOC_FCR_RCVR_TRIGGER_MSB equ 00000080 +SERIAL_IOC_MCR_DTR equ 00000001 +SERIAL_IOC_MCR_RTS equ 00000002 +SERIAL_IOC_MCR_OUT1 equ 00000004 +SERIAL_IOC_MCR_OUT2 equ 00000008 +SERIAL_IOC_MCR_LOOP equ 00000010 +USN_PAGE_SIZE equ 1000h +USN_REASON_DATA_OVERWRITE equ 00000001h +USN_REASON_DATA_EXTEND equ 00000002h +USN_REASON_DATA_TRUNCATION equ 00000004h +USN_REASON_NAMED_DATA_OVERWRITE equ 00000010h +USN_REASON_NAMED_DATA_EXTEND equ 00000020h +USN_REASON_NAMED_DATA_TRUNCATION equ 00000040h +USN_REASON_FILE_CREATE equ 00000100h +USN_REASON_FILE_DELETE equ 00000200h +USN_REASON_EA_CHANGE equ 00000400h +USN_REASON_SECURITY_CHANGE equ 00000800h +USN_REASON_RENAME_OLD_NAME equ 00001000h +USN_REASON_RENAME_NEW_NAME equ 00002000h +USN_REASON_INDEXABLE_CHANGE equ 00004000h +USN_REASON_BASIC_INFO_CHANGE equ 00008000h +USN_REASON_HARD_LINK_CHANGE equ 00010000h +USN_REASON_COMPRESSION_CHANGE equ 00020000h +USN_REASON_ENCRYPTION_CHANGE equ 00040000h +USN_REASON_OBJECT_ID_CHANGE equ 00080000h +USN_REASON_REPARSE_POINT_CHANGE equ 00100000h +USN_REASON_STREAM_CHANGE equ 00200000h +USN_REASON_CLOSE equ 80000000h +USN_DELETE_FLAG_DELETE equ 00000001h +USN_DELETE_FLAG_NOTIFY equ 00000002h +USN_DELETE_VALID_FLAGS equ 00000003h +USN_SOURCE_DATA_MANAGEMENT equ 00000001h +USN_SOURCE_AUXILIARY_DATA equ 00000002h +USN_SOURCE_REPLICATION_MANAGEMENT equ 00000004h +VOLUME_IS_DIRTY equ 00000001h +VOLUME_UPGRADE_SCHEDULED equ 00000002h +FILESYSTEM_STATISTICS_TYPE_NTFS equ 1 +FILESYSTEM_STATISTICS_TYPE_FAT equ 2 +FILE_SET_ENCRYPTION equ 00000001h +FILE_CLEAR_ENCRYPTION equ 00000002h +STREAM_SET_ENCRYPTION equ 00000003h +STREAM_CLEAR_ENCRYPTION equ 00000004h +MAXIMUM_ENCRYPTION_VALUE equ 00000004h +ENCRYPTION_FORMAT_DEFAULT equ 1 +COMPRESSION_FORMAT_SPARSE equ 4000h +COPYFILE_SIS_LINK equ 0001h +COPYFILE_SIS_REPLACE equ 0002h +COPYFILE_SIS_FLAGS equ 0003h +NSS_CONTROL_MARK equ 1 +NSS_CONTROL_UNMARK equ 2 +NSS_CONTROL_ISNSSFILE equ 4 + +;;;; end winioctl + +;;;; tapi + +TAPI_CURRENT_VERSION equ 00020002h +LINE_ADDRESSSTATE equ 0 +LINE_CALLINFO equ 1 +LINE_CALLSTATE equ 2 +LINE_CLOSE equ 3 +LINE_DEVSPECIFIC equ 4 +LINE_DEVSPECIFICFEATURE equ 5 +LINE_GATHERDIGITS equ 6 +LINE_GENERATE equ 7 +LINE_LINEDEVSTATE equ 8 +LINE_MONITORDIGITS equ 9 +LINE_MONITORMEDIA equ 10 +LINE_MONITORTONE equ 11 +LINE_REPLY equ 12 +LINE_REQUEST equ 13 +PHONE_BUTTON equ 14 +PHONE_CLOSE equ 15 +PHONE_DEVSPECIFIC equ 16 +PHONE_REPLY equ 17 +PHONE_STATE equ 18 +LINE_CREATE equ 19 +PHONE_CREATE equ 20 +LINE_AGENTSPECIFIC equ 21 +LINE_AGENTSTATUS equ 22 +LINE_APPNEWCALL equ 23 +LINE_PROXYREQUEST equ 24 +LINE_REMOVE equ 25 +PHONE_REMOVE equ 26 +LINE_AGENTSESSIONSTATUS equ 27 +LINE_QUEUESTATUS equ 28 +LINE_AGENTSTATUSEX equ 29 +LINE_GROUPSTATUS equ 30 +LINE_PROXYSTATUS equ 31 +LINE_APPNEWCALLHUB equ 32 +LINE_CALLHUBCLOSE equ 33 +LINE_DEVSPECIFICEX equ 34 +INITIALIZE_NEGOTIATION equ 0FFFFFFFFh +LINEADDRCAPFLAGS_FWDNUMRINGS equ 00000001h +LINEADDRCAPFLAGS_PICKUPGROUPID equ 00000002h +LINEADDRCAPFLAGS_SECURE equ 00000004h +LINEADDRCAPFLAGS_BLOCKIDDEFAULT equ 00000008h +LINEADDRCAPFLAGS_BLOCKIDOVERRIDE equ 00000010h +LINEADDRCAPFLAGS_DIALED equ 00000020h +LINEADDRCAPFLAGS_ORIGOFFHOOK equ 00000040h +LINEADDRCAPFLAGS_DESTOFFHOOK equ 00000080h +LINEADDRCAPFLAGS_FWDCONSULT equ 00000100h +LINEADDRCAPFLAGS_SETUPCONFNULL equ 00000200h +LINEADDRCAPFLAGS_AUTORECONNECT equ 00000400h +LINEADDRCAPFLAGS_COMPLETIONID equ 00000800h +LINEADDRCAPFLAGS_TRANSFERHELD equ 00001000h +LINEADDRCAPFLAGS_TRANSFERMAKE equ 00002000h +LINEADDRCAPFLAGS_CONFERENCEHELD equ 00004000h +LINEADDRCAPFLAGS_CONFERENCEMAKE equ 00008000h +LINEADDRCAPFLAGS_PARTIALDIAL equ 00010000h +LINEADDRCAPFLAGS_FWDSTATUSVALID equ 00020000h +LINEADDRCAPFLAGS_FWDINTEXTADDR equ 00040000h +LINEADDRCAPFLAGS_FWDBUSYNAADDR equ 00080000h +LINEADDRCAPFLAGS_ACCEPTTOALERT equ 00100000h +LINEADDRCAPFLAGS_CONFDROP equ 00200000h +LINEADDRCAPFLAGS_PICKUPCALLWAIT equ 00400000h +LINEADDRCAPFLAGS_PREDICTIVEDIALER equ 00800000h +LINEADDRCAPFLAGS_QUEUE equ 01000000h +LINEADDRCAPFLAGS_ROUTEPOINT equ 02000000h +LINEADDRCAPFLAGS_HOLDMAKESNEW equ 04000000h +LINEADDRCAPFLAGS_NOINTERNALCALLS equ 08000000h +LINEADDRCAPFLAGS_NOEXTERNALCALLS equ 10000000h +LINEADDRCAPFLAGS_SETCALLINGID equ 20000000h +LINEADDRCAPFLAGS_ACDGROUP equ 40000000h +LINEADDRCAPFLAGS_NOPSTNADDRESSTRANSLATION equ 80000000h +LINEADDRESSMODE_ADDRESSID equ 00000001h +LINEADDRESSMODE_DIALABLEADDR equ 00000002h +LINEADDRESSSHARING_PRIVATE equ 00000001h +LINEADDRESSSHARING_BRIDGEDEXCL equ 00000002h +LINEADDRESSSHARING_BRIDGEDNEW equ 00000004h +LINEADDRESSSHARING_BRIDGEDSHARED equ 00000008h +LINEADDRESSSHARING_MONITORED equ 00000010h +LINEADDRESSSTATE_OTHER equ 00000001h +LINEADDRESSSTATE_DEVSPECIFIC equ 00000002h +LINEADDRESSSTATE_INUSEZERO equ 00000004h +LINEADDRESSSTATE_INUSEONE equ 00000008h +LINEADDRESSSTATE_INUSEMANY equ 00000010h +LINEADDRESSSTATE_NUMCALLS equ 00000020h +LINEADDRESSSTATE_FORWARD equ 00000040h +LINEADDRESSSTATE_TERMINALS equ 00000080h +LINEADDRESSSTATE_CAPSCHANGE equ 00000100h +LINEADDRESSTYPE_PHONENUMBER equ 00000001h +LINEADDRESSTYPE_SDP equ 00000002h +LINEADDRESSTYPE_EMAILNAME equ 00000004h +LINEADDRESSTYPE_DOMAINNAME equ 00000008h +LINEADDRESSTYPE_IPADDRESS equ 00000010h +LINEADDRFEATURE_FORWARD equ 00000001h +LINEADDRFEATURE_MAKECALL equ 00000002h +LINEADDRFEATURE_PICKUP equ 00000004h +LINEADDRFEATURE_SETMEDIACONTROL equ 00000008h +LINEADDRFEATURE_SETTERMINAL equ 00000010h +LINEADDRFEATURE_SETUPCONF equ 00000020h +LINEADDRFEATURE_UNCOMPLETECALL equ 00000040h +LINEADDRFEATURE_UNPARK equ 00000080h +LINEADDRFEATURE_PICKUPHELD equ 00000100h +LINEADDRFEATURE_PICKUPGROUP equ 00000200h +LINEADDRFEATURE_PICKUPDIRECT equ 00000400h +LINEADDRFEATURE_PICKUPWAITING equ 00000800h +LINEADDRFEATURE_FORWARDFWD equ 00001000h +LINEADDRFEATURE_FORWARDDND equ 00002000h +LINEAGENTFEATURE_SETAGENTGROUP equ 00000001h +LINEAGENTFEATURE_SETAGENTSTATE equ 00000002h +LINEAGENTFEATURE_SETAGENTACTIVITY equ 00000004h +LINEAGENTFEATURE_AGENTSPECIFIC equ 00000008h +LINEAGENTFEATURE_GETAGENTACTIVITYLIST equ 00000010h +LINEAGENTFEATURE_GETAGENTGROUP equ 00000020h +LINEAGENTSTATE_LOGGEDOFF equ 00000001h +LINEAGENTSTATE_NOTREADY equ 00000002h +LINEAGENTSTATE_READY equ 00000004h +LINEAGENTSTATE_BUSYACD equ 00000008h +LINEAGENTSTATE_BUSYINCOMING equ 00000010h +LINEAGENTSTATE_BUSYOUTBOUND equ 00000020h +LINEAGENTSTATE_BUSYOTHER equ 00000040h +LINEAGENTSTATE_WORKINGAFTERCALL equ 00000080h +LINEAGENTSTATE_UNKNOWN equ 00000100h +LINEAGENTSTATE_UNAVAIL equ 00000200h +LINEAGENTSTATUS_GROUP equ 00000001h +LINEAGENTSTATUS_STATE equ 00000002h +LINEAGENTSTATUS_NEXTSTATE equ 00000004h +LINEAGENTSTATUS_ACTIVITY equ 00000008h +LINEAGENTSTATUS_ACTIVITYLIST equ 00000010h +LINEAGENTSTATUS_GROUPLIST equ 00000020h +LINEAGENTSTATUS_CAPSCHANGE equ 00000040h +LINEAGENTSTATUS_VALIDSTATES equ 00000080h +LINEAGENTSTATUS_VALIDNEXTSTATES equ 00000100h +LINEAGENTSTATEEX_NOTREADY equ 00000001h +LINEAGENTSTATEEX_READY equ 00000002h +LINEAGENTSTATEEX_BUSYACD equ 00000004h +LINEAGENTSTATEEX_BUSYINCOMING equ 00000008h +LINEAGENTSTATEEX_BUSYOUTGOING equ 00000010h +LINEAGENTSTATEEX_UNKNOWN equ 00000020h +LINEAGENTSTATEEX_RELEASED equ 00000040h +LINEAGENTSTATUSEX_NEWAGENT equ 00000001h +LINEAGENTSTATUSEX_STATE equ 00000002h +LINEAGENTSTATUSEX_UPDATEINFO equ 00000004h +LINEAGENTSESSIONSTATE_NOTREADY equ 00000001h +LINEAGENTSESSIONSTATE_READY equ 00000002h +LINEAGENTSESSIONSTATE_BUSYONCALL equ 00000004h +LINEAGENTSESSIONSTATE_BUSYWRAPUP equ 00000008h +LINEAGENTSESSIONSTATE_ENDED equ 00000010h +LINEAGENTSESSIONSTATE_RELEASED equ 00000020h +LINEAGENTSESSIONSTATUS_NEWSESSION equ 00000001h +LINEAGENTSESSIONSTATUS_STATE equ 00000002h +LINEAGENTSESSIONSTATUS_UPDATEINFO equ 00000004h +LINEQUEUESTATUS_UPDATEINFO equ 00000001h +LINEQUEUESTATUS_NEWQUEUE equ 00000002h +LINEQUEUESTATUS_QUEUEREMOVED equ 00000004h +LINEGROUPSTATUS_NEWGROUP equ 00000001h +LINEGROUPSTATUS_GROUPREMOVED equ 00000002h +LINEPROXYSTATUS_OPEN equ 00000001h +LINEPROXYSTATUS_CLOSE equ 00000002h +LINEPROXYSTATUS_ALLOPENFORACD equ 00000004h +LINEANSWERMODE_NONE equ 00000001h +LINEANSWERMODE_DROP equ 00000002h +LINEANSWERMODE_HOLD equ 00000004h +LINEBEARERMODE_VOICE equ 00000001h +LINEBEARERMODE_SPEECH equ 00000002h +LINEBEARERMODE_MULTIUSE equ 00000004h +LINEBEARERMODE_DATA equ 00000008h +LINEBEARERMODE_ALTSPEECHDATA equ 00000010h +LINEBEARERMODE_NONCALLSIGNALING equ 00000020h +LINEBEARERMODE_PASSTHROUGH equ 00000040h +LINEBEARERMODE_RESTRICTEDDATA equ 00000080h +LINEBUSYMODE_STATION equ 00000001h +LINEBUSYMODE_TRUNK equ 00000002h +LINEBUSYMODE_UNKNOWN equ 00000004h +LINEBUSYMODE_UNAVAIL equ 00000008h +LINECALLCOMPLCOND_BUSY equ 00000001h +LINECALLCOMPLCOND_NOANSWER equ 00000002h +LINECALLCOMPLMODE_CAMPON equ 00000001h +LINECALLCOMPLMODE_CALLBACK equ 00000002h +LINECALLCOMPLMODE_INTRUDE equ 00000004h +LINECALLCOMPLMODE_MESSAGE equ 00000008h +LINECALLFEATURE_ACCEPT equ 00000001h +LINECALLFEATURE_ADDTOCONF equ 00000002h +LINECALLFEATURE_ANSWER equ 00000004h +LINECALLFEATURE_BLINDTRANSFER equ 00000008h +LINECALLFEATURE_COMPLETECALL equ 00000010h +LINECALLFEATURE_COMPLETETRANSF equ 00000020h +LINECALLFEATURE_DIAL equ 00000040h +LINECALLFEATURE_DROP equ 00000080h +LINECALLFEATURE_GATHERDIGITS equ 00000100h +LINECALLFEATURE_GENERATEDIGITS equ 00000200h +LINECALLFEATURE_GENERATETONE equ 00000400h +LINECALLFEATURE_HOLD equ 00000800h +LINECALLFEATURE_MONITORDIGITS equ 00001000h +LINECALLFEATURE_MONITORMEDIA equ 00002000h +LINECALLFEATURE_MONITORTONES equ 00004000h +LINECALLFEATURE_PARK equ 00008000h +LINECALLFEATURE_PREPAREADDCONF equ 00010000h +LINECALLFEATURE_REDIRECT equ 00020000h +LINECALLFEATURE_REMOVEFROMCONF equ 00040000h +LINECALLFEATURE_SECURECALL equ 00080000h +LINECALLFEATURE_SENDUSERUSER equ 00100000h +LINECALLFEATURE_SETCALLPARAMS equ 00200000h +LINECALLFEATURE_SETMEDIACONTROL equ 00400000h +LINECALLFEATURE_SETTERMINAL equ 00800000h +LINECALLFEATURE_SETUPCONF equ 01000000h +LINECALLFEATURE_SETUPTRANSFER equ 02000000h +LINECALLFEATURE_SWAPHOLD equ 04000000h +LINECALLFEATURE_UNHOLD equ 08000000h +LINECALLFEATURE_RELEASEUSERUSERINFO equ 10000000h +LINECALLFEATURE_SETTREATMENT equ 20000000h +LINECALLFEATURE_SETQOS equ 40000000h +LINECALLFEATURE_SETCALLDATA equ 80000000h +LINECALLFEATURE2_NOHOLDCONFERENCE equ 00000001h +LINECALLFEATURE2_ONESTEPTRANSFER equ 00000002h +LINECALLFEATURE2_COMPLCAMPON equ 00000004h +LINECALLFEATURE2_COMPLCALLBACK equ 00000008h +LINECALLFEATURE2_COMPLINTRUDE equ 00000010h +LINECALLFEATURE2_COMPLMESSAGE equ 00000020h +LINECALLFEATURE2_TRANSFERNORM equ 00000040h +LINECALLFEATURE2_TRANSFERCONF equ 00000080h +LINECALLFEATURE2_PARKDIRECT equ 00000100h +LINECALLFEATURE2_PARKNONDIRECT equ 00000200h +LINECALLHUBTRACKING_NONE equ 00000000h +LINECALLHUBTRACKING_PROVIDERLEVEL equ 00000001h +LINECALLHUBTRACKING_ALLCALLS equ 00000002h +LINECALLINFOSTATE_OTHER equ 00000001h +LINECALLINFOSTATE_DEVSPECIFIC equ 00000002h +LINECALLINFOSTATE_BEARERMODE equ 00000004h +LINECALLINFOSTATE_RATE equ 00000008h +LINECALLINFOSTATE_MEDIAMODE equ 00000010h +LINECALLINFOSTATE_APPSPECIFIC equ 00000020h +LINECALLINFOSTATE_CALLID equ 00000040h +LINECALLINFOSTATE_RELATEDCALLID equ 00000080h +LINECALLINFOSTATE_ORIGIN equ 00000100h +LINECALLINFOSTATE_REASON equ 00000200h +LINECALLINFOSTATE_COMPLETIONID equ 00000400h +LINECALLINFOSTATE_NUMOWNERINCR equ 00000800h +LINECALLINFOSTATE_NUMOWNERDECR equ 00001000h +LINECALLINFOSTATE_NUMMONITORS equ 00002000h +LINECALLINFOSTATE_TRUNK equ 00004000h +LINECALLINFOSTATE_CALLERID equ 00008000h +LINECALLINFOSTATE_CALLEDID equ 00010000h +LINECALLINFOSTATE_CONNECTEDID equ 00020000h +LINECALLINFOSTATE_REDIRECTIONID equ 00040000h +LINECALLINFOSTATE_REDIRECTINGID equ 00080000h +LINECALLINFOSTATE_DISPLAY equ 00100000h +LINECALLINFOSTATE_USERUSERINFO equ 00200000h +LINECALLINFOSTATE_HIGHLEVELCOMP equ 00400000h +LINECALLINFOSTATE_LOWLEVELCOMP equ 00800000h +LINECALLINFOSTATE_CHARGINGINFO equ 01000000h +LINECALLINFOSTATE_TERMINAL equ 02000000h +LINECALLINFOSTATE_DIALPARAMS equ 04000000h +LINECALLINFOSTATE_MONITORMODES equ 08000000h +LINECALLINFOSTATE_TREATMENT equ 10000000h +LINECALLINFOSTATE_QOS equ 20000000h +LINECALLINFOSTATE_CALLDATA equ 40000000h +LINECALLORIGIN_OUTBOUND equ 00000001h +LINECALLORIGIN_INTERNAL equ 00000002h +LINECALLORIGIN_EXTERNAL equ 00000004h +LINECALLORIGIN_UNKNOWN equ 00000010h +LINECALLORIGIN_UNAVAIL equ 00000020h +LINECALLORIGIN_CONFERENCE equ 00000040h +LINECALLORIGIN_INBOUND equ 00000080h +LINECALLPARAMFLAGS_SECURE equ 00000001h +LINECALLPARAMFLAGS_IDLE equ 00000002h +LINECALLPARAMFLAGS_BLOCKID equ 00000004h +LINECALLPARAMFLAGS_ORIGOFFHOOK equ 00000008h +LINECALLPARAMFLAGS_DESTOFFHOOK equ 00000010h +LINECALLPARAMFLAGS_NOHOLDCONFERENCE equ 00000020h +LINECALLPARAMFLAGS_PREDICTIVEDIAL equ 00000040h +LINECALLPARAMFLAGS_ONESTEPTRANSFER equ 00000080h +LINECALLPARTYID_BLOCKED equ 00000001h +LINECALLPARTYID_OUTOFAREA equ 00000002h +LINECALLPARTYID_NAME equ 00000004h +LINECALLPARTYID_ADDRESS equ 00000008h +LINECALLPARTYID_PARTIAL equ 00000010h +LINECALLPARTYID_UNKNOWN equ 00000020h +LINECALLPARTYID_UNAVAIL equ 00000040h +LINECALLPRIVILEGE_NONE equ 00000001h +LINECALLPRIVILEGE_MONITOR equ 00000002h +LINECALLPRIVILEGE_OWNER equ 00000004h +LINECALLREASON_DIRECT equ 00000001h +LINECALLREASON_FWDBUSY equ 00000002h +LINECALLREASON_FWDNOANSWER equ 00000004h +LINECALLREASON_FWDUNCOND equ 00000008h +LINECALLREASON_PICKUP equ 00000010h +LINECALLREASON_UNPARK equ 00000020h +LINECALLREASON_REDIRECT equ 00000040h +LINECALLREASON_CALLCOMPLETION equ 00000080h +LINECALLREASON_TRANSFER equ 00000100h +LINECALLREASON_REMINDER equ 00000200h +LINECALLREASON_UNKNOWN equ 00000400h +LINECALLREASON_UNAVAIL equ 00000800h +LINECALLREASON_INTRUDE equ 00001000h +LINECALLREASON_PARKED equ 00002000h +LINECALLREASON_CAMPEDON equ 00004000h +LINECALLREASON_ROUTEREQUEST equ 00008000h +LINECALLSELECT_LINE equ 00000001h +LINECALLSELECT_ADDRESS equ 00000002h +LINECALLSELECT_CALL equ 00000004h +LINECALLSELECT_DEVICEID equ 00000008h +LINECALLSELECT_CALLID equ 00000010h +LINECALLSTATE_IDLE equ 00000001h +LINECALLSTATE_OFFERING equ 00000002h +LINECALLSTATE_ACCEPTED equ 00000004h +LINECALLSTATE_DIALTONE equ 00000008h +LINECALLSTATE_DIALING equ 00000010h +LINECALLSTATE_RINGBACK equ 00000020h +LINECALLSTATE_BUSY equ 00000040h +LINECALLSTATE_SPECIALINFO equ 00000080h +LINECALLSTATE_CONNECTED equ 00000100h +LINECALLSTATE_PROCEEDING equ 00000200h +LINECALLSTATE_ONHOLD equ 00000400h +LINECALLSTATE_CONFERENCED equ 00000800h +LINECALLSTATE_ONHOLDPENDCONF equ 00001000h +LINECALLSTATE_ONHOLDPENDTRANSFER equ 00002000h +LINECALLSTATE_DISCONNECTED equ 00004000h +LINECALLSTATE_UNKNOWN equ 00008000h +LINECALLTREATMENT_SILENCE equ 00000001h +LINECALLTREATMENT_RINGBACK equ 00000002h +LINECALLTREATMENT_BUSY equ 00000003h +LINECALLTREATMENT_MUSIC equ 00000004h +LINECARDOPTION_PREDEFINED equ 00000001h +LINECARDOPTION_HIDDEN equ 00000002h +LINECONNECTEDMODE_ACTIVE equ 00000001h +LINECONNECTEDMODE_INACTIVE equ 00000002h +LINECONNECTEDMODE_ACTIVEHELD equ 00000004h +LINECONNECTEDMODE_INACTIVEHELD equ 00000008h +LINECONNECTEDMODE_CONFIRMED equ 00000010h +LINEDEVCAPFLAGS_CROSSADDRCONF equ 00000001h +LINEDEVCAPFLAGS_HIGHLEVCOMP equ 00000002h +LINEDEVCAPFLAGS_LOWLEVCOMP equ 00000004h +LINEDEVCAPFLAGS_MEDIACONTROL equ 00000008h +LINEDEVCAPFLAGS_MULTIPLEADDR equ 00000010h +LINEDEVCAPFLAGS_CLOSEDROP equ 00000020h +LINEDEVCAPFLAGS_DIALBILLING equ 00000040h +LINEDEVCAPFLAGS_DIALQUIET equ 00000080h +LINEDEVCAPFLAGS_DIALDIALTONE equ 00000100h +LINEDEVCAPFLAGS_MSP equ 00000200h +LINEDEVCAPFLAGS_CALLHUB equ 00000400h +LINEDEVCAPFLAGS_CALLHUBTRACKING equ 00000800h +LINEDEVCAPFLAGS_PRIVATEOBJECTS equ 00001000h +LINEDEVCAPFLAGS_LOCAL equ 00002000h +LINEDEVSTATE_OTHER equ 00000001h +LINEDEVSTATE_RINGING equ 00000002h +LINEDEVSTATE_CONNECTED equ 00000004h +LINEDEVSTATE_DISCONNECTED equ 00000008h +LINEDEVSTATE_MSGWAITON equ 00000010h +LINEDEVSTATE_MSGWAITOFF equ 00000020h +LINEDEVSTATE_INSERVICE equ 00000040h +LINEDEVSTATE_OUTOFSERVICE equ 00000080h +LINEDEVSTATE_MAINTENANCE equ 00000100h +LINEDEVSTATE_OPEN equ 00000200h +LINEDEVSTATE_CLOSE equ 00000400h +LINEDEVSTATE_NUMCALLS equ 00000800h +LINEDEVSTATE_NUMCOMPLETIONS equ 00001000h +LINEDEVSTATE_TERMINALS equ 00002000h +LINEDEVSTATE_ROAMMODE equ 00004000h +LINEDEVSTATE_BATTERY equ 00008000h +LINEDEVSTATE_SIGNAL equ 00010000h +LINEDEVSTATE_DEVSPECIFIC equ 00020000h +LINEDEVSTATE_REINIT equ 00040000h +LINEDEVSTATE_LOCK equ 00080000h +LINEDEVSTATE_CAPSCHANGE equ 00100000h +LINEDEVSTATE_CONFIGCHANGE equ 00200000h +LINEDEVSTATE_TRANSLATECHANGE equ 00400000h +LINEDEVSTATE_COMPLCANCEL equ 00800000h +LINEDEVSTATE_REMOVED equ 01000000h +LINEDEVSTATUSFLAGS_CONNECTED equ 00000001h +LINEDEVSTATUSFLAGS_MSGWAIT equ 00000002h +LINEDEVSTATUSFLAGS_INSERVICE equ 00000004h +LINEDEVSTATUSFLAGS_LOCKED equ 00000008h +LINEDIALTONEMODE_NORMAL equ 00000001h +LINEDIALTONEMODE_SPECIAL equ 00000002h +LINEDIALTONEMODE_INTERNAL equ 00000004h +LINEDIALTONEMODE_EXTERNAL equ 00000008h +LINEDIALTONEMODE_UNKNOWN equ 00000010h +LINEDIALTONEMODE_UNAVAIL equ 00000020h +LINEDIGITMODE_PULSE equ 00000001h +LINEDIGITMODE_DTMF equ 00000002h +LINEDIGITMODE_DTMFEND equ 00000004h +LINEDISCONNECTMODE_NORMAL equ 00000001h +LINEDISCONNECTMODE_UNKNOWN equ 00000002h +LINEDISCONNECTMODE_REJECT equ 00000004h +LINEDISCONNECTMODE_PICKUP equ 00000008h +LINEDISCONNECTMODE_FORWARDED equ 00000010h +LINEDISCONNECTMODE_BUSY equ 00000020h +LINEDISCONNECTMODE_NOANSWER equ 00000040h +LINEDISCONNECTMODE_BADADDRESS equ 00000080h +LINEDISCONNECTMODE_UNREACHABLE equ 00000100h +LINEDISCONNECTMODE_CONGESTION equ 00000200h +LINEDISCONNECTMODE_INCOMPATIBLE equ 00000400h +LINEDISCONNECTMODE_UNAVAIL equ 00000800h +LINEDISCONNECTMODE_NODIALTONE equ 00001000h +LINEDISCONNECTMODE_NUMBERCHANGED equ 00002000h +LINEDISCONNECTMODE_OUTOFORDER equ 00004000h +LINEDISCONNECTMODE_TEMPFAILURE equ 00008000h +LINEDISCONNECTMODE_QOSUNAVAIL equ 00010000h +LINEDISCONNECTMODE_BLOCKED equ 00020000h +LINEDISCONNECTMODE_DONOTDISTURB equ 00040000h +LINEDISCONNECTMODE_CANCELLED equ 00080000h +LINEERR_ALLOCATED equ 80000001h +LINEERR_BADDEVICEID equ 80000002h +LINEERR_BEARERMODEUNAVAIL equ 80000003h +LINEERR_CALLUNAVAIL equ 80000005h +LINEERR_COMPLETIONOVERRUN equ 80000006h +LINEERR_CONFERENCEFULL equ 80000007h +LINEERR_DIALBILLING equ 80000008h +LINEERR_DIALDIALTONE equ 80000009h +LINEERR_DIALPROMPT equ 8000000Ah +LINEERR_DIALQUIET equ 8000000Bh +LINEERR_INCOMPATIBLEAPIVERSION equ 8000000Ch +LINEERR_INCOMPATIBLEEXTVERSION equ 8000000Dh +LINEERR_INIFILECORRUPT equ 8000000Eh +LINEERR_INUSE equ 8000000Fh +LINEERR_INVALADDRESS equ 80000010h +LINEERR_INVALADDRESSID equ 80000011h +LINEERR_INVALADDRESSMODE equ 80000012h +LINEERR_INVALADDRESSSTATE equ 80000013h +LINEERR_INVALAPPHANDLE equ 80000014h +LINEERR_INVALAPPNAME equ 80000015h +LINEERR_INVALBEARERMODE equ 80000016h +LINEERR_INVALCALLCOMPLMODE equ 80000017h +LINEERR_INVALCALLHANDLE equ 80000018h +LINEERR_INVALCALLPARAMS equ 80000019h +LINEERR_INVALCALLPRIVILEGE equ 8000001Ah +LINEERR_INVALCALLSELECT equ 8000001Bh +LINEERR_INVALCALLSTATE equ 8000001Ch +LINEERR_INVALCALLSTATELIST equ 8000001Dh +LINEERR_INVALCARD equ 8000001Eh +LINEERR_INVALCOMPLETIONID equ 8000001Fh +LINEERR_INVALCONFCALLHANDLE equ 80000020h +LINEERR_INVALCONSULTCALLHANDLE equ 80000021h +LINEERR_INVALCOUNTRYCODE equ 80000022h +LINEERR_INVALDEVICECLASS equ 80000023h +LINEERR_INVALDEVICEHANDLE equ 80000024h +LINEERR_INVALDIALPARAMS equ 80000025h +LINEERR_INVALDIGITLIST equ 80000026h +LINEERR_INVALDIGITMODE equ 80000027h +LINEERR_INVALDIGITS equ 80000028h +LINEERR_INVALEXTVERSION equ 80000029h +LINEERR_INVALGROUPID equ 8000002Ah +LINEERR_INVALLINEHANDLE equ 8000002Bh +LINEERR_INVALLINESTATE equ 8000002Ch +LINEERR_INVALLOCATION equ 8000002Dh +LINEERR_INVALMEDIALIST equ 8000002Eh +LINEERR_INVALMEDIAMODE equ 8000002Fh +LINEERR_INVALMESSAGEID equ 80000030h +LINEERR_INVALPARAM equ 80000032h +LINEERR_INVALPARKID equ 80000033h +LINEERR_INVALPARKMODE equ 80000034h +LINEERR_INVALPOINTER equ 80000035h +LINEERR_INVALPRIVSELECT equ 80000036h +LINEERR_INVALRATE equ 80000037h +LINEERR_INVALREQUESTMODE equ 80000038h +LINEERR_INVALTERMINALID equ 80000039h +LINEERR_INVALTERMINALMODE equ 8000003Ah +LINEERR_INVALTIMEOUT equ 8000003Bh +LINEERR_INVALTONE equ 8000003Ch +LINEERR_INVALTONELIST equ 8000003Dh +LINEERR_INVALTONEMODE equ 8000003Eh +LINEERR_INVALTRANSFERMODE equ 8000003Fh +LINEERR_LINEMAPPERFAILED equ 80000040h +LINEERR_NOCONFERENCE equ 80000041h +LINEERR_NODEVICE equ 80000042h +LINEERR_NODRIVER equ 80000043h +LINEERR_NOMEM equ 80000044h +LINEERR_NOREQUEST equ 80000045h +LINEERR_NOTOWNER equ 80000046h +LINEERR_NOTREGISTERED equ 80000047h +LINEERR_OPERATIONFAILED equ 80000048h +LINEERR_OPERATIONUNAVAIL equ 80000049h +LINEERR_RATEUNAVAIL equ 8000004Ah +LINEERR_RESOURCEUNAVAIL equ 8000004Bh +LINEERR_REQUESTOVERRUN equ 8000004Ch +LINEERR_STRUCTURETOOSMALL equ 8000004Dh +LINEERR_TARGETNOTFOUND equ 8000004Eh +LINEERR_TARGETSELF equ 8000004Fh +LINEERR_UNINITIALIZED equ 80000050h +LINEERR_USERUSERINFOTOOBIG equ 80000051h +LINEERR_REINIT equ 80000052h +LINEERR_ADDRESSBLOCKED equ 80000053h +LINEERR_BILLINGREJECTED equ 80000054h +LINEERR_INVALFEATURE equ 80000055h +LINEERR_NOMULTIPLEINSTANCE equ 80000056h +LINEERR_INVALAGENTID equ 80000057h +LINEERR_INVALAGENTGROUP equ 80000058h +LINEERR_INVALPASSWORD equ 80000059h +LINEERR_INVALAGENTSTATE equ 8000005Ah +LINEERR_INVALAGENTACTIVITY equ 8000005Bh +LINEERR_DIALVOICEDETECT equ 8000005Ch +LINEERR_USERCANCELLED equ 8000005Dh +LINEERR_INVALADDRESSTYPE equ 8000005Eh +LINEERR_INVALAGENTSESSIONSTATE equ 8000005Fh +LINEERR_DISCONNECTED equ 0X80000060 +LINEERR_SERVICE_NOT_RUNNING equ 80000061h +LINEFEATURE_DEVSPECIFIC equ 00000001h +LINEFEATURE_DEVSPECIFICFEAT equ 00000002h +LINEFEATURE_FORWARD equ 00000004h +LINEFEATURE_MAKECALL equ 00000008h +LINEFEATURE_SETMEDIACONTROL equ 00000010h +LINEFEATURE_SETTERMINAL equ 00000020h +LINEFEATURE_SETDEVSTATUS equ 00000040h +LINEFEATURE_FORWARDFWD equ 00000080h +LINEFEATURE_FORWARDDND equ 00000100h +LINEFORWARDMODE_UNCOND equ 00000001h +LINEFORWARDMODE_UNCONDINTERNAL equ 00000002h +LINEFORWARDMODE_UNCONDEXTERNAL equ 00000004h +LINEFORWARDMODE_UNCONDSPECIFIC equ 00000008h +LINEFORWARDMODE_BUSY equ 00000010h +LINEFORWARDMODE_BUSYINTERNAL equ 00000020h +LINEFORWARDMODE_BUSYEXTERNAL equ 00000040h +LINEFORWARDMODE_BUSYSPECIFIC equ 00000080h +LINEFORWARDMODE_NOANSW equ 00000100h +LINEFORWARDMODE_NOANSWINTERNAL equ 00000200h +LINEFORWARDMODE_NOANSWEXTERNAL equ 00000400h +LINEFORWARDMODE_NOANSWSPECIFIC equ 00000800h +LINEFORWARDMODE_BUSYNA equ 00001000h +LINEFORWARDMODE_BUSYNAINTERNAL equ 00002000h +LINEFORWARDMODE_BUSYNAEXTERNAL equ 00004000h +LINEFORWARDMODE_BUSYNASPECIFIC equ 00008000h +LINEFORWARDMODE_UNKNOWN equ 00010000h +LINEFORWARDMODE_UNAVAIL equ 00020000h +LINEGATHERTERM_BUFFERFULL equ 00000001h +LINEGATHERTERM_TERMDIGIT equ 00000002h +LINEGATHERTERM_FIRSTTIMEOUT equ 00000004h +LINEGATHERTERM_INTERTIMEOUT equ 00000008h +LINEGATHERTERM_CANCEL equ 00000010h +LINEGENERATETERM_DONE equ 00000001h +LINEGENERATETERM_CANCEL equ 00000002h +LINEINITIALIZEEXOPTION_USEHIDDENWINDOW equ 00000001h +LINEINITIALIZEEXOPTION_USEEVENT equ 00000002h +LINEINITIALIZEEXOPTION_USECOMPLETIONPORT equ 00000003h +LINEINITIALIZEEXOPTION_CALLHUBTRACKING equ 80000000h +LINELOCATIONOPTION_PULSEDIAL equ 00000001h +LINEMAPPER equ 0FFFFFFFFh +LINEMEDIACONTROL_NONE equ 00000001h +LINEMEDIACONTROL_START equ 00000002h +LINEMEDIACONTROL_RESET equ 00000004h +LINEMEDIACONTROL_PAUSE equ 00000008h +LINEMEDIACONTROL_RESUME equ 00000010h +LINEMEDIACONTROL_RATEUP equ 00000020h +LINEMEDIACONTROL_RATEDOWN equ 00000040h +LINEMEDIACONTROL_RATENORMAL equ 00000080h +LINEMEDIACONTROL_VOLUMEUP equ 00000100h +LINEMEDIACONTROL_VOLUMEDOWN equ 00000200h +LINEMEDIACONTROL_VOLUMENORMAL equ 00000400h +LINEMEDIAMODE_UNKNOWN equ 00000002h +LINEMEDIAMODE_INTERACTIVEVOICE equ 00000004h +LINEMEDIAMODE_AUTOMATEDVOICE equ 00000008h +LINEMEDIAMODE_DATAMODEM equ 00000010h +LINEMEDIAMODE_G3FAX equ 00000020h +LINEMEDIAMODE_TDD equ 00000040h +LINEMEDIAMODE_G4FAX equ 00000080h +LINEMEDIAMODE_DIGITALDATA equ 00000100h +LINEMEDIAMODE_TELETEX equ 00000200h +LINEMEDIAMODE_VIDEOTEX equ 00000400h +LINEMEDIAMODE_TELEX equ 00000800h +LINEMEDIAMODE_MIXED equ 00001000h +LINEMEDIAMODE_ADSI equ 00002000h +LINEMEDIAMODE_VOICEVIEW equ 00004000h +LINEMEDIAMODE_VIDEO equ 00008000h +LAST_LINEMEDIAMODE equ 00008000h +LINEOFFERINGMODE_ACTIVE equ 00000001h +LINEOFFERINGMODE_INACTIVE equ 00000002h +LINEOPENOPTION_SINGLEADDRESS equ 80000000h +LINEOPENOPTION_PROXY equ 40000000h +LINEPARKMODE_DIRECTED equ 00000001h +LINEPARKMODE_NONDIRECTED equ 00000002h +LINEPROXYREQUEST_SETAGENTGROUP equ 00000001h +LINEPROXYREQUEST_SETAGENTSTATE equ 00000002h +LINEPROXYREQUEST_SETAGENTACTIVITY equ 00000003h +LINEPROXYREQUEST_GETAGENTCAPS equ 00000004h +LINEPROXYREQUEST_GETAGENTSTATUS equ 00000005h +LINEPROXYREQUEST_AGENTSPECIFIC equ 00000006h +LINEPROXYREQUEST_GETAGENTACTIVITYLIST equ 00000007h +LINEPROXYREQUEST_GETAGENTGROUPLIST equ 00000008h +LINEPROXYREQUEST_CREATEAGENT equ 00000009h +LINEPROXYREQUEST_SETAGENTMEASUREMENTPERIOD equ 0000000Ah +LINEPROXYREQUEST_GETAGENTINFO equ 0000000Bh +LINEPROXYREQUEST_CREATEAGENTSESSION equ 0000000Ch +LINEPROXYREQUEST_GETAGENTSESSIONLIST equ 0000000Dh +LINEPROXYREQUEST_SETAGENTSESSIONSTATE equ 0000000Eh +LINEPROXYREQUEST_GETAGENTSESSIONINFO equ 0000000Fh +LINEPROXYREQUEST_GETQUEUELIST equ 00000010h +LINEPROXYREQUEST_SETQUEUEMEASUREMENTPERIOD equ 00000011h +LINEPROXYREQUEST_GETQUEUEINFO equ 00000012h +LINEPROXYREQUEST_GETGROUPLIST equ 00000013h +LINEPROXYREQUEST_SETAGENTSTATEEX equ 00000014h +LINEREMOVEFROMCONF_NONE equ 00000001h +LINEREMOVEFROMCONF_LAST equ 00000002h +LINEREMOVEFROMCONF_ANY equ 00000003h +LINEREQUESTMODE_MAKECALL equ 00000001h +LINEREQUESTMODE_MEDIACALL equ 00000002h +LINEREQUESTMODE_DROP equ 00000004h +LAST_LINEREQUESTMODE equ LINEREQUESTMODE_MEDIACAL +LINEROAMMODE_UNKNOWN equ 00000001h +LINEROAMMODE_UNAVAIL equ 00000002h +LINEROAMMODE_HOME equ 00000004h +LINEROAMMODE_ROAMA equ 00000008h +LINEROAMMODE_ROAMB equ 00000010h +LINESPECIALINFO_NOCIRCUIT equ 00000001h +LINESPECIALINFO_CUSTIRREG equ 00000002h +LINESPECIALINFO_REORDER equ 00000004h +LINESPECIALINFO_UNKNOWN equ 00000008h +LINESPECIALINFO_UNAVAIL equ 00000010h +LINETERMDEV_PHONE equ 00000001h +LINETERMDEV_HEADSET equ 00000002h +LINETERMDEV_SPEAKER equ 00000004h +LINETERMMODE_BUTTONS equ 00000001h +LINETERMMODE_LAMPS equ 00000002h +LINETERMMODE_DISPLAY equ 00000004h +LINETERMMODE_RINGER equ 00000008h +LINETERMMODE_HOOKSWITCH equ 00000010h +LINETERMMODE_MEDIATOLINE equ 00000020h +LINETERMMODE_MEDIAFROMLINE equ 00000040h +LINETERMMODE_MEDIABIDIRECT equ 00000080h +LINETERMSHARING_PRIVATE equ 00000001h +LINETERMSHARING_SHAREDEXCL equ 00000002h +LINETERMSHARING_SHAREDCONF equ 00000004h +LINETOLLLISTOPTION_ADD equ 00000001h +LINETOLLLISTOPTION_REMOVE equ 00000002h +LINETONEMODE_CUSTOM equ 00000001h +LINETONEMODE_RINGBACK equ 00000002h +LINETONEMODE_BUSY equ 00000004h +LINETONEMODE_BEEP equ 00000008h +LINETONEMODE_BILLING equ 00000010h +LINETRANSFERMODE_TRANSFER equ 00000001h +LINETRANSFERMODE_CONFERENCE equ 00000002h +LINETRANSLATEOPTION_CARDOVERRIDE equ 00000001h +LINETRANSLATEOPTION_CANCELCALLWAITING equ 00000002h +LINETRANSLATEOPTION_FORCELOCAL equ 00000004h +LINETRANSLATEOPTION_FORCELD equ 00000008h +LINETRANSLATERESULT_CANONICAL equ 00000001h +LINETRANSLATERESULT_INTERNATIONAL equ 00000002h +LINETRANSLATERESULT_LONGDISTANCE equ 00000004h +LINETRANSLATERESULT_LOCAL equ 00000008h +LINETRANSLATERESULT_INTOLLLIST equ 00000010h +LINETRANSLATERESULT_NOTINTOLLLIST equ 00000020h +LINETRANSLATERESULT_DIALBILLING equ 00000040h +LINETRANSLATERESULT_DIALQUIET equ 00000080h +LINETRANSLATERESULT_DIALDIALTONE equ 00000100h +LINETRANSLATERESULT_DIALPROMPT equ 00000200h +LINETRANSLATERESULT_VOICEDETECT equ 00000400h +LINETRANSLATERESULT_NOTRANSLATION equ 00000800h +PHONEBUTTONFUNCTION_UNKNOWN equ 00000000h +PHONEBUTTONFUNCTION_CONFERENCE equ 00000001h +PHONEBUTTONFUNCTION_TRANSFER equ 00000002h +PHONEBUTTONFUNCTION_DROP equ 00000003h +PHONEBUTTONFUNCTION_HOLD equ 00000004h +PHONEBUTTONFUNCTION_RECALL equ 00000005h +PHONEBUTTONFUNCTION_DISCONNECT equ 00000006h +PHONEBUTTONFUNCTION_CONNECT equ 00000007h +PHONEBUTTONFUNCTION_MSGWAITON equ 00000008h +PHONEBUTTONFUNCTION_MSGWAITOFF equ 00000009h +PHONEBUTTONFUNCTION_SELECTRING equ 0000000Ah +PHONEBUTTONFUNCTION_ABBREVDIAL equ 0000000Bh +PHONEBUTTONFUNCTION_FORWARD equ 0000000Ch +PHONEBUTTONFUNCTION_PICKUP equ 0000000Dh +PHONEBUTTONFUNCTION_RINGAGAIN equ 0000000Eh +PHONEBUTTONFUNCTION_PARK equ 0000000Fh +PHONEBUTTONFUNCTION_REJECT equ 00000010h +PHONEBUTTONFUNCTION_REDIRECT equ 00000011h +PHONEBUTTONFUNCTION_MUTE equ 00000012h +PHONEBUTTONFUNCTION_VOLUMEUP equ 00000013h +PHONEBUTTONFUNCTION_VOLUMEDOWN equ 00000014h +PHONEBUTTONFUNCTION_SPEAKERON equ 00000015h +PHONEBUTTONFUNCTION_SPEAKEROFF equ 00000016h +PHONEBUTTONFUNCTION_FLASH equ 00000017h +PHONEBUTTONFUNCTION_DATAON equ 00000018h +PHONEBUTTONFUNCTION_DATAOFF equ 00000019h +PHONEBUTTONFUNCTION_DONOTDISTURB equ 0000001Ah +PHONEBUTTONFUNCTION_INTERCOM equ 0000001Bh +PHONEBUTTONFUNCTION_BRIDGEDAPP equ 0000001Ch +PHONEBUTTONFUNCTION_BUSY equ 0000001Dh +PHONEBUTTONFUNCTION_CALLAPP equ 0000001Eh +PHONEBUTTONFUNCTION_DATETIME equ 0000001Fh +PHONEBUTTONFUNCTION_DIRECTORY equ 00000020h +PHONEBUTTONFUNCTION_COVER equ 00000021h +PHONEBUTTONFUNCTION_CALLID equ 00000022h +PHONEBUTTONFUNCTION_LASTNUM equ 00000023h +PHONEBUTTONFUNCTION_NIGHTSRV equ 00000024h +PHONEBUTTONFUNCTION_SENDCALLS equ 00000025h +PHONEBUTTONFUNCTION_MSGINDICATOR equ 00000026h +PHONEBUTTONFUNCTION_REPDIAL equ 00000027h +PHONEBUTTONFUNCTION_SETREPDIAL equ 00000028h +PHONEBUTTONFUNCTION_SYSTEMSPEED equ 00000029h +PHONEBUTTONFUNCTION_STATIONSPEED equ 0000002Ah +PHONEBUTTONFUNCTION_CAMPON equ 0000002Bh +PHONEBUTTONFUNCTION_SAVEREPEAT equ 0000002Ch +PHONEBUTTONFUNCTION_QUEUECALL equ 0000002Dh +PHONEBUTTONFUNCTION_NONE equ 0000002Eh +PHONEBUTTONFUNCTION_SEND equ 0000002Fh +PHONEBUTTONMODE_DUMMY equ 00000001h +PHONEBUTTONMODE_CALL equ 00000002h +PHONEBUTTONMODE_FEATURE equ 00000004h +PHONEBUTTONMODE_KEYPAD equ 00000008h +PHONEBUTTONMODE_LOCAL equ 00000010h +PHONEBUTTONMODE_DISPLAY equ 00000020h +PHONEBUTTONSTATE_UP equ 00000001h +PHONEBUTTONSTATE_DOWN equ 00000002h +PHONEBUTTONSTATE_UNKNOWN equ 00000004h +PHONEBUTTONSTATE_UNAVAIL equ 00000008h +PHONEERR_ALLOCATED equ 90000001h +PHONEERR_BADDEVICEID equ 90000002h +PHONEERR_INCOMPATIBLEAPIVERSION equ 90000003h +PHONEERR_INCOMPATIBLEEXTVERSION equ 90000004h +PHONEERR_INIFILECORRUPT equ 90000005h +PHONEERR_INUSE equ 90000006h +PHONEERR_INVALAPPHANDLE equ 90000007h +PHONEERR_INVALAPPNAME equ 90000008h +PHONEERR_INVALBUTTONLAMPID equ 90000009h +PHONEERR_INVALBUTTONMODE equ 9000000Ah +PHONEERR_INVALBUTTONSTATE equ 9000000Bh +PHONEERR_INVALDATAID equ 9000000Ch +PHONEERR_INVALDEVICECLASS equ 9000000Dh +PHONEERR_INVALEXTVERSION equ 9000000Eh +PHONEERR_INVALHOOKSWITCHDEV equ 9000000Fh +PHONEERR_INVALHOOKSWITCHMODE equ 90000010h +PHONEERR_INVALLAMPMODE equ 90000011h +PHONEERR_INVALPARAM equ 90000012h +PHONEERR_INVALPHONEHANDLE equ 90000013h +PHONEERR_INVALPHONESTATE equ 90000014h +PHONEERR_INVALPOINTER equ 90000015h +PHONEERR_INVALPRIVILEGE equ 90000016h +PHONEERR_INVALRINGMODE equ 90000017h +PHONEERR_NODEVICE equ 90000018h +PHONEERR_NODRIVER equ 90000019h +PHONEERR_NOMEM equ 9000001Ah +PHONEERR_NOTOWNER equ 9000001Bh +PHONEERR_OPERATIONFAILED equ 9000001Ch +PHONEERR_OPERATIONUNAVAIL equ 9000001Dh +PHONEERR_RESOURCEUNAVAIL equ 9000001Fh +PHONEERR_REQUESTOVERRUN equ 90000020h +PHONEERR_STRUCTURETOOSMALL equ 90000021h +PHONEERR_UNINITIALIZED equ 90000022h +PHONEERR_REINIT equ 90000023h +PHONEERR_DISCONNECTED equ 90000024h +PHONEERR_SERVICE_NOT_RUNNING equ 90000025h +PHONEFEATURE_GETBUTTONINFO equ 00000001h +PHONEFEATURE_GETDATA equ 00000002h +PHONEFEATURE_GETDISPLAY equ 00000004h +PHONEFEATURE_GETGAINHANDSET equ 00000008h +PHONEFEATURE_GETGAINSPEAKER equ 00000010h +PHONEFEATURE_GETGAINHEADSET equ 00000020h +PHONEFEATURE_GETHOOKSWITCHHANDSET equ 00000040h +PHONEFEATURE_GETHOOKSWITCHSPEAKER equ 00000080h +PHONEFEATURE_GETHOOKSWITCHHEADSET equ 00000100h +PHONEFEATURE_GETLAMP equ 00000200h +PHONEFEATURE_GETRING equ 00000400h +PHONEFEATURE_GETVOLUMEHANDSET equ 00000800h +PHONEFEATURE_GETVOLUMESPEAKER equ 00001000h +PHONEFEATURE_GETVOLUMEHEADSET equ 00002000h +PHONEFEATURE_SETBUTTONINFO equ 00004000h +PHONEFEATURE_SETDATA equ 00008000h +PHONEFEATURE_SETDISPLAY equ 00010000h +PHONEFEATURE_SETGAINHANDSET equ 00020000h +PHONEFEATURE_SETGAINSPEAKER equ 00040000h +PHONEFEATURE_SETGAINHEADSET equ 00080000h +PHONEFEATURE_SETHOOKSWITCHHANDSET equ 00100000h +PHONEFEATURE_SETHOOKSWITCHSPEAKER equ 00200000h +PHONEFEATURE_SETHOOKSWITCHHEADSET equ 00400000h +PHONEFEATURE_SETLAMP equ 00800000h +PHONEFEATURE_SETRING equ 01000000h +PHONEFEATURE_SETVOLUMEHANDSET equ 02000000h +PHONEFEATURE_SETVOLUMESPEAKER equ 04000000h +PHONEFEATURE_SETVOLUMEHEADSET equ 08000000h +PHONEFEATURE_GENERICPHONE equ 10000000h +PHONEHOOKSWITCHDEV_HANDSET equ 00000001h +PHONEHOOKSWITCHDEV_SPEAKER equ 00000002h +PHONEHOOKSWITCHDEV_HEADSET equ 00000004h +PHONEHOOKSWITCHMODE_ONHOOK equ 00000001h +PHONEHOOKSWITCHMODE_MIC equ 00000002h +PHONEHOOKSWITCHMODE_SPEAKER equ 00000004h +PHONEHOOKSWITCHMODE_MICSPEAKER equ 00000008h +PHONEHOOKSWITCHMODE_UNKNOWN equ 00000010h +PHONEINITIALIZEEXOPTION_USEHIDDENWINDOW equ 00000001h +PHONEINITIALIZEEXOPTION_USEEVENT equ 00000002h +PHONEINITIALIZEEXOPTION_USECOMPLETIONPORT equ 00000003h +PHONELAMPMODE_DUMMY equ 00000001h +PHONELAMPMODE_OFF equ 00000002h +PHONELAMPMODE_STEADY equ 00000004h +PHONELAMPMODE_WINK equ 00000008h +PHONELAMPMODE_FLASH equ 00000010h +PHONELAMPMODE_FLUTTER equ 00000020h +PHONELAMPMODE_BROKENFLUTTER equ 00000040h +PHONELAMPMODE_UNKNOWN equ 00000080h +PHONEPRIVILEGE_MONITOR equ 00000001h +PHONEPRIVILEGE_OWNER equ 00000002h +PHONESTATE_OTHER equ 00000001h +PHONESTATE_CONNECTED equ 00000002h +PHONESTATE_DISCONNECTED equ 00000004h +PHONESTATE_OWNER equ 00000008h +PHONESTATE_MONITORS equ 00000010h +PHONESTATE_DISPLAY equ 00000020h +PHONESTATE_LAMP equ 00000040h +PHONESTATE_RINGMODE equ 00000080h +PHONESTATE_RINGVOLUME equ 00000100h +PHONESTATE_HANDSETHOOKSWITCH equ 00000200h +PHONESTATE_HANDSETVOLUME equ 00000400h +PHONESTATE_HANDSETGAIN equ 00000800h +PHONESTATE_SPEAKERHOOKSWITCH equ 00001000h +PHONESTATE_SPEAKERVOLUME equ 00002000h +PHONESTATE_SPEAKERGAIN equ 00004000h +PHONESTATE_HEADSETHOOKSWITCH equ 00008000h +PHONESTATE_HEADSETVOLUME equ 00010000h +PHONESTATE_HEADSETGAIN equ 00020000h +PHONESTATE_SUSPEND equ 00040000h +PHONESTATE_RESUME equ 00080000h +PHONESTATE_DEVSPECIFIC equ 00100000h +PHONESTATE_REINIT equ 00200000h +PHONESTATE_CAPSCHANGE equ 00400000h +PHONESTATE_REMOVED equ 00800000h +PHONESTATUSFLAGS_CONNECTED equ 00000001h +PHONESTATUSFLAGS_SUSPENDED equ 00000002h +STRINGFORMAT_ASCII equ 00000001h +STRINGFORMAT_DBCS equ 00000002h +STRINGFORMAT_UNICODE equ 00000003h +STRINGFORMAT_BINARY equ 00000004h +TAPI_REPLY equ WM_USER + 99 +TAPIERR_CONNECTED equ 0 +TAPIERR_DROPPED equ -1 +TAPIERR_NOREQUESTRECIPIENT equ -2 +TAPIERR_REQUESTQUEUEFULL equ -3 +TAPIERR_INVALDESTADDRESS equ -4 +TAPIERR_INVALWINDOWHANDLE equ -5 +TAPIERR_INVALDEVICECLASS equ -6 +TAPIERR_INVALDEVICEID equ -7 +TAPIERR_DEVICECLASSUNAVAIL equ -8 +TAPIERR_DEVICEIDUNAVAIL equ -9 +TAPIERR_DEVICEINUSE equ -10 +TAPIERR_DESTBUSY equ -11 +TAPIERR_DESTNOANSWER equ -12 +TAPIERR_DESTUNAVAIL equ -13 +TAPIERR_UNKNOWNWINHANDLE equ -14 +TAPIERR_UNKNOWNREQUESTID equ -15 +TAPIERR_REQUESTFAILED equ -16 +TAPIERR_REQUESTCANCELLED equ -17 +TAPIERR_INVALPOINTER equ -18 +TAPIERR_NOTADMIN equ -19 +TAPIERR_MMCWRITELOCKED equ -20 +TAPIERR_PROVIDERALREADYINSTALLED equ -21 +TAPIMAXDESTADDRESSSIZE equ 80 +TAPIMAXAPPNAMESIZE equ 40 +TAPIMAXCALLEDPARTYSIZE equ 40 +TAPIMAXCOMMENTSIZE equ 80 +TAPIMAXDEVICECLASSSIZE equ 40 +TAPIMAXDEVICEIDSIZE equ 40 + +;;;; end tapi + +;;;; ntstatus + +STATUS_SUCCESS equ 00000000h +FACILITY_USB_ERROR_CODE equ 10h +FACILITY_TERMINAL_SERVER equ 0Ah +FACILITY_SXS_ERROR_CODE equ 15h +FACILITY_RPC_STUBS equ 3h +FACILITY_RPC_RUNTIME equ 2h +FACILITY_IO_ERROR_CODE equ 4h +FACILITY_HID_ERROR_CODE equ 11h +FACILITY_FIREWIRE_ERROR_CODE equ 12h +FACILITY_DEBUGGER equ 1h +FACILITY_CLUSTER_ERROR_CODE equ 13h +FACILITY_ACPI_ERROR_CODE equ 14h +STATUS_SEVERITY_WARNING equ 2h +STATUS_SEVERITY_SUCCESS equ 0h +STATUS_SEVERITY_INFORMATIONAL equ 1h +STATUS_SEVERITY_ERROR equ 3h +STATUS_WAIT_1 equ 00000001h +STATUS_WAIT_2 equ 00000002h +STATUS_WAIT_3 equ 00000003h +STATUS_WAIT_63 equ 0000003Fh +STATUS_ABANDONED equ 00000080h +STATUS_ABANDONED_WAIT_63 equ 000000BFh +STATUS_KERNEL_APC equ 00000100h +STATUS_ALERTED equ 00000101h +STATUS_REPARSE equ 00000104h +STATUS_MORE_ENTRIES equ 00000105h +STATUS_NOT_ALL_ASSIGNED equ 00000106h +STATUS_SOME_NOT_MAPPED equ 00000107h +STATUS_OPLOCK_BREAK_IN_PROGRESS equ 00000108h +STATUS_VOLUME_MOUNTED equ 00000109h +STATUS_RXACT_COMMITTED equ 0000010Ah +STATUS_NOTIFY_CLEANUP equ 0000010Bh +STATUS_NOTIFY_ENUM_DIR equ 0000010Ch +STATUS_NO_QUOTAS_FOR_ACCOUNT equ 0000010Dh +STATUS_PRIMARY_TRANSPORT_CONNECT_FAILED equ 0000010Eh +STATUS_PAGE_FAULT_TRANSITION equ 00000110h +STATUS_PAGE_FAULT_DEMAND_ZERO equ 00000111h +STATUS_PAGE_FAULT_COPY_ON_WRITE equ 00000112h +STATUS_PAGE_FAULT_GUARD_PAGE equ 00000113h +STATUS_PAGE_FAULT_PAGING_FILE equ 00000114h +STATUS_CACHE_PAGE_LOCKED equ 00000115h +STATUS_CRASH_DUMP equ 00000116h +STATUS_BUFFER_ALL_ZEROS equ 00000117h +STATUS_REPARSE_OBJECT equ 00000118h +STATUS_RESOURCE_REQUIREMENTS_CHANGED equ 00000119h +STATUS_TRANSLATION_COMPLETE equ 00000120h +STATUS_DS_MEMBERSHIP_EVALUATED_LOCALLY equ 00000121h +STATUS_NOTHING_TO_TERMINATE equ 00000122h +STATUS_PROCESS_NOT_IN_JOB equ 00000123h +STATUS_PROCESS_IN_JOB equ 00000124h +STATUS_VOLSNAP_HIBERNATE_READY equ 00000125h +STATUS_FSFILTER_OP_COMPLETED_SUCCESSFULLY equ 00000126h +STATUS_OBJECT_NAME_EXISTS equ 40000000h +STATUS_THREAD_WAS_SUSPENDED equ 40000001h +STATUS_WORKING_SET_LIMIT_RANGE equ 40000002h +STATUS_IMAGE_NOT_AT_BASE equ 40000003h +STATUS_RXACT_STATE_CREATED equ 40000004h +STATUS_LOCAL_USER_SESSION_KEY equ 40000006h +STATUS_BAD_CURRENT_DIRECTORY equ 40000007h +STATUS_SERIAL_MORE_WRITES equ 40000008h +STATUS_REGISTRY_RECOVERED equ 40000009h +STATUS_FT_READ_RECOVERY_FROM_BACKUP equ 4000000Ah +STATUS_FT_WRITE_RECOVERY equ 4000000Bh +STATUS_SERIAL_COUNTER_TIMEOUT equ 4000000Ch +STATUS_NULL_LM_PASSWORD equ 4000000Dh +STATUS_IMAGE_MACHINE_TYPE_MISMATCH equ 4000000Eh +STATUS_RECEIVE_PARTIAL equ 4000000Fh +STATUS_RECEIVE_EXPEDITED equ 40000010h +STATUS_RECEIVE_PARTIAL_EXPEDITED equ 40000011h +STATUS_EVENT_DONE equ 40000012h +STATUS_EVENT_PENDING equ 40000013h +STATUS_CHECKING_FILE_SYSTEM equ 40000014h +STATUS_FATAL_APP_EXIT equ 40000015h +STATUS_PREDEFINED_HANDLE equ 40000016h +STATUS_WAS_UNLOCKED equ 40000017h +STATUS_SERVICE_NOTIFICATION equ 40000018h +STATUS_WAS_LOCKED equ 40000019h +STATUS_LOG_HARD_ERROR equ 4000001Ah +STATUS_ALREADY_WIN32 equ 4000001Bh +STATUS_WX86_UNSIMULATE equ 4000001Ch +STATUS_WX86_CONTINUE equ 4000001Dh +STATUS_WX86_SINGLE_STEP equ 4000001Eh +STATUS_WX86_BREAKPOINT equ 4000001Fh +STATUS_WX86_EXCEPTION_CONTINUE equ 40000020h +STATUS_WX86_EXCEPTION_LASTCHANCE equ 40000021h +STATUS_WX86_EXCEPTION_CHAIN equ 40000022h +STATUS_IMAGE_MACHINE_TYPE_MISMATCH_EXE equ 40000023h +STATUS_NO_YIELD_PERFORMED equ 40000024h +STATUS_TIMER_RESUME_IGNORED equ 40000025h +STATUS_ARBITRATION_UNHANDLED equ 40000026h +STATUS_CARDBUS_NOT_SUPPORTED equ 40000027h +STATUS_WX86_CREATEWX86TIB equ 40000028h +STATUS_MP_PROCESSOR_MISMATCH equ 40000029h +STATUS_HIBERNATED equ 4000002Ah +STATUS_RESUME_HIBERNATION equ 4000002Bh +STATUS_FIRMWARE_UPDATED equ 4000002Ch +STATUS_DRIVERS_LEAKING_LOCKED_PAGES equ 4000002Dh +DBG_REPLY_LATER equ 40010001h +DBG_UNABLE_TO_PROVIDE_HANDLE equ 40010002h +DBG_PRINTEXCEPTION_C equ 40010006h +DBG_RIPEXCEPTION equ 40010007h +STATUS_BUFFER_OVERFLOW equ 80000005h +STATUS_NO_MORE_FILES equ 80000006h +STATUS_WAKE_SYSTEM_DEBUGGER equ 80000007h +STATUS_HANDLES_CLOSED equ 8000000Ah +STATUS_NO_INHERITANCE equ 8000000Bh +STATUS_GUID_SUBSTITUTION_MADE equ 8000000Ch +STATUS_PARTIAL_COPY equ 8000000Dh +STATUS_DEVICE_PAPER_EMPTY equ 8000000Eh +STATUS_DEVICE_POWERED_OFF equ 8000000Fh +STATUS_DEVICE_OFF_LINE equ 80000010h +STATUS_DEVICE_BUSY equ 80000011h +STATUS_NO_MORE_EAS equ 80000012h +STATUS_INVALID_EA_NAME equ 80000013h +STATUS_EA_LIST_INCONSISTENT equ 80000014h +STATUS_INVALID_EA_FLAG equ 80000015h +STATUS_VERIFY_REQUIRED equ 80000016h +STATUS_EXTRANEOUS_INFORMATION equ 80000017h +STATUS_RXACT_COMMIT_NECESSARY equ 80000018h +STATUS_NO_MORE_ENTRIES equ 8000001Ah +STATUS_FILEMARK_DETECTED equ 8000001Bh +STATUS_MEDIA_CHANGED equ 8000001Ch +STATUS_BUS_RESET equ 8000001Dh +STATUS_END_OF_MEDIA equ 8000001Eh +STATUS_BEGINNING_OF_MEDIA equ 8000001Fh +STATUS_MEDIA_CHECK equ 80000020h +STATUS_SETMARK_DETECTED equ 80000021h +STATUS_NO_DATA_DETECTED equ 80000022h +STATUS_REDIRECTOR_HAS_OPEN_HANDLES equ 80000023h +STATUS_SERVER_HAS_OPEN_HANDLES equ 80000024h +STATUS_ALREADY_DISCONNECTED equ 80000025h +STATUS_LONGJUMP equ 80000026h +STATUS_CLEANER_CARTRIDGE_INSTALLED equ 80000027h +STATUS_PLUGPLAY_QUERY_VETOED equ 80000028h +STATUS_UNWIND_CONSOLIDATE equ 80000029h +STATUS_REGISTRY_HIVE_RECOVERED equ 8000002Ah +STATUS_DLL_MIGHT_BE_INSECURE equ 8000002Bh +STATUS_DLL_MIGHT_BE_INCOMPATIBLE equ 8000002Ch +STATUS_CLUSTER_NODE_ALREADY_UP equ 80130001h +STATUS_CLUSTER_NODE_ALREADY_DOWN equ 80130002h +STATUS_CLUSTER_NETWORK_ALREADY_ONLINE equ 80130003h +STATUS_CLUSTER_NETWORK_ALREADY_OFFLINE equ 80130004h +STATUS_CLUSTER_NODE_ALREADY_MEMBER equ 80130005h +STATUS_UNSUCCESSFUL equ 0C0000001h +STATUS_NOT_IMPLEMENTED equ 0C0000002h +STATUS_INVALID_INFO_CLASS equ 0C0000003h +STATUS_INFO_LENGTH_MISMATCH equ 0C0000004h +STATUS_PAGEFILE_QUOTA equ 0C0000007h +STATUS_BAD_INITIAL_STACK equ 0C0000009h +STATUS_BAD_INITIAL_PC equ 0C000000Ah +STATUS_INVALID_CID equ 0C000000Bh +STATUS_TIMER_NOT_CANCELED equ 0C000000Ch +STATUS_INVALID_PARAMETER equ 0C000000Dh +STATUS_NO_SUCH_DEVICE equ 0C000000Eh +STATUS_NO_SUCH_FILE equ 0C000000Fh +STATUS_INVALID_DEVICE_REQUEST equ 0C0000010h +STATUS_END_OF_FILE equ 0C0000011h +STATUS_WRONG_VOLUME equ 0C0000012h +STATUS_NO_MEDIA_IN_DEVICE equ 0C0000013h +STATUS_UNRECOGNIZED_MEDIA equ 0C0000014h +STATUS_NONEXISTENT_SECTOR equ 0C0000015h +STATUS_MORE_PROCESSING_REQUIRED equ 0C0000016h +STATUS_CONFLICTING_ADDRESSES equ 0C0000018h +STATUS_NOT_MAPPED_VIEW equ 0C0000019h +STATUS_UNABLE_TO_FREE_VM equ 0C000001Ah +STATUS_UNABLE_TO_DELETE_SECTION equ 0C000001Bh +STATUS_INVALID_SYSTEM_SERVICE equ 0C000001Ch +STATUS_INVALID_LOCK_SEQUENCE equ 0C000001Eh +STATUS_INVALID_VIEW_SIZE equ 0C000001Fh +STATUS_INVALID_FILE_FOR_SECTION equ 0C0000020h +STATUS_ALREADY_COMMITTED equ 0C0000021h +STATUS_ACCESS_DENIED equ 0C0000022h +STATUS_BUFFER_TOO_SMALL equ 0C0000023h +STATUS_OBJECT_TYPE_MISMATCH equ 0C0000024h +STATUS_UNWIND equ 0C0000027h +STATUS_BAD_STACK equ 0C0000028h +STATUS_INVALID_UNWIND_TARGET equ 0C0000029h +STATUS_NOT_LOCKED equ 0C000002Ah +STATUS_PARITY_ERROR equ 0C000002Bh +STATUS_UNABLE_TO_DECOMMIT_VM equ 0C000002Ch +STATUS_NOT_COMMITTED equ 0C000002Dh +STATUS_INVALID_PORT_ATTRIBUTES equ 0C000002Eh +STATUS_PORT_MESSAGE_TOO_LONG equ 0C000002Fh +STATUS_INVALID_PARAMETER_MIX equ 0C0000030h +STATUS_INVALID_QUOTA_LOWER equ 0C0000031h +STATUS_DISK_CORRUPT_ERROR equ 0C0000032h +STATUS_OBJECT_NAME_INVALID equ 0C0000033h +STATUS_OBJECT_NAME_NOT_FOUND equ 0C0000034h +STATUS_OBJECT_NAME_COLLISION equ 0C0000035h +STATUS_PORT_DISCONNECTED equ 0C0000037h +STATUS_DEVICE_ALREADY_ATTACHED equ 0C0000038h +STATUS_OBJECT_PATH_INVALID equ 0C0000039h +STATUS_OBJECT_PATH_NOT_FOUND equ 0C000003Ah +STATUS_OBJECT_PATH_SYNTAX_BAD equ 0C000003Bh +STATUS_DATA_OVERRUN equ 0C000003Ch +STATUS_DATA_LATE_ERROR equ 0C000003Dh +STATUS_DATA_ERROR equ 0C000003Eh +STATUS_CRC_ERROR equ 0C000003Fh +STATUS_SECTION_TOO_BIG equ 0C0000040h +STATUS_PORT_CONNECTION_REFUSED equ 0C0000041h +STATUS_INVALID_PORT_HANDLE equ 0C0000042h +STATUS_SHARING_VIOLATION equ 0C0000043h +STATUS_QUOTA_EXCEEDED equ 0C0000044h +STATUS_INVALID_PAGE_PROTECTION equ 0C0000045h +STATUS_MUTANT_NOT_OWNED equ 0C0000046h +STATUS_SEMAPHORE_LIMIT_EXCEEDED equ 0C0000047h +STATUS_PORT_ALREADY_SET equ 0C0000048h +STATUS_SECTION_NOT_IMAGE equ 0C0000049h +STATUS_SUSPEND_COUNT_EXCEEDED equ 0C000004Ah +STATUS_THREAD_IS_TERMINATING equ 0C000004Bh +STATUS_BAD_WORKING_SET_LIMIT equ 0C000004Ch +STATUS_INCOMPATIBLE_FILE_MAP equ 0C000004Dh +STATUS_SECTION_PROTECTION equ 0C000004Eh +STATUS_EAS_NOT_SUPPORTED equ 0C000004Fh +STATUS_EA_TOO_LARGE equ 0C0000050h +STATUS_NONEXISTENT_EA_ENTRY equ 0C0000051h +STATUS_NO_EAS_ON_FILE equ 0C0000052h +STATUS_EA_CORRUPT_ERROR equ 0C0000053h +STATUS_FILE_LOCK_CONFLICT equ 0C0000054h +STATUS_LOCK_NOT_GRANTED equ 0C0000055h +STATUS_DELETE_PENDING equ 0C0000056h +STATUS_CTL_FILE_NOT_SUPPORTED equ 0C0000057h +STATUS_UNKNOWN_REVISION equ 0C0000058h +STATUS_REVISION_MISMATCH equ 0C0000059h +STATUS_INVALID_OWNER equ 0C000005Ah +STATUS_INVALID_PRIMARY_GROUP equ 0C000005Bh +STATUS_NO_IMPERSONATION_TOKEN equ 0C000005Ch +STATUS_CANT_DISABLE_MANDATORY equ 0C000005Dh +STATUS_NO_LOGON_SERVERS equ 0C000005Eh +STATUS_NO_SUCH_LOGON_SESSION equ 0C000005Fh +STATUS_NO_SUCH_PRIVILEGE equ 0C0000060h +STATUS_PRIVILEGE_NOT_HELD equ 0C0000061h +STATUS_INVALID_ACCOUNT_NAME equ 0C0000062h +STATUS_USER_EXISTS equ 0C0000063h +STATUS_NO_SUCH_USER equ 0C0000064h +STATUS_GROUP_EXISTS equ 0C0000065h +STATUS_NO_SUCH_GROUP equ 0C0000066h +STATUS_MEMBER_IN_GROUP equ 0C0000067h +STATUS_MEMBER_NOT_IN_GROUP equ 0C0000068h +STATUS_LAST_ADMIN equ 0C0000069h +STATUS_WRONG_PASSWORD equ 0C000006Ah +STATUS_ILL_FORMED_PASSWORD equ 0C000006Bh +STATUS_PASSWORD_RESTRICTION equ 0C000006Ch +STATUS_LOGON_FAILURE equ 0C000006Dh +STATUS_ACCOUNT_RESTRICTION equ 0C000006Eh +STATUS_INVALID_LOGON_HOURS equ 0C000006Fh +STATUS_INVALID_WORKSTATION equ 0C0000070h +STATUS_PASSWORD_EXPIRED equ 0C0000071h +STATUS_ACCOUNT_DISABLED equ 0C0000072h +STATUS_NONE_MAPPED equ 0C0000073h +STATUS_TOO_MANY_LUIDS_REQUESTED equ 0C0000074h +STATUS_LUIDS_EXHAUSTED equ 0C0000075h +STATUS_INVALID_SUB_AUTHORITY equ 0C0000076h +STATUS_INVALID_ACL equ 0C0000077h +STATUS_INVALID_SID equ 0C0000078h +STATUS_INVALID_SECURITY_DESCR equ 0C0000079h +STATUS_PROCEDURE_NOT_FOUND equ 0C000007Ah +STATUS_INVALID_IMAGE_FORMAT equ 0C000007Bh +STATUS_NO_TOKEN equ 0C000007Ch +STATUS_BAD_INHERITANCE_ACL equ 0C000007Dh +STATUS_RANGE_NOT_LOCKED equ 0C000007Eh +STATUS_DISK_FULL equ 0C000007Fh +STATUS_SERVER_DISABLED equ 0C0000080h +STATUS_SERVER_NOT_DISABLED equ 0C0000081h +STATUS_TOO_MANY_GUIDS_REQUESTED equ 0C0000082h +STATUS_GUIDS_EXHAUSTED equ 0C0000083h +STATUS_INVALID_ID_AUTHORITY equ 0C0000084h +STATUS_AGENTS_EXHAUSTED equ 0C0000085h +STATUS_INVALID_VOLUME_LABEL equ 0C0000086h +STATUS_SECTION_NOT_EXTENDED equ 0C0000087h +STATUS_NOT_MAPPED_DATA equ 0C0000088h +STATUS_RESOURCE_DATA_NOT_FOUND equ 0C0000089h +STATUS_RESOURCE_TYPE_NOT_FOUND equ 0C000008Ah +STATUS_RESOURCE_NAME_NOT_FOUND equ 0C000008Bh +STATUS_TOO_MANY_PAGING_FILES equ 0C0000097h +STATUS_FILE_INVALID equ 0C0000098h +STATUS_ALLOTTED_SPACE_EXCEEDED equ 0C0000099h +STATUS_INSUFFICIENT_RESOURCES equ 0C000009Ah +STATUS_DFS_EXIT_PATH_FOUND equ 0C000009Bh +STATUS_DEVICE_DATA_ERROR equ 0C000009Ch +STATUS_DEVICE_NOT_CONNECTED equ 0C000009Dh +STATUS_DEVICE_POWER_FAILURE equ 0C000009Eh +STATUS_FREE_VM_NOT_AT_BASE equ 0C000009Fh +STATUS_MEMORY_NOT_ALLOCATED equ 0C00000A0h +STATUS_WORKING_SET_QUOTA equ 0C00000A1h +STATUS_MEDIA_WRITE_PROTECTED equ 0C00000A2h +STATUS_DEVICE_NOT_READY equ 0C00000A3h +STATUS_INVALID_GROUP_ATTRIBUTES equ 0C00000A4h +STATUS_BAD_IMPERSONATION_LEVEL equ 0C00000A5h +STATUS_CANT_OPEN_ANONYMOUS equ 0C00000A6h +STATUS_BAD_VALIDATION_CLASS equ 0C00000A7h +STATUS_BAD_TOKEN_TYPE equ 0C00000A8h +STATUS_BAD_MASTER_BOOT_RECORD equ 0C00000A9h +STATUS_INSTRUCTION_MISALIGNMENT equ 0C00000AAh +STATUS_INSTANCE_NOT_AVAILABLE equ 0C00000ABh +STATUS_PIPE_NOT_AVAILABLE equ 0C00000ACh +STATUS_INVALID_PIPE_STATE equ 0C00000ADh +STATUS_PIPE_BUSY equ 0C00000AEh +STATUS_ILLEGAL_FUNCTION equ 0C00000AFh +STATUS_PIPE_DISCONNECTED equ 0C00000B0h +STATUS_PIPE_CLOSING equ 0C00000B1h +STATUS_PIPE_CONNECTED equ 0C00000B2h +STATUS_PIPE_LISTENING equ 0C00000B3h +STATUS_INVALID_READ_MODE equ 0C00000B4h +STATUS_IO_TIMEOUT equ 0C00000B5h +STATUS_FILE_FORCED_CLOSED equ 0C00000B6h +STATUS_PROFILING_NOT_STARTED equ 0C00000B7h +STATUS_PROFILING_NOT_STOPPED equ 0C00000B8h +STATUS_COULD_NOT_INTERPRET equ 0C00000B9h +STATUS_FILE_IS_A_DIRECTORY equ 0C00000BAh +STATUS_NOT_SUPPORTED equ 0C00000BBh +STATUS_REMOTE_NOT_LISTENING equ 0C00000BCh +STATUS_DUPLICATE_NAME equ 0C00000BDh +STATUS_BAD_NETWORK_PATH equ 0C00000BEh +STATUS_NETWORK_BUSY equ 0C00000BFh +STATUS_DEVICE_DOES_NOT_EXIST equ 0C00000C0h +STATUS_TOO_MANY_COMMANDS equ 0C00000C1h +STATUS_ADAPTER_HARDWARE_ERROR equ 0C00000C2h +STATUS_INVALID_NETWORK_RESPONSE equ 0C00000C3h +STATUS_UNEXPECTED_NETWORK_ERROR equ 0C00000C4h +STATUS_BAD_REMOTE_ADAPTER equ 0C00000C5h +STATUS_PRINT_QUEUE_FULL equ 0C00000C6h +STATUS_NO_SPOOL_SPACE equ 0C00000C7h +STATUS_PRINT_CANCELLED equ 0C00000C8h +STATUS_NETWORK_NAME_DELETED equ 0C00000C9h +STATUS_NETWORK_ACCESS_DENIED equ 0C00000CAh +STATUS_BAD_DEVICE_TYPE equ 0C00000CBh +STATUS_BAD_NETWORK_NAME equ 0C00000CCh +STATUS_TOO_MANY_NAMES equ 0C00000CDh +STATUS_TOO_MANY_SESSIONS equ 0C00000CEh +STATUS_SHARING_PAUSED equ 0C00000CFh +STATUS_REQUEST_NOT_ACCEPTED equ 0C00000D0h +STATUS_REDIRECTOR_PAUSED equ 0C00000D1h +STATUS_NET_WRITE_FAULT equ 0C00000D2h +STATUS_PROFILING_AT_LIMIT equ 0C00000D3h +STATUS_NOT_SAME_DEVICE equ 0C00000D4h +STATUS_FILE_RENAMED equ 0C00000D5h +STATUS_VIRTUAL_CIRCUIT_CLOSED equ 0C00000D6h +STATUS_NO_SECURITY_ON_OBJECT equ 0C00000D7h +STATUS_CANT_WAIT equ 0C00000D8h +STATUS_PIPE_EMPTY equ 0C00000D9h +STATUS_CANT_ACCESS_DOMAIN_INFO equ 0C00000DAh +STATUS_CANT_TERMINATE_SELF equ 0C00000DBh +STATUS_INVALID_SERVER_STATE equ 0C00000DCh +STATUS_INVALID_DOMAIN_STATE equ 0C00000DDh +STATUS_INVALID_DOMAIN_ROLE equ 0C00000DEh +STATUS_NO_SUCH_DOMAIN equ 0C00000DFh +STATUS_DOMAIN_EXISTS equ 0C00000E0h +STATUS_DOMAIN_LIMIT_EXCEEDED equ 0C00000E1h +STATUS_OPLOCK_NOT_GRANTED equ 0C00000E2h +STATUS_INVALID_OPLOCK_PROTOCOL equ 0C00000E3h +STATUS_INTERNAL_DB_CORRUPTION equ 0C00000E4h +STATUS_INTERNAL_ERROR equ 0C00000E5h +STATUS_GENERIC_NOT_MAPPED equ 0C00000E6h +STATUS_BAD_DESCRIPTOR_FORMAT equ 0C00000E7h +STATUS_INVALID_USER_BUFFER equ 0C00000E8h +STATUS_UNEXPECTED_IO_ERROR equ 0C00000E9h +STATUS_UNEXPECTED_MM_CREATE_ERR equ 0C00000EAh +STATUS_UNEXPECTED_MM_MAP_ERROR equ 0C00000EBh +STATUS_UNEXPECTED_MM_EXTEND_ERR equ 0C00000ECh +STATUS_NOT_LOGON_PROCESS equ 0C00000EDh +STATUS_LOGON_SESSION_EXISTS equ 0C00000EEh +STATUS_INVALID_PARAMETER_1 equ 0C00000EFh +STATUS_INVALID_PARAMETER_2 equ 0C00000F0h +STATUS_INVALID_PARAMETER_3 equ 0C00000F1h +STATUS_INVALID_PARAMETER_4 equ 0C00000F2h +STATUS_INVALID_PARAMETER_5 equ 0C00000F3h +STATUS_INVALID_PARAMETER_6 equ 0C00000F4h +STATUS_INVALID_PARAMETER_7 equ 0C00000F5h +STATUS_INVALID_PARAMETER_8 equ 0C00000F6h +STATUS_INVALID_PARAMETER_9 equ 0C00000F7h +STATUS_INVALID_PARAMETER_10 equ 0C00000F8h +STATUS_INVALID_PARAMETER_11 equ 0C00000F9h +STATUS_INVALID_PARAMETER_12 equ 0C00000FAh +STATUS_REDIRECTOR_NOT_STARTED equ 0C00000FBh +STATUS_REDIRECTOR_STARTED equ 0C00000FCh +STATUS_NO_SUCH_PACKAGE equ 0C00000FEh +STATUS_BAD_FUNCTION_TABLE equ 0C00000FFh +STATUS_VARIABLE_NOT_FOUND equ 0C0000100h +STATUS_DIRECTORY_NOT_EMPTY equ 0C0000101h +STATUS_FILE_CORRUPT_ERROR equ 0C0000102h +STATUS_NOT_A_DIRECTORY equ 0C0000103h +STATUS_BAD_LOGON_SESSION_STATE equ 0C0000104h +STATUS_LOGON_SESSION_COLLISION equ 0C0000105h +STATUS_NAME_TOO_LONG equ 0C0000106h +STATUS_FILES_OPEN equ 0C0000107h +STATUS_CONNECTION_IN_USE equ 0C0000108h +STATUS_MESSAGE_NOT_FOUND equ 0C0000109h +STATUS_PROCESS_IS_TERMINATING equ 0C000010Ah +STATUS_INVALID_LOGON_TYPE equ 0C000010Bh +STATUS_NO_GUID_TRANSLATION equ 0C000010Ch +STATUS_CANNOT_IMPERSONATE equ 0C000010Dh +STATUS_IMAGE_ALREADY_LOADED equ 0C000010Eh +STATUS_ABIOS_NOT_PRESENT equ 0C000010Fh +STATUS_ABIOS_LID_NOT_EXIST equ 0C0000110h +STATUS_ABIOS_LID_ALREADY_OWNED equ 0C0000111h +STATUS_ABIOS_NOT_LID_OWNER equ 0C0000112h +STATUS_ABIOS_INVALID_COMMAND equ 0C0000113h +STATUS_ABIOS_INVALID_LID equ 0C0000114h +STATUS_ABIOS_SELECTOR_NOT_AVAILABLE equ 0C0000115h +STATUS_ABIOS_INVALID_SELECTOR equ 0C0000116h +STATUS_NO_LDT equ 0C0000117h +STATUS_INVALID_LDT_SIZE equ 0C0000118h +STATUS_INVALID_LDT_OFFSET equ 0C0000119h +STATUS_INVALID_LDT_DESCRIPTOR equ 0C000011Ah +STATUS_INVALID_IMAGE_NE_FORMAT equ 0C000011Bh +STATUS_RXACT_INVALID_STATE equ 0C000011Ch +STATUS_RXACT_COMMIT_FAILURE equ 0C000011Dh +STATUS_MAPPED_FILE_SIZE_ZERO equ 0C000011Eh +STATUS_TOO_MANY_OPENED_FILES equ 0C000011Fh +STATUS_CANCELLED equ 0C0000120h +STATUS_CANNOT_DELETE equ 0C0000121h +STATUS_INVALID_COMPUTER_NAME equ 0C0000122h +STATUS_FILE_DELETED equ 0C0000123h +STATUS_SPECIAL_ACCOUNT equ 0C0000124h +STATUS_SPECIAL_GROUP equ 0C0000125h +STATUS_SPECIAL_USER equ 0C0000126h +STATUS_MEMBERS_PRIMARY_GROUP equ 0C0000127h +STATUS_FILE_CLOSED equ 0C0000128h +STATUS_TOO_MANY_THREADS equ 0C0000129h +STATUS_THREAD_NOT_IN_PROCESS equ 0C000012Ah +STATUS_TOKEN_ALREADY_IN_USE equ 0C000012Bh +STATUS_PAGEFILE_QUOTA_EXCEEDED equ 0C000012Ch +STATUS_COMMITMENT_LIMIT equ 0C000012Dh +STATUS_INVALID_IMAGE_LE_FORMAT equ 0C000012Eh +STATUS_INVALID_IMAGE_NOT_MZ equ 0C000012Fh +STATUS_INVALID_IMAGE_PROTECT equ 0C0000130h +STATUS_INVALID_IMAGE_WIN_16 equ 0C0000131h +STATUS_LOGON_SERVER_CONFLICT equ 0C0000132h +STATUS_TIME_DIFFERENCE_AT_DC equ 0C0000133h +STATUS_SYNCHRONIZATION_REQUIRED equ 0C0000134h +STATUS_DLL_NOT_FOUND equ 0C0000135h +STATUS_OPEN_FAILED equ 0C0000136h +STATUS_IO_PRIVILEGE_FAILED equ 0C0000137h +STATUS_ORDINAL_NOT_FOUND equ 0C0000138h +STATUS_ENTRYPOINT_NOT_FOUND equ 0C0000139h +STATUS_LOCAL_DISCONNECT equ 0C000013Bh +STATUS_REMOTE_DISCONNECT equ 0C000013Ch +STATUS_REMOTE_RESOURCES equ 0C000013Dh +STATUS_LINK_FAILED equ 0C000013Eh +STATUS_LINK_TIMEOUT equ 0C000013Fh +STATUS_INVALID_CONNECTION equ 0C0000140h +STATUS_INVALID_ADDRESS equ 0C0000141h +STATUS_DLL_INIT_FAILED equ 0C0000142h +STATUS_MISSING_SYSTEMFILE equ 0C0000143h +STATUS_UNHANDLED_EXCEPTION equ 0C0000144h +STATUS_APP_INIT_FAILURE equ 0C0000145h +STATUS_PAGEFILE_CREATE_FAILED equ 0C0000146h +STATUS_NO_PAGEFILE equ 0C0000147h +STATUS_INVALID_LEVEL equ 0C0000148h +STATUS_WRONG_PASSWORD_CORE equ 0C0000149h +STATUS_ILLEGAL_FLOAT_CONTEXT equ 0C000014Ah +STATUS_PIPE_BROKEN equ 0C000014Bh +STATUS_REGISTRY_CORRUPT equ 0C000014Ch +STATUS_REGISTRY_IO_FAILED equ 0C000014Dh +STATUS_NO_EVENT_PAIR equ 0C000014Eh +STATUS_UNRECOGNIZED_VOLUME equ 0C000014Fh +STATUS_SERIAL_NO_DEVICE_INITED equ 0C0000150h +STATUS_NO_SUCH_ALIAS equ 0C0000151h +STATUS_MEMBER_NOT_IN_ALIAS equ 0C0000152h +STATUS_MEMBER_IN_ALIAS equ 0C0000153h +STATUS_ALIAS_EXISTS equ 0C0000154h +STATUS_LOGON_NOT_GRANTED equ 0C0000155h +STATUS_TOO_MANY_SECRETS equ 0C0000156h +STATUS_SECRET_TOO_LONG equ 0C0000157h +STATUS_INTERNAL_DB_ERROR equ 0C0000158h +STATUS_FULLSCREEN_MODE equ 0C0000159h +STATUS_TOO_MANY_CONTEXT_IDS equ 0C000015Ah +STATUS_LOGON_TYPE_NOT_GRANTED equ 0C000015Bh +STATUS_NOT_REGISTRY_FILE equ 0C000015Ch +STATUS_NT_CROSS_ENCRYPTION_REQUIRED equ 0C000015Dh +STATUS_DOMAIN_CTRLR_CONFIG_ERROR equ 0C000015Eh +STATUS_FT_MISSING_MEMBER equ 0C000015Fh +STATUS_ILL_FORMED_SERVICE_ENTRY equ 0C0000160h +STATUS_ILLEGAL_CHARACTER equ 0C0000161h +STATUS_UNMAPPABLE_CHARACTER equ 0C0000162h +STATUS_UNDEFINED_CHARACTER equ 0C0000163h +STATUS_FLOPPY_VOLUME equ 0C0000164h +STATUS_FLOPPY_ID_MARK_NOT_FOUND equ 0C0000165h +STATUS_FLOPPY_WRONG_CYLINDER equ 0C0000166h +STATUS_FLOPPY_UNKNOWN_ERROR equ 0C0000167h +STATUS_FLOPPY_BAD_REGISTERS equ 0C0000168h +STATUS_DISK_RECALIBRATE_FAILED equ 0C0000169h +STATUS_DISK_OPERATION_FAILED equ 0C000016Ah +STATUS_DISK_RESET_FAILED equ 0C000016Bh +STATUS_SHARED_IRQ_BUSY equ 0C000016Ch +STATUS_FT_ORPHANING equ 0C000016Dh +STATUS_BIOS_FAILED_TO_CONNECT_INTERRUPT equ 0C000016Eh +STATUS_PARTITION_FAILURE equ 0C0000172h +STATUS_INVALID_BLOCK_LENGTH equ 0C0000173h +STATUS_DEVICE_NOT_PARTITIONED equ 0C0000174h +STATUS_UNABLE_TO_LOCK_MEDIA equ 0C0000175h +STATUS_UNABLE_TO_UNLOAD_MEDIA equ 0C0000176h +STATUS_EOM_OVERFLOW equ 0C0000177h +STATUS_NO_MEDIA equ 0C0000178h +STATUS_NO_SUCH_MEMBER equ 0C000017Ah +STATUS_INVALID_MEMBER equ 0C000017Bh +STATUS_KEY_DELETED equ 0C000017Ch +STATUS_NO_LOG_SPACE equ 0C000017Dh +STATUS_TOO_MANY_SIDS equ 0C000017Eh +STATUS_LM_CROSS_ENCRYPTION_REQUIRED equ 0C000017Fh +STATUS_KEY_HAS_CHILDREN equ 0C0000180h +STATUS_CHILD_MUST_BE_VOLATILE equ 0C0000181h +STATUS_DEVICE_CONFIGURATION_ERROR equ 0C0000182h +STATUS_DRIVER_INTERNAL_ERROR equ 0C0000183h +STATUS_INVALID_DEVICE_STATE equ 0C0000184h +STATUS_IO_DEVICE_ERROR equ 0C0000185h +STATUS_DEVICE_PROTOCOL_ERROR equ 0C0000186h +STATUS_BACKUP_CONTROLLER equ 0C0000187h +STATUS_LOG_FILE_FULL equ 0C0000188h +STATUS_TOO_LATE equ 0C0000189h +STATUS_NO_TRUST_LSA_SECRET equ 0C000018Ah +STATUS_NO_TRUST_SAM_ACCOUNT equ 0C000018Bh +STATUS_TRUSTED_DOMAIN_FAILURE equ 0C000018Ch +STATUS_TRUSTED_RELATIONSHIP_FAILURE equ 0C000018Dh +STATUS_EVENTLOG_FILE_CORRUPT equ 0C000018Eh +STATUS_EVENTLOG_CANT_START equ 0C000018Fh +STATUS_TRUST_FAILURE equ 0C0000190h +STATUS_MUTANT_LIMIT_EXCEEDED equ 0C0000191h +STATUS_NETLOGON_NOT_STARTED equ 0C0000192h +STATUS_ACCOUNT_EXPIRED equ 0C0000193h +STATUS_POSSIBLE_DEADLOCK equ 0C0000194h +STATUS_NETWORK_CREDENTIAL_CONFLICT equ 0C0000195h +STATUS_REMOTE_SESSION_LIMIT equ 0C0000196h +STATUS_EVENTLOG_FILE_CHANGED equ 0C0000197h +STATUS_NOLOGON_INTERDOMAIN_TRUST_ACCOUNT equ 0C0000198h +STATUS_NOLOGON_WORKSTATION_TRUST_ACCOUNT equ 0C0000199h +STATUS_NOLOGON_SERVER_TRUST_ACCOUNT equ 0C000019Ah +STATUS_DOMAIN_TRUST_INCONSISTENT equ 0C000019Bh +STATUS_FS_DRIVER_REQUIRED equ 0C000019Ch +STATUS_NO_USER_SESSION_KEY equ 0C0000202h +STATUS_USER_SESSION_DELETED equ 0C0000203h +STATUS_RESOURCE_LANG_NOT_FOUND equ 0C0000204h +STATUS_INSUFF_SERVER_RESOURCES equ 0C0000205h +STATUS_INVALID_BUFFER_SIZE equ 0C0000206h +STATUS_INVALID_ADDRESS_COMPONENT equ 0C0000207h +STATUS_INVALID_ADDRESS_WILDCARD equ 0C0000208h +STATUS_TOO_MANY_ADDRESSES equ 0C0000209h +STATUS_ADDRESS_ALREADY_EXISTS equ 0C000020Ah +STATUS_ADDRESS_CLOSED equ 0C000020Bh +STATUS_CONNECTION_DISCONNECTED equ 0C000020Ch +STATUS_CONNECTION_RESET equ 0C000020Dh +STATUS_TOO_MANY_NODES equ 0C000020Eh +STATUS_TRANSACTION_ABORTED equ 0C000020Fh +STATUS_TRANSACTION_TIMED_OUT equ 0C0000210h +STATUS_TRANSACTION_NO_RELEASE equ 0C0000211h +STATUS_TRANSACTION_NO_MATCH equ 0C0000212h +STATUS_TRANSACTION_RESPONDED equ 0C0000213h +STATUS_TRANSACTION_INVALID_ID equ 0C0000214h +STATUS_TRANSACTION_INVALID_TYPE equ 0C0000215h +STATUS_NOT_SERVER_SESSION equ 0C0000216h +STATUS_NOT_CLIENT_SESSION equ 0C0000217h +STATUS_CANNOT_LOAD_REGISTRY_FILE equ 0C0000218h +STATUS_DEBUG_ATTACH_FAILED equ 0C0000219h +STATUS_SYSTEM_PROCESS_TERMINATED equ 0C000021Ah +STATUS_DATA_NOT_ACCEPTED equ 0C000021Bh +STATUS_NO_BROWSER_SERVERS_FOUND equ 0C000021Ch +STATUS_VDM_HARD_ERROR equ 0C000021Dh +STATUS_DRIVER_CANCEL_TIMEOUT equ 0C000021Eh +STATUS_REPLY_MESSAGE_MISMATCH equ 0C000021Fh +STATUS_MAPPED_ALIGNMENT equ 0C0000220h +STATUS_IMAGE_CHECKSUM_MISMATCH equ 0C0000221h +STATUS_LOST_WRITEBEHIND_DATA equ 0C0000222h +STATUS_CLIENT_SERVER_PARAMETERS_INVALID equ 0C0000223h +STATUS_PASSWORD_MUST_CHANGE equ 0C0000224h +STATUS_NOT_FOUND equ 0C0000225h +STATUS_NOT_TINY_STREAM equ 0C0000226h +STATUS_RECOVERY_FAILURE equ 0C0000227h +STATUS_STACK_OVERFLOW_READ equ 0C0000228h +STATUS_FAIL_CHECK equ 0C0000229h +STATUS_DUPLICATE_OBJECTID equ 0C000022Ah +STATUS_OBJECTID_EXISTS equ 0C000022Bh +STATUS_CONVERT_TO_LARGE equ 0C000022Ch +STATUS_RETRY equ 0C000022Dh +STATUS_FOUND_OUT_OF_SCOPE equ 0C000022Eh +STATUS_ALLOCATE_BUCKET equ 0C000022Fh +STATUS_PROPSET_NOT_FOUND equ 0C0000230h +STATUS_MARSHALL_OVERFLOW equ 0C0000231h +STATUS_INVALID_VARIANT equ 0C0000232h +STATUS_DOMAIN_CONTROLLER_NOT_FOUND equ 0C0000233h +STATUS_ACCOUNT_LOCKED_OUT equ 0C0000234h +STATUS_HANDLE_NOT_CLOSABLE equ 0C0000235h +STATUS_CONNECTION_REFUSED equ 0C0000236h +STATUS_GRACEFUL_DISCONNECT equ 0C0000237h +STATUS_ADDRESS_ALREADY_ASSOCIATED equ 0C0000238h +STATUS_ADDRESS_NOT_ASSOCIATED equ 0C0000239h +STATUS_CONNECTION_INVALID equ 0C000023Ah +STATUS_CONNECTION_ACTIVE equ 0C000023Bh +STATUS_NETWORK_UNREACHABLE equ 0C000023Ch +STATUS_HOST_UNREACHABLE equ 0C000023Dh +STATUS_PROTOCOL_UNREACHABLE equ 0C000023Eh +STATUS_PORT_UNREACHABLE equ 0C000023Fh +STATUS_REQUEST_ABORTED equ 0C0000240h +STATUS_CONNECTION_ABORTED equ 0C0000241h +STATUS_BAD_COMPRESSION_BUFFER equ 0C0000242h +STATUS_USER_MAPPED_FILE equ 0C0000243h +STATUS_AUDIT_FAILED equ 0C0000244h +STATUS_TIMER_RESOLUTION_NOT_SET equ 0C0000245h +STATUS_CONNECTION_COUNT_LIMIT equ 0C0000246h +STATUS_LOGIN_TIME_RESTRICTION equ 0C0000247h +STATUS_LOGIN_WKSTA_RESTRICTION equ 0C0000248h +STATUS_IMAGE_MP_UP_MISMATCH equ 0C0000249h +STATUS_INSUFFICIENT_LOGON_INFO equ 0C0000250h +STATUS_BAD_DLL_ENTRYPOINT equ 0C0000251h +STATUS_BAD_SERVICE_ENTRYPOINT equ 0C0000252h +STATUS_LPC_REPLY_LOST equ 0C0000253h +STATUS_IP_ADDRESS_CONFLICT1 equ 0C0000254h +STATUS_IP_ADDRESS_CONFLICT2 equ 0C0000255h +STATUS_REGISTRY_QUOTA_LIMIT equ 0C0000256h +STATUS_PATH_NOT_COVERED equ 0C0000257h +STATUS_NO_CALLBACK_ACTIVE equ 0C0000258h +STATUS_LICENSE_QUOTA_EXCEEDED equ 0C0000259h +STATUS_PWD_TOO_SHORT equ 0C000025Ah +STATUS_PWD_TOO_RECENT equ 0C000025Bh +STATUS_PWD_HISTORY_CONFLICT equ 0C000025Ch +STATUS_PLUGPLAY_NO_DEVICE equ 0C000025Eh +STATUS_UNSUPPORTED_COMPRESSION equ 0C000025Fh +STATUS_INVALID_HW_PROFILE equ 0C0000260h +STATUS_INVALID_PLUGPLAY_DEVICE_PATH equ 0C0000261h +STATUS_DRIVER_ORDINAL_NOT_FOUND equ 0C0000262h +STATUS_DRIVER_ENTRYPOINT_NOT_FOUND equ 0C0000263h +STATUS_RESOURCE_NOT_OWNED equ 0C0000264h +STATUS_TOO_MANY_LINKS equ 0C0000265h +STATUS_QUOTA_LIST_INCONSISTENT equ 0C0000266h +STATUS_FILE_IS_OFFLINE equ 0C0000267h +STATUS_EVALUATION_EXPIRATION equ 0C0000268h +STATUS_ILLEGAL_DLL_RELOCATION equ 0C0000269h +STATUS_LICENSE_VIOLATION equ 0C000026Ah +STATUS_DLL_INIT_FAILED_LOGOFF equ 0C000026Bh +STATUS_DRIVER_UNABLE_TO_LOAD equ 0C000026Ch +STATUS_DFS_UNAVAILABLE equ 0C000026Dh +STATUS_VOLUME_DISMOUNTED equ 0C000026Eh +STATUS_WX86_INTERNAL_ERROR equ 0C000026Fh +STATUS_WX86_FLOAT_STACK_CHECK equ 0C0000270h +STATUS_VALIDATE_CONTINUE equ 0C0000271h +STATUS_NO_MATCH equ 0C0000272h +STATUS_NO_MORE_MATCHES equ 0C0000273h +STATUS_NOT_A_REPARSE_POINT equ 0C0000275h +STATUS_IO_REPARSE_TAG_INVALID equ 0C0000276h +STATUS_IO_REPARSE_TAG_MISMATCH equ 0C0000277h +STATUS_IO_REPARSE_DATA_INVALID equ 0C0000278h +STATUS_IO_REPARSE_TAG_NOT_HANDLED equ 0C0000279h +STATUS_REPARSE_POINT_NOT_RESOLVED equ 0C0000280h +STATUS_DIRECTORY_IS_A_REPARSE_POINT equ 0C0000281h +STATUS_RANGE_LIST_CONFLICT equ 0C0000282h +STATUS_SOURCE_ELEMENT_EMPTY equ 0C0000283h +STATUS_DESTINATION_ELEMENT_FULL equ 0C0000284h +STATUS_ILLEGAL_ELEMENT_ADDRESS equ 0C0000285h +STATUS_MAGAZINE_NOT_PRESENT equ 0C0000286h +STATUS_REINITIALIZATION_NEEDED equ 0C0000287h +STATUS_DEVICE_REQUIRES_CLEANING equ 80000288h +STATUS_DEVICE_DOOR_OPEN equ 80000289h +STATUS_ENCRYPTION_FAILED equ 0C000028Ah +STATUS_DECRYPTION_FAILED equ 0C000028Bh +STATUS_RANGE_NOT_FOUND equ 0C000028Ch +STATUS_NO_RECOVERY_POLICY equ 0C000028Dh +STATUS_NO_EFS equ 0C000028Eh +STATUS_WRONG_EFS equ 0C000028Fh +STATUS_NO_USER_KEYS equ 0C0000290h +STATUS_FILE_NOT_ENCRYPTED equ 0C0000291h +STATUS_NOT_EXPORT_FORMAT equ 0C0000292h +STATUS_FILE_ENCRYPTED equ 0C0000293h +STATUS_WAKE_SYSTEM equ 40000294h +STATUS_WMI_GUID_NOT_FOUND equ 0C0000295h +STATUS_WMI_INSTANCE_NOT_FOUND equ 0C0000296h +STATUS_WMI_ITEMID_NOT_FOUND equ 0C0000297h +STATUS_WMI_TRY_AGAIN equ 0C0000298h +STATUS_SHARED_POLICY equ 0C0000299h +STATUS_POLICY_OBJECT_NOT_FOUND equ 0C000029Ah +STATUS_POLICY_ONLY_IN_DS equ 0C000029Bh +STATUS_VOLUME_NOT_UPGRADED equ 0C000029Ch +STATUS_REMOTE_STORAGE_NOT_ACTIVE equ 0C000029Dh +STATUS_REMOTE_STORAGE_MEDIA_ERROR equ 0C000029Eh +STATUS_NO_TRACKING_SERVICE equ 0C000029Fh +STATUS_SERVER_SID_MISMATCH equ 0C00002A0h +STATUS_DS_NO_ATTRIBUTE_OR_VALUE equ 0C00002A1h +STATUS_DS_INVALID_ATTRIBUTE_SYNTAX equ 0C00002A2h +STATUS_DS_ATTRIBUTE_TYPE_UNDEFINED equ 0C00002A3h +STATUS_DS_ATTRIBUTE_OR_VALUE_EXISTS equ 0C00002A4h +STATUS_DS_BUSY equ 0C00002A5h +STATUS_DS_UNAVAILABLE equ 0C00002A6h +STATUS_DS_NO_RIDS_ALLOCATED equ 0C00002A7h +STATUS_DS_NO_MORE_RIDS equ 0C00002A8h +STATUS_DS_INCORRECT_ROLE_OWNER equ 0C00002A9h +STATUS_DS_RIDMGR_INIT_ERROR equ 0C00002AAh +STATUS_DS_OBJ_CLASS_VIOLATION equ 0C00002ABh +STATUS_DS_CANT_ON_NON_LEAF equ 0C00002ACh +STATUS_DS_CANT_ON_RDN equ 0C00002ADh +STATUS_DS_CANT_MOD_OBJ_CLASS equ 0C00002AEh +STATUS_DS_CROSS_DOM_MOVE_FAILED equ 0C00002AFh +STATUS_DS_GC_NOT_AVAILABLE equ 0C00002B0h +STATUS_DIRECTORY_SERVICE_REQUIRED equ 0C00002B1h +STATUS_REPARSE_ATTRIBUTE_CONFLICT equ 0C00002B2h +STATUS_CANT_ENABLE_DENY_ONLY equ 0C00002B3h +STATUS_DEVICE_REMOVED equ 0C00002B6h +STATUS_JOURNAL_DELETE_IN_PROGRESS equ 0C00002B7h +STATUS_JOURNAL_NOT_ACTIVE equ 0C00002B8h +STATUS_NOINTERFACE equ 0C00002B9h +STATUS_DS_ADMIN_LIMIT_EXCEEDED equ 0C00002C1h +STATUS_DRIVER_FAILED_SLEEP equ 0C00002C2h +STATUS_MUTUAL_AUTHENTICATION_FAILED equ 0C00002C3h +STATUS_CORRUPT_SYSTEM_FILE equ 0C00002C4h +STATUS_DATATYPE_MISALIGNMENT_ERROR equ 0C00002C5h +STATUS_WMI_READ_ONLY equ 0C00002C6h +STATUS_WMI_SET_FAILURE equ 0C00002C7h +STATUS_COMMITMENT_MINIMUM equ 0C00002C8h +STATUS_TRANSPORT_FULL equ 0C00002CAh +STATUS_DS_SAM_INIT_FAILURE equ 0C00002CBh +STATUS_ONLY_IF_CONNECTED equ 0C00002CCh +STATUS_DS_SENSITIVE_GROUP_VIOLATION equ 0C00002CDh +STATUS_PNP_RESTART_ENUMERATION equ 0C00002CEh +STATUS_JOURNAL_ENTRY_DELETED equ 0C00002CFh +STATUS_DS_CANT_MOD_PRIMARYGROUPID equ 0C00002D0h +STATUS_SYSTEM_IMAGE_BAD_SIGNATURE equ 0C00002D1h +STATUS_PNP_REBOOT_REQUIRED equ 0C00002D2h +STATUS_POWER_STATE_INVALID equ 0C00002D3h +STATUS_DS_INVALID_GROUP_TYPE equ 0C00002D4h +STATUS_DS_NO_NEST_GLOBALGROUP_IN_MIXEDDOMAIN equ 0C00002D5h +STATUS_DS_NO_NEST_LOCALGROUP_IN_MIXEDDOMAIN equ 0C00002D6h +STATUS_DS_GLOBAL_CANT_HAVE_LOCAL_MEMBER equ 0C00002D7h +STATUS_DS_GLOBAL_CANT_HAVE_UNIVERSAL_MEMBER equ 0C00002D8h +STATUS_DS_UNIVERSAL_CANT_HAVE_LOCAL_MEMBER equ 0C00002D9h +STATUS_DS_GLOBAL_CANT_HAVE_CROSSDOMAIN_MEMBER equ 0C00002DAh +STATUS_DS_LOCAL_CANT_HAVE_CROSSDOMAIN_LOCAL_MEMBER equ 0C00002DBh +STATUS_DS_HAVE_PRIMARY_MEMBERS equ 0C00002DCh +STATUS_WMI_NOT_SUPPORTED equ 0C00002DDh +STATUS_INSUFFICIENT_POWER equ 0C00002DEh +STATUS_SAM_NEED_BOOTKEY_PASSWORD equ 0C00002DFh +STATUS_SAM_NEED_BOOTKEY_FLOPPY equ 0C00002E0h +STATUS_DS_CANT_START equ 0C00002E1h +STATUS_DS_INIT_FAILURE equ 0C00002E2h +STATUS_SAM_INIT_FAILURE equ 0C00002E3h +STATUS_DS_GC_REQUIRED equ 0C00002E4h +STATUS_DS_LOCAL_MEMBER_OF_LOCAL_ONLY equ 0C00002E5h +STATUS_DS_NO_FPO_IN_UNIVERSAL_GROUPS equ 0C00002E6h +STATUS_DS_MACHINE_ACCOUNT_QUOTA_EXCEEDED equ 0C00002E7h +STATUS_MULTIPLE_FAULT_VIOLATION equ 0C00002E8h +STATUS_CURRENT_DOMAIN_NOT_ALLOWED equ 0C00002E9h +STATUS_CANNOT_MAKE equ 0C00002EAh +STATUS_SYSTEM_SHUTDOWN equ 0C00002EBh +STATUS_DS_INIT_FAILURE_CONSOLE equ 0C00002ECh +STATUS_DS_SAM_INIT_FAILURE_CONSOLE equ 0C00002EDh +STATUS_UNFINISHED_CONTEXT_DELETED equ 0C00002EEh +STATUS_NO_TGT_REPLY equ 0C00002EFh +STATUS_OBJECTID_NOT_FOUND equ 0C00002F0h +STATUS_NO_IP_ADDRESSES equ 0C00002F1h +STATUS_WRONG_CREDENTIAL_HANDLE equ 0C00002F2h +STATUS_CRYPTO_SYSTEM_INVALID equ 0C00002F3h +STATUS_MAX_REFERRALS_EXCEEDED equ 0C00002F4h +STATUS_MUST_BE_KDC equ 0C00002F5h +STATUS_STRONG_CRYPTO_NOT_SUPPORTED equ 0C00002F6h +STATUS_TOO_MANY_PRINCIPALS equ 0C00002F7h +STATUS_NO_PA_DATA equ 0C00002F8h +STATUS_PKINIT_NAME_MISMATCH equ 0C00002F9h +STATUS_SMARTCARD_LOGON_REQUIRED equ 0C00002FAh +STATUS_KDC_INVALID_REQUEST equ 0C00002FBh +STATUS_KDC_UNABLE_TO_REFER equ 0C00002FCh +STATUS_KDC_UNKNOWN_ETYPE equ 0C00002FDh +STATUS_SHUTDOWN_IN_PROGRESS equ 0C00002FEh +STATUS_SERVER_SHUTDOWN_IN_PROGRESS equ 0C00002FFh +STATUS_NOT_SUPPORTED_ON_SBS equ 0C0000300h +STATUS_WMI_GUID_DISCONNECTED equ 0C0000301h +STATUS_WMI_ALREADY_DISABLED equ 0C0000302h +STATUS_WMI_ALREADY_ENABLED equ 0C0000303h +STATUS_MFT_TOO_FRAGMENTED equ 0C0000304h +STATUS_COPY_PROTECTION_FAILURE equ 0C0000305h +STATUS_CSS_AUTHENTICATION_FAILURE equ 0C0000306h +STATUS_CSS_KEY_NOT_PRESENT equ 0C0000307h +STATUS_CSS_KEY_NOT_ESTABLISHED equ 0C0000308h +STATUS_CSS_SCRAMBLED_SECTOR equ 0C0000309h +STATUS_CSS_REGION_MISMATCH equ 0C000030Ah +STATUS_CSS_RESETS_EXHAUSTED equ 0C000030Bh +STATUS_PKINIT_FAILURE equ 0C0000320h +STATUS_SMARTCARD_SUBSYSTEM_FAILURE equ 0C0000321h +STATUS_NO_KERB_KEY equ 0C0000322h +STATUS_HOST_DOWN equ 0C0000350h +STATUS_UNSUPPORTED_PREAUTH equ 0C0000351h +STATUS_EFS_ALG_BLOB_TOO_BIG equ 0C0000352h +STATUS_PORT_NOT_SET equ 0C0000353h +STATUS_DEBUGGER_INACTIVE equ 0C0000354h +STATUS_DS_VERSION_CHECK_FAILURE equ 0C0000355h +STATUS_AUDITING_DISABLED equ 0C0000356h +STATUS_PRENT4_MACHINE_ACCOUNT equ 0C0000357h +STATUS_DS_AG_CANT_HAVE_UNIVERSAL_MEMBER equ 0C0000358h +STATUS_INVALID_IMAGE_WIN_32 equ 0C0000359h +STATUS_INVALID_IMAGE_WIN_64 equ 0C000035Ah +STATUS_BAD_BINDINGS equ 0C000035Bh +STATUS_NETWORK_SESSION_EXPIRED equ 0C000035Ch +STATUS_APPHELP_BLOCK equ 0C000035Dh +STATUS_ALL_SIDS_FILTERED equ 0C000035Eh +STATUS_NOT_SAFE_MODE_DRIVER equ 0C000035Fh +STATUS_ACCESS_DISABLED_BY_POLICY_DEFAULT equ 0C0000361h +STATUS_ACCESS_DISABLED_BY_POLICY_PATH equ 0C0000362h +STATUS_ACCESS_DISABLED_BY_POLICY_PUBLISHER equ 0C0000363h +STATUS_ACCESS_DISABLED_BY_POLICY_OTHER equ 0C0000364h +STATUS_FAILED_DRIVER_ENTRY equ 0C0000365h +STATUS_DEVICE_ENUMERATION_ERROR equ 0C0000366h +STATUS_WAIT_FOR_OPLOCK equ 00000367h +STATUS_MOUNT_POINT_NOT_RESOLVED equ 0C0000368h +STATUS_INVALID_DEVICE_OBJECT_PARAMETER equ 0C0000369h +STATUS_MCA_OCCURED equ 0C000036Ah +STATUS_DRIVER_BLOCKED_CRITICAL equ 0C000036Bh +STATUS_DRIVER_BLOCKED equ 0C000036Ch +STATUS_DRIVER_DATABASE_ERROR equ 0C000036Dh +STATUS_SYSTEM_HIVE_TOO_LARGE equ 0C000036Eh +STATUS_INVALID_IMPORT_OF_NON_DLL equ 0C000036Fh +STATUS_DS_SHUTTING_DOWN equ 40000370h +STATUS_SMARTCARD_WRONG_PIN equ 0C0000380h +STATUS_SMARTCARD_CARD_BLOCKED equ 0C0000381h +STATUS_SMARTCARD_CARD_NOT_AUTHENTICATED equ 0C0000382h +STATUS_SMARTCARD_NO_CARD equ 0C0000383h +STATUS_SMARTCARD_NO_KEY_CONTAINER equ 0C0000384h +STATUS_SMARTCARD_NO_CERTIFICATE equ 0C0000385h +STATUS_SMARTCARD_NO_KEYSET equ 0C0000386h +STATUS_SMARTCARD_IO_ERROR equ 0C0000387h +STATUS_DOWNGRADE_DETECTED equ 0C0000388h +STATUS_SMARTCARD_CERT_REVOKED equ 0C0000389h +STATUS_ISSUING_CA_UNTRUSTED equ 0C000038Ah +STATUS_REVOCATION_OFFLINE_C equ 0C000038Bh +STATUS_PKINIT_CLIENT_FAILURE equ 0C000038Ch +STATUS_SMARTCARD_CERT_EXPIRED equ 0C000038Dh +STATUS_DRIVER_FAILED_PRIOR_UNLOAD equ 0C000038Eh +STATUS_SMARTCARD_SILENT_CONTEXT equ 0C000038Fh +STATUS_PER_USER_TRUST_QUOTA_EXCEEDED equ 0C0000401h +STATUS_ALL_USER_TRUST_QUOTA_EXCEEDED equ 0C0000402h +STATUS_USER_DELETE_TRUST_QUOTA_EXCEEDED equ 0C0000403h +STATUS_DS_NAME_NOT_UNIQUE equ 0C0000404h +STATUS_DS_DUPLICATE_ID_FOUND equ 0C0000405h +STATUS_DS_GROUP_CONVERSION_ERROR equ 0C0000406h +STATUS_VOLSNAP_PREPARE_HIBERNATE equ 0C0000407h +STATUS_USER2USER_REQUIRED equ 0C0000408h +STATUS_STACK_BUFFER_OVERRUN equ 0C0000409h +STATUS_NO_S4U_PROT_SUPPORT equ 0C000040Ah +STATUS_CROSSREALM_DELEGATION_FAILURE equ 0C000040Bh +STATUS_REVOCATION_OFFLINE_KDC equ 0C000040Ch +STATUS_ISSUING_CA_UNTRUSTED_KDC equ 0C000040Dh +STATUS_KDC_CERT_EXPIRED equ 0C000040Eh +STATUS_KDC_CERT_REVOKED equ 0C000040Fh +STATUS_PARAMETER_QUOTA_EXCEEDED equ 0C0000410h +STATUS_HIBERNATION_FAILURE equ 0C0000411h +STATUS_DELAY_LOAD_FAILED equ 0C0000412h +STATUS_AUTHENTICATION_FIREWALL_FAILED equ 0C0000413h +STATUS_VDM_DISALLOWED equ 0C0000414h +STATUS_HUNG_DISPLAY_DRIVER_THREAD equ 0C0000415h +STATUS_WOW_ASSERTION equ 0C0009898h +DBG_NO_STATE_CHANGE equ 0C0010001h +DBG_APP_NOT_IDLE equ 0C0010002h +RPC_NT_INVALID_STRING_BINDING equ 0C0020001h +RPC_NT_WRONG_KIND_OF_BINDING equ 0C0020002h +RPC_NT_INVALID_BINDING equ 0C0020003h +RPC_NT_PROTSEQ_NOT_SUPPORTED equ 0C0020004h +RPC_NT_INVALID_RPC_PROTSEQ equ 0C0020005h +RPC_NT_INVALID_STRING_UUID equ 0C0020006h +RPC_NT_INVALID_ENDPOINT_FORMAT equ 0C0020007h +RPC_NT_INVALID_NET_ADDR equ 0C0020008h +RPC_NT_NO_ENDPOINT_FOUND equ 0C0020009h +RPC_NT_INVALID_TIMEOUT equ 0C002000Ah +RPC_NT_OBJECT_NOT_FOUND equ 0C002000Bh +RPC_NT_ALREADY_REGISTERED equ 0C002000Ch +RPC_NT_TYPE_ALREADY_REGISTERED equ 0C002000Dh +RPC_NT_ALREADY_LISTENING equ 0C002000Eh +RPC_NT_NO_PROTSEQS_REGISTERED equ 0C002000Fh +RPC_NT_NOT_LISTENING equ 0C0020010h +RPC_NT_UNKNOWN_MGR_TYPE equ 0C0020011h +RPC_NT_UNKNOWN_IF equ 0C0020012h +RPC_NT_NO_BINDINGS equ 0C0020013h +RPC_NT_NO_PROTSEQS equ 0C0020014h +RPC_NT_CANT_CREATE_ENDPOINT equ 0C0020015h +RPC_NT_OUT_OF_RESOURCES equ 0C0020016h +RPC_NT_SERVER_UNAVAILABLE equ 0C0020017h +RPC_NT_SERVER_TOO_BUSY equ 0C0020018h +RPC_NT_INVALID_NETWORK_OPTIONS equ 0C0020019h +RPC_NT_NO_CALL_ACTIVE equ 0C002001Ah +RPC_NT_CALL_FAILED equ 0C002001Bh +RPC_NT_CALL_FAILED_DNE equ 0C002001Ch +RPC_NT_PROTOCOL_ERROR equ 0C002001Dh +RPC_NT_UNSUPPORTED_TRANS_SYN equ 0C002001Fh +RPC_NT_UNSUPPORTED_TYPE equ 0C0020021h +RPC_NT_INVALID_TAG equ 0C0020022h +RPC_NT_INVALID_BOUND equ 0C0020023h +RPC_NT_NO_ENTRY_NAME equ 0C0020024h +RPC_NT_INVALID_NAME_SYNTAX equ 0C0020025h +RPC_NT_UNSUPPORTED_NAME_SYNTAX equ 0C0020026h +RPC_NT_UUID_NO_ADDRESS equ 0C0020028h +RPC_NT_DUPLICATE_ENDPOINT equ 0C0020029h +RPC_NT_UNKNOWN_AUTHN_TYPE equ 0C002002Ah +RPC_NT_MAX_CALLS_TOO_SMALL equ 0C002002Bh +RPC_NT_STRING_TOO_LONG equ 0C002002Ch +RPC_NT_PROTSEQ_NOT_FOUND equ 0C002002Dh +RPC_NT_PROCNUM_OUT_OF_RANGE equ 0C002002Eh +RPC_NT_BINDING_HAS_NO_AUTH equ 0C002002Fh +RPC_NT_UNKNOWN_AUTHN_SERVICE equ 0C0020030h +RPC_NT_UNKNOWN_AUTHN_LEVEL equ 0C0020031h +RPC_NT_INVALID_AUTH_IDENTITY equ 0C0020032h +RPC_NT_UNKNOWN_AUTHZ_SERVICE equ 0C0020033h +EPT_NT_INVALID_ENTRY equ 0C0020034h +EPT_NT_CANT_PERFORM_OP equ 0C0020035h +EPT_NT_NOT_REGISTERED equ 0C0020036h +RPC_NT_NOTHING_TO_EXPORT equ 0C0020037h +RPC_NT_INCOMPLETE_NAME equ 0C0020038h +RPC_NT_INVALID_VERS_OPTION equ 0C0020039h +RPC_NT_NO_MORE_MEMBERS equ 0C002003Ah +RPC_NT_NOT_ALL_OBJS_UNEXPORTED equ 0C002003Bh +RPC_NT_INTERFACE_NOT_FOUND equ 0C002003Ch +RPC_NT_ENTRY_ALREADY_EXISTS equ 0C002003Dh +RPC_NT_ENTRY_NOT_FOUND equ 0C002003Eh +RPC_NT_NAME_SERVICE_UNAVAILABLE equ 0C002003Fh +RPC_NT_INVALID_NAF_ID equ 0C0020040h +RPC_NT_CANNOT_SUPPORT equ 0C0020041h +RPC_NT_NO_CONTEXT_AVAILABLE equ 0C0020042h +RPC_NT_INTERNAL_ERROR equ 0C0020043h +RPC_NT_ZERO_DIVIDE equ 0C0020044h +RPC_NT_ADDRESS_ERROR equ 0C0020045h +RPC_NT_FP_DIV_ZERO equ 0C0020046h +RPC_NT_FP_UNDERFLOW equ 0C0020047h +RPC_NT_FP_OVERFLOW equ 0C0020048h +RPC_NT_NO_MORE_ENTRIES equ 0C0030001h +RPC_NT_SS_CHAR_TRANS_OPEN_FAIL equ 0C0030002h +RPC_NT_SS_CHAR_TRANS_SHORT_FILE equ 0C0030003h +RPC_NT_SS_IN_NULL_CONTEXT equ 0C0030004h +RPC_NT_SS_CONTEXT_MISMATCH equ 0C0030005h +RPC_NT_SS_CONTEXT_DAMAGED equ 0C0030006h +RPC_NT_SS_HANDLES_MISMATCH equ 0C0030007h +RPC_NT_SS_CANNOT_GET_CALL_HANDLE equ 0C0030008h +RPC_NT_NULL_REF_POINTER equ 0C0030009h +RPC_NT_ENUM_VALUE_OUT_OF_RANGE equ 0C003000Ah +RPC_NT_BYTE_COUNT_TOO_SMALL equ 0C003000Bh +RPC_NT_BAD_STUB_DATA equ 0C003000Ch +RPC_NT_CALL_IN_PROGRESS equ 0C0020049h +RPC_NT_NO_MORE_BINDINGS equ 0C002004Ah +RPC_NT_GROUP_MEMBER_NOT_FOUND equ 0C002004Bh +EPT_NT_CANT_CREATE equ 0C002004Ch +RPC_NT_INVALID_OBJECT equ 0C002004Dh +RPC_NT_NO_INTERFACES equ 0C002004Fh +RPC_NT_CALL_CANCELLED equ 0C0020050h +RPC_NT_BINDING_INCOMPLETE equ 0C0020051h +RPC_NT_COMM_FAILURE equ 0C0020052h +RPC_NT_UNSUPPORTED_AUTHN_LEVEL equ 0C0020053h +RPC_NT_NO_PRINC_NAME equ 0C0020054h +RPC_NT_NOT_RPC_ERROR equ 0C0020055h +RPC_NT_UUID_LOCAL_ONLY equ 40020056h +RPC_NT_SEC_PKG_ERROR equ 0C0020057h +RPC_NT_NOT_CANCELLED equ 0C0020058h +RPC_NT_INVALID_ES_ACTION equ 0C0030059h +RPC_NT_WRONG_ES_VERSION equ 0C003005Ah +RPC_NT_WRONG_STUB_VERSION equ 0C003005Bh +RPC_NT_INVALID_PIPE_OBJECT equ 0C003005Ch +RPC_NT_INVALID_PIPE_OPERATION equ 0C003005Dh +RPC_NT_WRONG_PIPE_VERSION equ 0C003005Eh +RPC_NT_PIPE_CLOSED equ 0C003005Fh +RPC_NT_PIPE_DISCIPLINE_ERROR equ 0C0030060h +RPC_NT_PIPE_EMPTY equ 0C0030061h +RPC_NT_INVALID_ASYNC_HANDLE equ 0C0020062h +RPC_NT_INVALID_ASYNC_CALL equ 0C0020063h +RPC_NT_SEND_INCOMPLETE equ 400200AFh +STATUS_ACPI_INVALID_OPCODE equ 0C0140001h +STATUS_ACPI_STACK_OVERFLOW equ 0C0140002h +STATUS_ACPI_ASSERT_FAILED equ 0C0140003h +STATUS_ACPI_INVALID_INDEX equ 0C0140004h +STATUS_ACPI_INVALID_ARGUMENT equ 0C0140005h +STATUS_ACPI_FATAL equ 0C0140006h +STATUS_ACPI_INVALID_SUPERNAME equ 0C0140007h +STATUS_ACPI_INVALID_ARGTYPE equ 0C0140008h +STATUS_ACPI_INVALID_OBJTYPE equ 0C0140009h +STATUS_ACPI_INVALID_TARGETTYPE equ 0C014000Ah +STATUS_ACPI_INCORRECT_ARGUMENT_COUNT equ 0C014000Bh +STATUS_ACPI_ADDRESS_NOT_MAPPED equ 0C014000Ch +STATUS_ACPI_INVALID_EVENTTYPE equ 0C014000Dh +STATUS_ACPI_HANDLER_COLLISION equ 0C014000Eh +STATUS_ACPI_INVALID_DATA equ 0C014000Fh +STATUS_ACPI_INVALID_REGION equ 0C0140010h +STATUS_ACPI_INVALID_ACCESS_SIZE equ 0C0140011h +STATUS_ACPI_ACQUIRE_GLOBAL_LOCK equ 0C0140012h +STATUS_ACPI_ALREADY_INITIALIZED equ 0C0140013h +STATUS_ACPI_NOT_INITIALIZED equ 0C0140014h +STATUS_ACPI_INVALID_MUTEX_LEVEL equ 0C0140015h +STATUS_ACPI_MUTEX_NOT_OWNED equ 0C0140016h +STATUS_ACPI_MUTEX_NOT_OWNER equ 0C0140017h +STATUS_ACPI_RS_ACCESS equ 0C0140018h +STATUS_ACPI_INVALID_TABLE equ 0C0140019h +STATUS_ACPI_REG_HANDLER_FAILED equ 0C0140020h +STATUS_ACPI_POWER_REQUEST_FAILED equ 0C0140021h +STATUS_CTX_WINSTATION_NAME_INVALID equ 0C00A0001h +STATUS_CTX_INVALID_PD equ 0C00A0002h +STATUS_CTX_PD_NOT_FOUND equ 0C00A0003h +STATUS_CTX_CDM_CONNECT equ 400A0004h +STATUS_CTX_CDM_DISCONNECT equ 400A0005h +STATUS_CTX_CLOSE_PENDING equ 0C00A0006h +STATUS_CTX_NO_OUTBUF equ 0C00A0007h +STATUS_CTX_MODEM_INF_NOT_FOUND equ 0C00A0008h +STATUS_CTX_INVALID_MODEMNAME equ 0C00A0009h +STATUS_CTX_RESPONSE_ERROR equ 0C00A000Ah +STATUS_CTX_MODEM_RESPONSE_TIMEOUT equ 0C00A000Bh +STATUS_CTX_MODEM_RESPONSE_NO_CARRIER equ 0C00A000Ch +STATUS_CTX_MODEM_RESPONSE_NO_DIALTONE equ 0C00A000Dh +STATUS_CTX_MODEM_RESPONSE_BUSY equ 0C00A000Eh +STATUS_CTX_MODEM_RESPONSE_VOICE equ 0C00A000Fh +STATUS_CTX_TD_ERROR equ 0C00A0010h +STATUS_CTX_LICENSE_CLIENT_INVALID equ 0C00A0012h +STATUS_CTX_LICENSE_NOT_AVAILABLE equ 0C00A0013h +STATUS_CTX_LICENSE_EXPIRED equ 0C00A0014h +STATUS_CTX_WINSTATION_NOT_FOUND equ 0C00A0015h +STATUS_CTX_WINSTATION_NAME_COLLISION equ 0C00A0016h +STATUS_CTX_WINSTATION_BUSY equ 0C00A0017h +STATUS_CTX_BAD_VIDEO_MODE equ 0C00A0018h +STATUS_CTX_GRAPHICS_INVALID equ 0C00A0022h +STATUS_CTX_NOT_CONSOLE equ 0C00A0024h +STATUS_CTX_CLIENT_QUERY_TIMEOUT equ 0C00A0026h +STATUS_CTX_CONSOLE_DISCONNECT equ 0C00A0027h +STATUS_CTX_CONSOLE_CONNECT equ 0C00A0028h +STATUS_CTX_SHADOW_DENIED equ 0C00A002Ah +STATUS_CTX_WINSTATION_ACCESS_DENIED equ 0C00A002Bh +STATUS_CTX_INVALID_WD equ 0C00A002Eh +STATUS_CTX_WD_NOT_FOUND equ 0C00A002Fh +STATUS_CTX_SHADOW_INVALID equ 0C00A0030h +STATUS_CTX_SHADOW_DISABLED equ 0C00A0031h +STATUS_RDP_PROTOCOL_ERROR equ 0C00A0032h +STATUS_CTX_CLIENT_LICENSE_NOT_SET equ 0C00A0033h +STATUS_CTX_CLIENT_LICENSE_IN_USE equ 0C00A0034h +STATUS_CTX_SHADOW_ENDED_BY_MODE_CHANGE equ 0C00A0035h +STATUS_CTX_SHADOW_NOT_RUNNING equ 0C00A0036h +STATUS_PNP_BAD_MPS_TABLE equ 0C0040035h +STATUS_PNP_TRANSLATION_FAILED equ 0C0040036h +STATUS_PNP_IRQ_TRANSLATION_FAILED equ 0C0040037h +STATUS_PNP_INVALID_ID equ 0C0040038h +STATUS_SXS_SECTION_NOT_FOUND equ 0C0150001h +STATUS_SXS_CANT_GEN_ACTCTX equ 0C0150002h +STATUS_SXS_INVALID_ACTCTXDATA_FORMAT equ 0C0150003h +STATUS_SXS_ASSEMBLY_NOT_FOUND equ 0C0150004h +STATUS_SXS_MANIFEST_FORMAT_ERROR equ 0C0150005h +STATUS_SXS_MANIFEST_PARSE_ERROR equ 0C0150006h +STATUS_SXS_ACTIVATION_CONTEXT_DISABLED equ 0C0150007h +STATUS_SXS_KEY_NOT_FOUND equ 0C0150008h +STATUS_SXS_VERSION_CONFLICT equ 0C0150009h +STATUS_SXS_WRONG_SECTION_TYPE equ 0C015000Ah +STATUS_SXS_THREAD_QUERIES_DISABLED equ 0C015000Bh +STATUS_SXS_ASSEMBLY_MISSING equ 0C015000Ch +STATUS_SXS_RELEASE_ACTIVATION_CONTEXT equ 4015000Dh +STATUS_SXS_PROCESS_DEFAULT_ALREADY_SET equ 0C015000Eh +STATUS_SXS_MULTIPLE_DEACTIVATION equ 0C0150011h +STATUS_SXS_SYSTEM_DEFAULT_ACTIVATION_CONTEXT_EMPTY equ 0C0150012h +STATUS_SXS_PROCESS_TERMINATION_REQUESTED equ 0C0150013h +STATUS_SXS_CORRUPT_ACTIVATION_STACK equ 0C0150014h +STATUS_SXS_CORRUPTION equ 0C0150015h +STATUS_CLUSTER_INVALID_NODE equ 0C0130001h +STATUS_CLUSTER_NODE_EXISTS equ 0C0130002h +STATUS_CLUSTER_JOIN_IN_PROGRESS equ 0C0130003h +STATUS_CLUSTER_NODE_NOT_FOUND equ 0C0130004h +STATUS_CLUSTER_LOCAL_NODE_NOT_FOUND equ 0C0130005h +STATUS_CLUSTER_NETWORK_EXISTS equ 0C0130006h +STATUS_CLUSTER_NETWORK_NOT_FOUND equ 0C0130007h +STATUS_CLUSTER_NETINTERFACE_EXISTS equ 0C0130008h +STATUS_CLUSTER_NETINTERFACE_NOT_FOUND equ 0C0130009h +STATUS_CLUSTER_INVALID_REQUEST equ 0C013000Ah +STATUS_CLUSTER_INVALID_NETWORK_PROVIDER equ 0C013000Bh +STATUS_CLUSTER_NODE_DOWN equ 0C013000Ch +STATUS_CLUSTER_NODE_UNREACHABLE equ 0C013000Dh +STATUS_CLUSTER_NODE_NOT_MEMBER equ 0C013000Eh +STATUS_CLUSTER_JOIN_NOT_IN_PROGRESS equ 0C013000Fh +STATUS_CLUSTER_INVALID_NETWORK equ 0C0130010h +STATUS_CLUSTER_NO_NET_ADAPTERS equ 0C0130011h +STATUS_CLUSTER_NODE_UP equ 0C0130012h +STATUS_CLUSTER_NODE_PAUSED equ 0C0130013h +STATUS_CLUSTER_NODE_NOT_PAUSED equ 0C0130014h +STATUS_CLUSTER_NO_SECURITY_CONTEXT equ 0C0130015h +STATUS_CLUSTER_NETWORK_NOT_INTERNAL equ 0C0130016h +STATUS_CLUSTER_POISONED equ 0C0130017h +FACILITY_VIDEO equ 1Bh +FACILITY_TRANSACTION equ 19h +FACILITY_NTSSPI equ 9h +FACILITY_NTWIN32 equ 7h +FACILITY_NDIS_ERROR_CODE equ 23h +FACILTIY_MUI_ERROR_CODE equ 0Bh +FACILITY_MONITOR equ 1Dh +FACILITY_MAXIMUM_VALUE equ 37h +FACILITY_IPSEC equ 36h +FACILITY_HYPERVISOR equ 35h +FACILITY_GRAPHICS_KERNEL equ 1Eh +FACILITY_FWP_ERROR_CODE equ 22h +FACILITY_FVE_ERROR_CODE equ 21h +FACILITY_FILTER_MANAGER equ 1Ch +FACILITY_DRIVER_FRAMEWORK equ 20h +FACILITY_COMMONLOG equ 1Ah +STATUS_INTERRUPT_VECTOR_ALREADY_CONNECTED equ 00000127h +STATUS_INTERRUPT_STILL_CONNECTED equ 00000128h +STATUS_PROCESS_CLONED equ 00000129h +STATUS_FILE_LOCKED_WITH_ONLY_READERS equ 0000012Ah +STATUS_FILE_LOCKED_WITH_WRITERS equ 0000012Bh +STATUS_RESOURCEMANAGER_READ_ONLY equ 00000202h +STATUS_FLT_IO_COMPLETE equ 001C0001h +STATUS_MESSAGE_RETRIEVED equ 4000002Eh +STATUS_SYSTEM_POWERSTATE_TRANSITION equ 4000002Fh +STATUS_ALPC_CHECK_COMPLETION_LIST equ 40000030h +STATUS_SYSTEM_POWERSTATE_COMPLEX_TRANSITION equ 40000031h +STATUS_ACCESS_AUDIT_BY_POLICY equ 40000032h +STATUS_ABANDON_HIBERFILE equ 40000033h +STATUS_BIZRULES_NOT_ENABLED equ 40000034h +STATUS_FLT_BUFFER_TOO_SMALL equ 801C0001h +STATUS_STOPPED_ON_SYMLINK equ 8000002Dh +STATUS_FVE_PARTIAL_METADATA equ 80210001h +STATUS_IMAGE_ALREADY_LOADED_AS_DLL equ 0C000019Dh +STATUS_NETWORK_OPEN_RESTRICTION equ 0C0000201h +STATUS_NO_SECRETS equ 0C0000371h +STATUS_ACCESS_DISABLED_NO_SAFER_UI_BY_POLICY equ 0C0000372h +STATUS_FAILED_STACK_SWITCH equ 0C0000373h +STATUS_HEAP_CORRUPTION equ 0C0000374h +STATUS_INSUFFICIENT_RESOURCE_FOR_SPECIFIED_SHARED_SECTION_SIZE equ 0C0000416h +STATUS_INVALID_CRUNTIME_PARAMETER equ 0C0000417h +STATUS_NTLM_BLOCKED equ 0C0000418h +STATUS_ASSERTION_FAILURE equ 0C0000420h +STATUS_VERIFIER_STOP equ 0C0000421h +STATUS_CALLBACK_POP_STACK equ 0C0000423h +STATUS_INCOMPATIBLE_DRIVER_BLOCKED equ 0C0000424h +STATUS_HIVE_UNLOADED equ 0C0000425h +STATUS_COMPRESSION_DISABLED equ 0C0000426h +STATUS_FILE_SYSTEM_LIMITATION equ 0C0000427h +STATUS_INVALID_IMAGE_HASH equ 0C0000428h +STATUS_NOT_CAPABLE equ 0C0000429h +STATUS_REQUEST_OUT_OF_SEQUENCE equ 0C000042Ah +STATUS_IMPLEMENTATION_LIMIT equ 0C000042Bh +STATUS_ELEVATION_REQUIRED equ 0C000042Ch +STATUS_BEYOND_VDL equ 0C0000432h +STATUS_ENCOUNTERED_WRITE_IN_PROGRESS equ 0C0000433h +STATUS_PTE_CHANGED equ 0C0000434h +STATUS_PURGE_FAILED equ 0C0000435h +STATUS_CRED_REQUIRES_CONFIRMATION equ 0C0000440h +STATUS_CS_ENCRYPTION_INVALID_SERVER_RESPONSE equ 0C0000441h +STATUS_CS_ENCRYPTION_UNSUPPORTED_SERVER equ 0C0000442h +STATUS_CS_ENCRYPTION_EXISTING_ENCRYPTED_FILE equ 0C0000443h +STATUS_CS_ENCRYPTION_NEW_ENCRYPTED_FILE equ 0C0000444h +STATUS_CS_ENCRYPTION_FILE_NOT_CSE equ 0C0000445h +STATUS_INVALID_LABEL equ 0C0000446h +STATUS_DRIVER_PROCESS_TERMINATED equ 0C0000450h +STATUS_AMBIGUOUS_SYSTEM_DEVICE equ 0C0000451h +STATUS_SYSTEM_DEVICE_NOT_FOUND equ 0C0000452h +STATUS_RESTART_BOOT_APPLICATION equ 0C0000453h +STATUS_INVALID_TASK_NAME equ 0C0000500h +STATUS_INVALID_TASK_INDEX equ 0C0000501h +STATUS_THREAD_ALREADY_IN_TASK equ 0C0000502h +STATUS_CALLBACK_BYPASS equ 0C0000503h +STATUS_PORT_CLOSED equ 0C0000700h +STATUS_MESSAGE_LOST equ 0C0000701h +STATUS_INVALID_MESSAGE equ 0C0000702h +STATUS_REQUEST_CANCELED equ 0C0000703h +STATUS_RECURSIVE_DISPATCH equ 0C0000704h +STATUS_LPC_RECEIVE_BUFFER_EXPECTED equ 0C0000705h +STATUS_LPC_INVALID_CONNECTION_USAGE equ 0C0000706h +STATUS_LPC_REQUESTS_NOT_ALLOWED equ 0C0000707h +STATUS_RESOURCE_IN_USE equ 0C0000708h +STATUS_HARDWARE_MEMORY_ERROR equ 0C0000709h +STATUS_THREADPOOL_HANDLE_EXCEPTION equ 0C000070Ah +STATUS_THREADPOOL_SET_EVENT_ON_COMPLETION_FAILED equ 0C000070Bh +STATUS_THREADPOOL_RELEASE_SEMAPHORE_ON_COMPLETION_FAILED equ 0C000070Ch +STATUS_THREADPOOL_RELEASE_MUTEX_ON_COMPLETION_FAILED equ 0C000070Dh +STATUS_THREADPOOL_FREE_LIBRARY_ON_COMPLETION_FAILED equ 0C000070Eh +STATUS_THREADPOOL_RELEASED_DURING_OPERATION equ 0C000070Fh +STATUS_CALLBACK_RETURNED_WHILE_IMPERSONATING equ 0C0000710h +STATUS_APC_RETURNED_WHILE_IMPERSONATING equ 0C0000711h +STATUS_PROCESS_IS_PROTECTED equ 0C0000712h +STATUS_MCA_EXCEPTION equ 0C0000713h +STATUS_CERTIFICATE_MAPPING_NOT_UNIQUE equ 0C0000714h +STATUS_SYMLINK_CLASS_DISABLED equ 0C0000715h +STATUS_INVALID_IDN_NORMALIZATION equ 0C0000716h +STATUS_NO_UNICODE_TRANSLATION equ 0C0000717h +STATUS_ALREADY_REGISTERED equ 0C0000718h +STATUS_CONTEXT_MISMATCH equ 0C0000719h +STATUS_PORT_ALREADY_HAS_COMPLETION_LIST equ 0C000071Ah +STATUS_CALLBACK_RETURNED_THREAD_PRIORITY equ 0C000071Bh +STATUS_INVALID_THREAD equ 0C000071Ch +STATUS_CALLBACK_RETURNED_TRANSACTION equ 0C000071Dh +STATUS_CALLBACK_RETURNED_LDR_LOCK equ 0C000071Eh +STATUS_CALLBACK_RETURNED_LANG equ 0C000071Fh +STATUS_CALLBACK_RETURNED_PRI_BACK equ 0C0000720h +STATUS_CALLBACK_RETURNED_THREAD_AFFINITY equ 0C0000721h +STATUS_DISK_REPAIR_DISABLED equ 0C0000800h +STATUS_DS_DOMAIN_RENAME_IN_PROGRESS equ 0C0000801h +STATUS_DISK_QUOTA_EXCEEDED equ 0C0000802h +STATUS_DATA_LOST_REPAIR equ 80000803h +STATUS_CONTENT_BLOCKED equ 0C0000804h +STATUS_BAD_CLUSTERS equ 0C0000805h +STATUS_VOLUME_DIRTY equ 0C0000806h +STATUS_FILE_CHECKED_OUT equ 0C0000901h +STATUS_CHECKOUT_REQUIRED equ 0C0000902h +STATUS_BAD_FILE_TYPE equ 0C0000903h +STATUS_FILE_TOO_LARGE equ 0C0000904h +STATUS_FORMS_AUTH_REQUIRED equ 0C0000905h +STATUS_VIRUS_INFECTED equ 0C0000906h +STATUS_VIRUS_DELETED equ 0C0000907h +STATUS_BAD_MCFG_TABLE equ 0C0000908h +STATUS_INVALID_SIGNATURE equ 0C000A000h +STATUS_HMAC_NOT_SUPPORTED equ 0C000A001h +STATUS_IPSEC_QUEUE_OVERFLOW equ 0C000A010h +STATUS_ND_QUEUE_OVERFLOW equ 0C000A011h +STATUS_HOPLIMIT_EXCEEDED equ 0C000A012h +STATUS_PROTOCOL_NOT_SUPPORTED equ 0C000A013h +STATUS_LOST_WRITEBEHIND_DATA_NETWORK_DISCONNECTED equ 0C000A080h +STATUS_LOST_WRITEBEHIND_DATA_NETWORK_SERVER_ERROR equ 0C000A081h +STATUS_LOST_WRITEBEHIND_DATA_LOCAL_DISK_ERROR equ 0C000A082h +STATUS_XML_PARSE_ERROR equ 0C000A083h +STATUS_XMLDSIG_ERROR equ 0C000A084h +STATUS_WRONG_COMPARTMENT equ 0C000A085h +STATUS_AUTHIP_FAILURE equ 0C000A086h +RPC_NT_PROXY_ACCESS_DENIED equ 0C0020064h +STATUS_CTX_LOGON_DISABLED equ 0C00A0037h +STATUS_CTX_SECURITY_LAYER_ERROR equ 0C00A0038h +STATUS_TS_INCOMPATIBLE_SESSIONS equ 0C00A0039h +STATUS_IO_REISSUE_AS_CACHED equ 0C0040039h +STATUS_MUI_FILE_NOT_FOUND equ 0C00B0001h +STATUS_MUI_INVALID_FILE equ 0C00B0002h +STATUS_MUI_INVALID_RC_CONFIG equ 0C00B0003h +STATUS_MUI_INVALID_LOCALE_NAME equ 0C00B0004h +STATUS_MUI_INVALID_ULTIMATEFALLBACK_NAME equ 0C00B0005h +STATUS_MUI_FILE_NOT_LOADED equ 0C00B0006h +STATUS_RESOURCE_ENUM_USER_STOP equ 0C00B0007h +STATUS_FLT_NO_HANDLER_DEFINED equ 0C01C0001h +STATUS_FLT_CONTEXT_ALREADY_DEFINED equ 0C01C0002h +STATUS_FLT_INVALID_ASYNCHRONOUS_REQUEST equ 0C01C0003h +STATUS_FLT_DISALLOW_FAST_IO equ 0C01C0004h +STATUS_FLT_INVALID_NAME_REQUEST equ 0C01C0005h +STATUS_FLT_NOT_SAFE_TO_POST_OPERATION equ 0C01C0006h +STATUS_FLT_NOT_INITIALIZED equ 0C01C0007h +STATUS_FLT_FILTER_NOT_READY equ 0C01C0008h +STATUS_FLT_POST_OPERATION_CLEANUP equ 0C01C0009h +STATUS_FLT_INTERNAL_ERROR equ 0C01C000Ah +STATUS_FLT_DELETING_OBJECT equ 0C01C000Bh +STATUS_FLT_MUST_BE_NONPAGED_POOL equ 0C01C000Ch +STATUS_FLT_DUPLICATE_ENTRY equ 0C01C000Dh +STATUS_FLT_CBDQ_DISABLED equ 0C01C000Eh +STATUS_FLT_DO_NOT_ATTACH equ 0C01C000Fh +STATUS_FLT_DO_NOT_DETACH equ 0C01C0010h +STATUS_FLT_INSTANCE_ALTITUDE_COLLISION equ 0C01C0011h +STATUS_FLT_INSTANCE_NAME_COLLISION equ 0C01C0012h +STATUS_FLT_FILTER_NOT_FOUND equ 0C01C0013h +STATUS_FLT_VOLUME_NOT_FOUND equ 0C01C0014h +STATUS_FLT_INSTANCE_NOT_FOUND equ 0C01C0015h +STATUS_FLT_CONTEXT_ALLOCATION_NOT_FOUND equ 0C01C0016h +STATUS_FLT_INVALID_CONTEXT_REGISTRATION equ 0C01C0017h +STATUS_FLT_NAME_CACHE_MISS equ 0C01C0018h +STATUS_FLT_NO_DEVICE_OBJECT equ 0C01C0019h +STATUS_FLT_VOLUME_ALREADY_MOUNTED equ 0C01C001Ah +STATUS_FLT_ALREADY_ENLISTED equ 0C01C001Bh +STATUS_FLT_CONTEXT_ALREADY_LINKED equ 0C01C001Ch +STATUS_FLT_NO_WAITER_FOR_REPLY equ 0C01C0020h +STATUS_SXS_INVALID_IDENTITY_ATTRIBUTE_VALUE equ 0C0150016h +STATUS_SXS_INVALID_IDENTITY_ATTRIBUTE_NAME equ 0C0150017h +STATUS_SXS_IDENTITY_DUPLICATE_ATTRIBUTE equ 0C0150018h +STATUS_SXS_IDENTITY_PARSE_ERROR equ 0C0150019h +STATUS_SXS_COMPONENT_STORE_CORRUPT equ 0C015001Ah +STATUS_SXS_FILE_HASH_MISMATCH equ 0C015001Bh +STATUS_SXS_MANIFEST_IDENTITY_SAME_BUT_CONTENTS_DIFFERENT equ 0C015001Ch +STATUS_SXS_IDENTITIES_DIFFERENT equ 0C015001Dh +STATUS_SXS_ASSEMBLY_IS_NOT_A_DEPLOYMENT equ 0C015001Eh +STATUS_SXS_FILE_NOT_PART_OF_ASSEMBLY equ 0C015001Fh +STATUS_ADVANCED_INSTALLER_FAILED equ 0C0150020h +STATUS_XML_ENCODING_MISMATCH equ 0C0150021h +STATUS_SXS_MANIFEST_TOO_BIG equ 0C0150022h +STATUS_SXS_SETTING_NOT_REGISTERED equ 0C0150023h +STATUS_SXS_TRANSACTION_CLOSURE_INCOMPLETE equ 0C0150024h +STATUS_SMI_PRIMITIVE_INSTALLER_FAILED equ 0C0150025h +STATUS_GENERIC_COMMAND_FAILED equ 0C0150026h +STATUS_SXS_FILE_HASH_MISSING equ 0C0150027h +STATUS_TRANSACTIONAL_CONFLICT equ 0C0190001h +STATUS_INVALID_TRANSACTION equ 0C0190002h +STATUS_TRANSACTION_NOT_ACTIVE equ 0C0190003h +STATUS_TM_INITIALIZATION_FAILED equ 0C0190004h +STATUS_RM_NOT_ACTIVE equ 0C0190005h +STATUS_RM_METADATA_CORRUPT equ 0C0190006h +STATUS_TRANSACTION_NOT_JOINED equ 0C0190007h +STATUS_DIRECTORY_NOT_RM equ 0C0190008h +STATUS_COULD_NOT_RESIZE_LOG equ 80190009h +STATUS_TRANSACTIONS_UNSUPPORTED_REMOTE equ 0C019000Ah +STATUS_LOG_RESIZE_INVALID_SIZE equ 0C019000Bh +STATUS_REMOTE_FILE_VERSION_MISMATCH equ 0C019000Ch +STATUS_CRM_PROTOCOL_ALREADY_EXISTS equ 0C019000Fh +STATUS_TRANSACTION_PROPAGATION_FAILED equ 0C0190010h +STATUS_CRM_PROTOCOL_NOT_FOUND equ 0C0190011h +STATUS_TRANSACTION_SUPERIOR_EXISTS equ 0C0190012h +STATUS_TRANSACTION_REQUEST_NOT_VALID equ 0C0190013h +STATUS_TRANSACTION_NOT_REQUESTED equ 0C0190014h +STATUS_TRANSACTION_ALREADY_ABORTED equ 0C0190015h +STATUS_TRANSACTION_ALREADY_COMMITTED equ 0C0190016h +STATUS_TRANSACTION_INVALID_MARSHALL_BUFFER equ 0C0190017h +STATUS_CURRENT_TRANSACTION_NOT_VALID equ 0C0190018h +STATUS_LOG_GROWTH_FAILED equ 0C0190019h +STATUS_OBJECT_NO_LONGER_EXISTS equ 0C0190021h +STATUS_STREAM_MINIVERSION_NOT_FOUND equ 0C0190022h +STATUS_STREAM_MINIVERSION_NOT_VALID equ 0C0190023h +STATUS_MINIVERSION_INACCESSIBLE_FROM_SPECIFIED_TRANSACTION equ 0C0190024h +STATUS_CANT_OPEN_MINIVERSION_WITH_MODIFY_INTENT equ 0C0190025h +STATUS_CANT_CREATE_MORE_STREAM_MINIVERSIONS equ 0C0190026h +STATUS_HANDLE_NO_LONGER_VALID equ 0C0190028h +STATUS_NO_TXF_METADATA equ 80190029h +STATUS_LOG_CORRUPTION_DETECTED equ 0C0190030h +STATUS_CANT_RECOVER_WITH_HANDLE_OPEN equ 80190031h +STATUS_RM_DISCONNECTED equ 0C0190032h +STATUS_ENLISTMENT_NOT_SUPERIOR equ 0C0190033h +STATUS_RECOVERY_NOT_NEEDED equ 40190034h +STATUS_RM_ALREADY_STARTED equ 40190035h +STATUS_FILE_IDENTITY_NOT_PERSISTENT equ 0C0190036h +STATUS_CANT_BREAK_TRANSACTIONAL_DEPENDENCY equ 0C0190037h +STATUS_CANT_CROSS_RM_BOUNDARY equ 0C0190038h +STATUS_TXF_DIR_NOT_EMPTY equ 0C0190039h +STATUS_INDOUBT_TRANSACTIONS_EXIST equ 0C019003Ah +STATUS_TM_VOLATILE equ 0C019003Bh +STATUS_ROLLBACK_TIMER_EXPIRED equ 0C019003Ch +STATUS_TXF_ATTRIBUTE_CORRUPT equ 0C019003Dh +STATUS_EFS_NOT_ALLOWED_IN_TRANSACTION equ 0C019003Eh +STATUS_TRANSACTIONAL_OPEN_NOT_ALLOWED equ 0C019003Fh +STATUS_TRANSACTED_MAPPING_UNSUPPORTED_REMOTE equ 0C0190040h +STATUS_TXF_METADATA_ALREADY_PRESENT equ 80190041h +STATUS_TRANSACTION_SCOPE_CALLBACKS_NOT_SET equ 80190042h +STATUS_TRANSACTION_REQUIRED_PROMOTION equ 0C0190043h +STATUS_CANNOT_EXECUTE_FILE_IN_TRANSACTION equ 0C0190044h +STATUS_TRANSACTIONS_NOT_FROZEN equ 0C0190045h +STATUS_TRANSACTION_FREEZE_IN_PROGRESS equ 0C0190046h +STATUS_NOT_SNAPSHOT_VOLUME equ 0C0190047h +STATUS_NO_SAVEPOINT_WITH_OPEN_FILES equ 0C0190048h +STATUS_SPARSE_NOT_ALLOWED_IN_TRANSACTION equ 0C0190049h +STATUS_TM_IDENTITY_MISMATCH equ 0C019004Ah +STATUS_FLOATED_SECTION equ 0C019004Bh +STATUS_CANNOT_ACCEPT_TRANSACTED_WORK equ 0C019004Ch +STATUS_CANNOT_ABORT_TRANSACTIONS equ 0C019004Dh +STATUS_TRANSACTION_NOT_FOUND equ 0C019004Eh +STATUS_RESOURCEMANAGER_NOT_FOUND equ 0C019004Fh +STATUS_ENLISTMENT_NOT_FOUND equ 0C0190050h +STATUS_TRANSACTIONMANAGER_NOT_FOUND equ 0C0190051h +STATUS_TRANSACTIONMANAGER_NOT_ONLINE equ 0C0190052h +STATUS_TRANSACTIONMANAGER_RECOVERY_NAME_COLLISION equ 0C0190053h +STATUS_TRANSACTION_NOT_ROOT equ 0C0190054h +STATUS_TRANSACTION_OBJECT_EXPIRED equ 0C0190055h +STATUS_COMPRESSION_NOT_ALLOWED_IN_TRANSACTION equ 0C0190056h +STATUS_TRANSACTION_RESPONSE_NOT_ENLISTED equ 0C0190057h +STATUS_TRANSACTION_RECORD_TOO_LONG equ 0C0190058h +STATUS_NO_LINK_TRACKING_IN_TRANSACTION equ 0C0190059h +STATUS_OPERATION_NOT_SUPPORTED_IN_TRANSACTION equ 0C019005Ah +STATUS_TRANSACTION_INTEGRITY_VIOLATED equ 0C019005Bh +STATUS_LOG_SECTOR_INVALID equ 0C01A0001h +STATUS_LOG_SECTOR_PARITY_INVALID equ 0C01A0002h +STATUS_LOG_SECTOR_REMAPPED equ 0C01A0003h +STATUS_LOG_BLOCK_INCOMPLETE equ 0C01A0004h +STATUS_LOG_INVALID_RANGE equ 0C01A0005h +STATUS_LOG_BLOCKS_EXHAUSTED equ 0C01A0006h +STATUS_LOG_READ_CONTEXT_INVALID equ 0C01A0007h +STATUS_LOG_RESTART_INVALID equ 0C01A0008h +STATUS_LOG_BLOCK_VERSION equ 0C01A0009h +STATUS_LOG_BLOCK_INVALID equ 0C01A000Ah +STATUS_LOG_READ_MODE_INVALID equ 0C01A000Bh +STATUS_LOG_NO_RESTART equ 401A000Ch +STATUS_LOG_METADATA_CORRUPT equ 0C01A000Dh +STATUS_LOG_METADATA_INVALID equ 0C01A000Eh +STATUS_LOG_METADATA_INCONSISTENT equ 0C01A000Fh +STATUS_LOG_RESERVATION_INVALID equ 0C01A0010h +STATUS_LOG_CANT_DELETE equ 0C01A0011h +STATUS_LOG_CONTAINER_LIMIT_EXCEEDED equ 0C01A0012h +STATUS_LOG_START_OF_LOG equ 0C01A0013h +STATUS_LOG_POLICY_ALREADY_INSTALLED equ 0C01A0014h +STATUS_LOG_POLICY_NOT_INSTALLED equ 0C01A0015h +STATUS_LOG_POLICY_INVALID equ 0C01A0016h +STATUS_LOG_POLICY_CONFLICT equ 0C01A0017h +STATUS_LOG_PINNED_ARCHIVE_TAIL equ 0C01A0018h +STATUS_LOG_RECORD_NONEXISTENT equ 0C01A0019h +STATUS_LOG_RECORDS_RESERVED_INVALID equ 0C01A001Ah +STATUS_LOG_SPACE_RESERVED_INVALID equ 0C01A001Bh +STATUS_LOG_TAIL_INVALID equ 0C01A001Ch +STATUS_LOG_FULL equ 0C01A001Dh +STATUS_LOG_MULTIPLEXED equ 0C01A001Eh +STATUS_LOG_DEDICATED equ 0C01A001Fh +STATUS_LOG_ARCHIVE_NOT_IN_PROGRESS equ 0C01A0020h +STATUS_LOG_ARCHIVE_IN_PROGRESS equ 0C01A0021h +STATUS_LOG_EPHEMERAL equ 0C01A0022h +STATUS_LOG_NOT_ENOUGH_CONTAINERS equ 0C01A0023h +STATUS_LOG_CLIENT_ALREADY_REGISTERED equ 0C01A0024h +STATUS_LOG_CLIENT_NOT_REGISTERED equ 0C01A0025h +STATUS_LOG_FULL_HANDLER_IN_PROGRESS equ 0C01A0026h +STATUS_LOG_CONTAINER_READ_FAILED equ 0C01A0027h +STATUS_LOG_CONTAINER_WRITE_FAILED equ 0C01A0028h +STATUS_LOG_CONTAINER_OPEN_FAILED equ 0C01A0029h +STATUS_LOG_CONTAINER_STATE_INVALID equ 0C01A002Ah +STATUS_LOG_STATE_INVALID equ 0C01A002Bh +STATUS_LOG_PINNED equ 0C01A002Ch +STATUS_LOG_METADATA_FLUSH_FAILED equ 0C01A002Dh +STATUS_LOG_INCONSISTENT_SECURITY equ 0C01A002Eh +STATUS_LOG_APPENDED_FLUSH_FAILED equ 0C01A002Fh +STATUS_LOG_PINNED_RESERVATION equ 0C01A0030h +STATUS_VIDEO_HUNG_DISPLAY_DRIVER_THREAD equ 0C01B00EAh +STATUS_VIDEO_HUNG_DISPLAY_DRIVER_THREAD_RECOVERED equ 801B00EBh +STATUS_VIDEO_DRIVER_DEBUG_REPORT_REQUEST equ 401B00ECh +STATUS_MONITOR_NO_DESCRIPTOR equ 0C01D0001h +STATUS_MONITOR_UNKNOWN_DESCRIPTOR_FORMAT equ 0C01D0002h +STATUS_MONITOR_INVALID_DESCRIPTOR_CHECKSUM equ 0C01D0003h +STATUS_MONITOR_INVALID_STANDARD_TIMING_BLOCK equ 0C01D0004h +STATUS_MONITOR_WMI_DATABLOCK_REGISTRATION_FAILED equ 0C01D0005h +STATUS_MONITOR_INVALID_SERIAL_NUMBER_MONDSC_BLOCK equ 0C01D0006h +STATUS_MONITOR_INVALID_USER_FRIENDLY_MONDSC_BLOCK equ 0C01D0007h +STATUS_MONITOR_NO_MORE_DESCRIPTOR_DATA equ 0C01D0008h +STATUS_MONITOR_INVALID_DETAILED_TIMING_BLOCK equ 0C01D0009h +STATUS_GRAPHICS_NOT_EXCLUSIVE_MODE_OWNER equ 0C01E0000h +STATUS_GRAPHICS_INSUFFICIENT_DMA_BUFFER equ 0C01E0001h +STATUS_GRAPHICS_INVALID_DISPLAY_ADAPTER equ 0C01E0002h +STATUS_GRAPHICS_ADAPTER_WAS_RESET equ 0C01E0003h +STATUS_GRAPHICS_INVALID_DRIVER_MODEL equ 0C01E0004h +STATUS_GRAPHICS_PRESENT_MODE_CHANGED equ 0C01E0005h +STATUS_GRAPHICS_PRESENT_OCCLUDED equ 0C01E0006h +STATUS_GRAPHICS_PRESENT_DENIED equ 0C01E0007h +STATUS_GRAPHICS_CANNOTCOLORCONVERT equ 0C01E0008h +STATUS_GRAPHICS_DRIVER_MISMATCH equ 0C01E0009h +STATUS_GRAPHICS_PARTIAL_DATA_POPULATED equ 401E000Ah +STATUS_GRAPHICS_NO_VIDEO_MEMORY equ 0C01E0100h +STATUS_GRAPHICS_CANT_LOCK_MEMORY equ 0C01E0101h +STATUS_GRAPHICS_ALLOCATION_BUSY equ 0C01E0102h +STATUS_GRAPHICS_TOO_MANY_REFERENCES equ 0C01E0103h +STATUS_GRAPHICS_TRY_AGAIN_LATER equ 0C01E0104h +STATUS_GRAPHICS_TRY_AGAIN_NOW equ 0C01E0105h +STATUS_GRAPHICS_ALLOCATION_INVALID equ 0C01E0106h +STATUS_GRAPHICS_UNSWIZZLING_APERTURE_UNAVAILABLE equ 0C01E0107h +STATUS_GRAPHICS_UNSWIZZLING_APERTURE_UNSUPPORTED equ 0C01E0108h +STATUS_GRAPHICS_CANT_EVICT_PINNED_ALLOCATION equ 0C01E0109h +STATUS_GRAPHICS_INVALID_ALLOCATION_USAGE equ 0C01E0110h +STATUS_GRAPHICS_CANT_RENDER_LOCKED_ALLOCATION equ 0C01E0111h +STATUS_GRAPHICS_ALLOCATION_CLOSED equ 0C01E0112h +STATUS_GRAPHICS_INVALID_ALLOCATION_INSTANCE equ 0C01E0113h +STATUS_GRAPHICS_INVALID_ALLOCATION_HANDLE equ 0C01E0114h +STATUS_GRAPHICS_WRONG_ALLOCATION_DEVICE equ 0C01E0115h +STATUS_GRAPHICS_ALLOCATION_CONTENT_LOST equ 0C01E0116h +STATUS_GRAPHICS_GPU_EXCEPTION_ON_DEVICE equ 0C01E0200h +STATUS_GRAPHICS_INVALID_VIDPN_TOPOLOGY equ 0C01E0300h +STATUS_GRAPHICS_VIDPN_TOPOLOGY_NOT_SUPPORTED equ 0C01E0301h +STATUS_GRAPHICS_VIDPN_TOPOLOGY_CURRENTLY_NOT_SUPPORTED equ 0C01E0302h +STATUS_GRAPHICS_INVALID_VIDPN equ 0C01E0303h +STATUS_GRAPHICS_INVALID_VIDEO_PRESENT_SOURCE equ 0C01E0304h +STATUS_GRAPHICS_INVALID_VIDEO_PRESENT_TARGET equ 0C01E0305h +STATUS_GRAPHICS_VIDPN_MODALITY_NOT_SUPPORTED equ 0C01E0306h +STATUS_GRAPHICS_MODE_NOT_PINNED equ 401E0307h +STATUS_GRAPHICS_INVALID_VIDPN_SOURCEMODESET equ 0C01E0308h +STATUS_GRAPHICS_INVALID_VIDPN_TARGETMODESET equ 0C01E0309h +STATUS_GRAPHICS_INVALID_FREQUENCY equ 0C01E030Ah +STATUS_GRAPHICS_INVALID_ACTIVE_REGION equ 0C01E030Bh +STATUS_GRAPHICS_INVALID_TOTAL_REGION equ 0C01E030Ch +STATUS_GRAPHICS_INVALID_VIDEO_PRESENT_SOURCE_MODE equ 0C01E0310h +STATUS_GRAPHICS_INVALID_VIDEO_PRESENT_TARGET_MODE equ 0C01E0311h +STATUS_GRAPHICS_PINNED_MODE_MUST_REMAIN_IN_SET equ 0C01E0312h +STATUS_GRAPHICS_PATH_ALREADY_IN_TOPOLOGY equ 0C01E0313h +STATUS_GRAPHICS_MODE_ALREADY_IN_MODESET equ 0C01E0314h +STATUS_GRAPHICS_INVALID_VIDEOPRESENTSOURCESET equ 0C01E0315h +STATUS_GRAPHICS_INVALID_VIDEOPRESENTTARGETSET equ 0C01E0316h +STATUS_GRAPHICS_SOURCE_ALREADY_IN_SET equ 0C01E0317h +STATUS_GRAPHICS_TARGET_ALREADY_IN_SET equ 0C01E0318h +STATUS_GRAPHICS_INVALID_VIDPN_PRESENT_PATH equ 0C01E0319h +STATUS_GRAPHICS_NO_RECOMMENDED_VIDPN_TOPOLOGY equ 0C01E031Ah +STATUS_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGESET equ 0C01E031Bh +STATUS_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGE equ 0C01E031Ch +STATUS_GRAPHICS_FREQUENCYRANGE_NOT_IN_SET equ 0C01E031Dh +STATUS_GRAPHICS_NO_PREFERRED_MODE equ 401E031Eh +STATUS_GRAPHICS_FREQUENCYRANGE_ALREADY_IN_SET equ 0C01E031Fh +STATUS_GRAPHICS_STALE_MODESET equ 0C01E0320h +STATUS_GRAPHICS_INVALID_MONITOR_SOURCEMODESET equ 0C01E0321h +STATUS_GRAPHICS_INVALID_MONITOR_SOURCE_MODE equ 0C01E0322h +STATUS_GRAPHICS_NO_RECOMMENDED_FUNCTIONAL_VIDPN equ 0C01E0323h +STATUS_GRAPHICS_MODE_ID_MUST_BE_UNIQUE equ 0C01E0324h +STATUS_GRAPHICS_EMPTY_ADAPTER_MONITOR_MODE_SUPPORT_INTERSECTION equ 0C01E0325h +STATUS_GRAPHICS_VIDEO_PRESENT_TARGETS_LESS_THAN_SOURCES equ 0C01E0326h +STATUS_GRAPHICS_PATH_NOT_IN_TOPOLOGY equ 0C01E0327h +STATUS_GRAPHICS_ADAPTER_MUST_HAVE_AT_LEAST_ONE_SOURCE equ 0C01E0328h +STATUS_GRAPHICS_ADAPTER_MUST_HAVE_AT_LEAST_ONE_TARGET equ 0C01E0329h +STATUS_GRAPHICS_INVALID_MONITORDESCRIPTORSET equ 0C01E032Ah +STATUS_GRAPHICS_INVALID_MONITORDESCRIPTOR equ 0C01E032Bh +STATUS_GRAPHICS_MONITORDESCRIPTOR_NOT_IN_SET equ 0C01E032Ch +STATUS_GRAPHICS_MONITORDESCRIPTOR_ALREADY_IN_SET equ 0C01E032Dh +STATUS_GRAPHICS_MONITORDESCRIPTOR_ID_MUST_BE_UNIQUE equ 0C01E032Eh +STATUS_GRAPHICS_INVALID_VIDPN_TARGET_SUBSET_TYPE equ 0C01E032Fh +STATUS_GRAPHICS_RESOURCES_NOT_RELATED equ 0C01E0330h +STATUS_GRAPHICS_SOURCE_ID_MUST_BE_UNIQUE equ 0C01E0331h +STATUS_GRAPHICS_TARGET_ID_MUST_BE_UNIQUE equ 0C01E0332h +STATUS_GRAPHICS_NO_AVAILABLE_VIDPN_TARGET equ 0C01E0333h +STATUS_GRAPHICS_MONITOR_COULD_NOT_BE_ASSOCIATED_WITH_ADAPTER equ 0C01E0334h +STATUS_GRAPHICS_NO_VIDPNMGR equ 0C01E0335h +STATUS_GRAPHICS_NO_ACTIVE_VIDPN equ 0C01E0336h +STATUS_GRAPHICS_STALE_VIDPN_TOPOLOGY equ 0C01E0337h +STATUS_GRAPHICS_MONITOR_NOT_CONNECTED equ 0C01E0338h +STATUS_GRAPHICS_SOURCE_NOT_IN_TOPOLOGY equ 0C01E0339h +STATUS_GRAPHICS_INVALID_PRIMARYSURFACE_SIZE equ 0C01E033Ah +STATUS_GRAPHICS_INVALID_VISIBLEREGION_SIZE equ 0C01E033Bh +STATUS_GRAPHICS_INVALID_STRIDE equ 0C01E033Ch +STATUS_GRAPHICS_INVALID_PIXELFORMAT equ 0C01E033Dh +STATUS_GRAPHICS_INVALID_COLORBASIS equ 0C01E033Eh +STATUS_GRAPHICS_INVALID_PIXELVALUEACCESSMODE equ 0C01E033Fh +STATUS_GRAPHICS_TARGET_NOT_IN_TOPOLOGY equ 0C01E0340h +STATUS_GRAPHICS_NO_DISPLAY_MODE_MANAGEMENT_SUPPORT equ 0C01E0341h +STATUS_GRAPHICS_VIDPN_SOURCE_IN_USE equ 0C01E0342h +STATUS_GRAPHICS_CANT_ACCESS_ACTIVE_VIDPN equ 0C01E0343h +STATUS_GRAPHICS_INVALID_PATH_IMPORTANCE_ORDINAL equ 0C01E0344h +STATUS_GRAPHICS_INVALID_PATH_CONTENT_GEOMETRY_TRANSFORMATION equ 0C01E0345h +STATUS_GRAPHICS_PATH_CONTENT_GEOMETRY_TRANSFORMATION_NOT_SUPPORTED equ 0C01E0346h +STATUS_GRAPHICS_INVALID_GAMMA_RAMP equ 0C01E0347h +STATUS_GRAPHICS_GAMMA_RAMP_NOT_SUPPORTED equ 0C01E0348h +STATUS_GRAPHICS_MULTISAMPLING_NOT_SUPPORTED equ 0C01E0349h +STATUS_GRAPHICS_MODE_NOT_IN_MODESET equ 0C01E034Ah +STATUS_GRAPHICS_DATASET_IS_EMPTY equ 401E034Bh +STATUS_GRAPHICS_NO_MORE_ELEMENTS_IN_DATASET equ 401E034Ch +STATUS_GRAPHICS_INVALID_VIDPN_TOPOLOGY_RECOMMENDATION_REASON equ 0C01E034Dh +STATUS_GRAPHICS_INVALID_PATH_CONTENT_TYPE equ 0C01E034Eh +STATUS_GRAPHICS_INVALID_COPYPROTECTION_TYPE equ 0C01E034Fh +STATUS_GRAPHICS_UNASSIGNED_MODESET_ALREADY_EXISTS equ 0C01E0350h +STATUS_GRAPHICS_PATH_CONTENT_GEOMETRY_TRANSFORMATION_NOT_PINNED equ 401E0351h +STATUS_GRAPHICS_INVALID_SCANLINE_ORDERING equ 0C01E0352h +STATUS_GRAPHICS_TOPOLOGY_CHANGES_NOT_ALLOWED equ 0C01E0353h +STATUS_GRAPHICS_NO_AVAILABLE_IMPORTANCE_ORDINALS equ 0C01E0354h +STATUS_GRAPHICS_INCOMPATIBLE_PRIVATE_FORMAT equ 0C01E0355h +STATUS_GRAPHICS_INVALID_MODE_PRUNING_ALGORITHM equ 0C01E0356h +STATUS_GRAPHICS_INVALID_MONITOR_CAPABILITY_ORIGIN equ 0C01E0357h +STATUS_GRAPHICS_INVALID_MONITOR_FREQUENCYRANGE_CONSTRAINT equ 0C01E0358h +STATUS_GRAPHICS_MAX_NUM_PATHS_REACHED equ 0C01E0359h +STATUS_GRAPHICS_CANCEL_VIDPN_TOPOLOGY_AUGMENTATION equ 0C01E035Ah +STATUS_GRAPHICS_INVALID_CLIENT_TYPE equ 0C01E035Bh +STATUS_GRAPHICS_CLIENTVIDPN_NOT_SET equ 0C01E035Ch +STATUS_GRAPHICS_SPECIFIED_CHILD_ALREADY_CONNECTED equ 0C01E0400h +STATUS_GRAPHICS_CHILD_DESCRIPTOR_NOT_SUPPORTED equ 0C01E0401h +STATUS_GRAPHICS_UNKNOWN_CHILD_STATUS equ 401E042Fh +STATUS_GRAPHICS_NOT_A_LINKED_ADAPTER equ 0C01E0430h +STATUS_GRAPHICS_LEADLINK_NOT_ENUMERATED equ 0C01E0431h +STATUS_GRAPHICS_CHAINLINKS_NOT_ENUMERATED equ 0C01E0432h +STATUS_GRAPHICS_ADAPTER_CHAIN_NOT_READY equ 0C01E0433h +STATUS_GRAPHICS_CHAINLINKS_NOT_STARTED equ 0C01E0434h +STATUS_GRAPHICS_CHAINLINKS_NOT_POWERED_ON equ 0C01E0435h +STATUS_GRAPHICS_INCONSISTENT_DEVICE_LINK_STATE equ 0C01E0436h +STATUS_GRAPHICS_LEADLINK_START_DEFERRED equ 401E0437h +STATUS_GRAPHICS_NOT_POST_DEVICE_DRIVER equ 0C01E0438h +STATUS_GRAPHICS_POLLING_TOO_FREQUENTLY equ 401E0439h +STATUS_GRAPHICS_START_DEFERRED equ 401E043Ah +STATUS_GRAPHICS_ADAPTER_ACCESS_NOT_EXCLUDED equ 0C01E043Bh +STATUS_GRAPHICS_OPM_NOT_SUPPORTED equ 0C01E0500h +STATUS_GRAPHICS_COPP_NOT_SUPPORTED equ 0C01E0501h +STATUS_GRAPHICS_UAB_NOT_SUPPORTED equ 0C01E0502h +STATUS_GRAPHICS_OPM_INVALID_ENCRYPTED_PARAMETERS equ 0C01E0503h +STATUS_GRAPHICS_OPM_NO_PROTECTED_OUTPUTS_EXIST equ 0C01E0505h +STATUS_GRAPHICS_OPM_INTERNAL_ERROR equ 0C01E050Bh +STATUS_GRAPHICS_OPM_INVALID_HANDLE equ 0C01E050Ch +STATUS_GRAPHICS_PVP_INVALID_CERTIFICATE_LENGTH equ 0C01E050Eh +STATUS_GRAPHICS_OPM_SPANNING_MODE_ENABLED equ 0C01E050Fh +STATUS_GRAPHICS_OPM_THEATER_MODE_ENABLED equ 0C01E0510h +STATUS_GRAPHICS_PVP_HFS_FAILED equ 0C01E0511h +STATUS_GRAPHICS_OPM_INVALID_SRM equ 0C01E0512h +STATUS_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_HDCP equ 0C01E0513h +STATUS_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_ACP equ 0C01E0514h +STATUS_GRAPHICS_OPM_OUTPUT_DOES_NOT_SUPPORT_CGMSA equ 0C01E0515h +STATUS_GRAPHICS_OPM_HDCP_SRM_NEVER_SET equ 0C01E0516h +STATUS_GRAPHICS_OPM_RESOLUTION_TOO_HIGH equ 0C01E0517h +STATUS_GRAPHICS_OPM_ALL_HDCP_HARDWARE_ALREADY_IN_USE equ 0C01E0518h +STATUS_GRAPHICS_OPM_PROTECTED_OUTPUT_NO_LONGER_EXISTS equ 0C01E051Ah +STATUS_GRAPHICS_OPM_PROTECTED_OUTPUT_DOES_NOT_HAVE_COPP_SEMANTICS equ 0C01E051Ch +STATUS_GRAPHICS_OPM_INVALID_INFORMATION_REQUEST equ 0C01E051Dh +STATUS_GRAPHICS_OPM_DRIVER_INTERNAL_ERROR equ 0C01E051Eh +STATUS_GRAPHICS_OPM_PROTECTED_OUTPUT_DOES_NOT_HAVE_OPM_SEMANTICS equ 0C01E051Fh +STATUS_GRAPHICS_OPM_SIGNALING_NOT_SUPPORTED equ 0C01E0520h +STATUS_GRAPHICS_OPM_INVALID_CONFIGURATION_REQUEST equ 0C01E0521h +STATUS_GRAPHICS_I2C_NOT_SUPPORTED equ 0C01E0580h +STATUS_GRAPHICS_I2C_DEVICE_DOES_NOT_EXIST equ 0C01E0581h +STATUS_GRAPHICS_I2C_ERROR_TRANSMITTING_DATA equ 0C01E0582h +STATUS_GRAPHICS_I2C_ERROR_RECEIVING_DATA equ 0C01E0583h +STATUS_GRAPHICS_DDCCI_VCP_NOT_SUPPORTED equ 0C01E0584h +STATUS_GRAPHICS_DDCCI_INVALID_DATA equ 0C01E0585h +STATUS_GRAPHICS_DDCCI_MONITOR_RETURNED_INVALID_TIMING_STATUS_BYTE equ 0C01E0586h +STATUS_GRAPHICS_DDCCI_INVALID_CAPABILITIES_STRING equ 0C01E0587h +STATUS_GRAPHICS_MCA_INTERNAL_ERROR equ 0C01E0588h +STATUS_GRAPHICS_DDCCI_INVALID_MESSAGE_COMMAND equ 0C01E0589h +STATUS_GRAPHICS_DDCCI_INVALID_MESSAGE_LENGTH equ 0C01E058Ah +STATUS_GRAPHICS_DDCCI_INVALID_MESSAGE_CHECKSUM equ 0C01E058Bh +STATUS_GRAPHICS_INVALID_PHYSICAL_MONITOR_HANDLE equ 0C01E058Ch +STATUS_GRAPHICS_MONITOR_NO_LONGER_EXISTS equ 0C01E058Dh +STATUS_GRAPHICS_ONLY_CONSOLE_SESSION_SUPPORTED equ 0C01E05E0h +STATUS_GRAPHICS_NO_DISPLAY_DEVICE_CORRESPONDS_TO_NAME equ 0C01E05E1h +STATUS_GRAPHICS_DISPLAY_DEVICE_NOT_ATTACHED_TO_DESKTOP equ 0C01E05E2h +STATUS_GRAPHICS_MIRRORING_DEVICES_NOT_SUPPORTED equ 0C01E05E3h +STATUS_GRAPHICS_INVALID_POINTER equ 0C01E05E4h +STATUS_GRAPHICS_NO_MONITORS_CORRESPOND_TO_DISPLAY_DEVICE equ 0C01E05E5h +STATUS_GRAPHICS_PARAMETER_ARRAY_TOO_SMALL equ 0C01E05E6h +STATUS_GRAPHICS_INTERNAL_ERROR equ 0C01E05E7h +STATUS_GRAPHICS_SESSION_TYPE_CHANGE_IN_PROGRESS equ 0C01E05E8h +STATUS_FVE_LOCKED_VOLUME equ 0C0210000h +STATUS_FVE_NOT_ENCRYPTED equ 0C0210001h +STATUS_FVE_BAD_INFORMATION equ 0C0210002h +STATUS_FVE_TOO_SMALL equ 0C0210003h +STATUS_FVE_FAILED_WRONG_FS equ 0C0210004h +STATUS_FVE_FAILED_BAD_FS equ 0C0210005h +STATUS_FVE_FS_NOT_EXTENDED equ 0C0210006h +STATUS_FVE_FS_MOUNTED equ 0C0210007h +STATUS_FVE_NO_LICENSE equ 0C0210008h +STATUS_FVE_ACTION_NOT_ALLOWED equ 0C0210009h +STATUS_FVE_BAD_DATA equ 0C021000Ah +STATUS_FVE_VOLUME_NOT_BOUND equ 0C021000Bh +STATUS_FVE_NOT_DATA_VOLUME equ 0C021000Ch +STATUS_FVE_CONV_READ_ERROR equ 0C021000Dh +STATUS_FVE_CONV_WRITE_ERROR equ 0C021000Eh +STATUS_FVE_OVERLAPPED_UPDATE equ 0C021000Fh +STATUS_FVE_FAILED_SECTOR_SIZE equ 0C0210010h +STATUS_FVE_FAILED_AUTHENTICATION equ 0C0210011h +STATUS_FVE_NOT_OS_VOLUME equ 0C0210012h +STATUS_FVE_KEYFILE_NOT_FOUND equ 0C0210013h +STATUS_FVE_KEYFILE_INVALID equ 0C0210014h +STATUS_FVE_KEYFILE_NO_VMK equ 0C0210015h +STATUS_FVE_TPM_DISABLED equ 0C0210016h +STATUS_FVE_TPM_SRK_AUTH_NOT_ZERO equ 0C0210017h +STATUS_FVE_TPM_INVALID_PCR equ 0C0210018h +STATUS_FVE_TPM_NO_VMK equ 0C0210019h +STATUS_FVE_PIN_INVALID equ 0C021001Ah +STATUS_FVE_AUTH_INVALID_APPLICATION equ 0C021001Bh +STATUS_FVE_AUTH_INVALID_CONFIG equ 0C021001Ch +STATUS_FVE_DEBUGGER_ENABLED equ 0C021001Dh +STATUS_FVE_DRY_RUN_FAILED equ 0C021001Eh +STATUS_FVE_BAD_METADATA_POINTER equ 0C021001Fh +STATUS_FVE_OLD_METADATA_COPY equ 0C0210020h +STATUS_FVE_REBOOT_REQUIRED equ 0C0210021h +STATUS_FVE_RAW_ACCESS equ 0C0210022h +STATUS_FVE_RAW_BLOCKED equ 0C0210023h +STATUS_FWP_CALLOUT_NOT_FOUND equ 0C0220001h +STATUS_FWP_CONDITION_NOT_FOUND equ 0C0220002h +STATUS_FWP_FILTER_NOT_FOUND equ 0C0220003h +STATUS_FWP_LAYER_NOT_FOUND equ 0C0220004h +STATUS_FWP_PROVIDER_NOT_FOUND equ 0C0220005h +STATUS_FWP_PROVIDER_CONTEXT_NOT_FOUND equ 0C0220006h +STATUS_FWP_SUBLAYER_NOT_FOUND equ 0C0220007h +STATUS_FWP_NOT_FOUND equ 0C0220008h +STATUS_FWP_ALREADY_EXISTS equ 0C0220009h +STATUS_FWP_IN_USE equ 0C022000Ah +STATUS_FWP_DYNAMIC_SESSION_IN_PROGRESS equ 0C022000Bh +STATUS_FWP_WRONG_SESSION equ 0C022000Ch +STATUS_FWP_NO_TXN_IN_PROGRESS equ 0C022000Dh +STATUS_FWP_TXN_IN_PROGRESS equ 0C022000Eh +STATUS_FWP_TXN_ABORTED equ 0C022000Fh +STATUS_FWP_SESSION_ABORTED equ 0C0220010h +STATUS_FWP_INCOMPATIBLE_TXN equ 0C0220011h +STATUS_FWP_TIMEOUT equ 0C0220012h +STATUS_FWP_NET_EVENTS_DISABLED equ 0C0220013h +STATUS_FWP_INCOMPATIBLE_LAYER equ 0C0220014h +STATUS_FWP_KM_CLIENTS_ONLY equ 0C0220015h +STATUS_FWP_LIFETIME_MISMATCH equ 0C0220016h +STATUS_FWP_BUILTIN_OBJECT equ 0C0220017h +STATUS_FWP_TOO_MANY_CALLOUTS equ 0C0220018h +STATUS_FWP_NOTIFICATION_DROPPED equ 0C0220019h +STATUS_FWP_TRAFFIC_MISMATCH equ 0C022001Ah +STATUS_FWP_INCOMPATIBLE_SA_STATE equ 0C022001Bh +STATUS_FWP_NULL_POINTER equ 0C022001Ch +STATUS_FWP_INVALID_ENUMERATOR equ 0C022001Dh +STATUS_FWP_INVALID_FLAGS equ 0C022001Eh +STATUS_FWP_INVALID_NET_MASK equ 0C022001Fh +STATUS_FWP_INVALID_RANGE equ 0C0220020h +STATUS_FWP_INVALID_INTERVAL equ 0C0220021h +STATUS_FWP_ZERO_LENGTH_ARRAY equ 0C0220022h +STATUS_FWP_NULL_DISPLAY_NAME equ 0C0220023h +STATUS_FWP_INVALID_ACTION_TYPE equ 0C0220024h +STATUS_FWP_INVALID_WEIGHT equ 0C0220025h +STATUS_FWP_MATCH_TYPE_MISMATCH equ 0C0220026h +STATUS_FWP_TYPE_MISMATCH equ 0C0220027h +STATUS_FWP_OUT_OF_BOUNDS equ 0C0220028h +STATUS_FWP_RESERVED equ 0C0220029h +STATUS_FWP_DUPLICATE_CONDITION equ 0C022002Ah +STATUS_FWP_DUPLICATE_KEYMOD equ 0C022002Bh +STATUS_FWP_ACTION_INCOMPATIBLE_WITH_LAYER equ 0C022002Ch +STATUS_FWP_ACTION_INCOMPATIBLE_WITH_SUBLAYER equ 0C022002Dh +STATUS_FWP_CONTEXT_INCOMPATIBLE_WITH_LAYER equ 0C022002Eh +STATUS_FWP_CONTEXT_INCOMPATIBLE_WITH_CALLOUT equ 0C022002Fh +STATUS_FWP_INCOMPATIBLE_AUTH_METHOD equ 0C0220030h +STATUS_FWP_INCOMPATIBLE_DH_GROUP equ 0C0220031h +STATUS_FWP_EM_NOT_SUPPORTED equ 0C0220032h +STATUS_FWP_NEVER_MATCH equ 0C0220033h +STATUS_FWP_PROVIDER_CONTEXT_MISMATCH equ 0C0220034h +STATUS_FWP_INVALID_PARAMETER equ 0C0220035h +STATUS_FWP_TOO_MANY_SUBLAYERS equ 0C0220036h +STATUS_FWP_CALLOUT_NOTIFICATION_FAILED equ 0C0220037h +STATUS_FWP_INVALID_AUTH_TRANSFORM equ 0C0220038h +STATUS_FWP_INVALID_CIPHER_TRANSFORM equ 0C0220039h +STATUS_FWP_TCPIP_NOT_READY equ 0C0220100h +STATUS_FWP_INJECT_HANDLE_CLOSING equ 0C0220101h +STATUS_FWP_INJECT_HANDLE_STALE equ 0C0220102h +STATUS_FWP_CANNOT_PEND equ 0C0220103h +STATUS_NDIS_CLOSING equ 0C0230002h +STATUS_NDIS_BAD_VERSION equ 0C0230004h +STATUS_NDIS_BAD_CHARACTERISTICS equ 0C0230005h +STATUS_NDIS_ADAPTER_NOT_FOUND equ 0C0230006h +STATUS_NDIS_OPEN_FAILED equ 0C0230007h +STATUS_NDIS_DEVICE_FAILED equ 0C0230008h +STATUS_NDIS_MULTICAST_FULL equ 0C0230009h +STATUS_NDIS_MULTICAST_EXISTS equ 0C023000Ah +STATUS_NDIS_MULTICAST_NOT_FOUND equ 0C023000Bh +STATUS_NDIS_REQUEST_ABORTED equ 0C023000Ch +STATUS_NDIS_RESET_IN_PROGRESS equ 0C023000Dh +STATUS_NDIS_NOT_SUPPORTED equ 0C02300BBh +STATUS_NDIS_INVALID_PACKET equ 0C023000Fh +STATUS_NDIS_ADAPTER_NOT_READY equ 0C0230011h +STATUS_NDIS_INVALID_LENGTH equ 0C0230014h +STATUS_NDIS_INVALID_DATA equ 0C0230015h +STATUS_NDIS_BUFFER_TOO_SHORT equ 0C0230016h +STATUS_NDIS_INVALID_OID equ 0C0230017h +STATUS_NDIS_ADAPTER_REMOVED equ 0C0230018h +STATUS_NDIS_UNSUPPORTED_MEDIA equ 0C0230019h +STATUS_NDIS_GROUP_ADDRESS_IN_USE equ 0C023001Ah +STATUS_NDIS_FILE_NOT_FOUND equ 0C023001Bh +STATUS_NDIS_ERROR_READING_FILE equ 0C023001Ch +STATUS_NDIS_ALREADY_MAPPED equ 0C023001Dh +STATUS_NDIS_RESOURCE_CONFLICT equ 0C023001Eh +STATUS_NDIS_MEDIA_DISCONNECTED equ 0C023001Fh +STATUS_NDIS_INVALID_ADDRESS equ 0C0230022h +STATUS_NDIS_INVALID_DEVICE_REQUEST equ 0C0230010h +STATUS_NDIS_PAUSED equ 0C023002Ah +STATUS_NDIS_INTERFACE_NOT_FOUND equ 0C023002Bh +STATUS_NDIS_UNSUPPORTED_REVISION equ 0C023002Ch +STATUS_NDIS_INVALID_PORT equ 0C023002Dh +STATUS_NDIS_INVALID_PORT_STATE equ 0C023002Eh +STATUS_NDIS_LOW_POWER_STATE equ 0C023002Fh +STATUS_NDIS_DOT11_AUTO_CONFIG_ENABLED equ 0C0232000h +STATUS_NDIS_DOT11_MEDIA_IN_USE equ 0C0232001h +STATUS_NDIS_DOT11_POWER_STATE_INVALID equ 0C0232002h +STATUS_NDIS_INDICATION_REQUIRED equ 40230001h +STATUS_IPSEC_BAD_SPI equ 0C0360001h +STATUS_IPSEC_SA_LIFETIME_EXPIRED equ 0C0360002h +STATUS_IPSEC_WRONG_SA equ 0C0360003h +STATUS_IPSEC_REPLAY_CHECK_FAILED equ 0C0360004h +STATUS_IPSEC_INVALID_PACKET equ 0C0360005h +STATUS_IPSEC_INTEGRITY_CHECK_FAILED equ 0C0360006h +STATUS_IPSEC_CLEAR_TEXT_DROP equ 0C0360007h + +;;;; end ntstatus + +;;;; lmserver + +;-------------------------------------[ lmcons.h ]-------------------------------------- +CNLEN equ 15 +LM20_CNLEN equ 15 +DNLEN equ CNLEN +LM20_DNLEN equ LM20_CNLEN +UNCLEN equ CNLEN+2 +LM20_UNCLEN equ LM20_CNLEN+2 +NNLEN equ 80 +LM20_NNLEN equ 12 +RMLEN equ UNCLEN+1+NNLEN +LM20_RMLEN equ LM20_UNCLEN+1+LM20_NNLEN +SNLEN equ 80 +LM20_SNLEN equ 15 +STXTLEN equ 256 +LM20_STXTLEN equ 63 +PATHLEN equ 256 +LM20_PATHLEN equ 256 +DEVLEN equ 80 +LM20_DEVLEN equ 8 +EVLEN equ 16 +UNLEN equ 256 +LM20_UNLEN equ 20 +GNLEN equ UNLEN +LM20_GNLEN equ LM20_UNLEN +PWLEN equ 256 +LM20_PWLEN equ 14 +SHPWLEN equ 8 +CLTYPE_LEN equ 12 +MAXCOMMENTSZ equ 256 +LM20_MAXCOMMENTSZ equ 48 +QNLEN equ NNLEN +LM20_QNLEN equ LM20_NNLEN +ALERTSZ equ 128 +MAXDEVENTRIES equ sizeof int 4*8 +NETBIOS_NAME_LEN equ 16 +MAX_PREFERRED_LENGTH equ -1 +CRYPT_KEY_LEN equ 7 +CRYPT_TXT_LEN equ 8 +ENCRYPTED_PWLEN equ 16 +SESSION_PWLEN equ 24 +SESSION_CRYPT_KLEN equ 21 +PARMNUM_ALL equ 0 +PARM_ERROR_UNKNOWN equ -1 +PARM_ERROR_NONE equ 0 +PARMNUM_BASE_INFOLEVEL equ 1000 +MESSAGE_FILENAME equ A("NETMSG") +OS2MSG_FILENAME equ A("BASE") +HELP_MSG_FILENAME equ A("NETH") +BACKUP_MSG_FILENAME equ A("BAK.MSG") +PLATFORM_ID_DOS equ 300 +PLATFORM_ID_OS2 equ 400 +PLATFORM_ID_NT equ 500 +PLATFORM_ID_OSF equ 600 +PLATFORM_ID_VMS equ 700 +MIN_LANMAN_MESSAGE_ID equ NERR_BASE +MAX_LANMAN_MESSAGE_ID equ 5799 + +;==================================== LMServer.h ================================= +SV_PLATFORM_ID_OS2 equ 400 +SV_PLATFORM_ID_NT equ 500 +MAJOR_VERSION_MASK equ 0Fh +SV_TYPE_WORKSTATION equ 1 +SV_TYPE_SERVER equ 2 +SV_TYPE_SQLSERVER equ 4 +SV_TYPE_DOMAIN_CTRL equ 8 +SV_TYPE_DOMAIN_BAKCTRL equ 10h +SV_TYPE_TIME_SOURCE equ 20h +SV_TYPE_AFP equ 40h +SV_TYPE_NOVELL equ 80h +SV_TYPE_DOMAIN_MEMBER equ 100h +SV_TYPE_PRINTQ_SERVER equ 200h +SV_TYPE_DIALIN_SERVER equ 400h +SV_TYPE_XENIX_SERVER equ 800h +SV_TYPE_SERVER_UNIX equ SV_TYPE_XENIX_SERVER +SV_TYPE_NT equ 1000h +SV_TYPE_WFW equ 2000h +SV_TYPE_SERVER_MFPN equ 4000h +SV_TYPE_SERVER_NT equ 8000h +SV_TYPE_POTENTIAL_BROWSER equ 10000h +SV_TYPE_BACKUP_BROWSER equ 20000h +SV_TYPE_MASTER_BROWSER equ 40000h +SV_TYPE_DOMAIN_MASTER equ 80000h +SV_TYPE_SERVER_OSF equ 100000h +SV_TYPE_SERVER_VMS equ 200000h +SV_TYPE_WINDOWS equ 400000h +SV_TYPE_DFS equ 800000h +SV_TYPE_CLUSTER_NT equ 1000000h +SV_TYPE_DCE equ 10000000h +SV_TYPE_ALTERNATE_XPORT equ 20000000h +SV_TYPE_LOCAL_LIST_ONLY equ 40000000h +SV_TYPE_DOMAIN_ENUM equ 80000000h +SV_TYPE_ALL equ 0FFFFFFFFh +SV_NODISC equ (-1) +SV_USERSECURITY equ 1 +SV_SHARESECURITY equ 0 +SV_HIDDEN equ 1 +SV_VISIBLE equ 0 +SV_PLATFORM_ID_PARMNUM equ 101 +SV_NAME_PARMNUM equ 102 +SV_VERSION_MAJOR_PARMNUM equ 103 +SV_VERSION_MINOR_PARMNUM equ 104 +SV_TYPE_PARMNUM equ 105 +SV_COMMENT_PARMNUM equ 5 +SV_USERS_PARMNUM equ 107 +SV_DISC_PARMNUM equ 10 +SV_HIDDEN_PARMNUM equ 16 +SV_ANNOUNCE_PARMNUM equ 17 +SV_ANNDELTA_PARMNUM equ 18 +SV_USERPATH_PARMNUM equ 112 +SV_ULIST_MTIME_PARMNUM equ 401 +SV_GLIST_MTIME_PARMNUM equ 402 +SV_ALIST_MTIME_PARMNUM equ 403 +SV_ALERTS_PARMNUM equ 11 +SV_SECURITY_PARMNUM equ 405 +SV_NUMADMIN_PARMNUM equ 406 +SV_LANMASK_PARMNUM equ 407 +SV_GUESTACC_PARMNUM equ 408 +SV_CHDEVQ_PARMNUM equ 410 +SV_CHDEVJOBS_PARMNUM equ 411 +SV_CONNECTIONS_PARMNUM equ 412 +SV_SHARES_PARMNUM equ 413 +SV_OPENFILES_PARMNUM equ 414 +SV_SESSREQS_PARMNUM equ 417 +SV_ACTIVELOCKS_PARMNUM equ 419 +SV_NUMREQBUF_PARMNUM equ 420 +SV_NUMBIGBUF_PARMNUM equ 422 +SV_NUMFILETASKS_PARMNUM equ 423 +SV_ALERTSCHED_PARMNUM equ 37 +SV_ERRORALERT_PARMNUM equ 38 +SV_LOGONALERT_PARMNUM equ 39 +SV_ACCESSALERT_PARMNUM equ 40 +SV_DISKALERT_PARMNUM equ 41 +SV_NETIOALERT_PARMNUM equ 42 +SV_MAXAUDITSZ_PARMNUM equ 43 +SV_SRVHEURISTICS_PARMNUM equ 431 +SV_SESSOPENS_PARMNUM equ 501 +SV_SESSVCS_PARMNUM equ 502 +SV_OPENSEARCH_PARMNUM equ 503 +SV_SIZREQBUF_PARMNUM equ 504 +SV_INITWORKITEMS_PARMNUM equ 505 +SV_MAXWORKITEMS_PARMNUM equ 506 +SV_RAWWORKITEMS_PARMNUM equ 507 +SV_IRPSTACKSIZE_PARMNUM equ 508 +SV_MAXRAWBUFLEN_PARMNUM equ 509 +SV_SESSUSERS_PARMNUM equ 510 +SV_SESSCONNS_PARMNUM equ 511 +SV_MAXNONPAGEDMEMORYUSAGE_PARMNUM equ 512 +SV_MAXPAGEDMEMORYUSAGE_PARMNUM equ 513 +SV_ENABLESOFTCOMPAT_PARMNUM equ 514 +SV_ENABLEFORCEDLOGOFF_PARMNUM equ 515 +SV_TIMESOURCE_PARMNUM equ 516 +SV_ACCEPTDOWNLEVELAPIS_PARMNUM equ 517 +SV_LMANNOUNCE_PARMNUM equ 518 +SV_DOMAIN_PARMNUM equ 519 +SV_MAXCOPYREADLEN_PARMNUM equ 520 +SV_MAXCOPYWRITELEN_PARMNUM equ 521 +SV_MINKEEPSEARCH_PARMNUM equ 522 +SV_MAXKEEPSEARCH_PARMNUM equ 523 +SV_MINKEEPCOMPLSEARCH_PARMNUM equ 524 +SV_MAXKEEPCOMPLSEARCH_PARMNUM equ 525 +SV_THREADCOUNTADD_PARMNUM equ 526 +SV_NUMBLOCKTHREADS_PARMNUM equ 527 +SV_SCAVTIMEOUT_PARMNUM equ 528 +SV_MINRCVQUEUE_PARMNUM equ 529 +SV_MINFREEWORKITEMS_PARMNUM equ 530 +SV_XACTMEMSIZE_PARMNUM equ 531 +SV_THREADPRIORITY_PARMNUM equ 532 +SV_MAXMPXCT_PARMNUM equ 533 +SV_OPLOCKBREAKWAIT_PARMNUM equ 534 +SV_OPLOCKBREAKRESPONSEWAIT_PARMNUM equ 535 +SV_ENABLEOPLOCKS_PARMNUM equ 536 +SV_ENABLEOPLOCKFORCECLOSE_PARMNUM equ 537 +SV_ENABLEFCBOPENS_PARMNUM equ 538 +SV_ENABLERAW_PARMNUM equ 539 +SV_ENABLESHAREDNETDRIVES_PARMNUM equ 540 +SV_MINFREECONNECTIONS_PARMNUM equ 541 +SV_MAXFREECONNECTIONS_PARMNUM equ 542 +SV_INITSESSTABLE_PARMNUM equ 543 +SV_INITCONNTABLE_PARMNUM equ 544 +SV_INITFILETABLE_PARMNUM equ 545 +SV_INITSEARCHTABLE_PARMNUM equ 546 +SV_ALERTSCHEDULE_PARMNUM equ 547 +SV_ERRORTHRESHOLD_PARMNUM equ 548 +SV_NETWORKERRORTHRESHOLD_PARMNUM equ 549 +SV_DISKSPACETHRESHOLD_PARMNUM equ 550 +SV_MAXLINKDELAY_PARMNUM equ 552 +SV_MINLINKTHROUGHPUT_PARMNUM equ 553 +SV_LINKINFOVALIDTIME_PARMNUM equ 554 +SV_SCAVQOSINFOUPDATETIME_PARMNUM equ 555 +SV_MAXWORKITEMIDLETIME_PARMNUM equ 556 +SV_MAXRAWWORKITEMS_PARMNUM equ 557 +SV_PRODUCTTYPE_PARMNUM equ 560 +SV_SERVERSIZE_PARMNUM equ 561 +SV_CONNECTIONLESSAUTODISC_PARMNUM equ 562 +SV_SHARINGVIOLATIONRETRIES_PARMNUM equ 563 +SV_SHARINGVIOLATIONDELAY_PARMNUM equ 564 +SV_MAXGLOBALOPENSEARCH_PARMNUM equ 565 +SV_REMOVEDUPLICATESEARCHES_PARMNUM equ 566 +SV_LOCKVIOLATIONRETRIES_PARMNUM equ 567 +SV_LOCKVIOLATIONOFFSET_PARMNUM equ 568 +SV_LOCKVIOLATIONDELAY_PARMNUM equ 569 +SV_MDLREADSWITCHOVER_PARMNUM equ 570 +SV_CACHEDOPENLIMIT_PARMNUM equ 571 +SV_CRITICALTHREADS_PARMNUM equ 572 +SV_RESTRICTNULLSESSACCESS_PARMNUM equ 573 +SV_ENABLEWFW311DIRECTIPX_PARMNUM equ 574 +SV_OTHERQUEUEAFFINITY_PARMNUM equ 575 +SV_QUEUESAMPLESECS_PARMNUM equ 576 +SV_BALANCECOUNT_PARMNUM equ 577 +SV_PREFERREDAFFINITY_PARMNUM equ 578 +SV_MAXFREERFCBS_PARMNUM equ 579 +SV_MAXFREEMFCBS_PARMNUM equ 580 +SV_MAXFREELFCBS_PARMNUM equ 581 +SV_MAXFREEPAGEDPOOLCHUNKS_PARMNUM equ 582 +SV_MINPAGEDPOOLCHUNKSIZE_PARMNUM equ 583 +SV_MAXPAGEDPOOLCHUNKSIZE_PARMNUM equ 584 +SV_SENDSFROMPREFERREDPROCESSOR_PARMNUM equ 585 +SV_MAXTHREADSPERQUEUE_PARMNUM equ 586 +SV_CACHEDDIRECTORYLIMIT_PARMNUM equ 587 +SV_MAXCOPYLENGTH_PARMNUM equ 588 +SV_ENABLEBULKTRANSFER_PARMNUM equ 589 +SV_ENABLECOMPRESSION_PARMNUM equ 590 +SV_AUTOSHAREWKS_PARMNUM equ 591 +SV_AUTOSHARESERVER_PARMNUM equ 592 +SV_ENABLESECURITYSIGNATURE_PARMNUM equ 593 +SV_REQUIRESECURITYSIGNATURE_PARMNUM equ 594 +SV_MINCLIENTBUFFERSIZE_PARMNUM equ 595 +SV_CONNECTIONNOSESSIONSTIMEOUT_PARMNUM equ 596 +SV_COMMENT_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + SV_COMMENT_PARMNUM) +SV_USERS_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + SV_USERS_PARMNUM) +SV_DISC_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + SV_DISC_PARMNUM) +SV_HIDDEN_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + SV_HIDDEN_PARMNUM) +SV_ANNOUNCE_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + SV_ANNOUNCE_PARMNUM) +SV_ANNDELTA_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + SV_ANNDELTA_PARMNUM) +SV_SESSOPENS_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + SV_SESSOPENS_PARMNUM) +SV_SESSVCS_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + SV_SESSVCS_PARMNUM) +SV_OPENSEARCH_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + SV_OPENSEARCH_PARMNUM) +SV_MAXWORKITEMS_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + SV_MAXWORKITEMS_PARMNUM) +SV_MAXRAWBUFLEN_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + SV_MAXRAWBUFLEN_PARMNUM) +SV_SESSUSERS_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + SV_SESSUSERS_PARMNUM) +SV_SESSCONNS_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + SV_SESSCONNS_PARMNUM) +SV_MAXNONPAGEDMEMORYUSAGE_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + SV_MAXNONPAGEDMEMORYUSAGE_PARMNUM) +SV_MAXPAGEDMEMORYUSAGE_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + SV_MAXPAGEDMEMORYUSAGE_PARMNUM) +SV_ENABLESOFTCOMPAT_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + SV_ENABLESOFTCOMPAT_PARMNUM) +SV_ENABLEFORCEDLOGOFF_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + SV_ENABLEFORCEDLOGOFF_PARMNUM) +SV_TIMESOURCE_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + SV_TIMESOURCE_PARMNUM) +SV_LMANNOUNCE_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + SV_LMANNOUNCE_PARMNUM) +SV_MAXCOPYREADLEN_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + SV_MAXCOPYREADLEN_PARMNUM) +SV_MAXCOPYWRITELEN_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + SV_MAXCOPYWRITELEN_PARMNUM) +SV_MINKEEPSEARCH_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + SV_MINKEEPSEARCH_PARMNUM) +SV_MAXKEEPSEARCH_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + SV_MAXKEEPSEARCH_PARMNUM) +SV_MINKEEPCOMPLSEARCH_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + SV_MINKEEPCOMPLSEARCH_PARMNUM) +SV_MAXKEEPCOMPLSEARCH_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + SV_MAXKEEPCOMPLSEARCH_PARMNUM) +SV_SCAVTIMEOUT_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + SV_SCAVTIMEOUT_PARMNUM) +SV_MINRCVQUEUE_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + SV_MINRCVQUEUE_PARMNUM) +SV_MINFREEWORKITEMS_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + SV_MINFREEWORKITEMS_PARMNUM) +SV_MAXMPXCT_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + SV_MAXMPXCT_PARMNUM) +SV_OPLOCKBREAKWAIT_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + SV_OPLOCKBREAKWAIT_PARMNUM) +SV_OPLOCKBREAKRESPONSEWAIT_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + SV_OPLOCKBREAKRESPONSEWAIT_PARMNUM) +SV_ENABLEOPLOCKS_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + SV_ENABLEOPLOCKS_PARMNUM) +SV_ENABLEOPLOCKFORCECLOSE_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + SV_ENABLEOPLOCKFORCECLOSE_PARMNUM) +SV_ENABLEFCBOPENS_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + SV_ENABLEFCBOPENS_PARMNUM) +SV_ENABLERAW_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + SV_ENABLERAW_PARMNUM) +SV_ENABLESHAREDNETDRIVES_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + SV_ENABLESHAREDNETDRIVES_PARMNUM) +SV_MINFREECONNECTIONS_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + SV_MINFREECONNECTIONS_PARMNUM) +SV_MAXFREECONNECTIONS_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + SV_MAXFREECONNECTIONS_PARMNUM) +SV_INITSESSTABLE_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + SV_INITSESSTABLE_PARMNUM) +SV_INITCONNTABLE_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + SV_INITCONNTABLE_PARMNUM) +SV_INITFILETABLE_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + SV_INITFILETABLE_PARMNUM) +SV_INITSEARCHTABLE_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + SV_INITSEARCHTABLE_PARMNUM) +SV_ALERTSCHEDULE_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + SV_ALERTSCHEDULE_PARMNUM) +SV_ERRORTHRESHOLD_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + SV_ERRORTHRESHOLD_PARMNUM) +SV_NETWORKERRORTHRESHOLD_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + SV_NETWORKERRORTHRESHOLD_PARMNUM) +SV_DISKSPACETHRESHOLD_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + SV_DISKSPACETHRESHOLD_PARMNUM) +SV_MAXLINKDELAY_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + SV_MAXLINKDELAY_PARMNUM) +SV_MINLINKTHROUGHPUT_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + SV_MINLINKTHROUGHPUT_PARMNUM) +SV_LINKINFOVALIDTIME_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + SV_LINKINFOVALIDTIME_PARMNUM) +SV_SCAVQOSINFOUPDATETIME_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + SV_SCAVQOSINFOUPDATETIME_PARMNUM) +SV_MAXWORKITEMIDLETIME_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + SV_MAXWORKITEMIDLETIME_PARMNUM) +SV_MAXRAWWORKITEMS_INFOLOEVEL equ (PARMNUM_BASE_INFOLEVEL + SV_MAXRAWWORKITEMS_PARMNUM) +SV_PRODUCTTYPE_INFOLOEVEL equ (PARMNUM_BASE_INFOLEVEL + SV_PRODUCTTYPE_PARMNUM) +SV_SERVERSIZE_INFOLOEVEL equ (PARMNUM_BASE_INFOLEVEL + SV_SERVERSIZE_PARMNUM) +SV_CONNECTIONLESSAUTODISC_INFOLOEVEL equ (PARMNUM_BASE_INFOLEVEL + SV_CONNECTIONLESSAUTODISC_PARMNUM) +SV_SHARINGVIOLATIONRETRIES_INFOLOEVEL equ (PARMNUM_BASE_INFOLEVEL + SV_SHARINGVIOLATIONRETRIES_PARMNUM) +SV_SHARINGVIOLATIONDELAY_INFOLOEVEL equ (PARMNUM_BASE_INFOLEVEL + SV_SHARINGVIOLATIONDELAY_PARMNUM) +SV_MAXGLOBALOPENSEARCH_INFOLOEVEL equ (PARMNUM_BASE_INFOLEVEL + SV_MAXGLOBALOPENSEARCH_PARMNUM) +SV_REMOVEDUPLICATESEARCHES_INFOLOEVEL equ (PARMNUM_BASE_INFOLEVEL + SV_REMOVEDUPLICATESEARCHES_PARMNUM) +SV_LOCKVIOLATIONRETRIES_INFOLOEVEL equ (PARMNUM_BASE_INFOLEVEL + SV_LOCKVIOLATIONRETRIES_PARMNUM) +SV_LOCKVIOLATIONOFFSET_INFOLOEVEL equ (PARMNUM_BASE_INFOLEVEL + SV_LOCKVIOLATIONOFFSET_PARMNUM) +SV_LOCKVIOLATIONDELAY_INFOLOEVEL equ (PARMNUM_BASE_INFOLEVEL + SV_LOCKVIOLATIONDELAY_PARMNUM) +SV_MDLREADSWITCHOVER_INFOLOEVEL equ (PARMNUM_BASE_INFOLEVEL + SV_MDLREADSWITCHOVER_PARMNUM) +SV_CACHEDOPENLIMIT_INFOLOEVEL equ (PARMNUM_BASE_INFOLEVEL + SV_CACHEDOPENLIMIT_PARMNUM) +SV_CRITICALTHREADS_INFOLOEVEL equ (PARMNUM_BASE_INFOLEVEL + SV_CRITICALTHREADS_PARMNUM) +SV_RESTRICTNULLSESSACCESS_INFOLOEVEL equ (PARMNUM_BASE_INFOLEVEL + SV_RESTRICTNULLSESSACCESS_PARMNUM) +SV_ENABLEWFW311DIRECTIPX_INFOLOEVEL equ (PARMNUM_BASE_INFOLEVEL + SV_ENABLEWFW311DIRECTIPX_PARMNUM) +SV_OTHERQUEUEAFFINITY_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + SV_OTHERQUEUEAFFINITY_PARMNUM) +SV_QUEUESAMPLESECS_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + SV_QUEUESAMPLESECS_PARMNUM) +SV_BALANCECOUNT_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + SV_BALANCECOUNT_PARMNUM) +SV_PREFERREDAFFINITY_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + SV_PREFERREDAFFINITY_PARMNUM) +SV_MAXFREERFCBS_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + SV_MAXFREERFCBS_PARMNUM) +SV_MAXFREEMFCBS_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + SV_MAXFREEMFCBS_PARMNUM) +SV_MAXFREELFCBS_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + SV_MAXFREELFCBS_PARMNUM) +SV_MAXFREEPAGEDPOOLCHUNKS_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + SV_MAXFREEPAGEDPOOLCHUNKS_PARMNUM) +SV_MINPAGEDPOOLCHUNKSIZE_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + SV_MINPAGEDPOOLCHUNKSIZE_PARMNUM) +SV_MAXPAGEDPOOLCHUNKSIZE_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + SV_MAXPAGEDPOOLCHUNKSIZE_PARMNUM) +SV_SENDSFROMPREFERREDPROCESSOR_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + SV_SENDSFROMPREFERREDPROCESSOR_PARMNUM) +SV_MAXTHREADSPERQUEUE_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + SV_MAXTHREADSPERQUEUE_PARMNUM) +SV_CACHEDDIRECTORYLIMIT_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + SV_CACHEDDIRECTORYLIMIT_PARMNUM) +SV_MAXCOPYLENGTH_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + SV_MAXCOPYLENGTH_PARMNUM) +SV_ENABLEBULKTRANSFER_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + SV_ENABLEBULKTRANSFER_PARMNUM) +SV_ENABLECOMPRESSION_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + SV_ENABLECOMPRESSION_PARMNUM) +SV_AUTOSHAREWKS_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + SV_AUTOSHAREWKS_PARMNUM) +SV_AUTOSHARESERVER_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + SV_AUTOSHARESERVER_PARMNUM) +SV_ENABLESECURITYSIGNATURE_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + SV_ENABLESECURITYSIGNATURE_PARMNUM) +SV_REQUIRESECURITYSIGNATURE_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + SV_REQUIRESECURITYSIGNATURE_PARMNUM) +SV_MINCLIENTBUFFERSIZE_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + SV_MINCLIENTBUFFERSIZE_PARMNUM) +SV_CONNECTIONNOSESSIONSTIMEOUT_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + SV_CONNECTIONNOSESSIONSTIMEOUT_PARMNUM) +SVI1_NUM_ELEMENTS equ 5 +SVI2_NUM_ELEMENTS equ 40 +SVI3_NUM_ELEMENTS equ 44 +SV_MAX_CMD_LEN equ PATHLEN +SW_AUTOPROF_LOAD_MASK equ 1 +SW_AUTOPROF_SAVE_MASK equ 2 +SV_MAX_SRV_HEUR_LEN equ 32 +SV_USERS_PER_LICENSE equ 5 +SVTI2_REMAP_PIPE_NAMES equ 2 + +SERVER_INFO_100 STRUCT + sv100_platform_id dd ? + sv100_name dd ? +SERVER_INFO_100 ENDS + +SERVER_INFO_101 STRUCT + sv101_platform_id dd ? + sv101_name dd ? + sv101_version_major dd ? + sv101_version_minor dd ? + sv101_type dd ? + sv101_comment dd ? +SERVER_INFO_101 ENDS + +SERVER_INFO_102 STRUCT + sv102_platform_id dd ? + sv102_name dd ? + sv102_version_major dd ? + sv102_version_minor dd ? + sv102_type dd ? + sv102_comment dd ? + sv102_users dd ? + sv102_disc dd ? + sv102_hidden dd ? + sv102_announce dd ? + sv102_anndelta dd ? + sv102_licenses dd ? + sv102_userpath dd ? +SERVER_INFO_102 ENDS + +SERVER_INFO_402 STRUCT + sv402_ulist_mtime dd ? + sv402_glist_mtime dd ? + sv402_alist_mtime dd ? + sv402_alerts dd ? + sv402_security dd ? + sv402_numadmin dd ? + sv402_lanmask dd ? + sv402_guestacct dd ? + sv402_chdevs dd ? + sv402_chdevq dd ? + sv402_chdevjobs dd ? + sv402_connections dd ? + sv402_shares dd ? + sv402_openfiles dd ? + sv402_sessopens dd ? + sv402_sessvcs dd ? + sv402_sessreqs dd ? + sv402_opensearch dd ? + sv402_activelocks dd ? + sv402_numreqbuf dd ? + sv402_sizreqbuf dd ? + sv402_numbigbuf dd ? + sv402_numfiletasks dd ? + sv402_alertsched dd ? + sv402_erroralert dd ? + sv402_logonalert dd ? + sv402_accessalert dd ? + sv402_diskalert dd ? + sv402_netioalert dd ? + sv402_maxauditsz dd ? + sv402_srvheuristics dd ? +SERVER_INFO_402 ENDS + +SERVER_INFO_403 STRUCT + sv403_ulist_mtime dd ? + sv403_glist_mtime dd ? + sv403_alist_mtime dd ? + sv403_alerts dd ? + sv403_security dd ? + sv403_numadmin dd ? + sv403_lanmask dd ? + sv403_guestacct dd ? + sv403_chdevs dd ? + sv403_chdevq dd ? + sv403_chdevjobs dd ? + sv403_connections dd ? + sv403_shares dd ? + sv403_openfiles dd ? + sv403_sessopens dd ? + sv403_sessvcs dd ? + sv403_sessreqs dd ? + sv403_opensearch dd ? + sv403_activelocks dd ? + sv403_numreqbuf dd ? + sv403_sizreqbuf dd ? + sv403_numbigbuf dd ? + sv403_numfiletasks dd ? + sv403_alertsched dd ? + sv403_erroralert dd ? + sv403_logonalert dd ? + sv403_accessalert dd ? + sv403_diskalert dd ? + sv403_netioalert dd ? + sv403_maxauditsz dd ? + sv403_srvheuristics dd ? + sv403_auditedevents dd ? + sv403_autoprofile dd ? + sv403_autopath dd ? +SERVER_INFO_403 ENDS + +SERVER_INFO_502 STRUCT + sv502_sessopens dd ? + sv502_sessvcs dd ? + sv502_opensearch dd ? + sv502_sizreqbuf dd ? + sv502_initworkitems dd ? + sv502_maxworkitems dd ? + sv502_rawworkitems dd ? + sv502_irpstacksize dd ? + sv502_maxrawbuflen dd ? + sv502_sessusers dd ? + sv502_sessconns dd ? + sv502_maxpagedmemoryusage dd ? + sv502_maxnonpagedmemoryusage dd ? + sv502_enablesoftcompat dd ? + sv502_enableforcedlogoff dd ? + sv502_timesource dd ? + sv502_acceptdownlevelapis dd ? + sv502_lmannounce dd ? +SERVER_INFO_502 ENDS + +SERVER_INFO_503 STRUCT + sv503_sessopens dd ? + sv503_sessvcs dd ? + sv503_opensearch dd ? + sv503_sizreqbuf dd ? + sv503_initworkitems dd ? + sv503_maxworkitems dd ? + sv503_rawworkitems dd ? + sv503_irpstacksize dd ? + sv503_maxrawbuflen dd ? + sv503_sessusers dd ? + sv503_sessconns dd ? + sv503_maxpagedmemoryusage dd ? + sv503_maxnonpagedmemoryusage dd ? + sv503_enablesoftcompat dd ? + sv503_enableforcedlogoff dd ? + sv503_timesource dd ? + sv503_acceptdownlevelapis dd ? + sv503_lmannounce dd ? + sv503_domain dd ? + sv503_maxcopyreadlen dd ? + sv503_maxcopywritelen dd ? + sv503_minkeepsearch dd ? + sv503_maxkeepsearch dd ? + sv503_minkeepcomplsearch dd ? + sv503_maxkeepcomplsearch dd ? + sv503_threadcountadd dd ? + sv503_numblockthreads dd ? + sv503_scavtimeout dd ? + sv503_minrcvqueue dd ? + sv503_minfreeworkitems dd ? + sv503_xactmemsize dd ? + sv503_threadpriority dd ? + sv503_maxmpxct dd ? + sv503_oplockbreakwait dd ? + sv503_oplockbreakresponsewait dd ? + sv503_enableoplocks dd ? + sv503_enableoplockforceclose dd ? + sv503_enablefcbopens dd ? + sv503_enableraw dd ? + sv503_enablesharednetdrives dd ? + sv503_minfreeconnections dd ? + sv503_maxfreeconnections dd ? +SERVER_INFO_503 ENDS + +SERVER_INFO_599 STRUCT + sv599_sessopens dd ? + sv599_sessvcs dd ? + sv599_opensearch dd ? + sv599_sizreqbuf dd ? + sv599_initworkitems dd ? + sv599_maxworkitems dd ? + sv599_rawworkitems dd ? + sv599_irpstacksize dd ? + sv599_maxrawbuflen dd ? + sv599_sessusers dd ? + sv599_sessconns dd ? + sv599_maxpagedmemoryusage dd ? + sv599_maxnonpagedmemoryusage dd ? + sv599_enablesoftcompat dd ? + sv599_enableforcedlogoff dd ? + sv599_timesource dd ? + sv599_acceptdownlevelapis dd ? + sv599_lmannounce dd ? + sv599_domain dd ? + sv599_maxcopyreadlen dd ? + sv599_maxcopywritelen dd ? + sv599_minkeepsearch dd ? + sv599_maxkeepsearch dd ? + sv599_minkeepcomplsearch dd ? + sv599_maxkeepcomplsearch dd ? + sv599_threadcountadd dd ? + sv599_numblockthreads dd ? + sv599_scavtimeout dd ? + sv599_minrcvqueue dd ? + sv599_minfreeworkitems dd ? + sv599_xactmemsize dd ? + sv599_threadpriority dd ? + sv599_maxmpxct dd ? + sv599_oplockbreakwait dd ? + sv599_oplockbreakresponsewait dd ? + sv599_enableoplocks dd ? + sv599_enableoplockforceclose dd ? + sv599_enablefcbopens dd ? + sv599_enableraw dd ? + sv599_enablesharednetdrives dd ? + sv599_minfreeconnections dd ? + sv599_maxfreeconnections dd ? + sv599_initsesstable dd ? + sv599_initconntable dd ? + sv599_initfiletable dd ? + sv599_initsearchtable dd ? + sv599_alertschedule dd ? + sv599_errorthreshold dd ? + sv599_networkerrorthreshold dd ? + sv599_diskspacethreshold dd ? + sv599_reserved dd ? + sv599_maxlinkdelay dd ? + sv599_minlinkthroughput dd ? + sv599_linkinfovalidtime dd ? + sv599_scavqosinfoupdatetime dd ? + sv599_maxworkitemidletime dd ? +SERVER_INFO_599 ENDS + +SERVER_INFO_598 STRUCT + sv598_maxrawworkitems dd ? + sv598_maxthreadsperqueue dd ? + sv598_producttype dd ? + sv598_serversize dd ? + sv598_connectionlessautodisc dd ? + sv598_sharingviolationretries dd ? + sv598_sharingviolationdelay dd ? + sv598_maxglobalopensearch dd ? + sv598_removeduplicatesearches dd ? + sv598_lockviolationoffset dd ? + sv598_lockviolationdelay dd ? + sv598_mdlreadswitchover dd ? + sv598_cachedopenlimit dd ? + sv598_otherqueueaffinity dd ? + sv598_restrictnullsessaccess dd ? + sv598_enablewfw311directipx dd ? + sv598_queuesamplesecs dd ? + sv598_balancecount dd ? + sv598_preferredaffinity dd ? + sv598_maxfreerfcbs dd ? + sv598_maxfreemfcbs dd ? + sv598_maxfreelfcbs dd ? + sv598_maxfreepagedpoolchunks dd ? + sv598_minpagedpoolchunksize dd ? + sv598_maxpagedpoolchunksize dd ? + sv598_sendsfrompreferredprocessor dd ? + sv598_cacheddirectorylimit dd ? + sv598_maxcopylength dd ? + sv598_enablebulktransfer dd ? + sv598_enablecompression dd ? + sv598_autosharewks dd ? + sv598_autoshareserver dd ? + sv598_enablesecuritysignature dd ? + sv598_requiresecuritysignature dd ? + sv598_minclientbuffersize dd ? + sv598_serverguid GUID <> + sv598_ConnectionNoSessionsTimeout dd ? +SERVER_INFO_598 ENDS + +SERVER_INFO_1005 STRUCT + sv1005_comment dd ? +SERVER_INFO_1005 ENDS + +SERVER_INFO_1107 STRUCT + sv1107_users dd ? +SERVER_INFO_1107 ENDS + +SERVER_INFO_1010 STRUCT + sv1010_disc dd ? +SERVER_INFO_1010 ENDS + +SERVER_INFO_1016 STRUCT + sv1016_hidden dd ? +SERVER_INFO_1016 ENDS + +SERVER_INFO_1017 STRUCT + sv1017_announce dd ? +SERVER_INFO_1017 ENDS + +SERVER_INFO_1018 STRUCT + sv1018_anndelta dd ? +SERVER_INFO_1018 ENDS + +SERVER_INFO_1501 STRUCT + sv1501_sessopens dd ? +SERVER_INFO_1501 ENDS + +SERVER_INFO_1502 STRUCT + sv1502_sessvcs dd ? +SERVER_INFO_1502 ENDS + +SERVER_INFO_1503 STRUCT + sv1503_opensearch dd ? +SERVER_INFO_1503 ENDS + +SERVER_INFO_1506 STRUCT + sv1506_maxworkitems dd ? +SERVER_INFO_1506 ENDS + +SERVER_INFO_1509 STRUCT + sv1509_maxrawbuflen dd ? +SERVER_INFO_1509 ENDS + +SERVER_INFO_1510 STRUCT + sv1510_sessusers dd ? +SERVER_INFO_1510 ENDS + +SERVER_INFO_1511 STRUCT + sv1511_sessconns dd ? +SERVER_INFO_1511 ENDS + +SERVER_INFO_1512 STRUCT + sv1512_maxnonpagedmemoryusage dd ? +SERVER_INFO_1512 ENDS + +SERVER_INFO_1513 STRUCT + sv1513_maxpagedmemoryusage dd ? +SERVER_INFO_1513 ENDS + +SERVER_INFO_1514 STRUCT + sv1514_enablesoftcompat dd ? +SERVER_INFO_1514 ENDS + +SERVER_INFO_1515 STRUCT + sv1515_enableforcedlogoff dd ? +SERVER_INFO_1515 ENDS + +SERVER_INFO_1516 STRUCT + sv1516_timesource dd ? +SERVER_INFO_1516 ENDS + +SERVER_INFO_1518 STRUCT + sv1518_lmannounce dd ? +SERVER_INFO_1518 ENDS + +SERVER_INFO_1520 STRUCT + sv1520_maxcopyreadlen dd ? +SERVER_INFO_1520 ENDS + +SERVER_INFO_1521 STRUCT + sv1521_maxcopywritelen dd ? +SERVER_INFO_1521 ENDS + +SERVER_INFO_1522 STRUCT + sv1522_minkeepsearch dd ? +SERVER_INFO_1522 ENDS + +SERVER_INFO_1523 STRUCT + sv1523_maxkeepsearch dd ? +SERVER_INFO_1523 ENDS + +SERVER_INFO_1524 STRUCT + sv1524_minkeepcomplsearch dd ? +SERVER_INFO_1524 ENDS + +SERVER_INFO_1525 STRUCT + sv1525_maxkeepcomplsearch dd ? +SERVER_INFO_1525 ENDS + +SERVER_INFO_1528 STRUCT + sv1528_scavtimeout dd ? +SERVER_INFO_1528 ENDS + +SERVER_INFO_1529 STRUCT + sv1529_minrcvqueue dd ? +SERVER_INFO_1529 ENDS + +SERVER_INFO_1530 STRUCT + sv1530_minfreeworkitems dd ? +SERVER_INFO_1530 ENDS + +SERVER_INFO_1533 STRUCT + sv1533_maxmpxct dd ? +SERVER_INFO_1533 ENDS + +SERVER_INFO_1534 STRUCT + sv1534_oplockbreakwait dd ? +SERVER_INFO_1534 ENDS + +SERVER_INFO_1535 STRUCT + sv1535_oplockbreakresponsewait dd ? +SERVER_INFO_1535 ENDS + +SERVER_INFO_1536 STRUCT + sv1536_enableoplocks dd ? +SERVER_INFO_1536 ENDS + +SERVER_INFO_1537 STRUCT + sv1537_enableoplockforceclose dd ? +SERVER_INFO_1537 ENDS + +SERVER_INFO_1538 STRUCT + sv1538_enablefcbopens dd ? +SERVER_INFO_1538 ENDS + +SERVER_INFO_1539 STRUCT + sv1539_enableraw dd ? +SERVER_INFO_1539 ENDS + +SERVER_INFO_1540 STRUCT + sv1540_enablesharednetdrives dd ? +SERVER_INFO_1540 ENDS + +SERVER_INFO_1541 STRUCT + sv1541_minfreeconnections dd ? +SERVER_INFO_1541 ENDS + +SERVER_INFO_1542 STRUCT + sv1542_maxfreeconnections dd ? +SERVER_INFO_1542 ENDS + +SERVER_INFO_1543 STRUCT + sv1543_initsesstable dd ? +SERVER_INFO_1543 ENDS + +SERVER_INFO_1544 STRUCT + sv1544_initconntable dd ? +SERVER_INFO_1544 ENDS + +SERVER_INFO_1545 STRUCT + sv1545_initfiletable dd ? +SERVER_INFO_1545 ENDS + +SERVER_INFO_1546 STRUCT + sv1546_initsearchtable dd ? +SERVER_INFO_1546 ENDS + +SERVER_INFO_1547 STRUCT + sv1547_alertschedule dd ? +SERVER_INFO_1547 ENDS + +SERVER_INFO_1548 STRUCT + sv1548_errorthreshold dd ? +SERVER_INFO_1548 ENDS + +SERVER_INFO_1549 STRUCT + sv1549_networkerrorthreshold dd ? +SERVER_INFO_1549 ENDS + +SERVER_INFO_1550 STRUCT + sv1550_diskspacethreshold dd ? +SERVER_INFO_1550 ENDS + +SERVER_INFO_1552 STRUCT + sv1552_maxlinkdelay dd ? +SERVER_INFO_1552 ENDS + +SERVER_INFO_1553 STRUCT + sv1553_minlinkthroughput dd ? +SERVER_INFO_1553 ENDS + +SERVER_INFO_1554 STRUCT + sv1554_linkinfovalidtime dd ? +SERVER_INFO_1554 ENDS + +SERVER_INFO_1555 STRUCT + sv1555_scavqosinfoupdatetime dd ? +SERVER_INFO_1555 ENDS + +SERVER_INFO_1556 STRUCT + sv1556_maxworkitemidletime dd ? +SERVER_INFO_1556 ENDS + +SERVER_INFO_1557 STRUCT + sv1557_maxrawworkitems dd ? +SERVER_INFO_1557 ENDS + +SERVER_INFO_1560 STRUCT + sv1560_producttype dd ? +SERVER_INFO_1560 ENDS + +SERVER_INFO_1561 STRUCT + sv1561_serversize dd ? +SERVER_INFO_1561 ENDS + +SERVER_INFO_1562 STRUCT + sv1562_connectionlessautodisc dd ? +SERVER_INFO_1562 ENDS + +SERVER_INFO_1563 STRUCT + sv1563_sharingviolationretries dd ? +SERVER_INFO_1563 ENDS + +SERVER_INFO_1564 STRUCT + sv1564_sharingviolationdelay dd ? +SERVER_INFO_1564 ENDS + +SERVER_INFO_1565 STRUCT + sv1565_maxglobalopensearch dd ? +SERVER_INFO_1565 ENDS + +SERVER_INFO_1566 STRUCT + sv1566_removeduplicatesearches dd ? +SERVER_INFO_1566 ENDS + +SERVER_INFO_1567 STRUCT + sv1567_lockviolationretries dd ? +SERVER_INFO_1567 ENDS + +SERVER_INFO_1568 STRUCT + sv1568_lockviolationoffset dd ? +SERVER_INFO_1568 ENDS + +SERVER_INFO_1569 STRUCT + sv1569_lockviolationdelay dd ? +SERVER_INFO_1569 ENDS + +SERVER_INFO_1570 STRUCT + sv1570_mdlreadswitchover dd ? +SERVER_INFO_1570 ENDS + +SERVER_INFO_1571 STRUCT + sv1571_cachedopenlimit dd ? +SERVER_INFO_1571 ENDS + +SERVER_INFO_1572 STRUCT + sv1572_criticalthreads dd ? +SERVER_INFO_1572 ENDS + +SERVER_INFO_1573 STRUCT + sv1573_restrictnullsessaccess dd ? +SERVER_INFO_1573 ENDS + +SERVER_INFO_1574 STRUCT + sv1574_enablewfw311directipx dd ? +SERVER_INFO_1574 ENDS + +SERVER_INFO_1575 STRUCT + sv1575_otherqueueaffinity dd ? +SERVER_INFO_1575 ENDS + +SERVER_INFO_1576 STRUCT + sv1576_queuesamplesecs dd ? +SERVER_INFO_1576 ENDS + +SERVER_INFO_1577 STRUCT + sv1577_balancecount dd ? +SERVER_INFO_1577 ENDS + +SERVER_INFO_1578 STRUCT + sv1578_preferredaffinity dd ? +SERVER_INFO_1578 ENDS + +SERVER_INFO_1579 STRUCT + sv1579_maxfreerfcbs dd ? +SERVER_INFO_1579 ENDS + +SERVER_INFO_1580 STRUCT + sv1580_maxfreemfcbs dd ? +SERVER_INFO_1580 ENDS + +SERVER_INFO_1581 STRUCT + sv1581_maxfreemlcbs dd ? +SERVER_INFO_1581 ENDS + +SERVER_INFO_1582 STRUCT + sv1582_maxfreepagedpoolchunks dd ? +SERVER_INFO_1582 ENDS + +SERVER_INFO_1583 STRUCT + sv1583_minpagedpoolchunksize dd ? +SERVER_INFO_1583 ENDS + +SERVER_INFO_1584 STRUCT + sv1584_maxpagedpoolchunksize dd ? +SERVER_INFO_1584 ENDS + +SERVER_INFO_1585 STRUCT + sv1585_sendsfrompreferredprocessor dd ? +SERVER_INFO_1585 ENDS + +SERVER_INFO_1586 STRUCT + sv1586_maxthreadsperqueue dd ? +SERVER_INFO_1586 ENDS + +SERVER_INFO_1587 STRUCT + sv1587_cacheddirectorylimit dd ? +SERVER_INFO_1587 ENDS + +SERVER_INFO_1588 STRUCT + sv1588_maxcopylength dd ? +SERVER_INFO_1588 ENDS + +SERVER_INFO_1589 STRUCT + sv1589_enablebulktransfer dd ? +SERVER_INFO_1589 ENDS + +SERVER_INFO_1590 STRUCT + sv1590_enablecompression dd ? +SERVER_INFO_1590 ENDS + +SERVER_INFO_1591 STRUCT + sv1591_autosharewks dd ? +SERVER_INFO_1591 ENDS + +SERVER_INFO_1592 STRUCT + sv1592_autosharewks dd ? +SERVER_INFO_1592 ENDS + +SERVER_INFO_1593 STRUCT + sv1593_enablesecuritysignature dd ? +SERVER_INFO_1593 ENDS + +SERVER_INFO_1594 STRUCT + sv1594_requiresecuritysignature dd ? +SERVER_INFO_1594 ENDS + +SERVER_INFO_1595 STRUCT + sv1595_minclientbuffersize dd ? +SERVER_INFO_1595 ENDS + +SERVER_INFO_1596 STRUCT + sv1596_ConnectionNoSessionsTimeout dd ? +SERVER_INFO_1596 ENDS + +SERVER_TRANSPORT_INFO_0 STRUCT + svti0_numberofvcs dd ? + svti0_transportname dd ? + svti0_transportaddress dd ? + svti0_transportaddresslength dd ? + svti0_networkaddress dd ? +SERVER_TRANSPORT_INFO_0 ENDS + +SERVER_TRANSPORT_INFO_1 STRUCT + svti1_numberofvcs dd ? + svti1_transportname dd ? + svti1_transportaddress dd ? + svti1_transportaddresslength dd ? + svti1_networkaddress dd ? + svti1_domain dd ? +SERVER_TRANSPORT_INFO_1 ENDS + +SERVER_TRANSPORT_INFO_2 STRUCT + svti2_numberofvcs dd ? + svti2_transportname dd ? + svti2_transportaddress dd ? + svti2_transportaddresslength dd ? + svti2_networkaddress dd ? + svti2_domain dd ? + svti2_flags dd ? +SERVER_TRANSPORT_INFO_2 ENDS + +;------------------------------------------------------ LMERR.H -------------------------------------------- +NERR_Success equ 0 +NERR_BASE equ 2100 +NERR_NetNotStarted equ (NERR_BASE+2) +NERR_UnknownServer equ (NERR_BASE+3) +NERR_ShareMem equ (NERR_BASE+4) +NERR_NoNetworkResource equ (NERR_BASE+5) +NERR_RemoteOnly equ (NERR_BASE+6) +NERR_DevNotRedirected equ (NERR_BASE+7) +NERR_ServerNotStarted equ (NERR_BASE+14) +NERR_ItemNotFound equ (NERR_BASE+15) +NERR_UnknownDevDir equ (NERR_BASE+16) +NERR_RedirectedPath equ (NERR_BASE+17) +NERR_DuplicateShare equ (NERR_BASE+18) +NERR_NoRoom equ (NERR_BASE+19) +NERR_TooManyItems equ (NERR_BASE+21) +NERR_InvalidMaxUsers equ (NERR_BASE+22) +NERR_BufTooSmall equ (NERR_BASE+23) +NERR_RemoteErr equ (NERR_BASE+27) +NERR_LanmanIniError equ (NERR_BASE+31) +NERR_NetworkError equ (NERR_BASE+36) +NERR_WkstaInconsistentState equ (NERR_BASE+37) +NERR_WkstaNotStarted equ (NERR_BASE+38) +NERR_BrowserNotStarted equ (NERR_BASE+39) +NERR_InternalError equ (NERR_BASE+40) +NERR_BadTransactConfig equ (NERR_BASE+41) +NERR_InvalidAPI equ (NERR_BASE+42) +NERR_BadEventName equ (NERR_BASE+43) +NERR_DupNameReboot equ (NERR_BASE+44) +NERR_CfgCompNotFound equ (NERR_BASE+46) +NERR_CfgParamNotFound equ (NERR_BASE+47) +NERR_LineTooLong equ (NERR_BASE+49) +NERR_QNotFound equ (NERR_BASE+50) +NERR_JobNotFound equ (NERR_BASE+51) +NERR_DestNotFound equ (NERR_BASE+52) +NERR_DestExists equ (NERR_BASE+53) +NERR_QExists equ (NERR_BASE+54) +NERR_QNoRoom equ (NERR_BASE+55) +NERR_JobNoRoom equ (NERR_BASE+56) +NERR_DestNoRoom equ (NERR_BASE+57) +NERR_DestIdle equ (NERR_BASE+58) +NERR_DestInvalidOp equ (NERR_BASE+59) +NERR_ProcNoRespond equ (NERR_BASE+60) +NERR_SpoolerNotLoaded equ (NERR_BASE+61) +NERR_DestInvalidState equ (NERR_BASE+62) +NERR_QInvalidState equ (NERR_BASE+63) +NERR_JobInvalidState equ (NERR_BASE+64) +NERR_SpoolNoMemory equ (NERR_BASE+65) +NERR_DriverNotFound equ (NERR_BASE+66) +NERR_DataTypeInvalid equ (NERR_BASE+67) +NERR_ProcNotFound equ (NERR_BASE+68) +NERR_ServiceTableLocked equ (NERR_BASE+80) +NERR_ServiceTableFull equ (NERR_BASE+81) +NERR_ServiceInstalled equ (NERR_BASE+82) +NERR_ServiceEntryLocked equ (NERR_BASE+83) +NERR_ServiceNotInstalled equ (NERR_BASE+84) +NERR_BadServiceName equ (NERR_BASE+85) +NERR_ServiceCtlTimeout equ (NERR_BASE+86) +NERR_ServiceCtlBusy equ (NERR_BASE+87) +NERR_BadServiceProgName equ (NERR_BASE+88) +NERR_ServiceNotCtrl equ (NERR_BASE+89) +NERR_ServiceKillProc equ (NERR_BASE+90) +NERR_ServiceCtlNotValid equ (NERR_BASE+91) +NERR_NotInDispatchTbl equ (NERR_BASE+92) +NERR_BadControlRecv equ (NERR_BASE+93) +NERR_ServiceNotStarting equ (NERR_BASE+94) +NERR_AlreadyLoggedOn equ (NERR_BASE+100) +NERR_NotLoggedOn equ (NERR_BASE+101) +NERR_BadUsername equ (NERR_BASE+102) +NERR_BadPassword equ (NERR_BASE+103) +NERR_UnableToAddName_W equ (NERR_BASE+104) +NERR_UnableToAddName_F equ (NERR_BASE+105) +NERR_UnableToDelName_W equ (NERR_BASE+106) +NERR_UnableToDelName_F equ (NERR_BASE+107) +NERR_LogonsPaused equ (NERR_BASE+109) +NERR_LogonServerConflict equ (NERR_BASE+110) +NERR_LogonNoUserPath equ (NERR_BASE+111) +NERR_LogonScriptError equ (NERR_BASE+112) +NERR_StandaloneLogon equ (NERR_BASE+114) +NERR_LogonServerNotFound equ (NERR_BASE+115) +NERR_LogonDomainExists equ (NERR_BASE+116) +NERR_NonValidatedLogon equ (NERR_BASE+117) +NERR_ACFNotFound equ (NERR_BASE+119) +NERR_GroupNotFound equ (NERR_BASE+120) +NERR_UserNotFound equ (NERR_BASE+121) +NERR_ResourceNotFound equ (NERR_BASE+122) +NERR_GroupExists equ (NERR_BASE+123) +NERR_UserExists equ (NERR_BASE+124) +NERR_ResourceExists equ (NERR_BASE+125) +NERR_NotPrimary equ (NERR_BASE+126) +NERR_ACFNotLoaded equ (NERR_BASE+127) +NERR_ACFNoRoom equ (NERR_BASE+128) +NERR_ACFFileIOFail equ (NERR_BASE+129) +NERR_ACFTooManyLists equ (NERR_BASE+130) +NERR_UserLogon equ (NERR_BASE+131) +NERR_ACFNoParent equ (NERR_BASE+132) +NERR_CanNotGrowSegment equ (NERR_BASE+133) +NERR_SpeGroupOp equ (NERR_BASE+134) +NERR_NotInCache equ (NERR_BASE+135) +NERR_UserInGroup equ (NERR_BASE+136) +NERR_UserNotInGroup equ (NERR_BASE+137) +NERR_AccountUndefined equ (NERR_BASE+138) +NERR_AccountExpired equ (NERR_BASE+139) +NERR_InvalidWorkstation equ (NERR_BASE+140) +NERR_InvalidLogonHours equ (NERR_BASE+141) +NERR_PasswordExpired equ (NERR_BASE+142) +NERR_PasswordCantChange equ (NERR_BASE+143) +NERR_PasswordHistConflict equ (NERR_BASE+144) +NERR_PasswordTooShort equ (NERR_BASE+145) +NERR_PasswordTooRecent equ (NERR_BASE+146) +NERR_InvalidDatabase equ (NERR_BASE+147) +NERR_DatabaseUpToDate equ (NERR_BASE+148) +NERR_SyncRequired equ (NERR_BASE+149) +NERR_UseNotFound equ (NERR_BASE+150) +NERR_BadAsgType equ (NERR_BASE+151) +NERR_DeviceIsShared equ (NERR_BASE+152) +NERR_NoComputerName equ (NERR_BASE+170) +NERR_MsgAlreadyStarted equ (NERR_BASE+171) +NERR_MsgInitFailed equ (NERR_BASE+172) +NERR_NameNotFound equ (NERR_BASE+173) +NERR_AlreadyForwarded equ (NERR_BASE+174) +NERR_AddForwarded equ (NERR_BASE+175) +NERR_AlreadyExists equ (NERR_BASE+176) +NERR_TooManyNames equ (NERR_BASE+177) +NERR_DelComputerName equ (NERR_BASE+178) +NERR_LocalForward equ (NERR_BASE+179) +NERR_GrpMsgProcessor equ (NERR_BASE+180) +NERR_PausedRemote equ (NERR_BASE+181) +NERR_BadReceive equ (NERR_BASE+182) +NERR_NameInUse equ (NERR_BASE+183) +NERR_MsgNotStarted equ (NERR_BASE+184) +NERR_NotLocalName equ (NERR_BASE+185) +NERR_NoForwardName equ (NERR_BASE+186) +NERR_RemoteFull equ (NERR_BASE+187) +NERR_NameNotForwarded equ (NERR_BASE+188) +NERR_TruncatedBroadcast equ (NERR_BASE+189) +NERR_InvalidDevice equ (NERR_BASE+194) +NERR_WriteFault equ (NERR_BASE+195) +NERR_DuplicateName equ (NERR_BASE+197) +NERR_DeleteLater equ (NERR_BASE+198) +NERR_IncompleteDel equ (NERR_BASE+199) +NERR_MultipleNets equ (NERR_BASE+200) +NERR_NetNameNotFound equ (NERR_BASE+210) +NERR_DeviceNotShared equ (NERR_BASE+211) +NERR_ClientNameNotFound equ (NERR_BASE+212) +NERR_FileIdNotFound equ (NERR_BASE+214) +NERR_ExecFailure equ (NERR_BASE+215) +NERR_TmpFile equ (NERR_BASE+216) +NERR_TooMuchData equ (NERR_BASE+217) +NERR_DeviceShareConflict equ (NERR_BASE+218) +NERR_BrowserTableIncomplete equ (NERR_BASE+219) +NERR_NotLocalDomain equ (NERR_BASE+220) +NERR_IsDfsShare equ (NERR_BASE+221) +NERR_DevInvalidOpCode equ (NERR_BASE+231) +NERR_DevNotFound equ (NERR_BASE+232) +NERR_DevNotOpen equ (NERR_BASE+233) +NERR_BadQueueDevString equ (NERR_BASE+234) +NERR_BadQueuePriority equ (NERR_BASE+235) +NERR_NoCommDevs equ (NERR_BASE+237) +NERR_QueueNotFound equ (NERR_BASE+238) +NERR_BadDevString equ (NERR_BASE+240) +NERR_BadDev equ (NERR_BASE+241) +NERR_InUseBySpooler equ (NERR_BASE+242) +NERR_CommDevInUse equ (NERR_BASE+243) +NERR_InvalidComputer equ (NERR_BASE+251) +NERR_MaxLenExceeded equ (NERR_BASE+254) +NERR_BadComponent equ (NERR_BASE+256) +NERR_CantType equ (NERR_BASE+257) +NERR_TooManyEntries equ (NERR_BASE+262) +NERR_ProfileFileTooBig equ (NERR_BASE+270) +NERR_ProfileOffset equ (NERR_BASE+271) +NERR_ProfileCleanup equ (NERR_BASE+272) +NERR_ProfileUnknownCmd equ (NERR_BASE+273) +NERR_ProfileLoadErr equ (NERR_BASE+274) +NERR_ProfileSaveErr equ (NERR_BASE+275) +NERR_LogOverflow equ (NERR_BASE+277) +NERR_LogFileChanged equ (NERR_BASE+278) +NERR_LogFileCorrupt equ (NERR_BASE+279) +NERR_SourceIsDir equ (NERR_BASE+280) +NERR_BadSource equ (NERR_BASE+281) +NERR_BadDest equ (NERR_BASE+282) +NERR_DifferentServers equ (NERR_BASE+283) +NERR_RunSrvPaused equ (NERR_BASE+285) +NERR_ErrCommRunSrv equ (NERR_BASE+289) +NERR_ErrorExecingGhost equ (NERR_BASE+291) +NERR_ShareNotFound equ (NERR_BASE+292) +NERR_InvalidLana equ (NERR_BASE+300) +NERR_OpenFiles equ (NERR_BASE+301) +NERR_ActiveConns equ (NERR_BASE+302) +NERR_BadPasswordCore equ (NERR_BASE+303) +NERR_DevInUse equ (NERR_BASE+304) +NERR_LocalDrive equ (NERR_BASE+305) +NERR_AlertExists equ (NERR_BASE+330) +NERR_TooManyAlerts equ (NERR_BASE+331) +NERR_NoSuchAlert equ (NERR_BASE+332) +NERR_BadRecipient equ (NERR_BASE+333) +NERR_AcctLimitExceeded equ (NERR_BASE+334) +NERR_InvalidLogSeek equ (NERR_BASE+340) +NERR_BadUasConfig equ (NERR_BASE+350) +NERR_InvalidUASOp equ (NERR_BASE+351) +NERR_LastAdmin equ (NERR_BASE+352) +NERR_DCNotFound equ (NERR_BASE+353) +NERR_LogonTrackingError equ (NERR_BASE+354) +NERR_NetlogonNotStarted equ (NERR_BASE+355) +NERR_CanNotGrowUASFile equ (NERR_BASE+356) +NERR_TimeDiffAtDC equ (NERR_BASE+357) +NERR_PasswordMismatch equ (NERR_BASE+358) +NERR_NoSuchServer equ (NERR_BASE+360) +NERR_NoSuchSession equ (NERR_BASE+361) +NERR_NoSuchConnection equ (NERR_BASE+362) +NERR_TooManyServers equ (NERR_BASE+363) +NERR_TooManySessions equ (NERR_BASE+364) +NERR_TooManyConnections equ (NERR_BASE+365) +NERR_TooManyFiles equ (NERR_BASE+366) +NERR_NoAlternateServers equ (NERR_BASE+367) +NERR_TryDownLevel equ (NERR_BASE+370) +NERR_UPSDriverNotStarted equ (NERR_BASE+380) +NERR_UPSInvalidConfig equ (NERR_BASE+381) +NERR_UPSInvalidCommPort equ (NERR_BASE+382) +NERR_UPSSignalAsserted equ (NERR_BASE+383) +NERR_UPSShutdownFailed equ (NERR_BASE+384) +NERR_BadDosRetCode equ (NERR_BASE+400) +NERR_ProgNeedsExtraMem equ (NERR_BASE+401) +NERR_BadDosFunction equ (NERR_BASE+402) +NERR_RemoteBootFailed equ (NERR_BASE+403) +NERR_BadFileCheckSum equ (NERR_BASE+404) +NERR_NoRplBootSystem equ (NERR_BASE+405) +NERR_RplLoadrNetBiosErr equ (NERR_BASE+406) +NERR_RplLoadrDiskErr equ (NERR_BASE+407) +NERR_ImageParamErr equ (NERR_BASE+408) +NERR_TooManyImageParams equ (NERR_BASE+409) +NERR_NonDosFloppyUsed equ (NERR_BASE+410) +NERR_RplBootRestart equ (NERR_BASE+411) +NERR_RplSrvrCallFailed equ (NERR_BASE+412) +NERR_CantConnectRplSrvr equ (NERR_BASE+413) +NERR_CantOpenImageFile equ (NERR_BASE+414) +NERR_CallingRplSrvr equ (NERR_BASE+415) +NERR_StartingRplBoot equ (NERR_BASE+416) +NERR_RplBootServiceTerm equ (NERR_BASE+417) +NERR_RplBootStartFailed equ (NERR_BASE+418) +NERR_RPL_CONNECTED equ (NERR_BASE+419) +NERR_BrowserConfiguredToNotRun equ (NERR_BASE+450) +NERR_RplNoAdaptersStarted equ (NERR_BASE+510) +NERR_RplBadRegistry equ (NERR_BASE+511) +NERR_RplBadDatabase equ (NERR_BASE+512) +NERR_RplRplfilesShare equ (NERR_BASE+513) +NERR_RplNotRplServer equ (NERR_BASE+514) +NERR_RplCannotEnum equ (NERR_BASE+515) +NERR_RplWkstaInfoCorrupted equ (NERR_BASE+516) +NERR_RplWkstaNotFound equ (NERR_BASE+517) +NERR_RplWkstaNameUnavailable equ (NERR_BASE+518) +NERR_RplProfileInfoCorrupted equ (NERR_BASE+519) +NERR_RplProfileNotFound equ (NERR_BASE+520) +NERR_RplProfileNameUnavailable equ (NERR_BASE+521) +NERR_RplProfileNotEmpty equ (NERR_BASE+522) +NERR_RplConfigInfoCorrupted equ (NERR_BASE+523) +NERR_RplConfigNotFound equ (NERR_BASE+524) +NERR_RplAdapterInfoCorrupted equ (NERR_BASE+525) +NERR_RplInternal equ (NERR_BASE+526) +NERR_RplVendorInfoCorrupted equ (NERR_BASE+527) +NERR_RplBootInfoCorrupted equ (NERR_BASE+528) +NERR_RplWkstaNeedsUserAcct equ (NERR_BASE+529) +NERR_RplNeedsRPLUSERAcct equ (NERR_BASE+530) +NERR_RplBootNotFound equ (NERR_BASE+531) +NERR_RplIncompatibleProfile equ (NERR_BASE+532) +NERR_RplAdapterNameUnavailable equ (NERR_BASE+533) +NERR_RplConfigNotEmpty equ (NERR_BASE+534) +NERR_RplBootInUse equ (NERR_BASE+535) +NERR_RplBackupDatabase equ (NERR_BASE+536) +NERR_RplAdapterNotFound equ (NERR_BASE+537) +NERR_RplVendorNotFound equ (NERR_BASE+538) +NERR_RplVendorNameUnavailable equ (NERR_BASE+539) +NERR_RplBootNameUnavailable equ (NERR_BASE+540) +NERR_RplConfigNameUnavailable equ (NERR_BASE+541) +NERR_DfsInternalCorruption equ (NERR_BASE+560) +NERR_DfsVolumeDataCorrupt equ (NERR_BASE+561) +NERR_DfsNoSuchVolume equ (NERR_BASE+562) +NERR_DfsVolumeAlreadyExists equ (NERR_BASE+563) +NERR_DfsAlreadyShared equ (NERR_BASE+564) +NERR_DfsNoSuchShare equ (NERR_BASE+565) +NERR_DfsNotALeafVolume equ (NERR_BASE+566) +NERR_DfsLeafVolume equ (NERR_BASE+567) +NERR_DfsVolumeHasMultipleServers equ (NERR_BASE+568) +NERR_DfsCantCreateJunctionPoint equ (NERR_BASE+569) +NERR_DfsServerNotDfsAware equ (NERR_BASE+570) +NERR_DfsBadRenamePath equ (NERR_BASE+571) +NERR_DfsVolumeIsOffline equ (NERR_BASE+572) +NERR_DfsNoSuchServer equ (NERR_BASE+573) +NERR_DfsCyclicalName equ (NERR_BASE+574) +NERR_DfsNotSupportedInServerDfs equ (NERR_BASE+575) +NERR_DfsInternalError equ (NERR_BASE+590) +NERR_SetupAlreadyJoined equ (NERR_BASE+591) +NERR_SetupNotJoined equ (NERR_BASE+592) +NERR_SetupDomainController equ (NERR_BASE+593) +MAX_NERR equ (NERR_BASE+899) + +;===================================[ LMWKSTA.H ]============================== +WKSTA_PLATFORM_ID_PARMNUM equ 100 +WKSTA_COMPUTERNAME_PARMNUM equ 1 +WKSTA_LANGROUP_PARMNUM equ 2 +WKSTA_VER_MAJOR_PARMNUM equ 4 +WKSTA_VER_MINOR_PARMNUM equ 5 +WKSTA_LOGGED_ON_USERS_PARMNUM equ 6 +WKSTA_LANROOT_PARMNUM equ 7 +WKSTA_LOGON_DOMAIN_PARMNUM equ 8 +WKSTA_LOGON_SERVER_PARMNUM equ 9 +WKSTA_CHARWAIT_PARMNUM equ 10 +WKSTA_CHARTIME_PARMNUM equ 11 +WKSTA_CHARCOUNT_PARMNUM equ 12 +WKSTA_KEEPCONN_PARMNUM equ 13 +WKSTA_KEEPSEARCH_PARMNUM equ 14 +WKSTA_MAXCMDS_PARMNUM equ 15 +WKSTA_NUMWORKBUF_PARMNUM equ 16 +WKSTA_MAXWRKCACHE_PARMNUM equ 17 +WKSTA_SESSTIMEOUT_PARMNUM equ 18 +WKSTA_SIZERROR_PARMNUM equ 19 +WKSTA_NUMALERTS_PARMNUM equ 20 +WKSTA_NUMSERVICES_PARMNUM equ 21 +WKSTA_NUMCHARBUF_PARMNUM equ 22 +WKSTA_SIZCHARBUF_PARMNUM equ 23 +WKSTA_ERRLOGSZ_PARMNUM equ 27 +WKSTA_PRINTBUFTIME_PARMNUM equ 28 +WKSTA_SIZWORKBUF_PARMNUM equ 29 +WKSTA_MAILSLOTS_PARMNUM equ 30 +WKSTA_NUMDGRAMBUF_PARMNUM equ 31 +WKSTA_WRKHEURISTICS_PARMNUM equ 32 +WKSTA_MAXTHREADS_PARMNUM equ 33 +WKSTA_LOCKQUOTA_PARMNUM equ 41 +WKSTA_LOCKINCREMENT_PARMNUM equ 42 +WKSTA_LOCKMAXIMUM_PARMNUM equ 43 +WKSTA_PIPEINCREMENT_PARMNUM equ 44 +WKSTA_PIPEMAXIMUM_PARMNUM equ 45 +WKSTA_DORMANTFILELIMIT_PARMNUM equ 46 +WKSTA_CACHEFILETIMEOUT_PARMNUM equ 47 +WKSTA_USEOPPORTUNISTICLOCKING_PARMNUM equ 48 +WKSTA_USEUNLOCKBEHIND_PARMNUM equ 49 +WKSTA_USECLOSEBEHIND_PARMNUM equ 50 +WKSTA_BUFFERNAMEDPIPES_PARMNUM equ 51 +WKSTA_USELOCKANDREADANDUNLOCK_PARMNUM equ 52 +WKSTA_UTILIZENTCACHING_PARMNUM equ 53 +WKSTA_USERAWREAD_PARMNUM equ 54 +WKSTA_USERAWWRITE_PARMNUM equ 55 +WKSTA_USEWRITERAWWITHDATA_PARMNUM equ 56 +WKSTA_USEENCRYPTION_PARMNUM equ 57 +WKSTA_BUFFILESWITHDENYWRITE_PARMNUM equ 58 +WKSTA_BUFFERREADONLYFILES_PARMNUM equ 59 +WKSTA_FORCECORECREATEMODE_PARMNUM equ 60 +WKSTA_USE512BYTESMAXTRANSFER_PARMNUM equ 61 +WKSTA_READAHEADTHRUPUT_PARMNUM equ 62 +WKSTA_OTH_DOMAINS_PARMNUM equ 101 +TRANSPORT_QUALITYOFSERVICE_PARMNUM equ 201 +TRANSPORT_NAME_PARMNUM equ 202 + +WKSTA_INFO_100 struct + wki100_platform_id dd ? + wki100_computername dd ? + wki100_langroup dd ? + wki100_ver_major dd ? + wki100_ver_minor dd ? +WKSTA_INFO_100 ends + +WKSTA_INFO_101 struct + wki101_platform_id dd ? + wki101_computername dd ? + wki101_langroup dd ? + wki101_ver_major dd ? + wki101_ver_minor dd ? + wki101_lanroot dd ? +WKSTA_INFO_101 ends + +WKSTA_INFO_102 struct + wki102_platform_id dd ? + wki102_computername dd ? + wki102_langroup dd ? + wki102_ver_major dd ? + wki102_ver_minor dd ? + wki102_lanroot dd ? + wki102_logged_on_users dd ? +WKSTA_INFO_102 ends + +WKSTA_INFO_302 struct + wki302_char_wait dd ? + wki302_collection_time dd ? + wki302_maximum_collection_count dd ? + wki302_keep_conn dd ? + wki302_keep_search dd ? + wki302_max_cmds dd ? + wki302_num_work_buf dd ? + wki302_siz_work_buf dd ? + wki302_max_wrk_cache dd ? + wki302_sess_timeout dd ? + wki302_siz_error dd ? + wki302_num_alerts dd ? + wki302_num_services dd ? + wki302_errlog_sz dd ? + wki302_print_buf_time dd ? + wki302_num_char_buf dd ? + wki302_siz_char_buf dd ? + wki302_wrk_heuristics dd ? + wki302_mailslots dd ? + wki302_num_dgram_buf dd ? +WKSTA_INFO_302 ends + +WKSTA_INFO_402 struct + wki402_char_wait dd ? + wki402_collection_time dd ? + wki402_maximum_collection_count dd ? + wki402_keep_conn dd ? + wki402_keep_search dd ? + wki402_max_cmds dd ? + wki402_num_work_buf dd ? + wki402_siz_work_buf dd ? + wki402_max_wrk_cache dd ? + wki402_sess_timeout dd ? + wki402_siz_error dd ? + wki402_num_alerts dd ? + wki402_num_services dd ? + wki402_errlog_sz dd ? + wki402_print_buf_time dd ? + wki402_num_char_buf dd ? + wki402_siz_char_buf dd ? + wki402_wrk_heuristics dd ? + wki402_mailslots dd ? + wki402_num_dgram_buf dd ? + wki402_max_threads dd ? +WKSTA_INFO_402 ends + +WKSTA_INFO_502 struct + wki502_char_wait dd ? + wki502_collection_time dd ? + wki502_maximum_collection_count dd ? + wki502_keep_conn dd ? + wki502_max_cmds dd ? + wki502_sess_timeout dd ? + wki502_siz_char_buf dd ? + wki502_max_threads dd ? + wki502_lock_quota dd ? + wki502_lock_increment dd ? + wki502_lock_maximum dd ? + wki502_pipe_increment dd ? + wki502_pipe_maximum dd ? + wki502_cache_file_timeout dd ? + wki502_dormant_file_limit dd ? + wki502_read_ahead_throughput dd ? + wki502_num_mailslot_buffers dd ? + wki502_num_srv_announce_buffers dd ? + wki502_max_illegal_datagram_events dd ? + wki502_illegal_datagram_event_reset_frequency dd ? + wki502_log_election_packets dd ? + wki502_use_opportunistic_locking dd ? + wki502_use_unlock_behind dd ? + wki502_use_close_behind dd ? + wki502_buf_named_pipes dd ? + wki502_use_lock_read_unlock dd ? + wki502_utilize_nt_caching dd ? + wki502_use_raw_read dd ? + wki502_use_raw_write dd ? + wki502_use_write_raw_data dd ? + wki502_use_encryption dd ? + wki502_buf_files_deny_write dd ? + wki502_buf_read_only_files dd ? + wki502_force_core_create_mode dd ? + wki502_use_512_byte_max_transfer dd ? +WKSTA_INFO_502 ends + +WKSTA_INFO_1010 struct + wki1010_char_wait dd ? +WKSTA_INFO_1010 ends + +WKSTA_INFO_1011 struct + wki1011_collection_time dd ? +WKSTA_INFO_1011 ends + +WKSTA_INFO_1012 struct + wki1012_maximum_collection_count dd ? +WKSTA_INFO_1012 ends + +WKSTA_INFO_1027 struct + wki1027_errlog_sz dd ? +WKSTA_INFO_1027 ends + +WKSTA_INFO_1028 struct + wki1028_print_buf_time dd ? +WKSTA_INFO_1028 ends + +WKSTA_INFO_1032 struct + wki1032_wrk_heuristics dd ? +WKSTA_INFO_1032 ends + +WKSTA_INFO_1013 struct + wki1013_keep_conn dd ? +WKSTA_INFO_1013 ends + +WKSTA_INFO_1018 struct + wki1018_sess_timeout dd ? +WKSTA_INFO_1018 ends + +WKSTA_INFO_1023 struct + wki1023_siz_char_buf dd ? +WKSTA_INFO_1023 ends + +WKSTA_INFO_1033 struct + wki1033_max_threads dd ? +WKSTA_INFO_1033 ends + +WKSTA_INFO_1041 struct + wki1041_lock_quota dd ? +WKSTA_INFO_1041 ends + +WKSTA_INFO_1042 struct + wki1042_lock_increment dd ? +WKSTA_INFO_1042 ends + +WKSTA_INFO_1043 struct + wki1043_lock_maximum dd ? +WKSTA_INFO_1043 ends + +WKSTA_INFO_1044 struct + wki1044_pipe_increment dd ? +WKSTA_INFO_1044 ends + +WKSTA_INFO_1045 struct + wki1045_pipe_maximum dd ? +WKSTA_INFO_1045 ends + +WKSTA_INFO_1046 struct + wki1046_dormant_file_limit dd ? +WKSTA_INFO_1046 ends + +WKSTA_INFO_1047 struct + wki1047_cache_file_timeout dd ? +WKSTA_INFO_1047 ends + +WKSTA_INFO_1048 struct + wki1048_use_opportunistic_locking dd ? +WKSTA_INFO_1048 ends + +WKSTA_INFO_1049 struct + wki1049_use_unlock_behind dd ? +WKSTA_INFO_1049 ends + +WKSTA_INFO_1050 struct + wki1050_use_close_behind dd ? +WKSTA_INFO_1050 ends + +WKSTA_INFO_1051 struct + wki1051_buf_named_pipes dd ? +WKSTA_INFO_1051 ends + +WKSTA_INFO_1052 struct + wki1052_use_lock_read_unlock dd ? +WKSTA_INFO_1052 ends + +WKSTA_INFO_1053 struct + wki1053_utilize_nt_caching dd ? +WKSTA_INFO_1053 ends + +WKSTA_INFO_1054 struct + wki1054_use_raw_read dd ? +WKSTA_INFO_1054 ends + +WKSTA_INFO_1055 struct + wki1055_use_raw_write dd ? +WKSTA_INFO_1055 ends + +WKSTA_INFO_1056 struct + wki1056_use_write_raw_data dd ? +WKSTA_INFO_1056 ends + +WKSTA_INFO_1057 struct + wki1057_use_encryption dd ? +WKSTA_INFO_1057 ends + +WKSTA_INFO_1058 struct + wki1058_buf_files_deny_write dd ? +WKSTA_INFO_1058 ends + +WKSTA_INFO_1059 struct + wki1059_buf_read_only_files dd ? +WKSTA_INFO_1059 ends + +WKSTA_INFO_1060 struct + wki1060_force_core_create_mode dd ? +WKSTA_INFO_1060 ends + +WKSTA_INFO_1061 struct + wki1061_use_512_byte_max_transfer dd ? +WKSTA_INFO_1061 ends + +WKSTA_INFO_1062 struct + wki1062_read_ahead_throughput dd ? +WKSTA_INFO_1062 ends + +WKSTA_USER_INFO_0 struct + wkui0_username dd ? +WKSTA_USER_INFO_0 ends + +WKSTA_USER_INFO_1 struct + wkui1_username dd ? + wkui1_logon_domain dd ? + wkui1_oth_domains dd ? + wkui1_logon_server dd ? +WKSTA_USER_INFO_1 ends + +WKSTA_USER_INFO_1101 struct + wkui1101_oth_domains dd ? +WKSTA_USER_INFO_1101 ends + +WKSTA_TRANSPORT_INFO_0 struct + wkti0_quality_of_service dd ? + wkti0_number_of_vcs dd ? + wkti0_transport_name dd ? + wkti0_transport_address dd ? + wkti0_wan_ish dd ? +WKSTA_TRANSPORT_INFO_0 ends + +;=================================[ LMACCESS.H ]================================= +ACCESS_ACCESS_LIST_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + ACCESS_ACCESS_LIST_PARMNUM) +ACCESS_ACCESS_LIST_PARMNUM equ 4 +ACCESS_ALL equ (ACCESS_READ+ACCESS_WRITE+ACCESS_CREATE+ACCESS_EXEC+ACCESS_DELETE+ACCESS_ATRIB+ACCESS_PERM) +ACCESS_ATRIB equ 20h +ACCESS_ATTR_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + ACCESS_ATTR_PARMNUM) +ACCESS_ATTR_PARMNUM equ 2 +ACCESS_AUDIT equ 1 +ACCESS_COUNT_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + ACCESS_COUNT_PARMNUM) +ACCESS_COUNT_PARMNUM equ 3 +ACCESS_CREATE equ 4 +ACCESS_DELETE equ 10h +ACCESS_EXEC equ 8 +ACCESS_FAIL_ACL equ 800h +ACCESS_FAIL_DELETE equ 400h +ACCESS_FAIL_MASK equ 0F00h +ACCESS_FAIL_OPEN equ 100h +ACCESS_FAIL_SHIFT equ 4 +ACCESS_FAIL_WRITE equ 200h +ACCESS_GROUP equ 8000h +ACCESS_NONE equ 0 +ACCESS_PERM equ 40h +ACCESS_READ equ 1 +ACCESS_RESOURCE_NAME_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + ACCESS_RESOURCE_NAME_PARMNUM) +ACCESS_RESOURCE_NAME_PARMNUM equ 1 +ACCESS_SUCCESS_ACL equ 80h +ACCESS_SUCCESS_DELETE equ 40h +ACCESS_SUCCESS_MASK equ 0F0h +ACCESS_SUCCESS_OPEN equ 10h +ACCESS_SUCCESS_WRITE equ 20h +ACCESS_WRITE equ 2 +AF_OP_ACCOUNTS equ 8 +AF_OP_COMM equ 2 +AF_OP_PRINT equ 1 +AF_OP_SERVER equ 4 +AF_SETTABLE_BITS equ (AF_OP_PRINT+AF_OP_COMM+AF_OP_SERVER+AF_OP_ACCOUNTS) +DEF_FORCE_LOGOFF equ 0ffffffffh +DEF_MAX_BADPW equ 0 +DEF_MAX_PWAGE equ TIMEQ_FOREVER +DEF_MAX_PWHIST equ 8 +DEF_MIN_PWAGE equ 0 +DEF_MIN_PWLEN equ 6 +DEF_PWUNIQUENESS equ 5 +FILTER_INTERDOMAIN_TRUST_ACCOUNT equ (8) +FILTER_NORMAL_ACCOUNT equ (2) +FILTER_SERVER_TRUST_ACCOUNT equ (20h) +FILTER_TEMP_DUPLICATE_ACCOUNT equ (1) +FILTER_WORKSTATION_TRUST_ACCOUNT equ (10h) +GROUPIDMASK equ 8000h +GROUP_ALL_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + GROUP_ALL_PARMNUM) +GROUP_ALL_PARMNUM equ 0 +GROUP_ATTRIBUTES_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + GROUP_ATTRIBUTES_PARMNUM) +GROUP_ATTRIBUTES_PARMNUM equ 3 +GROUP_COMMENT_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + GROUP_COMMENT_PARMNUM) +GROUP_COMMENT_PARMNUM equ 2 +GROUP_NAME_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + GROUP_NAME_PARMNUM) +GROUP_NAME_PARMNUM equ 1 +GROUP_POSIX_ID_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + GROUP_POSIX_ID_PARMNUM) +GROUP_SPECIALGRP_ADMINS equ L("ADMINS") +GROUP_SPECIALGRP_GUESTS equ L("GUESTS") +GROUP_SPECIALGRP_LOCAL equ L("LOCAL") +GROUP_SPECIALGRP_USERS equ L("USERS") +LG_INCLUDE_INDIRECT equ (1) +LOCALGROUP_COMMENT_PARMNUM equ 2 +LOCALGROUP_NAME_PARMNUM equ 1 +MAXPERMENTRIES equ 64 +MAX_PASSWD_LEN equ PWLEN +MODALS_DOMAIN_ID_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + MODALS_DOMAIN_ID_PARMNUM) +MODALS_DOMAIN_ID_PARMNUM equ 9 +MODALS_DOMAIN_NAME_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + MODALS_DOMAIN_NAME_PARMNUM) +MODALS_DOMAIN_NAME_PARMNUM equ 8 +MODALS_FORCE_LOGOFF_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + MODALS_FORCE_LOGOFF_PARMNUM) +MODALS_FORCE_LOGOFF_PARMNUM equ 4 +MODALS_LOCKOUT_DURATION_PARMNUM equ 10 +MODALS_LOCKOUT_OBSERVATION_WINDOW_PARMNUM equ 11 +MODALS_LOCKOUT_THRESHOLD_PARMNUM equ 12 +MODALS_MAX_PASSWD_AGE_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + MODALS_MAX_PASSWD_AGE_PARMNUM) +MODALS_MAX_PASSWD_AGE_PARMNUM equ 2 +MODALS_MIN_PASSWD_AGE_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + MODALS_MIN_PASSWD_AGE_PARMNUM) +MODALS_MIN_PASSWD_AGE_PARMNUM equ 3 +MODALS_MIN_PASSWD_LEN_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + MODALS_MIN_PASSWD_LEN_PARMNUM) +MODALS_MIN_PASSWD_LEN_PARMNUM equ 1 +MODALS_PASSWD_HIST_LEN_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + MODALS_PASSWD_HIST_LEN_PARMNUM) +MODALS_PASSWD_HIST_LEN_PARMNUM equ 5 +MODALS_PRIMARY_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + MODALS_PRIMARY_PARMNUM) +MODALS_PRIMARY_PARMNUM equ 7 +MODALS_ROLE_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + MODALS_ROLE_PARMNUM) +MODALS_ROLE_PARMNUM equ 6 +NETLOGON_CONTROL_BACKUP_CHANGE_LOG equ 0FFFCh +NETLOGON_CONTROL_BREAKPOINT equ 0FFFFh +NETLOGON_CONTROL_CHANGE_PASSWORD equ 9 +NETLOGON_CONTROL_FIND_USER equ 8 +NETLOGON_CONTROL_FORCE_DNS_REG equ 11 +NETLOGON_CONTROL_PDC_REPLICATE equ 4 +NETLOGON_CONTROL_QUERY equ 1 +NETLOGON_CONTROL_QUERY_DNS_REG equ 12 +NETLOGON_CONTROL_REDISCOVER equ 5 +NETLOGON_CONTROL_REPLICATE equ 2 +NETLOGON_CONTROL_SET_DBFLAG equ 0FFFEh +NETLOGON_CONTROL_SYNCHRONIZE equ 3 +NETLOGON_CONTROL_TC_QUERY equ 6 +NETLOGON_CONTROL_TC_VERIFY equ 10 +NETLOGON_CONTROL_TRANSPORT_NOTIFY equ 7 +NETLOGON_CONTROL_TRUNCATE_LOG equ 0FFFDh +NETLOGON_CONTROL_UNLOAD_NETLOGON_DLL equ 0FFFBh +NETLOGON_DNS_UPDATE_FAILURE equ 40h +NETLOGON_FULL_SYNC_REPLICATION equ 4 +NETLOGON_HAS_IP equ 10h +NETLOGON_HAS_TIMESERV equ 20h +NETLOGON_REDO_NEEDED equ 8 +NETLOGON_REPLICATION_IN_PROGRESS equ 2 +NETLOGON_REPLICATION_NEEDED equ 1 +NETLOGON_VERIFY_STATUS_RETURNED equ 80h +NET_VALIDATE_BAD_PASSWORD_COUNT equ 00000008h +NET_VALIDATE_BAD_PASSWORD_TIME equ 00000002h +NET_VALIDATE_LOCKOUT_TIME equ 00000004h +NET_VALIDATE_PASSWORD_HISTORY equ 00000020h +NET_VALIDATE_PASSWORD_HISTORY_LENGTH equ 00000010h +NET_VALIDATE_PASSWORD_LAST_SET equ 00000001h +NON_VALIDATED_LOGON equ 3 +NULL_USERSETINFO_PASSWD equ A(" ") +ONE_DAY equ 01*24*3600 +PASSWORD_EXPIRED equ 2 +TIMEQ_FOREVER equ -1 +UAS_ROLE_BACKUP equ 2 +UAS_ROLE_MEMBER equ 1 +UAS_ROLE_PRIMARY equ 3 +UAS_ROLE_STANDALONE equ 0 +UF_ACCOUNTDISABLE equ 2 +UF_ACCOUNT_TYPE_MASK equ (UF_TEMP_DUPLICATE_ACCOUNT+UF_NORMAL_ACCOUNT+UF_INTERDOMAIN_TRUST_ACCOUNT+UF_WORKSTATION_TRUST_ACCOUNT+UF_SERVER_TRUST_ACCOUNT) +UF_DONT_EXPIRE_PASSWD equ 10000h +UF_DONT_REQUIRE_PREAUTH equ 400000h +UF_ENCRYPTED_TEXT_PASSWORD_ALLOWED equ 0080h +UF_HOMEDIR_REQUIRED equ 8 +UF_INTERDOMAIN_TRUST_ACCOUNT equ 800h +UF_LOCKOUT equ 10h +UF_MACHINE_ACCOUNT_MASK equ ( UF_INTERDOMAIN_TRUST_ACCOUNT+UF_WORKSTATION_TRUST_ACCOUNT+UF_SERVER_TRUST_ACCOUNT ) +UF_MNS_LOGON_ACCOUNT equ 20000h +UF_NORMAL_ACCOUNT equ 200h +UF_NOT_DELEGATED equ 100000h +UF_NO_AUTH_DATA_REQUIRED equ 2000000h +UF_PARTIAL_SECRETS_ACCOUNT equ 4000000h +UF_PASSWD_CANT_CHANGE equ 40h +UF_PASSWD_NOTREQD equ 20h +UF_PASSWORD_EXPIRED equ 800000h +UF_SCRIPT equ 1 +UF_SERVER_TRUST_ACCOUNT equ 2000h +UF_SETTABLE_BITS equ (UF_SCRIPT+UF_ACCOUNTDISABLE+UF_LOCKOUT+UF_HOMEDIR_REQUIRED+UF_PASSWD_NOTREQD+UF_PASSWD_CANT_CHANGE+UF_ACCOUNT_TYPE_MASK+UF_DONT_EXPIRE_PASSWD+UF_MNS_LOGON_ACCOUNT) +UF_SMARTCARD_REQUIRED equ 40000h +UF_TEMP_DUPLICATE_ACCOUNT equ 100h +UF_TRUSTED_FOR_DELEGATION equ 80000h +UF_TRUSTED_TO_AUTHENTICATE_FOR_DELEGATION equ 1000000h +UF_USE_AES_KEYS equ 8000000h +UF_USE_DES_KEY_ONLY equ 200000h +UF_WORKSTATION_TRUST_ACCOUNT equ 1000h +UNITS_PER_DAY equ 24 +UNITS_PER_WEEK equ UNITS_PER_DAY * 7 +USER_ACCT_EXPIRES_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + USER_ACCT_EXPIRES_PARMNUM) +USER_ACCT_EXPIRES_PARMNUM equ 17 +USER_AUTH_FLAGS_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + USER_AUTH_FLAGS_PARMNUM) +USER_AUTH_FLAGS_PARMNUM equ 10 +USER_CODE_PAGE_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + USER_CODE_PAGE_PARMNUM) +USER_CODE_PAGE_PARMNUM equ 25 +USER_COMMENT_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + USER_COMMENT_PARMNUM) +USER_COMMENT_PARMNUM equ 7 +USER_COUNTRY_CODE_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + USER_COUNTRY_CODE_PARMNUM) +USER_COUNTRY_CODE_PARMNUM equ 24 +USER_FLAGS_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + USER_FLAGS_PARMNUM) +USER_FLAGS_PARMNUM equ 8 +USER_FULL_NAME_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + USER_FULL_NAME_PARMNUM) +USER_FULL_NAME_PARMNUM equ 11 +USER_HOME_DIR_DRIVE_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + USER_HOME_DIR_DRIVE_PARMNUM) +USER_HOME_DIR_DRIVE_PARMNUM equ 53 +USER_HOME_DIR_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + USER_HOME_DIR_PARMNUM) +USER_HOME_DIR_PARMNUM equ 6 +USER_LAST_LOGOFF_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + USER_LAST_LOGOFF_PARMNUM) +USER_LAST_LOGOFF_PARMNUM equ 16 +USER_LAST_LOGON_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + USER_LAST_LOGON_PARMNUM) +USER_LAST_LOGON_PARMNUM equ 15 +USER_LOGON_HOURS_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + USER_LOGON_HOURS_PARMNUM) +USER_LOGON_HOURS_PARMNUM equ 20 +USER_LOGON_SERVER_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + USER_LOGON_SERVER_PARMNUM) +USER_LOGON_SERVER_PARMNUM equ 23 +USER_MAXSTORAGE_UNLIMITED equ -1 +USER_MAX_STORAGE_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + USER_MAX_STORAGE_PARMNUM) +USER_MAX_STORAGE_PARMNUM equ 18 +USER_NAME_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + USER_NAME_PARMNUM) +USER_NAME_PARMNUM equ 1 +USER_NO_LOGOFF equ -1 +USER_NUM_LOGONS_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + USER_NUM_LOGONS_PARMNUM) +USER_NUM_LOGONS_PARMNUM equ 22 +USER_PAD_PW_COUNT_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + USER_PAD_PW_COUNT_PARMNUM) +USER_PAD_PW_COUNT_PARMNUM equ 21 +USER_PARMS_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + USER_PARMS_PARMNUM) +USER_PARMS_PARMNUM equ 13 +USER_PASSWORD_AGE_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + USER_PASSWORD_AGE_PARMNUM) +USER_PASSWORD_AGE_PARMNUM equ 4 +USER_PASSWORD_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + USER_PASSWORD_PARMNUM) +USER_PASSWORD_PARMNUM equ 3 +USER_POSIX_ID_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + USER_POSIX_ID_PARMNUM) +USER_PRIMARY_GROUP_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + USER_PRIMARY_GROUP_PARMNUM) +USER_PRIMARY_GROUP_PARMNUM equ 51 +USER_PRIV_ADMIN equ 2 +USER_PRIV_GUEST equ 0 +USER_PRIV_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + USER_PRIV_PARMNUM) +USER_PRIV_MASK equ 3 +USER_PRIV_PARMNUM equ 5 +USER_PRIV_USER equ 1 +USER_PROFILE equ 52 +USER_PROFILE_PARMNUM equ 52 +USER_SCRIPT_PATH_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + USER_SCRIPT_PATH_PARMNUM) +USER_SCRIPT_PATH_PARMNUM equ 9 +USER_UNITS_PER_WEEK_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + USER_UNITS_PER_WEEK_PARMNUM) +USER_UNITS_PER_WEEK_PARMNUM equ 19 +USER_USR_COMMENT_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + USER_USR_COMMENT_PARMNUM) +USER_USR_COMMENT_PARMNUM equ 12 +USER_WORKSTATIONS_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + USER_WORKSTATIONS_PARMNUM) +USER_WORKSTATIONS_PARMNUM equ 14 +VALIDATED_LOGON equ 0 +VALID_LOGOFF equ 1 + +USER_INFO_0 struct + usri0_name dd ? +USER_INFO_0 ends + +USER_INFO_1 struct + usri1_name dd ? + usri1_password dd ? + usri1_password_age dd ? + usri1_priv dd ? + usri1_home_dir dd ? + usri1_comment dd ? + usri1_flags dd ? + usri1_script_path dd ? +USER_INFO_1 ends + +USER_INFO_2 struct + usri2_name dd ? + usri2_password dd ? + usri2_password_age dd ? + usri2_priv dd ? + usri2_home_dir dd ? + usri2_comment dd ? + usri2_flags dd ? + usri2_script_path dd ? + usri2_auth_flags dd ? + usri2_full_name dd ? + usri2_usr_comment dd ? + usri2_parms dd ? + usri2_workstations dd ? + usri2_last_logon dd ? + usri2_last_logoff dd ? + usri2_acct_expires dd ? + usri2_max_storage dd ? + usri2_units_per_week dd ? + usri2_logon_hours dd ? + usri2_bad_pw_count dd ? + usri2_num_logons dd ? + usri2_logon_server dd ? + usri2_country_code dd ? + usri2_code_page dd ? +USER_INFO_2 ends + +USER_INFO_3 struct + usri3_name dd ? + usri3_password dd ? + usri3_password_age dd ? + usri3_priv dd ? + usri3_home_dir dd ? + usri3_comment dd ? + usri3_flags dd ? + usri3_script_path dd ? + usri3_auth_flags dd ? + usri3_full_name dd ? + usri3_usr_comment dd ? + usri3_parms dd ? + usri3_workstations dd ? + usri3_last_logon dd ? + usri3_last_logoff dd ? + usri3_acct_expires dd ? + usri3_max_storage dd ? + usri3_units_per_week dd ? + usri3_logon_hours dd ? + usri3_bad_pw_count dd ? + usri3_num_logons dd ? + usri3_logon_server dd ? + usri3_country_code dd ? + usri3_code_page dd ? + usri3_user_id dd ? + usri3_primary_group_id dd ? + usri3_profile dd ? + usri3_home_dir_drive dd ? + usri3_password_expired dd ? +USER_INFO_3 ends + +USER_INFO_10 struct + usri10_name dd ? + usri10_comment dd ? + usri10_usr_comment dd ? + usri10_full_name dd ? +USER_INFO_10 ends + +USER_INFO_11 struct + usri11_name dd ? + usri11_comment dd ? + usri11_usr_comment dd ? + usri11_full_name dd ? + usri11_priv dd ? + usri11_auth_flags dd ? + usri11_password_age dd ? + usri11_home_dir dd ? + usri11_parms dd ? + usri11_last_logon dd ? + usri11_last_logoff dd ? + usri11_bad_pw_count dd ? + usri11_num_logons dd ? + usri11_logon_server dd ? + usri11_country_code dd ? + usri11_workstations dd ? + usri11_max_storage dd ? + usri11_units_per_week dd ? + usri11_logon_hours dd ? + usri11_code_page dd ? +USER_INFO_11 ends + +USER_INFO_20 struct + usri20_name dd ? + usri20_full_name dd ? + usri20_comment dd ? + usri20_flags dd ? + usri20_user_id dd ? +USER_INFO_20 ends + +USER_INFO_21 struct + usri21_password db ENCRYPTED_PWLEN dup(?) +USER_INFO_21 ends + +USER_INFO_22 struct + usri22_name dd ? + usri22_password db ENCRYPTED_PWLEN dup(?) + usri22_password_age dd ? + usri22_priv dd ? + usri22_home_dir dd ? + usri22_comment dd ? + usri22_flags dd ? + usri22_script_path dd ? + usri22_auth_flags dd ? + usri22_full_name dd ? + usri22_usr_comment dd ? + usri22_parms dd ? + usri22_workstations dd ? + usri22_last_logon dd ? + usri22_last_logoff dd ? + usri22_acct_expires dd ? + usri22_max_storage dd ? + usri22_units_per_week dd ? + usri22_logon_hours dd ? + usri22_bad_pw_count dd ? + usri22_num_logons dd ? + usri22_logon_server dd ? + usri22_country_code dd ? + usri22_code_page dd ? +USER_INFO_22 ends + +USER_INFO_1003 struct + usri1003_password dd ? +USER_INFO_1003 ends + +USER_INFO_1005 struct + usri1005_priv dd ? +USER_INFO_1005 ends + +USER_INFO_1006 struct + usri1006_home_dir dd ? +USER_INFO_1006 ends + +USER_INFO_1007 struct + usri1007_comment dd ? +USER_INFO_1007 ends + +USER_INFO_1008 struct + usri1008_flags dd ? +USER_INFO_1008 ends + +USER_INFO_1009 struct + usri1009_script_path dd ? +USER_INFO_1009 ends + +USER_INFO_1010 struct + usri1010_auth_flags dd ? +USER_INFO_1010 ends + +USER_INFO_1011 struct + usri1011_full_name dd ? +USER_INFO_1011 ends + +USER_INFO_1012 struct + usri1012_usr_comment dd ? +USER_INFO_1012 ends + +USER_INFO_1013 struct + usri1013_parms dd ? +USER_INFO_1013 ends + +USER_INFO_1014 struct + usri1014_workstations dd ? +USER_INFO_1014 ends + +USER_INFO_1017 struct + usri1017_acct_expires dd ? +USER_INFO_1017 ends + +USER_INFO_1018 struct + usri1018_max_storage dd ? +USER_INFO_1018 ends + +USER_INFO_1020 struct + usri1020_units_per_week dd ? + usri1020_logon_hours dd ? +USER_INFO_1020 ends + +USER_INFO_1023 struct + usri1023_logon_server dd ? +USER_INFO_1023 ends + +USER_INFO_1024 struct + usri1024_country_code dd ? +USER_INFO_1024 ends + +USER_INFO_1025 struct + usri1025_code_page dd ? +USER_INFO_1025 ends + +USER_INFO_1051 struct + usri1051_primary_group_id dd ? +USER_INFO_1051 ends + +USER_INFO_1052 struct + usri1052_profile dd ? +USER_INFO_1052 ends + +USER_INFO_1053 struct + usri1053_home_dir_drive dd ? +USER_INFO_1053 ends + +USER_MODALS_INFO_0 struct + usrmod0_min_passwd_len dd ? + usrmod0_max_passwd_age dd ? + usrmod0_min_passwd_age dd ? + usrmod0_force_logoff dd ? + usrmod0_password_hist_len dd ? +USER_MODALS_INFO_0 ends + +USER_MODALS_INFO_1 struct + usrmod1_role dd ? + usrmod1_primary dd ? +USER_MODALS_INFO_1 ends + +USER_MODALS_INFO_2 struct + usrmod2_domain_name dd ? + usrmod2_domain_id dd ? +USER_MODALS_INFO_2 ends + +USER_MODALS_INFO_3 struct + usrmod3_lockout_duration dd ? + usrmod3_lockout_observation_window dd ? + usrmod3_lockout_threshold dd ? +USER_MODALS_INFO_3 ends + +USER_MODALS_INFO_1001 struct + usrmod1001_min_passwd_len dd ? +USER_MODALS_INFO_1001 ends + +USER_MODALS_INFO_1002 struct + usrmod1002_max_passwd_age dd ? +USER_MODALS_INFO_1002 ends + +USER_MODALS_INFO_1003 struct + usrmod1003_min_passwd_age dd ? +USER_MODALS_INFO_1003 ends + +USER_MODALS_INFO_1004 struct + usrmod1004_force_logoff dd ? +USER_MODALS_INFO_1004 ends + +USER_MODALS_INFO_1005 struct + usrmod1005_password_hist_len dd ? +USER_MODALS_INFO_1005 ends + +USER_MODALS_INFO_1006 struct + usrmod1006_role dd ? +USER_MODALS_INFO_1006 ends + +USER_MODALS_INFO_1007 struct + usrmod1007_primary dd ? +USER_MODALS_INFO_1007 ends + +GROUP_INFO_0 struct + grpi0_name dd ? +GROUP_INFO_0 ends + +GROUP_INFO_1 struct + grpi1_name dd ? + grpi1_comment dd ? +GROUP_INFO_1 ends + +GROUP_INFO_2 struct + grpi2_name dd ? + grpi2_comment dd ? + grpi2_group_id dd ? + grpi2_attributes dd ? +GROUP_INFO_2 ends + +GROUP_INFO_1002 struct + grpi1002_comment dd ? +GROUP_INFO_1002 ends + +GROUP_INFO_1005 struct + grpi1005_attributes dd ? +GROUP_INFO_1005 ends + +GROUP_USERS_INFO_0 struct + grui0_name dd ? +GROUP_USERS_INFO_0 ends + +GROUP_USERS_INFO_1 struct + grui1_name dd ? + grui1_attributes dd ? +GROUP_USERS_INFO_1 ends + +LOCALGROUP_INFO_0 struct + lgrpi0_name dd ? +LOCALGROUP_INFO_0 ends + +LOCALGROUP_INFO_1 struct + lgrpi1_name dd ? + lgrpi1_comment dd ? +LOCALGROUP_INFO_1 ends + +LOCALGROUP_INFO_1002 struct + lgrpi1002_comment dd ? +LOCALGROUP_INFO_1002 ends + +LOCALGROUP_MEMBERS_INFO_0 struct + lgrmi0_sid dd ? +LOCALGROUP_MEMBERS_INFO_0 ends + +LOCALGROUP_MEMBERS_INFO_1 struct + lgrmi1_sid dd ? + lgrmi1_sidusage dd ? + lgrmi1_name dd ? +LOCALGROUP_MEMBERS_INFO_1 ends + +LOCALGROUP_MEMBERS_INFO_2 struct + lgrmi2_sid dd ? + lgrmi2_sidusage dd ? + lgrmi2_domainandname dd ? +LOCALGROUP_MEMBERS_INFO_2 ends + +LOCALGROUP_MEMBERS_INFO_3 struct + lgrmi3_domainandname dd ? +LOCALGROUP_MEMBERS_INFO_3 ends + +LOCALGROUP_USERS_INFO_0 struct + lgrui0_name dd ? +LOCALGROUP_USERS_INFO_0 ends + +NET_DISPLAY_USER struct + usri1_name dd ? + usri1_comment dd ? + usri1_flags dd ? + usri1_full_name dd ? + usri1_user_id dd ? + usri1_next_index dd ? +NET_DISPLAY_USER ends + +NET_DISPLAY_MACHINE struct + usri2_name dd ? + usri2_comment dd ? + usri2_flags dd ? + usri2_user_id dd ? + usri2_next_index dd ? +NET_DISPLAY_MACHINE ends + +NET_DISPLAY_GROUP struct + grpi3_name dd ? + grpi3_comment dd ? + grpi3_group_id dd ? + grpi3_attributes dd ? + grpi3_next_index dd ? +NET_DISPLAY_GROUP ends + +ACCESS_INFO_0 struct + acc0_resource_name dd ? +ACCESS_INFO_0 ends + +ACCESS_INFO_1 struct + acc1_resource_name dd ? + acc1_attr dd ? + acc1_count dd ? +ACCESS_INFO_1 ends + +ACCESS_INFO_1002 struct + acc1002_attr dd ? +ACCESS_INFO_1002 ends + + +ACCESS_LIST struct + acl_ugname dd ? + acl_access dd ? +ACCESS_LIST ends + +NETLOGON_INFO_1 struct + netlog1_flags dd ? + netlog1_pdc_connection_status NET_API_STATUS ? +NETLOGON_INFO_1 ends + +NETLOGON_INFO_2 struct + netlog2_flags dd ? + netlog2_pdc_connection_status NET_API_STATUS ? + netlog2_trusted_dc_name dd ? + netlog2_tc_connection_status NET_API_STATUS ? +NETLOGON_INFO_2 ends + +NETLOGON_INFO_3 struct + netlog3_flags dd ? + netlog3_logon_attempts dd ? + netlog3_reserved1 dd ? + netlog3_reserved2 dd ? + netlog3_reserved3 dd ? + netlog3_reserved4 dd ? + netlog3_reserved5 dd ? +NETLOGON_INFO_3 ends + +NETLOGON_INFO_4 struct + netlog4_trusted_dc_name dd ? + netlog4_trusted_domain_name dd ? +NETLOGON_INFO_4 ends + +;=============================================[ LMALERT.h ]========================= +ALERTER_MAILSLOT equ A("\\.\MAILSLOT\Alerter") +ALERT_PRINT_EVENT equ A("PRINTING") +ALERT_MESSAGE_EVENT equ A("MESSAGE") +ALERT_ERRORLOG_EVENT equ A("ERRORLOG") +ALERT_ADMIN_EVENT equ A("ADMIN") +ALERT_USER_EVENT equ A("USER") +PRJOB_QSTATUS equ 3 +PRJOB_DEVSTATUS equ 1fch +PRJOB_COMPLETE equ 4 +PRJOB_INTERV equ 8 +PRJOB_ERROR equ 10h +PRJOB_DESTOFFLINE equ 20h +PRJOB_DESTPAUSED equ 40h +PRJOB_NOTIFY equ 80h +PRJOB_DESTNOPAPER equ 100h +PRJOB_DELETED equ 8000h +PRJOB_QS_QUEUED equ 0 +PRJOB_QS_PAUSED equ 1 +PRJOB_QS_SPOOLING equ 2 +PRJOB_QS_PRINTING equ 3 + +STD_ALERT struct + alrt_timestamp dd ? + alrt_eventname WCHAR [EVLEN + 1] dup(?) + alrt_servicename WCHAR [SNLEN + 1] dup(?) +STD_ALERT ends + +ADMIN_OTHER_INFO struct + alrtad_errcode dd ? + alrtad_numstrings dd ? +ADMIN_OTHER_INFO ends + +ERRLOG_OTHER_INFO struct + alrter_errcode dd ? + alrter_offset dd ? +ERRLOG_OTHER_INFO ends + +PRINT_OTHER_INFO struct + alrtpr_jobid dd ? + alrtpr_status dd ? + alrtpr_submitted dd ? + alrtpr_size dd ? +PRINT_OTHER_INFO ends + +USER_OTHER_INFO struct + alrtus_errcode dd ? + alrtus_numstrings dd ? +USER_OTHER_INFO ends + +;================================[ LMAT.H'===================================== +JOB_RUN_PERIODICALLY equ 1 +JOB_EXEC_ERROR equ 2 +JOB_RUNS_TODAY equ 4 +JOB_ADD_CURRENT_DATE equ 8 +JOB_NONINTERACTIVE equ 10h +JOB_INPUT_FLAGS equ (JOB_RUN_PERIODICALLY+JOB_ADD_CURRENT_DATE+JOB_NONINTERACTIVE) +JOB_OUTPUT_FLAGS equ (JOB_RUN_PERIODICALLY+JOB_EXEC_ERROR+JOB_RUNS_TODAY+JOB_NONINTERACTIVE) +AT_INFO struct + JobTime dd ? + DaysOfMonth dd ? + DaysOfWeek UCHAR ? + Flags UCHAR ? + Command dd ? +AT_INFO ends + +AT_ENUM struct + JobId dd ? + JobTime dd ? + DaysOfMonth dd ? + DaysOfWeek UCHAR ? + Flags UCHAR ? + Command dd ? +AT_ENUM ends + +;=========================================[ LMAUDIT.H ]========================= +LOGFLAGS_FORWARD equ 0 +LOGFLAGS_BACKWARD equ 1 +LOGFLAGS_SEEK equ 2 +ACTION_LOCKOUT equ 00 +ACTION_ADMINUNLOCK equ 01 +;AE_SRVSTATUS equ 0 +;AE_SESSLOGON equ 1 +;AE_SESSLOGOFF equ 2 +;AE_SESSPWERR equ 3 +;AE_CONNSTART equ 4 +;AE_CONNSTOP equ 5 +;AE_CONNREJ equ 6 +;AE_RESACCESS equ 7 +;AE_RESACCESSREJ equ 8 +;AE_CLOSEFILE equ 9 +;AE_SERVICESTAT equ 11 +;AE_ACLMOD equ 12 +;AE_UASMOD equ 13 +;AE_NETLOGON equ 14 +;AE_NETLOGOFF equ 15 +;AE_NETLOGDENIED equ 16 +;AE_ACCLIMITEXCD equ 17 +;AE_RESACCESS2 equ 18 +;AE_ACLMODFAIL equ 19 +;AE_LOCKOUT equ 20 +;AE_GENERIC_TYPE equ 21 +AE_SRVSTART equ 0 +AE_SRVPAUSED equ 1 +AE_SRVCONT equ 2 +AE_SRVSTOP equ 3 +AE_GUEST equ 0 +AE_USER equ 1 +AE_ADMIN equ 2 +AE_NORMAL equ 0 +AE_USERLIMIT equ 0 +AE_GENERAL equ 0 +AE_ERROR equ 1 +AE_SESSDIS equ 1 +AE_BADPW equ 1 +AE_AUTODIS equ 2 +AE_UNSHARE equ 2 +AE_ADMINPRIVREQD equ 2 +AE_ADMINDIS equ 3 +AE_NOACCESSPERM equ 3 +AE_ACCRESTRICT equ 4 +AE_NORMAL_CLOSE equ 0 +AE_SES_CLOSE equ 1 +AE_ADMIN_CLOSE equ 2 +AE_LIM_UNKNOWN equ 0 +AE_LIM_LOGONHOURS equ 1 +AE_LIM_EXPIRED equ 2 +AE_LIM_INVAL_WKSTA equ 3 +AE_LIM_DISABLED equ 4 +AE_LIM_DELETED equ 5 +AE_MOD equ 0 +AE_DELETE equ 1 +AE_ADD equ 2 +AE_UAS_USER equ 0 +AE_UAS_GROUP equ 1 +AE_UAS_MODALS equ 2 +SVAUD_SERVICE equ 1 +SVAUD_GOODSESSLOGON equ 6 +SVAUD_BADSESSLOGON equ 18h +SVAUD_SESSLOGON equ (SVAUD_GOODSESSLOGON + SVAUD_BADSESSLOGON) +SVAUD_GOODNETLOGON equ 60h +SVAUD_BADNETLOGON equ 180h +SVAUD_NETLOGON equ (SVAUD_GOODNETLOGON + SVAUD_BADNETLOGON) +SVAUD_LOGON equ (SVAUD_NETLOGON + SVAUD_SESSLOGON) +SVAUD_GOODUSE equ 600h +SVAUD_BADUSE equ 1800h +SVAUD_USE equ (SVAUD_GOODUSE + SVAUD_BADUSE) +SVAUD_USERLIST equ 2000h +SVAUD_PERMISSIONS equ 4000h +SVAUD_RESOURCE equ 8000h +SVAUD_LOGONLIM equ 10000h +AA_AUDIT_ALL equ 1 +AA_A_OWNER equ 4 +AA_CLOSE equ 8 +AA_S_OPEN equ 10h +AA_S_WRITE equ 20h +AA_S_CREATE equ 20h +AA_S_DELETE equ 40h +AA_S_ACL equ 80h +AA_S_ALL equ ( AA_S_OPEN + AA_S_WRITE + AA_S_DELETE + AA_S_ACL) +AA_F_OPEN equ 100h +AA_F_WRITE equ 200h +AA_F_CREATE equ 200h +AA_F_DELETE equ 400h +AA_F_ACL equ 800h +AA_F_ALL equ ( AA_F_OPEN + AA_F_WRITE + AA_F_DELETE + AA_F_ACL) +AA_A_OPEN equ 1000h +AA_A_WRITE equ 2000h +AA_A_CREATE equ 2000h +AA_A_DELETE equ 4000h +AA_A_ACL equ 8000h +AA_A_ALL equ ( AA_F_OPEN + AA_F_WRITE + AA_F_DELETE + AA_F_ACL) + +HLOG struct + time dd ? + last_flags dd ? + offset1 dd ? + rec_offset dd ? +HLOG ends + +AUDIT_ENTRY struct + ae_len dd ? + ae_reserved dd ? + ae_time dd ? + ae_type dd ? + ae_data_offset dd ? + ae_data_size dd ? +AUDIT_ENTRY ends + +AE_SRVSTATUS struct + ae_sv_status dd ? +AE_SRVSTATUS ends + +AE_SESSLOGON struct + ae_so_compname dd ? + ae_so_username dd ? + ae_so_privilege dd ? +AE_SESSLOGON ends + +AE_SESSLOGOFF struct + ae_sf_compname dd ? + ae_sf_username dd ? + ae_sf_reason dd ? +AE_SESSLOGOFF ends + +AE_SESSPWERR struct + ae_sp_compname dd ? + ae_sp_username dd ? +AE_SESSPWERR ends + +AE_CONNSTART struct + ae_ct_compname dd ? + ae_ct_username dd ? + ae_ct_netname dd ? + ae_ct_connid dd ? +AE_CONNSTART ends + +AE_CONNSTOP struct + ae_cp_compname dd ? + ae_cp_username dd ? + ae_cp_netname dd ? + ae_cp_connid dd ? + ae_cp_reason dd ? +AE_CONNSTOP ends + +AE_CONNREJ struct + ae_cr_compname dd ? + ae_cr_username dd ? + ae_cr_netname dd ? + ae_cr_reason dd ? +AE_CONNREJ ends + +AE_RESACCESS struct + ae_ra_compname dd ? + ae_ra_username dd ? + ae_ra_resname dd ? + ae_ra_operation dd ? + ae_ra_returncode dd ? + ae_ra_restype dd ? + ae_ra_fileid dd ? +AE_RESACCESS ends + +AE_RESACCESSREJ struct + ae_rr_compname dd ? + ae_rr_username dd ? + ae_rr_resname dd ? + ae_rr_operation dd ? +AE_RESACCESSREJ ends + +AE_CLOSEFILE struct + ae_cf_compname dd ? + ae_cf_username dd ? + ae_cf_resname dd ? + ae_cf_fileid dd ? + ae_cf_duration dd ? + ae_cf_reason dd ? +AE_CLOSEFILE ends + +AE_SERVICESTAT struct + ae_ss_compname dd ? + ae_ss_username dd ? + ae_ss_svcname dd ? + ae_ss_status dd ? + ae_ss_code dd ? + ae_ss_text dd ? + ae_ss_returnval dd ? +AE_SERVICESTAT ends + +AE_ACLMOD struct + ae_am_compname dd ? + ae_am_username dd ? + ae_am_resname dd ? + ae_am_action dd ? + ae_am_datalen dd ? +AE_ACLMOD ends + +AE_UASMOD struct + ae_um_compname dd ? + ae_um_username dd ? + ae_um_resname dd ? + ae_um_rectype dd ? + ae_um_action dd ? + ae_um_datalen dd ? +AE_UASMOD ends + +AE_NETLOGON struct + ae_no_compname dd ? + ae_no_username dd ? + ae_no_privilege dd ? + ae_no_authflags dd ? +AE_NETLOGON ends + +AE_NETLOGOFF struct + ae_nf_compname dd ? + ae_nf_username dd ? + ae_nf_reserved1 dd ? + ae_nf_reserved2 dd ? +AE_NETLOGOFF ends + +AE_ACCLIM struct + ae_al_compname dd ? + ae_al_username dd ? + ae_al_resname dd ? + ae_al_limit dd ? +AE_ACCLIM ends + +AE_LOCKOUT struct + ae_lk_compname dd ? + ae_lk_username dd ? + ae_lk_action dd ? + ae_lk_bad_pw_count dd ? +AE_LOCKOUT ends + +AE_GENERIC struct + ae_ge_msgfile dd ? + ae_ge_msgnum dd ? + ae_ge_params dd ? + ae_ge_param1 dd ? + ae_ge_param2 dd ? + ae_ge_param3 dd ? + ae_ge_param4 dd ? + ae_ge_param5 dd ? + ae_ge_param6 dd ? + ae_ge_param7 dd ? + ae_ge_param8 dd ? + ae_ge_param9 dd ? +AE_GENERIC ends + +;==================================[ LMBROWSR.H ]============================== +BROWSER_ROLE_PDC equ 1 +BROWSER_ROLE_BDC equ 2 + +BROWSER_STATISTICS struct + StatisticsStartTime LARGE_INTEGER <> + NumberOfServerAnnouncements LARGE_INTEGER <> + NumberOfDomainAnnouncements LARGE_INTEGER <> + NumberOfElectionPackets dd ? + NumberOfMailslotWrites dd ? + NumberOfGetBrowserServerListRequests dd ? + NumberOfServerEnumerations dd ? + NumberOfDomainEnumerations dd ? + NumberOfOtherEnumerations dd ? + NumberOfMissedServerAnnouncements dd ? + NumberOfMissedMailslotDatagrams dd ? + NumberOfMissedGetBrowserServerListRequests dd ? + NumberOfFailedServerAnnounceAllocations dd ? + NumberOfFailedMailslotAllocations dd ? + NumberOfFailedMailslotReceives dd ? + NumberOfFailedMailslotWrites dd ? + NumberOfFailedMailslotOpens dd ? + NumberOfDuplicateMasterAnnouncements dd ? + NumberOfIllegalDatagrams LARGE_INTEGER <> +BROWSER_STATISTICS ends + +BROWSER_STATISTICS_100 struct + StartTime LARGE_INTEGER <> + NumberOfServerAnnouncements LARGE_INTEGER <> + NumberOfDomainAnnouncements LARGE_INTEGER <> + NumberOfElectionPackets dd ? + NumberOfMailslotWrites dd ? + NumberOfGetBrowserServerListRequests dd ? + NumberOfIllegalDatagrams LARGE_INTEGER <> +BROWSER_STATISTICS_100 ends + +BROWSER_STATISTICS_101 struct + StartTime LARGE_INTEGER <> + NumberOfServerAnnouncements LARGE_INTEGER <> + NumberOfDomainAnnouncements LARGE_INTEGER <> + NumberOfElectionPackets dd ? + NumberOfMailslotWrites dd ? + NumberOfGetBrowserServerListRequests dd ? + NumberOfIllegalDatagrams LARGE_INTEGER <> + NumberOfMissedServerAnnouncements dd ? + NumberOfMissedMailslotDatagrams dd ? + NumberOfMissedGetBrowserServerListRequests dd ? + NumberOfFailedServerAnnounceAllocations dd ? + NumberOfFailedMailslotAllocations dd ? + NumberOfFailedMailslotReceives dd ? + NumberOfFailedMailslotWrites dd ? + NumberOfFailedMailslotOpens dd ? + NumberOfDuplicateMasterAnnouncements dd ? +BROWSER_STATISTICS_101 ends + + +BROWSER_EMULATED_DOMAIN struct + DomainName dd ? + EmulatedServerName dd ? + Role dd ? +BROWSER_EMULATED_DOMAIN ends + +;====================================[ LMCHDEV.H ]============================== +CHARDEV_STAT_OPENED equ 2 +CHARDEV_STAT_ERROR equ 4 +CHARDEV_CLOSE equ 0 +CHARDEVQ_DEV_PARMNUM equ 1 +CHARDEVQ_PRIORITY_PARMNUM equ 2 +CHARDEVQ_DEVS_PARMNUM equ 3 +CHARDEVQ_NUMUSERS_PARMNUM equ 4 +CHARDEVQ_NUMAHEAD_PARMNUM equ 5 +CHARDEVQ_PRIORITY_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + CHARDEVQ_PRIORITY_PARMNUM) +CHARDEVQ_DEVS_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + CHARDEVQ_DEVS_PARMNUM) +CHARDEVQ_MAX_PRIORITY equ 1 +CHARDEVQ_MIN_PRIORITY equ 9 +CHARDEVQ_DEF_PRIORITY equ 5 +CHARDEVQ_NO_REQUESTS equ -1 +HANDLE_INFO_LEVEL_1 equ 1 +HANDLE_CHARTIME_PARMNUM equ 1 +HANDLE_CHARCOUNT_PARMNUM equ 2 + +CHARDEV_INFO_0 struct + ch0_dev dd ? +CHARDEV_INFO_0 ends + +CHARDEV_INFO_1 struct + ch1_dev dd ? + ch1_status dd ? + ch1_username dd ? + ch1_time dd ? +CHARDEV_INFO_1 ends + +CHARDEVQ_INFO_0 struct + cq0_dev dd ? +CHARDEVQ_INFO_0 ends + +CHARDEVQ_INFO_1 struct + cq1_dev dd ? + cq1_priority dd ? + cq1_devs dd ? + cq1_numusers dd ? + cq1_numahead dd ? +CHARDEVQ_INFO_1 ends + +CHARDEVQ_INFO_1002 struct + cq1002_priority dd ? +CHARDEVQ_INFO_1002 ends + +CHARDEVQ_INFO_1003 struct + cq1003_devs dd ? +CHARDEVQ_INFO_1003 ends + +HANDLE_INFO_1 struct + hdli1_chartime dd ? + hdli1_charcount dd ? +HANDLE_INFO_1 ends + +;======================================[ LMCONFIG ]======================== +CONFIG_INFO_0 struct + cfgi0_key dd ? + cfgi0_data dd ? +CONFIG_INFO_0 ends + +;=======================================[ LMDFS.H ]======================== + +DFS_VOLUME_STATE_OK equ 1 +DFS_VOLUME_STATE_INCONSISTENT equ 2 +DFS_VOLUME_STATE_OFFLINE equ 3 +DFS_VOLUME_STATE_ONLINE equ 4 +DFS_STORAGE_STATE_OFFLINE equ 1 +DFS_STORAGE_STATE_ONLINE equ 2 +DFS_ADD_VOLUME equ 1 +DFS_RESTORE_VOLUME equ 2 +DFS_INFO_1 struct + EntryPath dd ? +DFS_INFO_1 ends + +DFS_INFO_2 struct + EntryPath dd ? + Comment dd ? + State dd ? + NumberOfStorages dd ? +DFS_INFO_2 ends + +DFS_STORAGE_INFO struct + State dd ? + ServerName dd ? + ShareName dd ? +DFS_STORAGE_INFO ends + +DFS_INFO_3 struct + EntryPath dd ? + Comment dd ? + State dd ? + NumberOfStorages dd ? + Storage dd ? +DFS_INFO_3 ends + +DFS_INFO_100 struct + _comment dd ? +DFS_INFO_100 ends + +DFS_INFO_101 struct + State dd ? +DFS_INFO_101 ends + +;================================[ LMERRLOG.H ]=============================== +ERRLOG_BASE equ 3100 +NELOG_Internal_Error equ (ERRLOG_BASE + 0) +NELOG_Resource_Shortage equ (ERRLOG_BASE + 1) +NELOG_Unable_To_Lock_Segment equ (ERRLOG_BASE + 2) +NELOG_Unable_To_Unlock_Segment equ (ERRLOG_BASE + 3) +NELOG_Uninstall_Service equ (ERRLOG_BASE + 4) +NELOG_Init_Exec_Fail equ (ERRLOG_BASE + 5) +NELOG_Ncb_Error equ (ERRLOG_BASE + 6) +NELOG_Net_Not_Started equ (ERRLOG_BASE + 7) +NELOG_Ioctl_Error equ (ERRLOG_BASE + 8) +NELOG_System_Semaphore equ (ERRLOG_BASE + 9) +NELOG_Init_OpenCreate_Err equ (ERRLOG_BASE + 10) +NELOG_NetBios equ (ERRLOG_BASE + 11) +NELOG_SMB_Illegal equ (ERRLOG_BASE + 12) +NELOG_Service_Fail equ (ERRLOG_BASE + 13) +NELOG_Entries_Lost equ (ERRLOG_BASE + 14) +NELOG_Init_Seg_Overflow equ (ERRLOG_BASE + 20) +NELOG_Srv_No_Mem_Grow equ (ERRLOG_BASE + 21) +NELOG_Access_File_Bad equ (ERRLOG_BASE + 22) +NELOG_Srvnet_Not_Started equ (ERRLOG_BASE + 23) +NELOG_Init_Chardev_Err equ (ERRLOG_BASE + 24) +NELOG_Remote_API equ (ERRLOG_BASE + 25) +NELOG_Ncb_TooManyErr equ (ERRLOG_BASE + 26) +NELOG_Mailslot_err equ (ERRLOG_BASE + 27) +NELOG_ReleaseMem_Alert equ (ERRLOG_BASE + 28) +NELOG_AT_cannot_write equ (ERRLOG_BASE + 29) +NELOG_Cant_Make_Msg_File equ (ERRLOG_BASE + 30) +NELOG_Exec_Netservr_NoMem equ (ERRLOG_BASE + 31) +NELOG_Server_Lock_Failure equ (ERRLOG_BASE + 32) +NELOG_Msg_Shutdown equ (ERRLOG_BASE + 40) +NELOG_Msg_Sem_Shutdown equ (ERRLOG_BASE + 41) +NELOG_Msg_Log_Err equ (ERRLOG_BASE + 50) +NELOG_VIO_POPUP_ERR equ (ERRLOG_BASE + 51) +NELOG_Msg_Unexpected_SMB_Type equ (ERRLOG_BASE + 52) +NELOG_Wksta_Infoseg equ (ERRLOG_BASE + 60) +NELOG_Wksta_Compname equ (ERRLOG_BASE + 61) +NELOG_Wksta_BiosThreadFailure equ (ERRLOG_BASE + 62) +NELOG_Wksta_IniSeg equ (ERRLOG_BASE + 63) +NELOG_Wksta_HostTab_Full equ (ERRLOG_BASE + 64) +NELOG_Wksta_Bad_Mailslot_SMB equ (ERRLOG_BASE + 65) +NELOG_Wksta_UASInit equ (ERRLOG_BASE + 66) +NELOG_Wksta_SSIRelogon equ (ERRLOG_BASE + 67) +NELOG_Build_Name equ (ERRLOG_BASE + 70) +NELOG_Name_Expansion equ (ERRLOG_BASE + 71) +NELOG_Message_Send equ (ERRLOG_BASE + 72) +NELOG_Mail_Slt_Err equ (ERRLOG_BASE + 73) +NELOG_AT_cannot_read equ (ERRLOG_BASE + 74) +NELOG_AT_sched_err equ (ERRLOG_BASE + 75) +NELOG_AT_schedule_file_created equ (ERRLOG_BASE + 76) +NELOG_Srvnet_NB_Open equ (ERRLOG_BASE + 77) +NELOG_AT_Exec_Err equ (ERRLOG_BASE + 78) +NELOG_Lazy_Write_Err equ (ERRLOG_BASE + 80) +NELOG_HotFix equ (ERRLOG_BASE + 81) +NELOG_HardErr_From_Server equ (ERRLOG_BASE + 82) +NELOG_LocalSecFail1 equ (ERRLOG_BASE + 83) +NELOG_LocalSecFail2 equ (ERRLOG_BASE + 84) +NELOG_LocalSecFail3 equ (ERRLOG_BASE + 85) +NELOG_LocalSecGeneralFail equ (ERRLOG_BASE + 86) +NELOG_NetWkSta_Internal_Error equ (ERRLOG_BASE + 90) +NELOG_NetWkSta_No_Resource equ (ERRLOG_BASE + 91) +NELOG_NetWkSta_SMB_Err equ (ERRLOG_BASE + 92) +NELOG_NetWkSta_VC_Err equ (ERRLOG_BASE + 93) +NELOG_NetWkSta_Stuck_VC_Err equ (ERRLOG_BASE + 94) +NELOG_NetWkSta_NCB_Err equ (ERRLOG_BASE + 95) +NELOG_NetWkSta_Write_Behind_Err equ (ERRLOG_BASE + 96) +NELOG_NetWkSta_Reset_Err equ (ERRLOG_BASE + 97) +NELOG_NetWkSta_Too_Many equ (ERRLOG_BASE + 98) +NELOG_Srv_Thread_Failure equ (ERRLOG_BASE + 104) +NELOG_Srv_Close_Failure equ (ERRLOG_BASE + 105) +NELOG_ReplUserCurDir equ (ERRLOG_BASE + 106) +NELOG_ReplCannotMasterDir equ (ERRLOG_BASE + 107) +NELOG_ReplUpdateError equ (ERRLOG_BASE + 108) +NELOG_ReplLostMaster equ (ERRLOG_BASE + 109) +NELOG_NetlogonAuthDCFail equ (ERRLOG_BASE + 110) +NELOG_ReplLogonFailed equ (ERRLOG_BASE + 111) +NELOG_ReplNetErr equ (ERRLOG_BASE + 112) +NELOG_ReplMaxFiles equ (ERRLOG_BASE + 113) +NELOG_ReplMaxTreeDepth equ (ERRLOG_BASE + 114) +NELOG_ReplBadMsg equ (ERRLOG_BASE + 115) +NELOG_ReplSysErr equ (ERRLOG_BASE + 116) +NELOG_ReplUserLoged equ (ERRLOG_BASE + 117) +NELOG_ReplBadImport equ (ERRLOG_BASE + 118) +NELOG_ReplBadExport equ (ERRLOG_BASE + 119) +NELOG_ReplSignalFileErr equ (ERRLOG_BASE + 120) +NELOG_DiskFT equ (ERRLOG_BASE+121) +NELOG_ReplAccessDenied equ (ERRLOG_BASE + 122) +NELOG_NetlogonFailedPrimary equ (ERRLOG_BASE + 123) +NELOG_NetlogonPasswdSetFailed equ (ERRLOG_BASE + 124) +NELOG_NetlogonTrackingError equ (ERRLOG_BASE + 125) +NELOG_NetlogonSyncError equ (ERRLOG_BASE + 126) +NELOG_UPS_PowerOut equ (ERRLOG_BASE + 130) +NELOG_UPS_Shutdown equ (ERRLOG_BASE + 131) +NELOG_UPS_CmdFileError equ (ERRLOG_BASE + 132) +NELOG_UPS_CannotOpenDriver equ (ERRLOG_BASE+133) +NELOG_UPS_PowerBack equ (ERRLOG_BASE + 134) +NELOG_UPS_CmdFileConfig equ (ERRLOG_BASE + 135) +NELOG_UPS_CmdFileExec equ (ERRLOG_BASE + 136) +NELOG_Missing_Parameter equ (ERRLOG_BASE + 150) +NELOG_Invalid_Config_Line equ (ERRLOG_BASE + 151) +NELOG_Invalid_Config_File equ (ERRLOG_BASE + 152) +NELOG_File_Changed equ (ERRLOG_BASE + 153) +NELOG_Files_Dont_Fit equ (ERRLOG_BASE + 154) +NELOG_Wrong_DLL_Version equ (ERRLOG_BASE + 155) +NELOG_Error_in_DLL equ (ERRLOG_BASE + 156) +NELOG_System_Error equ (ERRLOG_BASE + 157) +NELOG_FT_ErrLog_Too_Large equ (ERRLOG_BASE + 158) +NELOG_FT_Update_In_Progress equ (ERRLOG_BASE + 159) +NELOG_OEM_Code equ (ERRLOG_BASE + 199) +ERRLOG2_BASE equ 5700 +NELOG_NetlogonSSIInitError equ (ERRLOG2_BASE + 0) +NELOG_NetlogonFailedToUpdateTrustList equ (ERRLOG2_BASE + 1) +NELOG_NetlogonFailedToAddRpcInterface equ (ERRLOG2_BASE + 2) +NELOG_NetlogonFailedToReadMailslot equ (ERRLOG2_BASE + 3) +NELOG_NetlogonFailedToRegisterSC equ (ERRLOG2_BASE + 4) +NELOG_NetlogonChangeLogCorrupt equ (ERRLOG2_BASE + 5) +NELOG_NetlogonFailedToCreateShare equ (ERRLOG2_BASE + 6) +NELOG_NetlogonDownLevelLogonFailed equ (ERRLOG2_BASE + 7) +NELOG_NetlogonDownLevelLogoffFailed equ (ERRLOG2_BASE + 8) +NELOG_NetlogonNTLogonFailed equ (ERRLOG2_BASE + 9) +NELOG_NetlogonNTLogoffFailed equ (ERRLOG2_BASE + 10) +NELOG_NetlogonPartialSyncCallSuccess equ (ERRLOG2_BASE + 11) +NELOG_NetlogonPartialSyncCallFailed equ (ERRLOG2_BASE + 12) +NELOG_NetlogonFullSyncCallSuccess equ (ERRLOG2_BASE + 13) +NELOG_NetlogonFullSyncCallFailed equ (ERRLOG2_BASE + 14) +NELOG_NetlogonPartialSyncSuccess equ (ERRLOG2_BASE + 15) +NELOG_NetlogonPartialSyncFailed equ (ERRLOG2_BASE + 16) +NELOG_NetlogonFullSyncSuccess equ (ERRLOG2_BASE + 17) +NELOG_NetlogonFullSyncFailed equ (ERRLOG2_BASE + 18) +NELOG_NetlogonAuthNoDomainController equ (ERRLOG2_BASE + 19) +NELOG_NetlogonAuthNoTrustLsaSecret equ (ERRLOG2_BASE + 20) +NELOG_NetlogonAuthNoTrustSamAccount equ (ERRLOG2_BASE + 21) +NELOG_NetlogonServerAuthFailed equ (ERRLOG2_BASE + 22) +NELOG_NetlogonServerAuthNoTrustSamAccount equ (ERRLOG2_BASE + 23) +NELOG_FailedToRegisterSC equ (ERRLOG2_BASE + 24) +NELOG_FailedToSetServiceStatus equ (ERRLOG2_BASE + 25) +NELOG_FailedToGetComputerName equ (ERRLOG2_BASE + 26) +NELOG_DriverNotLoaded equ (ERRLOG2_BASE + 27) +NELOG_NoTranportLoaded equ (ERRLOG2_BASE + 28) +NELOG_NetlogonFailedDomainDelta equ (ERRLOG2_BASE + 29) +NELOG_NetlogonFailedGlobalGroupDelta equ (ERRLOG2_BASE + 30) +NELOG_NetlogonFailedLocalGroupDelta equ (ERRLOG2_BASE + 31) +NELOG_NetlogonFailedUserDelta equ (ERRLOG2_BASE + 32) +NELOG_NetlogonFailedPolicyDelta equ (ERRLOG2_BASE + 33) +NELOG_NetlogonFailedTrustedDomainDelta equ (ERRLOG2_BASE + 34) +NELOG_NetlogonFailedAccountDelta equ (ERRLOG2_BASE + 35) +NELOG_NetlogonFailedSecretDelta equ (ERRLOG2_BASE + 36) +NELOG_NetlogonSystemError equ (ERRLOG2_BASE + 37) +NELOG_NetlogonDuplicateMachineAccounts equ (ERRLOG2_BASE + 38) +NELOG_NetlogonTooManyGlobalGroups equ (ERRLOG2_BASE + 39) +NELOG_NetlogonBrowserDriver equ (ERRLOG2_BASE + 40) +NELOG_NetlogonAddNameFailure equ (ERRLOG2_BASE + 41) +NELOG_RplMessages equ (ERRLOG2_BASE + 42) +NELOG_RplXnsBoot equ (ERRLOG2_BASE + 43) +NELOG_RplSystem equ (ERRLOG2_BASE + 44) +NELOG_RplWkstaTimeout equ (ERRLOG2_BASE + 45) +NELOG_RplWkstaFileOpen equ (ERRLOG2_BASE + 46) +NELOG_RplWkstaFileRead equ (ERRLOG2_BASE + 47) +NELOG_RplWkstaMemory equ (ERRLOG2_BASE + 48) +NELOG_RplWkstaFileChecksum equ (ERRLOG2_BASE + 49) +NELOG_RplWkstaFileLineCount equ (ERRLOG2_BASE + 50) +NELOG_RplWkstaBbcFile equ (ERRLOG2_BASE + 51) +NELOG_RplWkstaFileSize equ (ERRLOG2_BASE + 52) +NELOG_RplWkstaInternal equ (ERRLOG2_BASE + 53) +NELOG_RplWkstaWrongVersion equ (ERRLOG2_BASE + 54) +NELOG_RplWkstaNetwork equ (ERRLOG2_BASE + 55) +NELOG_RplAdapterResource equ (ERRLOG2_BASE + 56) +NELOG_RplFileCopy equ (ERRLOG2_BASE + 57) +NELOG_RplFileDelete equ (ERRLOG2_BASE + 58) +NELOG_RplFilePerms equ (ERRLOG2_BASE + 59) +NELOG_RplCheckConfigs equ (ERRLOG2_BASE + 60) +NELOG_RplCreateProfiles equ (ERRLOG2_BASE + 61) +NELOG_RplRegistry equ (ERRLOG2_BASE + 62) +NELOG_RplReplaceRPLDISK equ (ERRLOG2_BASE + 63) +NELOG_RplCheckSecurity equ (ERRLOG2_BASE + 64) +NELOG_RplBackupDatabase equ (ERRLOG2_BASE + 65) +NELOG_RplInitDatabase equ (ERRLOG2_BASE + 66) +NELOG_RplRestoreDatabaseFailure equ (ERRLOG2_BASE + 67) +NELOG_RplRestoreDatabaseSuccess equ (ERRLOG2_BASE + 68) +NELOG_RplInitRestoredDatabase equ (ERRLOG2_BASE + 69) +NELOG_NetlogonSessionTypeWrong equ (ERRLOG2_BASE + 70) +NELOG_RplUpgradeDBTo40 equ (ERRLOG2_BASE + 71) +NELOG_NetlogonLanmanBdcsNotAllowed equ (ERRLOG2_BASE + 72) +NELOG_NetlogonNoDynamicDns equ (ERRLOG2_BASE + 73) +NELOG_NetlogonDynamicDnsRegisterFailure equ (ERRLOG2_BASE + 74) +NELOG_NetlogonDynamicDnsDeregisterFailure equ (ERRLOG2_BASE + 75) +NELOG_NetlogonFailedFileCreate equ (ERRLOG2_BASE + 76) +NELOG_NetlogonGetSubnetToSite equ (ERRLOG2_BASE + 77) +NELOG_NetlogonNoSiteForClient equ (ERRLOG2_BASE + 78) +NELOG_NetlogonBadSiteName equ (ERRLOG2_BASE + 79) +NELOG_NetlogonBadSubnetName equ (ERRLOG2_BASE + 80) + +ERROR_LOG struct + el_len dd ? + el_reserved dd ? + el_time dd ? + el_error dd ? + el_name dd ? + el_text dd ? + el_data dd ? + el_data_size dd ? + el_nstrings dd ? +ERROR_LOG ends + +;===============================[ LMMSG.H]============================= +MSGNAME_NOT_FORWARDED equ 0 +MSGNAME_FORWARDED_TO equ 4 +MSGNAME_FORWARDED_FROM equ 10h + +MSG_INFO_0 struct + msgi0_name dd ? +MSG_INFO_0 ends + +MSG_INFO_1 struct + msgi1_name dd ? + msgi1_forward_flag dd ? + msgi1_forward dd ? +MSG_INFO_1 ends + +;=================================[ LMREMUTL.H]========================== +TIME_OF_DAY_INFO struct + tod_elapsedt dd ? + tod_msecs dd ? + tod_hours dd ? + tod_mins dd ? + tod_secs dd ? + tod_hunds dd ? + tod_timezone dd ? + tod_tinterval dd ? + tod_day dd ? + tod_month dd ? + tod_year dd ? + tod_weekday dd ? +TIME_OF_DAY_INFO ends + +SUPPORTS_REMOTE_ADMIN_PROTOCOL equ 2 +SUPPORTS_RPC equ 4 +SUPPORTS_SAM_PROTOCOL equ 8 +SUPPORTS_UNICODE equ 10h +SUPPORTS_LOCAL equ 20h +SUPPORTS_ANY equ 0FFFFFFFFh +NO_PERMISSION_REQUIRED equ 1 +ALLOCATE_RESPONSE equ 2 +USE_SPECIFIC_TRANSPORT equ 80000000h + +;===============================[ LMREPL.H]======================= +REPL_ROLE_EXPORT equ 1 +REPL_ROLE_IMPORT equ 2 +REPL_ROLE_BOTH equ 3 +REPL_INTERVAL_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + 0) +REPL_PULSE_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + 1) +REPL_GUARDTIME_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + 2) +REPL_RANDOM_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + 3) +REPL_INTEGRITY_FILE equ 1 +REPL_INTEGRITY_TREE equ 2 +REPL_EXTENT_FILE equ 1 +REPL_EXTENT_TREE equ 2 +REPL_EXPORT_INTEGRITY_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + 0) +REPL_EXPORT_EXTENT_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + 1) +REPL_UNLOCK_NOFORCE equ 0 +REPL_UNLOCK_FORCE equ 1 +REPL_STATE_OK equ 0 +REPL_STATE_NO_MASTER equ 1 +REPL_STATE_NO_SYNC equ 2 +REPL_STATE_NEVER_REPLICATED equ 3 + +REPL_INFO_0 struct + rp0_role dd ? + rp0_exportpath dd ? + rp0_exportlist dd ? + rp0_importpath dd ? + rp0_importlist dd ? + rp0_logonusername dd ? + rp0_interval dd ? + rp0_pulse dd ? + rp0_guardtime dd ? + rp0_random dd ? +REPL_INFO_0 ends + +REPL_INFO_1000 struct + rp1000_interval dd ? +REPL_INFO_1000 ends + +REPL_INFO_1001 struct + rp1001_pulse dd ? +REPL_INFO_1001 ends + +REPL_INFO_1002 struct + rp1002_guardtime dd ? +REPL_INFO_1002 ends + +REPL_INFO_1003 struct + rp1003_random dd ? +REPL_INFO_1003 ends + +REPL_EDIR_INFO_0 struct + rped0_dirname dd ? +REPL_EDIR_INFO_0 ends + +REPL_EDIR_INFO_1 struct + rped1_dirname dd ? + rped1_integrity dd ? + rped1_extent dd ? +REPL_EDIR_INFO_1 ends + +REPL_EDIR_INFO_2 struct + rped2_dirname dd ? + rped2_integrity dd ? + rped2_extent dd ? + rped2_lockcount dd ? + rped2_locktime dd ? +REPL_EDIR_INFO_2 ends + +REPL_EDIR_INFO_1000 struct + rped1000_integrity dd ? +REPL_EDIR_INFO_1000 ends + +REPL_EDIR_INFO_1001 struct + rped1001_extent dd ? +REPL_EDIR_INFO_1001 ends + +REPL_IDIR_INFO_0 struct + rpid0_dirname dd ? +REPL_IDIR_INFO_0 ends + +REPL_IDIR_INFO_1 struct + rpid1_dirname dd ? + rpid1_state dd ? + rpid1_mastername dd ? + rpid1_last_update_time dd ? + rpid1_lockcount dd ? + rpid1_locktime dd ? +REPL_IDIR_INFO_1 ends + +;==============================[ LMSHARE.H ]============================= +SHARE_NETNAME_PARMNUM equ 1 +SHARE_TYPE_PARMNUM equ 3 +SHARE_REMARK_PARMNUM equ 4 +SHARE_PERMISSIONS_PARMNUM equ 5 +SHARE_MAX_USES_PARMNUM equ 6 +SHARE_CURRENT_USES_PARMNUM equ 7 +SHARE_PATH_PARMNUM equ 8 +SHARE_PASSWD_PARMNUM equ 9 +SHARE_FILE_SD_PARMNUM equ 501 +SHARE_REMARK_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + SHARE_REMARK_PARMNUM) +SHARE_MAX_USES_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + SHARE_MAX_USES_PARMNUM) +SHARE_FILE_SD_INFOLEVEL equ (PARMNUM_BASE_INFOLEVEL + SHARE_FILE_SD_PARMNUM) +SHI1_NUM_ELEMENTS equ 4 +SHI2_NUM_ELEMENTS equ 10 +STYPE_DISKTREE equ 0 +STYPE_PRINTQ equ 1 +STYPE_DEVICE equ 2 +STYPE_IPC equ 3 +STYPE_SPECIAL equ 80000000h +SHI_USES_UNLIMITED equ (DWORD)-1 +SHI1005_FLAGS_DFS equ 1 +SHI1005_FLAGS_DFS_ROOT equ 2 +COW_PERMACHINE equ 4 +COW_PERUSER equ 8 +CSC_CACHEABLE equ 10h +CSC_NOFLOWOPS equ 20h +CSC_AUTO_INWARD equ 40h +CSC_AUTO_OUTWARD equ 80h +SHI1005_VALID_FLAGS_SET equ (CSC_CACHEABLE + CSC_NOFLOWOPS + CSC_AUTO_INWARD + CSC_AUTO_OUTWARD+ COW_PERMACHINE + COW_PERUSER) +SHI1007_VALID_FLAGS_SET equ SHI1005_VALID_FLAGS_SET +SESS_GUEST equ 1 +SESS_NOENCRYPTION equ 2 +SESI1_NUM_ELEMENTS equ 8 +SESI2_NUM_ELEMENTS equ 9 +PERM_FILE_READ equ 1 +PERM_FILE_WRITE equ 2 +PERM_FILE_CREATE equ 4 + +SHARE_INFO_0 struct + shi0_netname dd ? +SHARE_INFO_0 ends + +SHARE_INFO_1 struct + shi1_netname dd ? + shi1_type dd ? + shi1_remark dd ? +SHARE_INFO_1 ends + +SHARE_INFO_2 struct + shi2_netname dd ? + shi2_type dd ? + shi2_remark dd ? + shi2_permissions dd ? + shi2_max_uses dd ? + shi2_current_uses dd ? + shi2_path dd ? + shi2_passwd dd ? +SHARE_INFO_2 ends + +SHARE_INFO_501 struct + shi501_netname dd ? + shi501_type dd ? + shi501_remark dd ? + shi501_flags dd ? +SHARE_INFO_501 ends + +SHARE_INFO_502 struct + shi502_netname dd ? + shi502_type dd ? + shi502_remark dd ? + shi502_permissions dd ? + shi502_max_uses dd ? + shi502_current_uses dd ? + shi502_path dd ? + shi502_passwd dd ? + shi502_reserved dd ? + shi502_security_descriptor dd ? +SHARE_INFO_502 ends + +SHARE_INFO_1004 struct + shi1004_remark dd ? +SHARE_INFO_1004 ends + +SHARE_INFO_1005 struct + shi1005_flags dd ? +SHARE_INFO_1005 ends + +SHARE_INFO_1006 struct + shi1006_max_uses dd ? +SHARE_INFO_1006 ends + +SHARE_INFO_1007 struct + shi1007_flags dd ? + shi1007_AlternateDirectoryName dd ? +SHARE_INFO_1007 ends + +SHARE_INFO_1501 struct + shi1501_reserved dd ? + shi1501_security_descriptor dd ? +SHARE_INFO_1501 ends + +SESSION_INFO_0 struct + sesi0_cname dd ? +SESSION_INFO_0 ends + +SESSION_INFO_1 struct + sesi1_cname dd ? + sesi1_username dd ? + sesi1_num_opens dd ? + sesi1_time dd ? + sesi1_idle_time dd ? + sesi1_user_flags dd ? +SESSION_INFO_1 ends + +SESSION_INFO_2 struct + sesi2_cname dd ? + sesi2_username dd ? + sesi2_num_opens dd ? + sesi2_time dd ? + sesi2_idle_time dd ? + sesi2_user_flags dd ? + sesi2_cltype_name dd ? +SESSION_INFO_2 ends + +SESSION_INFO_10 struct + sesi10_cname dd ? + sesi10_username dd ? + sesi10_time dd ? + sesi10_idle_time dd ? +SESSION_INFO_10 ends + +SESSION_INFO_502 struct + sesi502_cname dd ? + sesi502_username dd ? + sesi502_num_opens dd ? + sesi502_time dd ? + sesi502_idle_time dd ? + sesi502_user_flags dd ? + sesi502_cltype_name dd ? + sesi502_transport dd ? +SESSION_INFO_502 ends + +CONNECTION_INFO_0 struct + coni0_id dd ? +CONNECTION_INFO_0 ends + +CONNECTION_INFO_1 struct + coni1_id dd ? + coni1_type dd ? + coni1_num_opens dd ? + coni1_num_users dd ? + coni1_time dd ? + coni1_username dd ? + coni1_netname dd ? +CONNECTION_INFO_1 ends + +FILE_INFO_2 struct + fi2_id dd ? +FILE_INFO_2 ends + +FILE_INFO_3 struct + fi3_id dd ? + fi3_permissions dd ? + fi3_num_locks dd ? + fi3_pathname dd ? + fi3_username dd ? +FILE_INFO_3 ends + +;===================================[ LMSNAME.H ]=================== +SERVICE_WORKSTATION equ A("LanmanWorkstation") +SERVICE_LM20_WORKSTATION equ A("WORKSTATION") +WORKSTATION_DISPLAY_NAME equ A("Workstation") +SERVICE_SERVER equ A("LanmanServer") +SERVICE_LM20_SERVER equ A("SERVER") +SERVER_DISPLAY_NAME equ A("Server") +SERVICE_BROWSER equ A("BROWSER") +SERVICE_LM20_BROWSER equ SERVICE_BROWSER +SERVICE_MESSENGER equ A("MESSENGER") +SERVICE_LM20_MESSENGER equ SERVICE_MESSENGER +SERVICE_NETRUN equ A("NETRUN") +SERVICE_LM20_NETRUN equ SERVICE_NETRUN +SERVICE_SPOOLER equ A("SPOOLER") +SERVICE_LM20_SPOOLER equ SERVICE_SPOOLER +SERVICE_ALERTER equ A("ALERTER") +SERVICE_LM20_ALERTER equ SERVICE_ALERTER +SERVICE_NETLOGON equ A("NETLOGON") +SERVICE_LM20_NETLOGON equ SERVICE_NETLOGON +SERVICE_NETPOPUP equ A("NETPOPUP") +SERVICE_LM20_NETPOPUP equ SERVICE_NETPOPUP +SERVICE_SQLSERVER equ A("SQLSERVER") +SERVICE_LM20_SQLSERVER equ SERVICE_SQLSERVER +SERVICE_REPL equ A("REPLICATOR") +SERVICE_LM20_REPL equ SERVICE_REPL +SERVICE_RIPL equ A("REMOTEBOOT") +SERVICE_LM20_RIPL equ SERVICE_RIPL +SERVICE_TIMESOURCE equ A("TIMESOURCE") +SERVICE_LM20_TIMESOURCE equ SERVICE_TIMESOURCE +SERVICE_AFP equ A("AFP") +SERVICE_LM20_AFP equ SERVICE_AFP +SERVICE_UPS equ A("UPS") +SERVICE_LM20_UPS equ SERVICE_UPS +SERVICE_XACTSRV equ A("XACTSRV") +SERVICE_LM20_XACTSRV equ SERVICE_XACTSRV +SERVICE_TCPIP equ A("TCPIP") +SERVICE_LM20_TCPIP equ SERVICE_TCPIP +SERVICE_NBT equ A("NBT") +SERVICE_LM20_NBT equ SERVICE_NBT +SERVICE_LMHOSTS equ A("LMHOSTS") +SERVICE_LM20_LMHOSTS equ SERVICE_LMHOSTS +SERVICE_TELNET equ A("Telnet") +SERVICE_LM20_TELNET equ SERVICE_TELNET +SERVICE_SCHEDULE equ A("Schedule") +SERVICE_LM20_SCHEDULE equ SERVICE_SCHEDULE +SERVICE_NTLMSSP equ A("NtLmSsp") +SERVICE_DHCP equ A("DHCP") +SERVICE_LM20_DHCP equ SERVICE_DHCP +SERVICE_NWSAP equ A("NwSapAgent") +SERVICE_LM20_NWSAP equ SERVICE_NWSAP +NWSAP_DISPLAY_NAME equ A("NW Sap Agent") +SERVICE_NWCS equ A("NWCWorkstation") +SERVICE_DNS_CACHE equ A("DnsCache") +SERVICE_W32TIME equ A("w32time") +SERVCE_LM20_W32TIME equ SERVICE_W32TIME +SERVICE_KDC equ A("kdc") +SERVICE_LM20_KDC equ SERVICE_KDC +SERVICE_RPCLOCATOR equ A("RPCLOCATOR") +SERVICE_LM20_RPCLOCATOR equ SERVICE_RPCLOCATOR +SERVICE_TRKSVR equ A("TrkSvr") +SERVICE_LM20_TRKSVR equ SERVICE_TRKSVR +SERVICE_TRKWKS equ A("TrkWks") +SERVICE_LM20_TRKWKS equ SERVICE_TRKWKS + +;====================================[ LMSTATS.H ]====================== +STATSOPT_CLR equ 1 +STATS_NO_VALUE equ -1 +STATS_OVERFLOW equ -2 + +STAT_WORKSTATION_0 struct + stw0_start dd ? + stw0_numNCB_r dd ? + stw0_numNCB_s dd ? + stw0_numNCB_a dd ? + stw0_fiNCB_r dd ? + stw0_fiNCB_s dd ? + stw0_fiNCB_a dd ? + stw0_fcNCB_r dd ? + stw0_fcNCB_s dd ? + stw0_fcNCB_a dd ? + stw0_sesstart dd ? + stw0_sessfailcon dd ? + stw0_sessbroke dd ? + stw0_uses dd ? + stw0_usefail dd ? + stw0_autorec dd ? + stw0_bytessent_r_lo dd ? + stw0_bytessent_r_hi dd ? + stw0_bytesrcvd_r_lo dd ? + stw0_bytesrcvd_r_hi dd ? + stw0_bytessent_s_lo dd ? + stw0_bytessent_s_hi dd ? + stw0_bytesrcvd_s_lo dd ? + stw0_bytesrcvd_s_hi dd ? + stw0_bytessent_a_lo dd ? + stw0_bytessent_a_hi dd ? + stw0_bytesrcvd_a_lo dd ? + stw0_bytesrcvd_a_hi dd ? + stw0_reqbufneed dd ? + stw0_bigbufneed dd ? +STAT_WORKSTATION_0 ends + +STAT_SERVER_0 struct + sts0_start dd ? + sts0_fopens dd ? + sts0_devopens dd ? + sts0_jobsqueued dd ? + sts0_sopens dd ? + sts0_stimedout dd ? + sts0_serrorout dd ? + sts0_pwerrors dd ? + sts0_permerrors dd ? + sts0_syserrors dd ? + sts0_bytessent_low dd ? + sts0_bytessent_high dd ? + sts0_bytesrcvd_low dd ? + sts0_bytesrcvd_high dd ? + sts0_avresponse dd ? + sts0_reqbufneed dd ? + sts0_bigbufneed dd ? +STAT_SERVER_0 ends + +;===========================[ LMSVC.H ]============================ +SERVICE_INFO_0 struct + svci0_name dd ? +SERVICE_INFO_0 ends + +SERVICE_INFO_1 struct + svci1_name dd ? + svci1_status dd ? + svci1_code dd ? + svci1_pid dd ? +SERVICE_INFO_1 ends + +SERVICE_INFO_2 struct + svci2_name dd ? + svci2_status dd ? + svci2_code dd ? + svci2_pid dd ? + svci2_text dd ? + svci2_specific_error dd ? + svci2_display_name dd ? +SERVICE_INFO_2 ends + +SERVICE_INSTALL_STATE equ 3 +SERVICE_UNINSTALLED equ 0 +SERVICE_INSTALL_PENDING equ 1 +SERVICE_UNINSTALL_PENDING equ 2 +SERVICE_INSTALLED equ 3 +SERVICE_PAUSE_STATE equ 0Ch +LM20_SERVICE_ACTIVE equ 0 +LM20_SERVICE_CONTINUE_PENDING equ 4 +LM20_SERVICE_PAUSE_PENDING equ 8 +LM20_SERVICE_PAUSED equ 0Ch +SERVICE_NOT_UNINSTALLABLE equ 0 +SERVICE_UNINSTALLABLE equ 10h +SERVICE_NOT_PAUSABLE equ 0 +SERVICE_PAUSABLE equ 20h +SERVICE_REDIR_PAUSED equ 700h +SERVICE_REDIR_DISK_PAUSED equ 100h +SERVICE_REDIR_PRINT_PAUSED equ 200h +SERVICE_REDIR_COMM_PAUSED equ 400h +SERVICE_DOS_ENCRYPTION equ L("ENCRYPT") +SERVICE_CTRL_INTERROGATE equ 0 +SERVICE_CTRL_PAUSE equ 1 +SERVICE_CTRL_CONTINUE equ 2 +SERVICE_CTRL_UNINSTALL equ 3 +SERVICE_CTRL_REDIR_DISK equ 1 +SERVICE_CTRL_REDIR_PRINT equ 2 +SERVICE_CTRL_REDIR_COMM equ 4 +SERVICE_IP_NO_HINT equ 0 +SERVICE_CCP_NO_HINT equ 0 +SERVICE_IP_QUERY_HINT equ 10000h +SERVICE_CCP_QUERY_HINT equ 10000h +SERVICE_IP_CHKPT_NUM equ 0FFh +SERVICE_CCP_CHKPT_NUM equ 0FFh +SERVICE_IP_WAIT_TIME equ 0FF00h +SERVICE_CCP_WAIT_TIME equ 0FF00h +SERVICE_IP_WAITTIME_SHIFT equ 8 +SERVICE_NTIP_WAITTIME_SHIFT equ 12 +UPPER_HINT_MASK equ 0FF00h +LOWER_HINT_MASK equ 0FFh +UPPER_GET_HINT_MASK equ 0FF00000h +LOWER_GET_HINT_MASK equ 0FF00h +SERVICE_NT_MAXTIME equ 0FFFFh +SERVICE_RESRV_MASK equ 1FFFFh +SERVICE_MAXTIME equ 0FFh +SERVICE_BASE equ 3050 +SERVICE_UIC_NORMAL equ 0 +SERVICE_UIC_BADPARMVAL equ (SERVICE_BASE + 1) +SERVICE_UIC_MISSPARM equ (SERVICE_BASE + 2) +SERVICE_UIC_UNKPARM equ (SERVICE_BASE + 3) +SERVICE_UIC_RESOURCE equ (SERVICE_BASE + 4) +SERVICE_UIC_CONFIG equ (SERVICE_BASE + 5) +SERVICE_UIC_SYSTEM equ (SERVICE_BASE + 6) +SERVICE_UIC_INTERNAL equ (SERVICE_BASE + 7) +SERVICE_UIC_AMBIGPARM equ (SERVICE_BASE + 8) +SERVICE_UIC_DUPPARM equ (SERVICE_BASE + 9) +SERVICE_UIC_KILL equ (SERVICE_BASE + 10) +SERVICE_UIC_EXEC equ (SERVICE_BASE + 11) +SERVICE_UIC_SUBSERV equ (SERVICE_BASE + 12) +SERVICE_UIC_CONFLPARM equ (SERVICE_BASE + 13) +SERVICE_UIC_FILE equ (SERVICE_BASE + 14) +SERVICE_UIC_M_NULL equ 0 +SERVICE_UIC_M_MEMORY equ (SERVICE_BASE + 20) +SERVICE_UIC_M_DISK equ (SERVICE_BASE + 21) +SERVICE_UIC_M_THREADS equ (SERVICE_BASE + 22) +SERVICE_UIC_M_PROCESSES equ (SERVICE_BASE + 23) +SERVICE_UIC_M_SECURITY equ (SERVICE_BASE + 24) +SERVICE_UIC_M_LANROOT equ (SERVICE_BASE + 25) +SERVICE_UIC_M_REDIR equ (SERVICE_BASE + 26) +SERVICE_UIC_M_SERVER equ (SERVICE_BASE + 27) +SERVICE_UIC_M_SEC_FILE_ERR equ (SERVICE_BASE + 28) +SERVICE_UIC_M_FILES equ (SERVICE_BASE + 29) +SERVICE_UIC_M_LOGS equ (SERVICE_BASE + 30) +SERVICE_UIC_M_LANGROUP equ (SERVICE_BASE + 31) +SERVICE_UIC_M_MSGNAME equ (SERVICE_BASE + 32) +SERVICE_UIC_M_ANNOUNCE equ (SERVICE_BASE + 33) +SERVICE_UIC_M_UAS equ (SERVICE_BASE + 34) +SERVICE_UIC_M_SERVER_SEC_ERR equ (SERVICE_BASE + 35) +SERVICE_UIC_M_WKSTA equ (SERVICE_BASE + 37) +SERVICE_UIC_M_ERRLOG equ (SERVICE_BASE + 38) +SERVICE_UIC_M_FILE_UW equ (SERVICE_BASE + 39) +SERVICE_UIC_M_ADDPAK equ (SERVICE_BASE + 40) +SERVICE_UIC_M_LAZY equ (SERVICE_BASE + 41) +SERVICE_UIC_M_UAS_MACHINE_ACCT equ (SERVICE_BASE + 42) +SERVICE_UIC_M_UAS_SERVERS_NMEMB equ (SERVICE_BASE + 43) +SERVICE_UIC_M_UAS_SERVERS_NOGRP equ (SERVICE_BASE + 44) +SERVICE_UIC_M_UAS_INVALID_ROLE equ (SERVICE_BASE + 45) +SERVICE_UIC_M_NETLOGON_NO_DC equ (SERVICE_BASE + 46) +SERVICE_UIC_M_NETLOGON_DC_CFLCT equ (SERVICE_BASE + 47) +SERVICE_UIC_M_NETLOGON_AUTH equ (SERVICE_BASE + 48) +SERVICE_UIC_M_UAS_PROLOG equ (SERVICE_BASE + 49) +SERVICE2_BASE equ 5600 +SERVICE_UIC_M_NETLOGON_MPATH equ (SERVICE2_BASE + 0) +SERVICE_UIC_M_LSA_MACHINE_ACCT equ (SERVICE2_BASE + 1) +SERVICE_UIC_M_DATABASE_ERROR equ (SERVICE2_BASE + 2) + +;==============================[ LMUSE.H ]====================== +USE_INFO_0 struct + ui0_local dd ? + ui0_remote dd ? +USE_INFO_0 ends + +USE_INFO_1 struct + ui1_local dd ? + ui1_remote dd ? + ui1_password dd ? + ui1_status dd ? + ui1_asg_type dd ? + ui1_refcount dd ? + ui1_usecount dd ? +USE_INFO_1 ends + +USE_INFO_2 struct + ui2_local dd ? + ui2_remote dd ? + ui2_password dd ? + ui2_status dd ? + ui2_asg_type dd ? + ui2_refcount dd ? + ui2_usecount dd ? + ui2_username dd ? + ui2_domainname dd ? +USE_INFO_2 ends + +USE_INFO_3 struct + ui3_ui2 USE_INFO_2 <> + ui3_flags dd ? +USE_INFO_3 ends + +USE_LOCAL_PARMNUM equ 1 +USE_REMOTE_PARMNUM equ 2 +USE_PASSWORD_PARMNUM equ 3 +USE_ASGTYPE_PARMNUM equ 4 +USE_USERNAME_PARMNUM equ 5 +USE_DOMAINNAME_PARMNUM equ 6 +USE_OK equ 0 +USE_PAUSED equ 1 +USE_SESSLOST equ 2 +USE_DISCONN equ 2 +USE_NETERR equ 3 +USE_CONN equ 4 +USE_RECONN equ 5 +USE_WILDCARD equ -1 +USE_DISKDEV equ 0 +USE_SPOOLDEV equ 1 +USE_CHARDEV equ 2 +USE_IPC equ 3 +CREATE_NO_CONNECT equ 1 + +;============================[ LMUSEFLG.H]======================= +USE_NOFORCE equ 0 +USE_FORCE equ 1 +USE_LOTS_OF_FORCE equ 2 + +STRRET STRUCT + uType dd ? + union + pOleStr dd ? + pStr dd ? + uOffset dd ? + union + cStr db MAX_PATH dup(?) + cstr db MAX_PATH dup(?) + ends + ends +STRRET ENDS + +;;;; end lmserver + +;;;; ras + +;---------------------------------------[ RAS.H ]----------------------------------------- + +RAS_MaxDeviceType equ 16 +RAS_MaxPhoneNumber equ 128 +RAS_MaxIpAddress equ 15 +RAS_MaxIpxAddress equ 21 +RAS_MaxEntryName equ 256 +RAS_MaxDeviceName equ 128 +RAS_MaxCallbackNumber equ RAS_MaxPhoneNumber +RAS_MaxAreaCode equ 10 +RAS_MaxPadType equ 32 +RAS_MaxX25Address equ 200 +RAS_MaxFacilities equ 200 +RAS_MaxUserData equ 200 +RASCS_PAUSED equ 1000h +RASCS_DONE equ 2000h +RDEOPT_UsePrefixSuffix equ 1 +RDEOPT_PausedStates equ 2 +RDEOPT_IgnoreModemSpeaker equ 4 +RDEOPT_SetModemSpeaker equ 8 +RDEOPT_IgnoreSoftwareCompression equ 10h +RDEOPT_SetSoftwareCompression equ 20h +RDEOPT_DisableConnectedUI equ 40h +RDEOPT_DisableReconnectUI equ 80h +RDEOPT_DisableReconnect equ 100h +RDEOPT_NoUser equ 200h +RDEOPT_PauseOnScript equ 400h +RASDIALEVENT equ A("RasDialEvent") +WM_RASDIALEVENT equ 0CCCDh +RASEO_UseCountryAndAreaCodes equ 1 +RASEO_SpecificIpAddr equ 2 +RASEO_SpecificNameServers equ 4 +RASEO_IpHeaderCompression equ 8 +RASEO_RemoteDefaultGateway equ 10h +RASEO_DisableLcpExtensions equ 20h +RASEO_TerminalBeforeDial equ 40h +RASEO_TerminalAfterDial equ 80h +RASEO_ModemLights equ 100h +RASEO_SwCompression equ 200h +RASEO_RequireEncryptedPw equ 400h +RASEO_RequireMsEncryptedPw equ 800h +RASEO_RequireDataEncryption equ 1000h +RASEO_NetworkLogon equ 2000h +RASEO_UseLogonCredentials equ 4000h +RASEO_PromoteAlternates equ 8000h +RASEO_SecureLocalFiles equ 10000h +RASNP_NetBEUI equ 1 +RASNP_Ipx equ 2 +RASNP_Ip equ 4 +RASFP_Ppp equ 1 +RASFP_Slip equ 2 +RASFP_Ras equ 4 +RASDT_Modem equ A("modem") +RASDT_Isdn equ A("isdn") +RASDT_X25 equ A("x25") +RASCN_Connection equ 1 +RASCN_Disconnection equ 2 +RASCN_BandwidthAdded equ 4 +RASCN_BandwidthRemoved equ 8 +RASEDM_DialAll equ 1 +RASEDM_DialAsNeeded equ 2 +RASIDS_Disabled equ 0ffffffffh +RASIDS_UseGlobalValue equ 0 +RASADFLG_PositionDlg equ 1 +RASCM_UserName equ 1 +RASCM_Password equ 2 +RASCM_Domain equ 4 +RASADP_DisableConnectionQuery equ 0 +RASADP_LoginSessionDisable equ 1 +RASADP_SavedAddressesLimit equ 2 +RASADP_FailedConnectionTimeout equ 3 +RASADP_ConnectionQueryTimeout equ 4 + +RASCS_OpenPort equ 0 +RASCS_PortOpened equ 1 +RASCS_ConnectDevice equ 2 +RASCS_DeviceConnected equ 3 +RASCS_AllDevicesConnected equ 4 +RASCS_Authenticate equ 5 +RASCS_AuthNotify equ 6 +RASCS_AuthRetry equ 7 +RASCS_AuthCallback equ 8 +RASCS_AuthChangePassword equ 9 +RASCS_AuthProject equ 10 +RASCS_AuthLinkSpeed equ 11 +RASCS_AuthAck equ 12 +RASCS_ReAuthenticate equ 13 +RASCS_Authenticated equ 14 +RASCS_PrepareForCallback equ 15 +RASCS_WaitForModemReset equ 16 +RASCS_WaitForCallback equ 17 +RASCS_Projected equ 18 +RASCS_StartAuthentication equ 19 +RASCS_CallbackComplete equ 20 +RASCS_LogonNetwork equ 21 +RASCS_SubEntryConnected equ 22 +RASCS_SubEntryDisconnected equ 23 +RASCS_Interactive equ RASCS_PAUSED +RASCS_RetryAuthentication equ RASCS_PAUSED+1 +RASCS_CallbackSetByCaller equ RASCS_PAUSED+2 +RASCS_PasswordExpired equ RASCS_PAUSED+3 +RASCS_Connected equ RASCS_DONE +RASCS_Disconnected equ RASCS_DONE+1 +RASP_Amb equ 10000h +RASP_PppNbf equ 803Fh +RASP_PppIpx equ 802Bh +RASP_PppIp equ 8021h +RASP_PppLcp equ 0C021h +RASP_Slip equ 20000h + +RASCONNA STRUCT + dwSize dd ? + hrasconn dd ? + szEntryName db RAS_MaxEntryName + 1 dup(?) + szDeviceType db RAS_MaxDeviceType + 1 dup(?) + szDeviceName db RAS_MaxDeviceName + 1 dup(?) + szPhonebook db MAX_PATH dup(?) + dwSubEntry dd ? + guidEntry GUID <> + dwFlags dd ? + luid LUID <> + guidCorrelationId GUID <> +RASCONNA ENDS + +RASCONNW STRUCT + dwSize dd ? + hrasconn dd ? + szEntryName dw RAS_MaxEntryName + 1 dup(?) + szDeviceType dw RAS_MaxDeviceType + 1 dup(?) + szDeviceName dw RAS_MaxDeviceName + 1 dup(?) + szPhonebook dw MAX_PATH dup(?) + dwSubEntry dd ? + guidEntry GUID <> + dwFlags dd ? + luid LUID <> + guidCorrelationId GUID <> +RASCONNW ENDS + +IFDEF __UNICODE__ + RASCONN EQU +ELSE + RASCONN EQU +ENDIF + +RASCONNSTATUSA STRUCT + dwSize dd ? + rasconnstate dd ? + dwError dd ? + szDeviceType db RAS_MaxDeviceType + 1 dup(?) + szDeviceName db RAS_MaxDeviceName + 1 dup(?) + szPhoneNumber db RAS_MaxPhoneNumber + 1 dup(?) +RASCONNSTATUSA ENDS + +RASCONNSTATUSW STRUCT + dwSize dd ? + rasconnstate dd ? + dwError dd ? + szDeviceType dw RAS_MaxDeviceType + 1 dup(?) + szDeviceName dw RAS_MaxDeviceName + 1 dup(?) + szPhoneNumber dw RAS_MaxPhoneNumber + 1 dup(?) +RASCONNSTATUSW ENDS + +IFDEF __UNICODE__ + RASCONNSTATUS EQU +ELSE + RASCONNSTATUS EQU +ENDIF + +RASDIALPARAMSA STRUCT + dwSize dd ? + szEntryName db RAS_MaxEntryName + 1 dup(?) + szPhoneNumber db RAS_MaxPhoneNumber + 1 dup(?) + szCallbackNumber db RAS_MaxCallbackNumber + 1 dup(?) + szUserName db UNLEN + 1 dup(?) + szPassword db PWLEN + 1 dup(?) + szDomain db DNLEN + 1 dup(?) + dwSubEntry dd ? + dwCallbackId dd ? + dwIfIndex dd ? +RASDIALPARAMSA ENDS + +RASDIALPARAMSW STRUCT + dwSize dd ? + szEntryName dw RAS_MaxEntryName + 1 dup(?) + szPhoneNumber dw RAS_MaxPhoneNumber + 1 dup(?) + szCallbackNumber dw RAS_MaxCallbackNumber + 1 dup(?) + szUserName dw UNLEN + 1 dup(?) + szPassword dw PWLEN + 1 dup(?) + szDomain dw DNLEN + 1 dup(?) + dwSubEntry dd ? + dwCallbackId dd ? + dwIfIndex dd ? +RASDIALPARAMSW ENDS + +IFDEF __UNICODE__ + RASDIALPARAMS EQU +ELSE + RASDIALPARAMS EQU +ENDIF + +RASDIALEXTENSIONS STRUCT + dwSize dd ? + dwfOptions dd ? + hwndParent dd ? + reserved dd ? +RASDIALEXTENSIONS ENDS + +RASENTRYNAMEA STRUCT + dwSize dd ? + szEntryName db RAS_MaxEntryName + 1 dup(?) + dwFlags dd ? + szPhonebookPath db MAX_PATH + 1 dup(?) +RASENTRYNAMEA ENDS + +RASENTRYNAMEW STRUCT + dwSize dd ? + szEntryName dw RAS_MaxEntryName + 1 dup(?) + dwFlags dd ? + szPhonebookPath dw MAX_PATH + 1 dup(?) +RASENTRYNAMEW ENDS + +IFDEF __UNICODE__ + RASENTRYNAME EQU +ELSE + RASENTRYNAME EQU +ENDIF + +RASAMBA STRUCT + dwSize dd ? + dwError dd ? + szNetBiosError db NETBIOS_NAME_LEN + 1 dup(?) + bLana db ? +RASAMBA ENDS + +RASAMBW STRUCT + dwSize dd ? + dwError dd ? + szNetBiosError dw NETBIOS_NAME_LEN + 1 dup(?) + bLana db ? +RASAMBW ENDS + +IFDEF __UNICODE__ + RASAMB EQU +ELSE + RASAMB EQU +ENDIF + +RASPPPNBFA STRUCT + dwSize dd ? + dwError dd ? + dwNetBiosError dd ? + szNetBiosError db NETBIOS_NAME_LEN + 1 dup(?) + szWorkstationName db NETBIOS_NAME_LEN + 1 dup(?) + bLana db ? +RASPPPNBFA ENDS + +RASPPPNBFW STRUCT + dwSize dd ? + dwError dd ? + dwNetBiosError dd ? + szNetBiosError dw NETBIOS_NAME_LEN + 1 dup(?) + szWorkstationName dw NETBIOS_NAME_LEN + 1 dup(?) + bLana db ? +RASPPPNBFW ENDS + +IFDEF __UNICODE__ + RASPPPNBF EQU +ELSE + RASPPPNBF EQU +ENDIF + +RASPPPIPXA STRUCT + dwSize dd ? + dwError dd ? + szIpxAddress db RAS_MaxIpxAddress + 1 dup (?) +RASPPPIPXA ENDS + +RASPPPIPXW STRUCT + dwSize dd ? + dwError dd ? + szIpxAddress dw RAS_MaxIpxAddress + 1 dup (?) +RASPPPIPXW ENDS + +IFDEF __UNICODE__ + RASPPPIPX EQU +ELSE + RASPPPIPX EQU +ENDIF + +RASPPPIPA STRUCT + dwSize dd ? + dwError dd ? + szIpAddress db RAS_MaxIpAddress + 1 dup(?) + szServerIpAddress db RAS_MaxIpAddress + 1 dup(?) +RASPPPIPA ENDS + +RASPPPIPW STRUCT + dwSize dd ? + dwError dd ? + szIpAddress dw RAS_MaxIpAddress + 1 dup(?) + szServerIpAddress dw RAS_MaxIpAddress + 1 dup(?) +RASPPPIPW ENDS + +IFDEF __UNICODE__ + RASPPPIP EQU +ELSE + RASPPPIP EQU +ENDIF + +RASPPPLCP STRUCT + dwSize dd ? + fBundled BOOL ? +RASPPPLCP ENDS + +RASSLIPA STRUCT + dwSize dd ? + dwError dd ? + szIpAddress db RAS_MaxIpAddress + 1 dup(?) +RASSLIPA ENDS + +RASSLIPW STRUCT + dwSize dd ? + dwError dd ? + szIpAddress dw RAS_MaxIpAddress + 1 dup(?) +RASSLIPW ENDS + +IFDEF __UNICODE__ + RASSLIP EQU +ELSE + RASSLIP EQU +ENDIF + +RASDEVINFOA STRUCT + dwSize dd ? + szDeviceType db RAS_MaxDeviceType + 1 dup(?) + szDeviceName db RAS_MaxDeviceName + 1 dup(?) +RASDEVINFOA ENDS + +RASDEVINFOW STRUCT + dwSize dd ? + szDeviceType dw RAS_MaxDeviceType + 1 dup(?) + szDeviceName dw RAS_MaxDeviceName + 1 dup(?) +RASDEVINFOW ENDS + +IFDEF __UNICODE__ + RASDEVINFO EQU +ELSE + RASDEVINFO EQU +ENDIF + +RASCTRYINFO STRUCT + dwSize dd ? + dwCountryID dd ? + dwNextCountryID dd ? + dwCountryCode dd ? + dwCountryNameOffset dd ? +RASCTRYINFO ENDS + +RASIPADDR STRUCT + _a db ? + _b db ? + _c db ? + _d db ? +RASIPADDR ENDS + +RASENTRYA STRUCT + dwSize dd ? + dwfOptions dd ? + dwCountryID dd ? + dwCountryCode dd ? + szAreaCode db RAS_MaxAreaCode + 1 dup(?) + szLocalPhoneNumber db RAS_MaxPhoneNumber + 1 dup(?) + dwAlternateOffset dd ? + ipaddr RASIPADDR <> + ipaddrDns RASIPADDR <> + ipaddrDnsAlt RASIPADDR <> + ipaddrWins RASIPADDR <> + ipaddrWinsAlt RASIPADDR <> + dwFrameSize dd ? + dwfNetProtocols dd ? + dwFramingProtocol dd ? + szScript db MAX_PATH dup(?) + szAutodialDll db MAX_PATH dup(?) + szAutodialFunc db MAX_PATH dup(?) + szDeviceType db RAS_MaxDeviceType + 1 dup(?) + szDeviceName db RAS_MaxDeviceName + 1 dup(?) + szX25PadType db RAS_MaxPadType + 1 dup(?) + szX25Address db RAS_MaxX25Address + 1 dup(?) + szX25Facilities db RAS_MaxFacilities + 1 dup(?) + szX25UserData db RAS_MaxUserData + 1 dup(?) + dwChannels dd ? + dwReserved1 dd ? + dwReserved2 dd ? +RASENTRYA ENDS + +RASENTRYW STRUCT + dwSize dd ? + dwfOptions dd ? + dwCountryID dd ? + dwCountryCode dd ? + szAreaCode dw RAS_MaxAreaCode + 1 dup(?) + szLocalPhoneNumber dw RAS_MaxPhoneNumber + 1 dup(?) + dwAlternateOffset dd ? + ipaddr RASIPADDR <> + ipaddrDns RASIPADDR <> + ipaddrDnsAlt RASIPADDR <> + ipaddrWins RASIPADDR <> + ipaddrWinsAlt RASIPADDR <> + dwFrameSize dd ? + dwfNetProtocols dd ? + dwFramingProtocol dd ? + szScript dw MAX_PATH dup(?) + szAutodialDll dw MAX_PATH dup(?) + szAutodialFunc dw MAX_PATH dup(?) + szDeviceType dw RAS_MaxDeviceType + 1 dup(?) + szDeviceName dw RAS_MaxDeviceName + 1 dup(?) + szX25PadType dw RAS_MaxPadType + 1 dup(?) + szX25Address dw RAS_MaxX25Address + 1 dup(?) + szX25Facilities dw RAS_MaxFacilities + 1 dup(?) + szX25UserData dw RAS_MaxUserData + 1 dup(?) + dwChannels dd ? + dwReserved1 dd ? + dwReserved2 dd ? +RASENTRYW ENDS + +IFDEF __UNICODE__ + RASENTRY EQU +ELSE + RASENTRY EQU +ENDIF + +;-----------------------------------------[ rasdlg.h ]-------------------------------- +RASPBDEVENT_AddEntry equ 1 +RASPBDEVENT_EditEntry equ 2 +RASPBDEVENT_RemoveEntry equ 3 +RASPBDEVENT_DialEntry equ 4 +RASPBDEVENT_EditGlobals equ 5 +RASPBDEVENT_NoUser equ 6 +RASPBDEVENT_NoUserEdit equ 7 +RASPBDFLAG_PositionDlg equ 1 +RASPBDFLAG_ForceCloseOnDial equ 2 +RASPBDFLAG_NoUser equ 10h +RASPBDFLAG_UpdateDefaults equ 80000000h +RASMDPAGE_Status equ 0 +RASMDPAGE_Summary equ 1 +RASMDPAGE_Preferences equ 2 +RASMDFLAG_PositionDlg equ 1 +RASMDFLAG_UpdateDefaults equ 80000000h +RASEDFLAG_PositionDlg equ 1 +RASEDFLAG_NewEntry equ 2 +RASEDFLAG_CloneEntry equ 4 +RASEDFLAG_NoRename equ 8 +RASDDFLAG_PositionDlg equ 1 +RASDDFLAG_LinkFailure equ 80000000h + +RASPBDLG STRUCT + dwSize dd ? + hwndOwner dd ? + dwFlags dd ? + xDlg dd ? + yDlg dd ? + dwCallbackId dd ? + pCallback dd ? + dwError dd ? + reserved dd ? + reserved2 dd ? +RASPBDLG ENDS + +RASPBDLGA EQU +RASPBDLGW EQU + +RASENTRYDLGA STRUCT + dwSize dd ? + hwndOwner dd ? + dwFlags dd ? + xDlg dd ? + yDlg dd ? + szEntry db RAS_MaxEntryName+1 dup(?) + dwError dd ? + reserved dd ? + reserved2 dd ? +RASENTRYDLGA ENDS + +RASENTRYDLGW STRUCT + dwSize dd ? + hwndOwner dd ? + dwFlags dd ? + xDlg dd ? + yDlg dd ? + szEntry dw RAS_MaxEntryName+1 dup(?) + dwError dd ? + reserved dd ? + reserved2 dd ? +RASENTRYDLGW ENDS + +IFDEF __UNICODE__ + RASENTRYDLG EQU +ELSE + RASENTRYDLG EQU +ENDIF + +RASDIALDLG STRUCT + dwSize dd ? + hwndOwner dd ? + dwFlags dd ? + xDlg dd ? + yDlg dd ? + dwSubEntry dd ? + dwError dd ? + reserved dd ? + reserved2 dd ? +RASDIALDLG ENDS + +RASMONITORDLG STRUCT + dwSize dd ? + hwndOwner dd ? + dwFlags dd ? + dwStartPage dd ? + xDlg dd ? + yDlg dd ? + dwError dd ? + reserved dd ? + reserved2 dd ? +RASMONITORDLG ENDS + +RASNOUSERA STRUCT + dwSize dd ? + dwFlags dd ? + dwTimeoutMs dd ? + szUserName db UNLEN + 1 dup(?) + szPassword db PWLEN + 1 dup(?) + szDomain db DNLEN + 1 dup(?) +RASNOUSERA ENDS + +RASNOUSERW STRUCT + dwSize dd ? + dwFlags dd ? + dwTimeoutMs dd ? + szUserName dw UNLEN + 1 dup(?) + szPassword dw PWLEN + 1 dup(?) + szDomain dw DNLEN + 1 dup(?) +RASNOUSERW ENDS + +IFDEF __UNICODE__ + RASNOUSER EQU +ELSE + RASNOUSER EQU +ENDIF + +;----------------------------------------[ raserror.h ]-------------------------------- +RASBASE equ 600 +SUCCESS equ 0 +PENDING equ (RASBASE+0) +ERROR_INVALID_PORT_HANDLE equ (RASBASE+1) +ERROR_PORT_ALREADY_OPEN equ (RASBASE+2) +ERROR_BUFFER_TOO_SMALL equ (RASBASE+3) +ERROR_WRONG_INFO_SPECIFIED equ (RASBASE+4) +ERROR_CANNOT_SET_PORT_INFO equ (RASBASE+5) +ERROR_PORT_NOT_CONNECTED equ (RASBASE+6) +ERROR_EVENT_INVALID equ (RASBASE+7) +ERROR_DEVICE_DOES_NOT_EXIST equ (RASBASE+8) +ERROR_DEVICETYPE_DOES_NOT_EXIST equ (RASBASE+9) +ERROR_BUFFER_INVALID equ (RASBASE+10) +ERROR_ROUTE_NOT_AVAILABLE equ (RASBASE+11) +ERROR_ROUTE_NOT_ALLOCATED equ (RASBASE+12) +ERROR_INVALID_COMPRESSION_SPECIFIED equ (RASBASE+13) +ERROR_OUT_OF_BUFFERS equ (RASBASE+14) +ERROR_PORT_NOT_FOUND equ (RASBASE+15) +ERROR_ASYNC_REQUEST_PENDING equ (RASBASE+16) +ERROR_ALREADY_DISCONNECTING equ (RASBASE+17) +ERROR_PORT_NOT_OPEN equ (RASBASE+18) +ERROR_PORT_DISCONNECTED equ (RASBASE+19) +ERROR_NO_ENDPOINTS equ (RASBASE+20) +ERROR_CANNOT_OPEN_PHONEBOOK equ (RASBASE+21) +ERROR_CANNOT_LOAD_PHONEBOOK equ (RASBASE+22) +ERROR_CANNOT_FIND_PHONEBOOK_ENTRY equ (RASBASE+23) +ERROR_CANNOT_WRITE_PHONEBOOK equ (RASBASE+24) +ERROR_CORRUPT_PHONEBOOK equ (RASBASE+25) +ERROR_CANNOT_LOAD_STRING equ (RASBASE+26) +ERROR_KEY_NOT_FOUND equ (RASBASE+27) +ERROR_DISCONNECTION equ (RASBASE+28) +ERROR_REMOTE_DISCONNECTION equ (RASBASE+29) +ERROR_HARDWARE_FAILURE equ (RASBASE+30) +ERROR_USER_DISCONNECTION equ (RASBASE+31) +ERROR_INVALID_SIZE equ (RASBASE+32) +ERROR_PORT_NOT_AVAILABLE equ (RASBASE+33) +ERROR_CANNOT_PROJECT_CLIENT equ (RASBASE+34) +ERROR_UNKNOWN equ (RASBASE+35) +ERROR_WRONG_DEVICE_ATTACHED equ (RASBASE+36) +ERROR_BAD_STRING equ (RASBASE+37) +ERROR_REQUEST_TIMEOUT equ (RASBASE+38) +ERROR_CANNOT_GET_LANA equ (RASBASE+39) +ERROR_NETBIOS_ERROR equ (RASBASE+40) +ERROR_SERVER_OUT_OF_RESOURCES equ (RASBASE+41) +ERROR_NAME_EXISTS_ON_NET equ (RASBASE+42) +ERROR_SERVER_GENERAL_NET_FAILURE equ (RASBASE+43) +WARNING_MSG_ALIAS_NOT_ADDED equ (RASBASE+44) +ERROR_AUTH_INTERNAL equ (RASBASE+45) +ERROR_RESTRICTED_LOGON_HOURS equ (RASBASE+46) +ERROR_ACCT_DISABLED equ (RASBASE+47) +ERROR_PASSWD_EXPIRED equ (RASBASE+48) +ERROR_NO_DIALIN_PERMISSION equ (RASBASE+49) +ERROR_SERVER_NOT_RESPONDING equ (RASBASE+50) +ERROR_FROM_DEVICE equ (RASBASE+51) +ERROR_UNRECOGNIZED_RESPONSE equ (RASBASE+52) +ERROR_MACRO_NOT_FOUND equ (RASBASE+53) +ERROR_MACRO_NOT_DEFINED equ (RASBASE+54) +ERROR_MESSAGE_MACRO_NOT_FOUND equ (RASBASE+55) +ERROR_DEFAULTOFF_MACRO_NOT_FOUND equ (RASBASE+56) +ERROR_FILE_COULD_NOT_BE_OPENED equ (RASBASE+57) +ERROR_DEVICENAME_TOO_LONG equ (RASBASE+58) +ERROR_DEVICENAME_NOT_FOUND equ (RASBASE+59) +ERROR_NO_RESPONSES equ (RASBASE+60) +ERROR_NO_COMMAND_FOUND equ (RASBASE+61) +ERROR_WRONG_KEY_SPECIFIED equ (RASBASE+62) +ERROR_UNKNOWN_DEVICE_TYPE equ (RASBASE+63) +ERROR_ALLOCATING_MEMORY equ (RASBASE+64) +ERROR_PORT_NOT_CONFIGURED equ (RASBASE+65) +ERROR_DEVICE_NOT_READY equ (RASBASE+66) +ERROR_READING_INI_FILE equ (RASBASE+67) +ERROR_NO_CONNECTION equ (RASBASE+68) +ERROR_BAD_USAGE_IN_INI_FILE equ (RASBASE+69) +ERROR_READING_SECTIONNAME equ (RASBASE+70) +ERROR_READING_DEVICETYPE equ (RASBASE+71) +ERROR_READING_DEVICENAME equ (RASBASE+72) +ERROR_READING_USAGE equ (RASBASE+73) +ERROR_READING_MAXCONNECTBPS equ (RASBASE+74) +ERROR_READING_MAXCARRIERBPS equ (RASBASE+75) +ERROR_LINE_BUSY equ (RASBASE+76) +ERROR_VOICE_ANSWER equ (RASBASE+77) +ERROR_NO_ANSWER equ (RASBASE+78) +ERROR_NO_CARRIER equ (RASBASE+79) +ERROR_NO_DIALTONE equ (RASBASE+80) +ERROR_IN_COMMAND equ (RASBASE+81) +ERROR_WRITING_SECTIONNAME equ (RASBASE+82) +ERROR_WRITING_DEVICETYPE equ (RASBASE+83) +ERROR_WRITING_DEVICENAME equ (RASBASE+84) +ERROR_WRITING_MAXCONNECTBPS equ (RASBASE+85) +ERROR_WRITING_MAXCARRIERBPS equ (RASBASE+86) +ERROR_WRITING_USAGE equ (RASBASE+87) +ERROR_WRITING_DEFAULTOFF equ (RASBASE+88) +ERROR_READING_DEFAULTOFF equ (RASBASE+89) +ERROR_EMPTY_INI_FILE equ (RASBASE+90) +ERROR_AUTHENTICATION_FAILURE equ (RASBASE+91) +ERROR_PORT_OR_DEVICE equ (RASBASE+92) +ERROR_NOT_BINARY_MACRO equ (RASBASE+93) +ERROR_DCB_NOT_FOUND equ (RASBASE+94) +ERROR_STATE_MACHINES_NOT_STARTED equ (RASBASE+95) +ERROR_STATE_MACHINES_ALREADY_STARTED equ (RASBASE+96) +ERROR_PARTIAL_RESPONSE_LOOPING equ (RASBASE+97) +ERROR_UNKNOWN_RESPONSE_KEY equ (RASBASE+98) +ERROR_RECV_BUF_FULL equ (RASBASE+99) +ERROR_CMD_TOO_LONG equ (RASBASE+100) +ERROR_UNSUPPORTED_BPS equ (RASBASE+101) +ERROR_UNEXPECTED_RESPONSE equ (RASBASE+102) +ERROR_INTERACTIVE_MODE equ (RASBASE+103) +ERROR_BAD_CALLBACK_NUMBER equ (RASBASE+104) +ERROR_INVALID_AUTH_STATE equ (RASBASE+105) +ERROR_WRITING_INITBPS equ (RASBASE+106) +ERROR_X25_DIAGNOSTIC equ (RASBASE+107) +ERROR_ACCT_EXPIRED equ (RASBASE+108) +ERROR_CHANGING_PASSWORD equ (RASBASE+109) +ERROR_OVERRUN equ (RASBASE+110) +ERROR_RASMAN_CANNOT_INITIALIZE equ (RASBASE+111) +ERROR_BIPLEX_PORT_NOT_AVAILABLE equ (RASBASE+112) +ERROR_NO_ACTIVE_ISDN_LINES equ (RASBASE+113) +ERROR_NO_ISDN_CHANNELS_AVAILABLE equ (RASBASE+114) +ERROR_TOO_MANY_LINE_ERRORS equ (RASBASE+115) +ERROR_IP_CONFIGURATION equ (RASBASE+116) +ERROR_NO_IP_ADDRESSES equ (RASBASE+117) +ERROR_PPP_TIMEOUT equ (RASBASE+118) +ERROR_PPP_REMOTE_TERMINATED equ (RASBASE+119) +ERROR_PPP_NO_PROTOCOLS_CONFIGURED equ (RASBASE+120) +ERROR_PPP_NO_RESPONSE equ (RASBASE+121) +ERROR_PPP_INVALID_PACKET equ (RASBASE+122) +ERROR_PHONE_NUMBER_TOO_LONG equ (RASBASE+123) +ERROR_IPXCP_NO_DIALOUT_CONFIGURED equ (RASBASE+124) +ERROR_IPXCP_NO_DIALIN_CONFIGURED equ (RASBASE+125) +ERROR_IPXCP_DIALOUT_ALREADY_ACTIVE equ (RASBASE+126) +ERROR_ACCESSING_TCPCFGDLL equ (RASBASE+127) +ERROR_NO_IP_RAS_ADAPTER equ (RASBASE+128) +ERROR_SLIP_REQUIRES_IP equ (RASBASE+129) +ERROR_PROJECTION_NOT_COMPLETE equ (RASBASE+130) +ERROR_PROTOCOL_NOT_CONFIGURED equ (RASBASE+131) +ERROR_PPP_NOT_CONVERGING equ (RASBASE+132) +ERROR_PPP_CP_REJECTED equ (RASBASE+133) +ERROR_PPP_LCP_TERMINATED equ (RASBASE+134) +ERROR_PPP_REQUIRED_ADDRESS_REJECTED equ (RASBASE+135) +ERROR_PPP_NCP_TERMINATED equ (RASBASE+136) +ERROR_PPP_LOOPBACK_DETECTED equ (RASBASE+137) +ERROR_PPP_NO_ADDRESS_ASSIGNED equ (RASBASE+138) +ERROR_CANNOT_USE_LOGON_CREDENTIALS equ (RASBASE+139) +ERROR_TAPI_CONFIGURATION equ (RASBASE+140) +ERROR_NO_LOCAL_ENCRYPTION equ (RASBASE+141) +ERROR_NO_REMOTE_ENCRYPTION equ (RASBASE+142) +ERROR_REMOTE_REQUIRES_ENCRYPTION equ (RASBASE+143) +ERROR_IPXCP_NET_NUMBER_CONFLICT equ (RASBASE+144) +ERROR_INVALID_SMM equ (RASBASE+145) +ERROR_SMM_UNINITIALIZED equ (RASBASE+146) +ERROR_NO_MAC_FOR_PORT equ (RASBASE+147) +ERROR_SMM_TIMEOUT equ (RASBASE+148) +ERROR_BAD_PHONE_NUMBER equ (RASBASE+149) +ERROR_WRONG_MODULE equ (RASBASE+150) +ERROR_INVALID_CALLBACK_NUMBER equ (RASBASE+151) +ERROR_SCRIPT_SYNTAX equ (RASBASE+152) +RASBASEEND equ (RASBASE+152) + +;------------------------------------[ rassapi.h ]------------------------------------- + +RASSAPI_MAX_PHONENUMBER_SIZE equ 128 +RASSAPI_MAX_MEDIA_NAME equ 16 +RASSAPI_MAX_PORT_NAME equ 16 +RASSAPI_MAX_DEVICE_NAME equ 128 +RASSAPI_MAX_DEVICETYPE_NAME equ 16 +RASSAPI_MAX_PARAM_KEY_SIZE equ 32 +RASPRIV_NoCallback equ 1 +RASPRIV_AdminSetCallback equ 2 +RASPRIV_CallerSetCallback equ 4 +RASPRIV_DialinPrivilege equ 8 +RASPRIV_CallbackType equ (RASPRIV_AdminSetCallback+RASPRIV_CallerSetCallback+RASPRIV_NoCallback) +RAS_MODEM_OPERATIONAL equ 1 +RAS_MODEM_NOT_RESPONDING equ 2 +RAS_MODEM_HARDWARE_FAILURE equ 3 +RAS_MODEM_INCORRECT_RESPONSE equ 4 +RAS_MODEM_UNKNOWN equ 5 +RAS_PORT_NON_OPERATIONAL equ 1 +RAS_PORT_DISCONNECTED equ 2 +RAS_PORT_CALLING_BACK equ 3 +RAS_PORT_LISTENING equ 4 +RAS_PORT_AUTHENTICATING equ 5 +RAS_PORT_AUTHENTICATED equ 6 +RAS_PORT_INITIALIZING equ 7 +MEDIA_UNKNOWN equ 0 +MEDIA_SERIAL equ 1 +MEDIA_RAS10_SERIAL equ 2 +MEDIA_X25 equ 3 +MEDIA_ISDN equ 4 +USER_AUTHENTICATED equ 1 +MESSENGER_PRESENT equ 2 +PPP_CLIENT equ 4 +GATEWAY_ACTIVE equ 8 +REMOTE_LISTEN equ 10h +PORT_MULTILINKED equ 20h +RAS_IPADDRESSLEN equ 15 +RAS_IPXADDRESSLEN equ 22 +RAS_ATADDRESSLEN equ 32 +RASDOWNLEVEL equ 10 +RASADMIN_35 equ 35 +RASADMIN_CURRENT equ 40 +ParamNumber equ 0 +ParamString equ 1 + +RAS_PARAMS_VALUE UNION DWORD + Number dd ? + struct String + iLength dd ? + Data dd ? + ends +RAS_PARAMS_VALUE ENDS + +RAS_PARAMETERS STRUCT + P_Key db RASSAPI_MAX_PARAM_KEY_SIZE dup(?) + P_Type dd ? + P_Attributes db ? + P_Value RAS_PARAMS_VALUE <> +RAS_PARAMETERS ENDS + +RAS_USER_0 STRUCT + bfPrivilege db ? + szPhoneNumber dw RASSAPI_MAX_PHONENUMBER_SIZE + 1 dup(?) +RAS_USER_0 ENDS + +RAS_PORT_0 STRUCT + wszPortName dw RASSAPI_MAX_PORT_NAME dup(?) + wszDeviceType dw RASSAPI_MAX_DEVICETYPE_NAME dup(?) + wszDeviceName dw RASSAPI_MAX_DEVICE_NAME dup(?) + wszMediaName dw RASSAPI_MAX_MEDIA_NAME dup(?) + reserved dd ? + Flags dd ? + wszUserName dw UNLEN + 1 dup(?) + wszComputer dw NETBIOS_NAME_LEN dup(?) + dwStartSessionTime dd ? + wszLogonDomain dw DNLEN + 1 dup(?) + fAdvancedServer BOOL ? +RAS_PORT_0 ENDS + +RAS_PPP_NBFCP_RESULT STRUCT + dwError dd ? + dwNetBiosError dd ? + szName db NETBIOS_NAME_LEN + 1 dup(?) + wszWksta dw NETBIOS_NAME_LEN + 1 dup(?) +RAS_PPP_NBFCP_RESULT ENDS + +RAS_PPP_IPCP_RESULT STRUCT + dwError dd ? + wszAddress dw RAS_IPADDRESSLEN + 1 dup(?) +RAS_PPP_IPCP_RESULT ENDS + +RAS_PPP_IPXCP_RESULT STRUCT + dwError dd ? + wszAddress dw RAS_IPXADDRESSLEN + 1 dup(?) +RAS_PPP_IPXCP_RESULT ENDS + +RAS_PPP_ATCP_RESULT STRUCT + dwError dd ? + wszAddress dw RAS_ATADDRESSLEN + 1 dup(?) +RAS_PPP_ATCP_RESULT ENDS + +RAS_PPP_PROJECTION_RESULT STRUCT + nbf RAS_PPP_NBFCP_RESULT <> + ip RAS_PPP_IPCP_RESULT <> + ipx RAS_PPP_IPXCP_RESULT <> + at RAS_PPP_ATCP_RESULT <> +RAS_PPP_PROJECTION_RESULT ENDS + +RAS_PORT_1 STRUCT + rasport0 RAS_PORT_0 <> + LineCondition dd ? + HardwareCondition dd ? + LineSpeed dd ? + NumStatistics dw ? + NumMediaParms dw ? + SizeMediaParms dd ? + ProjResult RAS_PPP_PROJECTION_RESULT <> +RAS_PORT_1 ENDS + +RAS_PORT_STATISTICS STRUCT + dwBytesXmited dd ? + dwBytesRcved dd ? + dwFramesXmited dd ? + dwFramesRcved dd ? + dwCrcErr dd ? + dwTimeoutErr dd ? + dwAlignmentErr dd ? + dwHardwareOverrunErr dd ? + dwFramingErr dd ? + dwBufferOverrunErr dd ? + dwBytesXmitedUncompressed dd ? + dwBytesRcvedUncompressed dd ? + dwBytesXmitedCompressed dd ? + dwBytesRcvedCompressed dd ? + dwPortBytesXmited dd ? + dwPortBytesRcved dd ? + dwPortFramesXmited dd ? + dwPortFramesRcved dd ? + dwPortCrcErr dd ? + dwPortTimeoutErr dd ? + dwPortAlignmentErr dd ? + dwPortHardwareOverrunErr dd ? + dwPortFramingErr dd ? + dwPortBufferOverrunErr dd ? + dwPortBytesXmitedUncompressed dd ? + dwPortBytesRcvedUncompressed dd ? + dwPortBytesXmitedCompressed dd ? + dwPortBytesRcvedCompressed dd ? +RAS_PORT_STATISTICS ENDS + +RAS_SERVER_0 STRUCT + TotalPorts dw ? + PortsInUse dw ? + RasVersion dd ? +RAS_SERVER_0 ENDS + +;;;; end ras + +;;;; oledlg + +IDC_OLEUIHELP equ 99 +IDC_IO_CREATENEW equ 2100 +IDC_IO_CREATEFROMFILE equ 2101 +IDC_IO_LINKFILE equ 2102 +IDC_IO_OBJECTTYPELIST equ 2103 +IDC_IO_DISPLAYASICON equ 2104 +IDC_IO_CHANGEICON equ 2105 +IDC_IO_FILE equ 2106 +IDC_IO_FILEDISPLAY equ 2107 +IDC_IO_RESULTIMAGE equ 2108 +IDC_IO_RESULTTEXT equ 2109 +IDC_IO_ICONDISPLAY equ 2110 +IDC_IO_OBJECTTYPETEXT equ 2111 +IDC_IO_FILETEXT equ 2112 +IDC_IO_FILETYPE equ 2113 +IDC_IO_INSERTCONTROL equ 2114 +IDC_IO_ADDCONTROL equ 2115 +IDC_IO_CONTROLTYPELIST equ 2116 +IDC_PS_PASTE equ 500 +IDC_PS_PASTELINK equ 501 +IDC_PS_SOURCETEXT equ 502 +IDC_PS_PASTELIST equ 503 +IDC_PS_PASTELINKLIST equ 504 +IDC_PS_DISPLAYLIST equ 505 +IDC_PS_DISPLAYASICON equ 506 +IDC_PS_ICONDISPLAY equ 507 +IDC_PS_CHANGEICON equ 508 +IDC_PS_RESULTIMAGE equ 509 +IDC_PS_RESULTTEXT equ 510 +IDC_CI_GROUP equ 120 +IDC_CI_CURRENT equ 121 +IDC_CI_CURRENTICON equ 122 +IDC_CI_DEFAULT equ 123 +IDC_CI_DEFAULTICON equ 124 +IDC_CI_FROMFILE equ 125 +IDC_CI_FROMFILEEDIT equ 126 +IDC_CI_ICONLIST equ 127 +IDC_CI_LABEL equ 128 +IDC_CI_LABELEDIT equ 129 +IDC_CI_BROWSE equ 130 +IDC_CI_ICONDISPLAY equ 131 +IDC_CV_OBJECTTYPE equ 150 +IDC_CV_DISPLAYASICON equ 152 +IDC_CV_CHANGEICON equ 153 +IDC_CV_ACTIVATELIST equ 154 +IDC_CV_CONVERTTO equ 155 +IDC_CV_ACTIVATEAS equ 156 +IDC_CV_RESULTTEXT equ 157 +IDC_CV_CONVERTLIST equ 158 +IDC_CV_ICONDISPLAY equ 165 +IDC_EL_CHANGESOURCE equ 201 +IDC_EL_AUTOMATIC equ 202 +IDC_EL_CANCELLINK equ 209 +IDC_EL_UPDATENOW equ 210 +IDC_EL_OPENSOURCE equ 211 +IDC_EL_MANUAL equ 212 +IDC_EL_LINKSOURCE equ 216 +IDC_EL_LINKTYPE equ 217 +IDC_EL_LINKSLISTBOX equ 206 +IDC_EL_COL1 equ 220 +IDC_EL_COL2 equ 221 +IDC_EL_COL3 equ 222 +IDC_BZ_RETRY equ 600 +IDC_BZ_ICON equ 601 +IDC_BZ_MESSAGE1 equ 602 +IDC_BZ_SWITCHTO equ 604 +IDC_UL_METER equ 1029 +IDC_UL_STOP equ 1030 +IDC_UL_PERCENT equ 1031 +IDC_UL_PROGRESS equ 1032 +IDC_PU_LINKS equ 900 +IDC_PU_TEXT equ 901 +IDC_PU_CONVERT equ 902 +IDC_PU_ICON equ 908 +IDC_GP_OBJECTNAME equ 1009 +IDC_GP_OBJECTTYPE equ 1010 +IDC_GP_OBJECTSIZE equ 1011 +IDC_GP_CONVERT equ 1013 +IDC_GP_OBJECTICON equ 1014 +IDC_GP_OBJECTLOCATION equ 1022 +IDC_VP_PERCENT equ 1000 +IDC_VP_CHANGEICON equ 1001 +IDC_VP_EDITABLE equ 1002 +IDC_VP_ASICON equ 1003 +IDC_VP_RELATIVE equ 1005 +IDC_VP_SPIN equ 1006 +IDC_VP_SCALETXT equ 1034 +IDC_VP_ICONDISPLAY equ 1021 +IDC_VP_RESULTIMAGE equ 1033 +IDC_LP_OPENSOURCE equ 1006 +IDC_LP_UPDATENOW equ 1007 +IDC_LP_BREAKLINK equ 1008 +IDC_LP_LINKSOURCE equ 1012 +IDC_LP_CHANGESOURCE equ 1015 +IDC_LP_AUTOMATIC equ 1016 +IDC_LP_MANUAL equ 1017 +IDC_LP_DATE equ 1018 +IDC_LP_TIME equ 1019 +IDD_INSERTOBJECT equ 1000 +IDD_CHANGEICON equ 1001 +IDD_CONVERT equ 1002 +IDD_PASTESPECIAL equ 1003 +IDD_EDITLINKS equ 1004 +IDD_BUSY equ 1006 +IDD_UPDATELINKS equ 1007 +IDD_CHANGESOURCE equ 1009 +IDD_INSERTFILEBROWSE equ 1010 +IDD_CHANGEICONBROWSE equ 1011 +IDD_CONVERTONLY equ 1012 +IDD_CHANGESOURCE4 equ 1013 +IDD_GNRLPROPS equ 1100 +IDD_VIEWPROPS equ 1101 +IDD_LINKPROPS equ 1102 +IDD_CONVERT4 equ 1103 +IDD_CONVERTONLY4 equ 1104 +IDD_EDITLINKS4 equ 1105 +IDD_GNRLPROPS4 equ 1106 +IDD_LINKPROPS4 equ 1107 +IDD_PASTESPECIAL4 equ 1108 +IDD_CANNOTUPDATELINK equ 1008 +IDD_LINKSOURCEUNAVAILABLE equ 1020 +IDD_SERVERNOTFOUND equ 1023 +IDD_OUTOFMEMORY equ 1024 +IDD_SERVERNOTREGA equ 1025 +IDD_SERVERNOTREGW equ 1021 +IDD_LINKTYPECHANGEDA equ 1026 +IDD_LINKTYPECHANGEDW equ 1022 +IFDEF __UNICODE__ + IDD_SERVERNOTREG equ IDD_SERVERNOTREGW + IDD_LINKTYPECHANGED equ IDD_LINKTYPECHANGEDW +ELSE + IDD_SERVERNOTREG equ IDD_SERVERNOTREGW + IDD_LINKTYPECHANGED equ IDD_LINKTYPECHANGEDA +ENDIF + +ID_BROWSE_CHANGEICON equ 1 +ID_BROWSE_INSERTFILE equ 2 +ID_BROWSE_ADDCONTROL equ 3 +ID_BROWSE_CHANGESOURCE equ 4 +OLEUI_FALSE equ 0 +OLEUI_SUCCESS equ 1 +OLEUI_OK equ 1 +OLEUI_CANCEL equ 2 +OLEUI_ERR_STANDARDMIN equ 100 +OLEUI_ERR_OLEMEMALLOC equ 100 +OLEUI_ERR_STRUCTURENULL equ 101 +OLEUI_ERR_STRUCTUREINVALID equ 102 +OLEUI_ERR_CBSTRUCTINCORRECT equ 103 +OLEUI_ERR_HWNDOWNERINVALID equ 104 +OLEUI_ERR_LPSZCAPTIONINVALID equ 105 +OLEUI_ERR_LPFNHOOKINVALID equ 106 +OLEUI_ERR_HINSTANCEINVALID equ 107 +OLEUI_ERR_LPSZTEMPLATEINVALID equ 108 +OLEUI_ERR_HRESOURCEINVALID equ 109 +OLEUI_ERR_FINDTEMPLATEFAILURE equ 110 +OLEUI_ERR_LOADTEMPLATEFAILURE equ 111 +OLEUI_ERR_DIALOGFAILURE equ 112 +OLEUI_ERR_LOCALMEMALLOC equ 113 +OLEUI_ERR_GLOBALMEMALLOC equ 114 +OLEUI_ERR_LOADSTRING equ 115 +OLEUI_ERR_STANDARDMAX equ 116 +IOF_SHOWHELP equ 00000001h +IOF_SELECTCREATENEW equ 00000002h +IOF_SELECTCREATEFROMFILE equ 00000004h +IOF_CHECKLINK equ 00000008h +IOF_CHECKDISPLAYASICON equ 00000010h +IOF_CREATENEWOBJECT equ 00000020h +IOF_CREATEFILEOBJECT equ 00000040h +IOF_CREATELINKOBJECT equ 00000080h +IOF_DISABLELINK equ 00000100h +IOF_VERIFYSERVERSEXIST equ 00000200h +IOF_DISABLEDISPLAYASICON equ 00000400h +IOF_HIDECHANGEICON equ 00000800h +IOF_SHOWINSERTCONTROL equ 00001000h +IOF_SELECTCREATECONTROL equ 00002000h +OLEUI_IOERR_LPSZFILEINVALID equ (OLEUI_ERR_STANDARDMAX+0) +OLEUI_IOERR_LPSZLABELINVALID equ (OLEUI_ERR_STANDARDMAX+1) +OLEUI_IOERR_HICONINVALID equ (OLEUI_ERR_STANDARDMAX+2) +OLEUI_IOERR_LPFORMATETCINVALID equ (OLEUI_ERR_STANDARDMAX+3) +OLEUI_IOERR_PPVOBJINVALID equ (OLEUI_ERR_STANDARDMAX+4) +OLEUI_IOERR_LPIOLECLIENTSITEINVALID equ (OLEUI_ERR_STANDARDMAX+5) +OLEUI_IOERR_LPISTORAGEINVALID equ (OLEUI_ERR_STANDARDMAX+6) +OLEUI_IOERR_SCODEHASERROR equ (OLEUI_ERR_STANDARDMAX+7) +OLEUI_IOERR_LPCLSIDEXCLUDEINVALID equ (OLEUI_ERR_STANDARDMAX+8) +OLEUI_IOERR_CCHFILEINVALID equ (OLEUI_ERR_STANDARDMAX+9) +PS_MAXLINKTYPES equ 8 +PSF_SHOWHELP equ 00000001h +PSF_SELECTPASTE equ 00000002h +PSF_SELECTPASTELINK equ 00000004h +PSF_CHECKDISPLAYASICON equ 00000008h +PSF_DISABLEDISPLAYASICON equ 00000010h +PSF_HIDECHANGEICON equ 00000020h +PSF_STAYONCLIPBOARDCHANGE equ 00000040h +PSF_NOREFRESHDATAOBJECT equ 00000080h +OLEUI_IOERR_SRCDATAOBJECTINVALID equ (OLEUI_ERR_STANDARDMAX+0) +OLEUI_IOERR_ARRPASTEENTRIESINVALID equ (OLEUI_ERR_STANDARDMAX+1) +OLEUI_IOERR_ARRLINKTYPESINVALID equ (OLEUI_ERR_STANDARDMAX+2) +OLEUI_PSERR_CLIPBOARDCHANGED equ (OLEUI_ERR_STANDARDMAX+3) +OLEUI_PSERR_GETCLIPBOARDFAILED equ (OLEUI_ERR_STANDARDMAX+4) +OLEUI_ELERR_LINKCNTRNULL equ (OLEUI_ERR_STANDARDMAX+0) +OLEUI_ELERR_LINKCNTRINVALID equ (OLEUI_ERR_STANDARDMAX+1) +ELF_SHOWHELP equ 00000001h +ELF_DISABLEUPDATENOW equ 00000002h +ELF_DISABLEOPENSOURCE equ 00000004h +ELF_DISABLECHANGESOURCE equ 00000008h +ELF_DISABLECANCELLINK equ 00000010h +CIF_SHOWHELP equ 00000001h +CIF_SELECTCURRENT equ 00000002h +CIF_SELECTDEFAULT equ 00000004h +CIF_SELECTFROMFILE equ 00000008h +CIF_USEICONEXE equ 00000010h +OLEUI_CIERR_MUSTHAVECLSID equ (OLEUI_ERR_STANDARDMAX+0) +OLEUI_CIERR_MUSTHAVECURRENTMETAFILE equ (OLEUI_ERR_STANDARDMAX+1) +OLEUI_CIERR_SZICONEXEINVALID equ (OLEUI_ERR_STANDARDMAX+2) +CF_SHOWHELPBUTTON equ 00000001h +CF_SETCONVERTDEFAULT equ 00000002h +CF_SETACTIVATEDEFAULT equ 00000004h +CF_SELECTCONVERTTO equ 00000008h +CF_SELECTACTIVATEAS equ 00000010h +CF_DISABLEDISPLAYASICON equ 00000020h +CF_DISABLEACTIVATEAS equ 00000040h +CF_HIDECHANGEICON equ 00000080h +CF_CONVERTONLY equ 00000100h +OLEUI_CTERR_CLASSIDINVALID equ (OLEUI_ERR_STANDARDMAX+1) +OLEUI_CTERR_DVASPECTINVALID equ (OLEUI_ERR_STANDARDMAX+2) +OLEUI_CTERR_CBFORMATINVALID equ (OLEUI_ERR_STANDARDMAX+3) +OLEUI_CTERR_HMETAPICTINVALID equ (OLEUI_ERR_STANDARDMAX+4) +OLEUI_CTERR_STRINGINVALID equ (OLEUI_ERR_STANDARDMAX+5) +BZ_DISABLECANCELBUTTON equ 00000001h +BZ_DISABLESWITCHTOBUTTON equ 00000002h +BZ_DISABLERETRYBUTTON equ 00000004h +BZ_NOTRESPONDINGDIALOG equ 00000008h +OLEUI_BZERR_HTASKINVALID equ (OLEUI_ERR_STANDARDMAX+0) +OLEUI_BZ_SWITCHTOSELECTED equ (OLEUI_ERR_STANDARDMAX+1) +OLEUI_BZ_RETRYSELECTED equ (OLEUI_ERR_STANDARDMAX+2) +OLEUI_BZ_CALLUNBLOCKED equ (OLEUI_ERR_STANDARDMAX+3) +CSF_SHOWHELP equ 00000001h +CSF_VALIDSOURCE equ 00000002h +CSF_ONLYGETSOURCE equ 00000004h +CSF_EXPLORER equ 00000008h +OLEUI_CSERR_LINKCNTRNULL equ (OLEUI_ERR_STANDARDMAX+0) +OLEUI_CSERR_LINKCNTRINVALID equ (OLEUI_ERR_STANDARDMAX+1) +OLEUI_CSERR_FROMNOTNULL equ (OLEUI_ERR_STANDARDMAX+2) +OLEUI_CSERR_TONOTNULL equ (OLEUI_ERR_STANDARDMAX+3) +OLEUI_CSERR_SOURCENULL equ (OLEUI_ERR_STANDARDMAX+4) +OLEUI_CSERR_SOURCEINVALID equ (OLEUI_ERR_STANDARDMAX+5) +OLEUI_CSERR_SOURCEPARSERROR equ (OLEUI_ERR_STANDARDMAX+6) +OLEUI_CSERR_SOURCEPARSEERROR equ (OLEUI_ERR_STANDARDMAX+6) +VPF_SELECTRELATIVE equ 00000001h +VPF_DISABLERELATIVE equ 00000002h +VPF_DISABLESCALE equ 00000004h +OPF_OBJECTISLINK equ 00000001h +OPF_NOFILLDEFAULT equ 00000002h +OPF_SHOWHELP equ 00000004h +OPF_DISABLECONVERT equ 00000008h +OLEUI_OPERR_SUBPROPNULL equ (OLEUI_ERR_STANDARDMAX+0) +OLEUI_OPERR_SUBPROPINVALID equ (OLEUI_ERR_STANDARDMAX+1) +OLEUI_OPERR_PROPSHEETNULL equ (OLEUI_ERR_STANDARDMAX+2) +OLEUI_OPERR_PROPSHEETINVALID equ (OLEUI_ERR_STANDARDMAX+3) +OLEUI_OPERR_SUPPROP equ (OLEUI_ERR_STANDARDMAX+4) +OLEUI_OPERR_PROPSINVALID equ (OLEUI_ERR_STANDARDMAX+5) +OLEUI_OPERR_PAGESINCORRECT equ (OLEUI_ERR_STANDARDMAX+6) +OLEUI_OPERR_INVALIDPAGES equ (OLEUI_ERR_STANDARDMAX+7) +OLEUI_OPERR_NOTSUPPORTED equ (OLEUI_ERR_STANDARDMAX+8) +OLEUI_OPERR_DLGPROCNOTNULL equ (OLEUI_ERR_STANDARDMAX+9) +OLEUI_OPERR_LPARAMNOTZERO equ (OLEUI_ERR_STANDARDMAX+10) +OLEUI_GPERR_STRINGINVALID equ (OLEUI_ERR_STANDARDMAX+11) +OLEUI_GPERR_CLASSIDINVALID equ (OLEUI_ERR_STANDARDMAX+12) +OLEUI_GPERR_LPCLSIDEXCLUDEINVALID equ (OLEUI_ERR_STANDARDMAX+13) +OLEUI_GPERR_CBFORMATINVALID equ (OLEUI_ERR_STANDARDMAX+14) +OLEUI_VPERR_METAPICTINVALID equ (OLEUI_ERR_STANDARDMAX+15) +OLEUI_VPERR_DVASPECTINVALID equ (OLEUI_ERR_STANDARDMAX+16) +OLEUI_LPERR_LINKCNTRNULL equ (OLEUI_ERR_STANDARDMAX+17) +OLEUI_LPERR_LINKCNTRINVALID equ (OLEUI_ERR_STANDARDMAX+18) +OLEUI_OPERR_PROPERTYSHEET equ (OLEUI_ERR_STANDARDMAX+19) +OLEUI_OPERR_OBJINFOINVALID equ (OLEUI_ERR_STANDARDMAX+20) +OLEUI_OPERR_LINKINFOINVALID equ (OLEUI_ERR_STANDARDMAX+21) +OLEUI_QUERY_GETCLASSID equ 0FF00h +OLEUI_QUERY_LINKBROKEN equ 0FF01h + +;;;; end oledlg + +;;;; htmlhelp + +HH_DISPLAY_TOPIC equ 0000h +HH_HELP_FINDER equ 0000h +HH_DISPLAY_TOC equ 0001h +HH_DISPLAY_INDEX equ 0002h +HH_DISPLAY_SEARCH equ 0003h +HH_SET_WIN_TYPE equ 0004h +HH_GET_WIN_TYPE equ 0005h +HH_GET_WIN_HANDLE equ 0006h +HH_ENUM_INFO_TYPE equ 0007h +HH_SET_INFO_TYPE equ 0008h +HH_SYNC equ 0009h +HH_RESERVED1 equ 000Ah +HH_RESERVED2 equ 000Bh +HH_RESERVED3 equ 000Ch +HH_KEYWORD_LOOKUP equ 000Dh +HH_DISPLAY_TEXT_POPUP equ 000Eh +HH_HELP_CONTEXT equ 000Fh +HH_TP_HELP_CONTEXTMENU equ 0010h +HH_TP_HELP_WM_HELP equ 0011h +HH_CLOSE_ALL equ 0012h +HH_ALINK_LOOKUP equ 0013h +HH_GET_LAST_ERROR equ 0014h +HH_ENUM_CATEGORY equ 0015h +HH_ENUM_CATEGORY_IT equ 0016h +HH_RESET_IT_FILTER equ 0017h +HH_SET_INCLUSIVE_FILTER equ 0018h +HH_SET_EXCLUSIVE_FILTER equ 0019h +HH_INITIALIZE equ 001Ch +HH_UNINITIALIZE equ 001Dh +HH_SET_QUERYSERVICE equ 001Eh +HH_PRETRANSLATEMESSAGE equ 00fdh +HH_SET_GLOBAL_PROPERTY equ 00fch +IDTB_EXPAND equ 200 +IDTB_CONTRACT equ 201 +IDTB_STOP equ 202 +IDTB_REFRESH equ 203 +IDTB_BACK equ 204 +IDTB_HOME equ 205 +IDTB_SYNC equ 206 +IDTB_PRINT equ 207 +IDTB_OPTIONS equ 208 +IDTB_FORWARD equ 209 +IDTB_NOTES equ 210 +IDTB_BROWSE_FWD equ 211 +IDTB_BROWSE_BACK equ 212 +IDTB_CONTENTS equ 213 +IDTB_INDEX equ 214 +IDTB_SEARCH equ 215 +IDTB_HISTORY equ 216 +IDTB_FAVORITES equ 217 +IDTB_JUMP1 equ 218 +IDTB_JUMP2 equ 219 +IDTB_CUSTOMIZE equ 221 +IDTB_ZOOM equ 222 +IDTB_TOC_NEXT equ 223 +IDTB_TOC_PREV equ 224 +HH_MAX_TABS equ 19 +HH_FTS_DEFAULT_PROXIMITY equ -1 +ATOM_HTMLHELP_API_ANSI equ 14 +ATOM_HTMLHELP_API_UNICODE equ 15 + +;;;; end htmlhelp + +;;;; wincon + +NLS_DBCSCHAR equ 00010000h +NLS_ALPHANUMERIC equ 00000000h +NLS_KATAKANA equ 00020000h +NLS_HIRAGANA equ 00040000h +NLS_ROMAN equ 00400000h +NLS_IME_CONVERSION equ 00800000h +NLS_IME_DISABLE equ 20000000h +MOUSE_WHEELED equ 0004h +MOUSE_HWHEELED equ 0008h +COMMON_LVB_LEADING_BYTE equ 0100h +COMMON_LVB_TRAILING_BYTE equ 0200h +COMMON_LVB_GRID_HORIZONTAL equ 0400h +COMMON_LVB_GRID_LVERTICAL equ 0800h +COMMON_LVB_GRID_RVERTICAL equ 1000h +COMMON_LVB_REVERSE_VIDEO equ 4000h +COMMON_LVB_UNDERSCORE equ 8000h +COMMON_LVB_SBCSDBCS equ 0300h +HISTORY_NO_DUP_FLAG equ 1h +CONSOLE_NO_SELECTION equ 0000h +CONSOLE_SELECTION_IN_PROGRESS equ 0001h +CONSOLE_SELECTION_NOT_EMPTY equ 0002h +CONSOLE_MOUSE_SELECTION equ 0004h +CONSOLE_MOUSE_DOWN equ 0008h +ENABLE_INSERT_MODE equ 0020h +ENABLE_QUICK_EDIT_MODE equ 0040h +ENABLE_EXTENDED_FLAGS equ 0080h +ENABLE_AUTO_POSITION equ 0100h +CONSOLE_REAL_OUTPUT_HANDLE equ -2 +CONSOLE_REAL_INPUT_HANDLE equ -3 +ATTACH_PARENT_PROCESS equ -1 +CONSOLE_FULLSCREEN equ 1 +CONSOLE_FULLSCREEN_HARDWARE equ 2 +CONSOLE_FULLSCREEN_MODE equ 1 +CONSOLE_WINDOWED_MODE equ 2 + +;;;; end wincon + +;;;; userenv + +PI_NOUI equ 00000001h +PI_APPLYPOLICY equ 00000002h +PT_TEMPORARY equ 00000001h +PT_ROAMING equ 00000002h +PT_MANDATORY equ 00000004h +RP_FORCE equ 1 +RP_SYNC equ 2 +GPC_BLOCK_POLICY equ 00000001h +GPO_FLAG_DISABLE equ 00000001h +GPO_FLAG_FORCE equ 00000002h +GPO_LIST_FLAG_MACHINE equ 00000001h +GPO_LIST_FLAG_SITEONLY equ 00000002h +GPO_LIST_FLAG_NO_WMIFILTERS equ 00000004h +GPO_LIST_FLAG_NO_SECURITYFILTERS equ 00000008h +GPO_INFO_FLAG_MACHINE equ 00000001h +GPO_INFO_FLAG_BACKGROUND equ 00000010h +GPO_INFO_FLAG_SLOWLINK equ 00000020h +GPO_INFO_FLAG_VERBOSE equ 00000040h +GPO_INFO_FLAG_NOCHANGES equ 00000080h +GPO_INFO_FLAG_LINKTRANSITION equ 00000100h +GPO_INFO_FLAG_LOGRSOP_TRANSITION equ 00000200h +GPO_INFO_FLAG_FORCED_REFRESH equ 00000400h +GPO_INFO_FLAG_SAFEMODE_BOOT equ 00000800h +GPO_INFO_FLAG_ASYNC_FOREGROUND equ 00001000h +FLAG_NO_GPO_FILTER equ 80000000h +FLAG_NO_CSE_INVOKE equ 40000000h +FLAG_ASSUME_SLOW_LINK equ 20000000h +FLAG_LOOPBACK_MERGE equ 10000000h +FLAG_LOOPBACK_REPLACE equ 08000000h +FLAG_ASSUME_USER_WQLFILTER_TRUE equ 04000000h +FLAG_ASSUME_COMP_WQLFILTER_TRUE equ 02000000h +FLAG_PLANNING_MODE equ 01000000h +FLAG_NO_USER equ 00000001h +FLAG_NO_COMPUTER equ 00000002h +FLAG_FORCE_CREATENAMESPACE equ 00000004h +RSOP_USER_ACCESS_DENIED equ 00000001h +RSOP_COMPUTER_ACCESS_DENIED equ 00000002h +RSOP_TEMPNAMESPACE_EXISTS equ 00000004h + +;;;; end userenv + +;;;; winerror + +FACILITY_WINRM equ 51 +FACILITY_WINDOWSUPDATE equ 36 +FACILITY_WINDOWS_DEFENDER equ 80 +FACILITY_WINDOWS_CE equ 24 +FACILITY_WINDOWS equ 8 +FACILITY_URT equ 19 +FACILITY_UMI equ 22 +FACILITY_TPM_SOFTWARE equ 41 +FACILITY_TPM_SERVICES equ 40 +FACILITY_SXS equ 23 +FACILITY_STORAGE equ 3 +FACILITY_STATE_MANAGEMENT equ 34 +FACILITY_SSPI equ 9 +FACILITY_SCARD equ 16 +FACILITY_SHELL equ 39 +FACILITY_SETUPAPI equ 15 +FACILITY_SECURITY equ 9 +FACILITY_RPC equ 1 +FACILITY_PLA equ 48 +FACILITY_WIN32 equ 7 +FACILITY_CONTROL equ 10 +FACILITY_NULL equ 0 +FACILITY_NDIS equ 52 +FACILITY_METADIRECTORY equ 35 +FACILITY_MSMQ equ 14 +FACILITY_MEDIASERVER equ 13 +FACILITY_INTERNET equ 12 +FACILITY_ITF equ 4 +FACILITY_USERMODE_HYPERVISOR equ 53 +FACILITY_HTTP equ 25 +FACILITY_GRAPHICS equ 38 +FACILITY_FWP equ 50 +FACILITY_FVE equ 49 +FACILITY_USERMODE_FILTER_MANAGER equ 31 +FACILITY_DPLAY equ 21 +FACILITY_DISPATCH equ 2 +FACILITY_DIRECTORYSERVICE equ 37 +FACILITY_CONFIGURATION equ 33 +FACILITY_COMPLUS equ 17 +FACILITY_USERMODE_COMMONLOG equ 26 +FACILITY_CMI equ 54 +FACILITY_CERT equ 11 +FACILITY_BACKGROUNDCOPY equ 32 +FACILITY_ACS equ 20 +FACILITY_AAF equ 18 +SEC_E_OK equ 00000000h +ERROR_EXE_MACHINE_TYPE_MISMATCH equ 216 +ERROR_EXE_CANNOT_MODIFY_SIGNED_BINARY equ 217 +ERROR_EXE_CANNOT_MODIFY_STRONG_SIGNED_BINARY equ 218 +ERROR_FILE_CHECKED_OUT equ 220 +ERROR_CHECKOUT_REQUIRED equ 221 +ERROR_BAD_FILE_TYPE equ 222 +ERROR_FILE_TOO_LARGE equ 223 +ERROR_FORMS_AUTH_REQUIRED equ 224 +ERROR_VIRUS_INFECTED equ 225 +ERROR_VIRUS_DELETED equ 226 +ERROR_PIPE_LOCAL equ 229 +ERROR_PARTIAL_COPY equ 299 +ERROR_OPLOCK_NOT_GRANTED equ 300 +ERROR_INVALID_OPLOCK_PROTOCOL equ 301 +ERROR_DISK_TOO_FRAGMENTED equ 302 +ERROR_DELETE_PENDING equ 303 +ERROR_SCOPE_NOT_FOUND equ 318 +ERROR_FAIL_NOACTION_REBOOT equ 350 +ERROR_FAIL_SHUTDOWN equ 351 +ERROR_FAIL_RESTART equ 352 +ERROR_MAX_SESSIONS_REACHED equ 353 +ERROR_THREAD_MODE_ALREADY_BACKGROUND equ 400 +ERROR_THREAD_MODE_NOT_BACKGROUND equ 401 +ERROR_PROCESS_MODE_ALREADY_BACKGROUND equ 402 +ERROR_PROCESS_MODE_NOT_BACKGROUND equ 403 +ERROR_USER_PROFILE_LOAD equ 500 +ERROR_VERIFIER_STOP equ 537 +ERROR_ABIOS_ERROR equ 538 +ERROR_WX86_WARNING equ 539 +ERROR_WX86_ERROR equ 540 +ERROR_TIMER_NOT_CANCELED equ 541 +ERROR_UNWIND equ 542 +ERROR_BAD_STACK equ 543 +ERROR_INVALID_UNWIND_TARGET equ 544 +ERROR_INVALID_PORT_ATTRIBUTES equ 545 +ERROR_PORT_MESSAGE_TOO_LONG equ 546 +ERROR_INVALID_QUOTA_LOWER equ 547 +ERROR_DEVICE_ALREADY_ATTACHED equ 548 +ERROR_INSTRUCTION_MISALIGNMENT equ 549 +ERROR_PROFILING_NOT_STARTED equ 550 +ERROR_PROFILING_NOT_STOPPED equ 551 +ERROR_COULD_NOT_INTERPRET equ 552 +ERROR_PROFILING_AT_LIMIT equ 553 +ERROR_CANT_WAIT equ 554 +ERROR_CANT_TERMINATE_SELF equ 555 +ERROR_UNEXPECTED_MM_CREATE_ERR equ 556 +ERROR_UNEXPECTED_MM_MAP_ERROR equ 557 +ERROR_UNEXPECTED_MM_EXTEND_ERR equ 558 +ERROR_BAD_FUNCTION_TABLE equ 559 +ERROR_NO_GUID_TRANSLATION equ 560 +ERROR_INVALID_LDT_SIZE equ 561 +ERROR_INVALID_LDT_OFFSET equ 563 +ERROR_INVALID_LDT_DESCRIPTOR equ 564 +ERROR_TOO_MANY_THREADS equ 565 +ERROR_THREAD_NOT_IN_PROCESS equ 566 +ERROR_PAGEFILE_QUOTA_EXCEEDED equ 567 +ERROR_LOGON_SERVER_CONFLICT equ 568 +ERROR_SYNCHRONIZATION_REQUIRED equ 569 +ERROR_NET_OPEN_FAILED equ 570 +ERROR_IO_PRIVILEGE_FAILED equ 571 +ERROR_CONTROL_C_EXIT equ 572 +ERROR_MISSING_SYSTEMFILE equ 573 +ERROR_UNHANDLED_EXCEPTION equ 574 +ERROR_APP_INIT_FAILURE equ 575 +ERROR_PAGEFILE_CREATE_FAILED equ 576 +ERROR_INVALID_IMAGE_HASH equ 577 +ERROR_NO_PAGEFILE equ 578 +ERROR_ILLEGAL_FLOAT_CONTEXT equ 579 +ERROR_NO_EVENT_PAIR equ 580 +ERROR_DOMAIN_CTRLR_CONFIG_ERROR equ 581 +ERROR_ILLEGAL_CHARACTER equ 582 +ERROR_UNDEFINED_CHARACTER equ 583 +ERROR_FLOPPY_VOLUME equ 584 +ERROR_BIOS_FAILED_TO_CONNECT_INTERRUPT equ 585 +ERROR_BACKUP_CONTROLLER equ 586 +ERROR_MUTANT_LIMIT_EXCEEDED equ 587 +ERROR_FS_DRIVER_REQUIRED equ 588 +ERROR_CANNOT_LOAD_REGISTRY_FILE equ 589 +ERROR_DEBUG_ATTACH_FAILED equ 590 +ERROR_SYSTEM_PROCESS_TERMINATED equ 591 +ERROR_DATA_NOT_ACCEPTED equ 592 +ERROR_VDM_HARD_ERROR equ 593 +ERROR_DRIVER_CANCEL_TIMEOUT equ 594 +ERROR_REPLY_MESSAGE_MISMATCH equ 595 +ERROR_LOST_WRITEBEHIND_DATA equ 596 +ERROR_CLIENT_SERVER_PARAMETERS_INVALID equ 597 +ERROR_NOT_TINY_STREAM equ 598 +ERROR_STACK_OVERFLOW_READ equ 599 +ERROR_CONVERT_TO_LARGE equ 600 +ERROR_FOUND_OUT_OF_SCOPE equ 601 +ERROR_ALLOCATE_BUCKET equ 602 +ERROR_MARSHALL_OVERFLOW equ 603 +ERROR_INVALID_VARIANT equ 604 +ERROR_BAD_COMPRESSION_BUFFER equ 605 +ERROR_AUDIT_FAILED equ 606 +ERROR_TIMER_RESOLUTION_NOT_SET equ 607 +ERROR_INSUFFICIENT_LOGON_INFO equ 608 +ERROR_BAD_DLL_ENTRYPOINT equ 609 +ERROR_BAD_SERVICE_ENTRYPOINT equ 610 +ERROR_IP_ADDRESS_CONFLICT1 equ 611 +ERROR_IP_ADDRESS_CONFLICT2 equ 612 +ERROR_REGISTRY_QUOTA_LIMIT equ 613 +ERROR_NO_CALLBACK_ACTIVE equ 614 +ERROR_PWD_TOO_SHORT equ 615 +ERROR_PWD_TOO_RECENT equ 616 +ERROR_PWD_HISTORY_CONFLICT equ 617 +ERROR_UNSUPPORTED_COMPRESSION equ 618 +ERROR_INVALID_HW_PROFILE equ 619 +ERROR_INVALID_PLUGPLAY_DEVICE_PATH equ 620 +ERROR_QUOTA_LIST_INCONSISTENT equ 621 +ERROR_EVALUATION_EXPIRATION equ 622 +ERROR_ILLEGAL_DLL_RELOCATION equ 623 +ERROR_DLL_INIT_FAILED_LOGOFF equ 624 +ERROR_VALIDATE_CONTINUE equ 625 +ERROR_NO_MORE_MATCHES equ 626 +ERROR_RANGE_LIST_CONFLICT equ 627 +ERROR_SERVER_SID_MISMATCH equ 628 +ERROR_CANT_ENABLE_DENY_ONLY equ 629 +ERROR_FLOAT_MULTIPLE_FAULTS equ 630 +ERROR_FLOAT_MULTIPLE_TRAPS equ 631 +ERROR_NOINTERFACE equ 632 +ERROR_DRIVER_FAILED_SLEEP equ 633 +ERROR_CORRUPT_SYSTEM_FILE equ 634 +ERROR_COMMITMENT_MINIMUM equ 635 +ERROR_PNP_RESTART_ENUMERATION equ 636 +ERROR_SYSTEM_IMAGE_BAD_SIGNATURE equ 637 +ERROR_PNP_REBOOT_REQUIRED equ 638 +ERROR_INSUFFICIENT_POWER equ 639 +ERROR_MULTIPLE_FAULT_VIOLATION equ 640 +ERROR_SYSTEM_SHUTDOWN equ 641 +ERROR_PORT_NOT_SET equ 642 +ERROR_DS_VERSION_CHECK_FAILURE equ 643 +ERROR_RANGE_NOT_FOUND equ 644 +ERROR_NOT_SAFE_MODE_DRIVER equ 646 +ERROR_FAILED_DRIVER_ENTRY equ 647 +ERROR_DEVICE_ENUMERATION_ERROR equ 648 +ERROR_MOUNT_POINT_NOT_RESOLVED equ 649 +ERROR_INVALID_DEVICE_OBJECT_PARAMETER equ 650 +ERROR_MCA_OCCURED equ 651 +ERROR_DRIVER_DATABASE_ERROR equ 652 +ERROR_SYSTEM_HIVE_TOO_LARGE equ 653 +ERROR_DRIVER_FAILED_PRIOR_UNLOAD equ 654 +ERROR_VOLSNAP_PREPARE_HIBERNATE equ 655 +ERROR_HIBERNATION_FAILURE equ 656 +ERROR_FILE_SYSTEM_LIMITATION equ 665 +ERROR_ASSERTION_FAILURE equ 668 +ERROR_ACPI_ERROR equ 669 +ERROR_WOW_ASSERTION equ 670 +ERROR_PNP_BAD_MPS_TABLE equ 671 +ERROR_PNP_TRANSLATION_FAILED equ 672 +ERROR_PNP_IRQ_TRANSLATION_FAILED equ 673 +ERROR_PNP_INVALID_ID equ 674 +ERROR_WAKE_SYSTEM_DEBUGGER equ 675 +ERROR_HANDLES_CLOSED equ 676 +ERROR_EXTRANEOUS_INFORMATION equ 677 +ERROR_RXACT_COMMIT_NECESSARY equ 678 +ERROR_MEDIA_CHECK equ 679 +ERROR_GUID_SUBSTITUTION_MADE equ 680 +ERROR_STOPPED_ON_SYMLINK equ 681 +ERROR_LONGJUMP equ 682 +ERROR_PLUGPLAY_QUERY_VETOED equ 683 +ERROR_UNWIND_CONSOLIDATE equ 684 +ERROR_REGISTRY_HIVE_RECOVERED equ 685 +ERROR_DLL_MIGHT_BE_INSECURE equ 686 +ERROR_DLL_MIGHT_BE_INCOMPATIBLE equ 687 +ERROR_DBG_EXCEPTION_NOT_HANDLED equ 688 +ERROR_DBG_REPLY_LATER equ 689 +ERROR_DBG_UNABLE_TO_PROVIDE_HANDLE equ 690 +ERROR_DBG_TERMINATE_THREAD equ 691 +ERROR_DBG_TERMINATE_PROCESS equ 692 +ERROR_DBG_CONTROL_C equ 693 +ERROR_DBG_PRINTEXCEPTION_C equ 694 +ERROR_DBG_RIPEXCEPTION equ 695 +ERROR_DBG_CONTROL_BREAK equ 696 +ERROR_DBG_COMMAND_EXCEPTION equ 697 +ERROR_OBJECT_NAME_EXISTS equ 698 +ERROR_THREAD_WAS_SUSPENDED equ 699 +ERROR_IMAGE_NOT_AT_BASE equ 700 +ERROR_RXACT_STATE_CREATED equ 701 +ERROR_SEGMENT_NOTIFICATION equ 702 +ERROR_BAD_CURRENT_DIRECTORY equ 703 +ERROR_FT_READ_RECOVERY_FROM_BACKUP equ 704 +ERROR_FT_WRITE_RECOVERY equ 705 +ERROR_IMAGE_MACHINE_TYPE_MISMATCH equ 706 +ERROR_RECEIVE_PARTIAL equ 707 +ERROR_RECEIVE_EXPEDITED equ 708 +ERROR_RECEIVE_PARTIAL_EXPEDITED equ 709 +ERROR_EVENT_DONE equ 710 +ERROR_EVENT_PENDING equ 711 +ERROR_CHECKING_FILE_SYSTEM equ 712 +ERROR_FATAL_APP_EXIT equ 713 +ERROR_PREDEFINED_HANDLE equ 714 +ERROR_WAS_UNLOCKED equ 715 +ERROR_SERVICE_NOTIFICATION equ 716 +ERROR_WAS_LOCKED equ 717 +ERROR_LOG_HARD_ERROR equ 718 +ERROR_ALREADY_WIN32 equ 719 +ERROR_IMAGE_MACHINE_TYPE_MISMATCH_EXE equ 720 +ERROR_NO_YIELD_PERFORMED equ 721 +ERROR_TIMER_RESUME_IGNORED equ 722 +ERROR_ARBITRATION_UNHANDLED equ 723 +ERROR_CARDBUS_NOT_SUPPORTED equ 724 +ERROR_MP_PROCESSOR_MISMATCH equ 725 +ERROR_HIBERNATED equ 726 +ERROR_RESUME_HIBERNATION equ 727 +ERROR_FIRMWARE_UPDATED equ 728 +ERROR_DRIVERS_LEAKING_LOCKED_PAGES equ 729 +ERROR_WAKE_SYSTEM equ 730 +ERROR_WAIT_1 equ 731 +ERROR_WAIT_2 equ 732 +ERROR_WAIT_3 equ 733 +ERROR_WAIT_63 equ 734 +ERROR_ABANDONED_WAIT_0 equ 735 +ERROR_ABANDONED_WAIT_63 equ 736 +ERROR_USER_APC equ 737 +ERROR_KERNEL_APC equ 738 +ERROR_ALERTED equ 739 +ERROR_ELEVATION_REQUIRED equ 740 +ERROR_REPARSE equ 741 +ERROR_OPLOCK_BREAK_IN_PROGRESS equ 742 +ERROR_VOLUME_MOUNTED equ 743 +ERROR_RXACT_COMMITTED equ 744 +ERROR_NOTIFY_CLEANUP equ 745 +ERROR_PRIMARY_TRANSPORT_CONNECT_FAILED equ 746 +ERROR_PAGE_FAULT_TRANSITION equ 747 +ERROR_PAGE_FAULT_DEMAND_ZERO equ 748 +ERROR_PAGE_FAULT_COPY_ON_WRITE equ 749 +ERROR_PAGE_FAULT_GUARD_PAGE equ 750 +ERROR_PAGE_FAULT_PAGING_FILE equ 751 +ERROR_CACHE_PAGE_LOCKED equ 752 +ERROR_CRASH_DUMP equ 753 +ERROR_BUFFER_ALL_ZEROS equ 754 +ERROR_REPARSE_OBJECT equ 755 +ERROR_RESOURCE_REQUIREMENTS_CHANGED equ 756 +ERROR_TRANSLATION_COMPLETE equ 757 +ERROR_NOTHING_TO_TERMINATE equ 758 +ERROR_PROCESS_NOT_IN_JOB equ 759 +ERROR_PROCESS_IN_JOB equ 760 +ERROR_VOLSNAP_HIBERNATE_READY equ 761 +ERROR_FSFILTER_OP_COMPLETED_SUCCESSFULLY equ 762 +ERROR_INTERRUPT_VECTOR_ALREADY_CONNECTED equ 763 +ERROR_INTERRUPT_STILL_CONNECTED equ 764 +ERROR_WAIT_FOR_OPLOCK equ 765 +ERROR_DBG_EXCEPTION_HANDLED equ 766 +ERROR_DBG_CONTINUE equ 767 +ERROR_CALLBACK_POP_STACK equ 768 +ERROR_COMPRESSION_DISABLED equ 769 +ERROR_CANTFETCHBACKWARDS equ 770 +ERROR_CANTSCROLLBACKWARDS equ 771 +ERROR_ROWSNOTRELEASED equ 772 +ERROR_BAD_ACCESSOR_FLAGS equ 773 +ERROR_ERRORS_ENCOUNTERED equ 774 +ERROR_NOT_CAPABLE equ 775 +ERROR_REQUEST_OUT_OF_SEQUENCE equ 776 +ERROR_VERSION_PARSE_ERROR equ 777 +ERROR_BADSTARTPOSITION equ 778 +ERROR_MEMORY_HARDWARE equ 779 +ERROR_DISK_REPAIR_DISABLED equ 780 +ERROR_INSUFFICIENT_RESOURCE_FOR_SPECIFIED_SHARED_SECTION_SIZE equ 781 +ERROR_SYSTEM_POWERSTATE_TRANSITION equ 782 +ERROR_SYSTEM_POWERSTATE_COMPLEX_TRANSITION equ 783 +ERROR_MCA_EXCEPTION equ 784 +ERROR_ACCESS_AUDIT_BY_POLICY equ 785 +ERROR_ACCESS_DISABLED_NO_SAFER_UI_BY_POLICY equ 786 +ERROR_ABANDON_HIBERFILE equ 787 +ERROR_LOST_WRITEBEHIND_DATA_NETWORK_DISCONNECTED equ 788 +ERROR_LOST_WRITEBEHIND_DATA_NETWORK_SERVER_ERROR equ 789 +ERROR_LOST_WRITEBEHIND_DATA_LOCAL_DISK_ERROR equ 790 +ERROR_BAD_MCFG_TABLE equ 791 +ERROR_DIFFERENT_SERVICE_ACCOUNT equ 1079 +ERROR_CANNOT_DETECT_DRIVER_FAILURE equ 1080 +ERROR_CANNOT_DETECT_PROCESS_ABORT equ 1081 +ERROR_NO_RECOVERY_PROGRAM equ 1082 +ERROR_SERVICE_NOT_IN_EXE equ 1083 +ERROR_NOT_SAFEBOOT_SERVICE equ 1084 +ERROR_SET_POWER_STATE_VETOED equ 1140 +ERROR_SET_POWER_STATE_FAILED equ 1141 +ERROR_TOO_MANY_LINKS equ 1142 +ERROR_APP_WRONG_OS equ 1151 +ERROR_RMODE_APP equ 1153 +ERROR_INVALID_DLL equ 1154 +ERROR_NO_ASSOCIATION equ 1155 +ERROR_DDE_FAIL equ 1156 +ERROR_DLL_NOT_FOUND equ 1157 +ERROR_NO_MORE_USER_HANDLES equ 1158 +ERROR_MESSAGE_SYNC_ONLY equ 1159 +ERROR_SOURCE_ELEMENT_EMPTY equ 1160 +ERROR_DESTINATION_ELEMENT_FULL equ 1161 +ERROR_ILLEGAL_ELEMENT_ADDRESS equ 1162 +ERROR_MAGAZINE_NOT_PRESENT equ 1163 +ERROR_DEVICE_REINITIALIZATION_NEEDED equ 1164 +ERROR_DEVICE_REQUIRES_CLEANING equ 1165 +ERROR_DEVICE_DOOR_OPEN equ 1166 +ERROR_DEVICE_NOT_CONNECTED equ 1167 +ERROR_NOT_FOUND equ 1168 +ERROR_NO_MATCH equ 1169 +ERROR_SET_NOT_FOUND equ 1170 +ERROR_POINT_NOT_FOUND equ 1171 +ERROR_NO_TRACKING_SERVICE equ 1172 +ERROR_NO_VOLUME_ID equ 1173 +ERROR_UNABLE_TO_REMOVE_REPLACED equ 1175 +ERROR_UNABLE_TO_MOVE_REPLACEMENT equ 1176 +ERROR_UNABLE_TO_MOVE_REPLACEMENT_2 equ 1177 +ERROR_JOURNAL_DELETE_IN_PROGRESS equ 1178 +ERROR_JOURNAL_NOT_ACTIVE equ 1179 +ERROR_POTENTIAL_FILE_FOUND equ 1180 +ERROR_JOURNAL_ENTRY_DELETED equ 1181 +ERROR_SHUTDOWN_IS_SCHEDULED equ 1190 +ERROR_SHUTDOWN_USERS_LOGGED_ON equ 1191 +ERROR_CANCELLED equ 1223 +ERROR_USER_MAPPED_FILE equ 1224 +ERROR_CONNECTION_REFUSED equ 1225 +ERROR_GRACEFUL_DISCONNECT equ 1226 +ERROR_ADDRESS_ALREADY_ASSOCIATED equ 1227 +ERROR_ADDRESS_NOT_ASSOCIATED equ 1228 +ERROR_CONNECTION_INVALID equ 1229 +ERROR_CONNECTION_ACTIVE equ 1230 +ERROR_NETWORK_UNREACHABLE equ 1231 +ERROR_HOST_UNREACHABLE equ 1232 +ERROR_PROTOCOL_UNREACHABLE equ 1233 +ERROR_PORT_UNREACHABLE equ 1234 +ERROR_REQUEST_ABORTED equ 1235 +ERROR_CONNECTION_ABORTED equ 1236 +ERROR_RETRY equ 1237 +ERROR_CONNECTION_COUNT_LIMIT equ 1238 +ERROR_LOGIN_TIME_RESTRICTION equ 1239 +ERROR_LOGIN_WKSTA_RESTRICTION equ 1240 +ERROR_INCORRECT_ADDRESS equ 1241 +ERROR_ALREADY_REGISTERED equ 1242 +ERROR_SERVICE_NOT_FOUND equ 1243 +ERROR_NOT_AUTHENTICATED equ 1244 +ERROR_NOT_LOGGED_ON equ 1245 +ERROR_CONTINUE equ 1246 +ERROR_ALREADY_INITIALIZED equ 1247 +ERROR_NO_MORE_DEVICES equ 1248 +ERROR_NO_SUCH_SITE equ 1249 +ERROR_DOMAIN_CONTROLLER_EXISTS equ 1250 +ERROR_ONLY_IF_CONNECTED equ 1251 +ERROR_OVERRIDE_NOCHANGES equ 1252 +ERROR_BAD_USER_PROFILE equ 1253 +ERROR_NOT_SUPPORTED_ON_SBS equ 1254 +ERROR_SERVER_SHUTDOWN_IN_PROGRESS equ 1255 +ERROR_HOST_DOWN equ 1256 +ERROR_NON_ACCOUNT_SID equ 1257 +ERROR_NON_DOMAIN_SID equ 1258 +ERROR_APPHELP_BLOCK equ 1259 +ERROR_ACCESS_DISABLED_BY_POLICY equ 1260 +ERROR_REG_NAT_CONSUMPTION equ 1261 +ERROR_CSCSHARE_OFFLINE equ 1262 +ERROR_PKINIT_FAILURE equ 1263 +ERROR_SMARTCARD_SUBSYSTEM_FAILURE equ 1264 +ERROR_DOWNGRADE_DETECTED equ 1265 +ERROR_MACHINE_LOCKED equ 1271 +ERROR_CALLBACK_SUPPLIED_INVALID_DATA equ 1273 +ERROR_SYNC_FOREGROUND_REFRESH_REQUIRED equ 1274 +ERROR_DRIVER_BLOCKED equ 1275 +ERROR_INVALID_IMPORT_OF_NON_DLL equ 1276 +ERROR_ACCESS_DISABLED_WEBBLADE equ 1277 +ERROR_ACCESS_DISABLED_WEBBLADE_TAMPER equ 1278 +ERROR_RECOVERY_FAILURE equ 1279 +ERROR_ALREADY_FIBER equ 1280 +ERROR_ALREADY_THREAD equ 1281 +ERROR_STACK_BUFFER_OVERRUN equ 1282 +ERROR_PARAMETER_QUOTA_EXCEEDED equ 1283 +ERROR_DEBUGGER_INACTIVE equ 1284 +ERROR_DELAY_LOAD_FAILED equ 1285 +ERROR_VDM_DISALLOWED equ 1286 +ERROR_UNIDENTIFIED_ERROR equ 1287 +ERROR_INVALID_CRUNTIME_PARAMETER equ 1288 +ERROR_BEYOND_VDL equ 1289 +ERROR_INCOMPATIBLE_SERVICE_SID_TYPE equ 1290 +ERROR_DRIVER_PROCESS_TERMINATED equ 1291 +ERROR_IMPLEMENTATION_LIMIT equ 1292 +ERROR_PROCESS_IS_PROTECTED equ 1293 +ERROR_SERVICE_NOTIFY_CLIENT_LAGGING equ 1294 +ERROR_DISK_QUOTA_EXCEEDED equ 1295 +ERROR_CONTENT_BLOCKED equ 1296 +ERROR_INCOMPATIBLE_SERVICE_PRIVILEGE equ 1297 +ERROR_INVALID_LABEL equ 1299 +ERROR_LICENSE_QUOTA_EXCEEDED equ 1395 +ERROR_WRONG_TARGET_NAME equ 1396 +ERROR_MUTUAL_AUTH_FAILED equ 1397 +ERROR_TIME_SKEW equ 1398 +ERROR_CURRENT_DOMAIN_NOT_ALLOWED equ 1399 +ERROR_GLOBAL_ONLY_HOOK equ 1429 +ERROR_NO_SYSTEM_RESOURCES equ 1450 +ERROR_NONPAGED_SYSTEM_RESOURCES equ 1451 +ERROR_PAGED_SYSTEM_RESOURCES equ 1452 +ERROR_WORKING_SET_QUOTA equ 1453 +ERROR_PAGEFILE_QUOTA equ 1454 +ERROR_COMMITMENT_LIMIT equ 1455 +ERROR_MENU_ITEM_NOT_FOUND equ 1456 +ERROR_INVALID_KEYBOARD_HANDLE equ 1457 +ERROR_HOOK_TYPE_NOT_ALLOWED equ 1458 +ERROR_REQUIRES_INTERACTIVE_WINDOWSTATION equ 1459 +ERROR_TIMEOUT equ 1460 +ERROR_INVALID_MONITOR_HANDLE equ 1461 +ERROR_INCORRECT_SIZE equ 1462 +ERROR_SYMLINK_CLASS_DISABLED equ 1463 +ERROR_SYMLINK_NOT_SUPPORTED equ 1464 +ERROR_XML_PARSE_ERROR equ 1465 +ERROR_XMLDSIG_ERROR equ 1466 +ERROR_RESTART_APPLICATION equ 1467 +ERROR_WRONG_COMPARTMENT equ 1468 +ERROR_AUTHIP_FAILURE equ 1469 +ERROR_INVALID_TASK_NAME equ 1550 +ERROR_INVALID_TASK_INDEX equ 1551 +ERROR_THREAD_ALREADY_IN_TASK equ 1552 +ERROR_INSTALL_SERVICE_FAILURE equ 1601 +ERROR_INSTALL_USEREXIT equ 1602 +ERROR_INSTALL_FAILURE equ 1603 +ERROR_INSTALL_SUSPEND equ 1604 +ERROR_UNKNOWN_PRODUCT equ 1605 +ERROR_UNKNOWN_FEATURE equ 1606 +ERROR_UNKNOWN_COMPONENT equ 1607 +ERROR_UNKNOWN_PROPERTY equ 1608 +ERROR_INVALID_HANDLE_STATE equ 1609 +ERROR_BAD_CONFIGURATION equ 1610 +ERROR_INDEX_ABSENT equ 1611 +ERROR_INSTALL_SOURCE_ABSENT equ 1612 +ERROR_INSTALL_PACKAGE_VERSION equ 1613 +ERROR_PRODUCT_UNINSTALLED equ 1614 +ERROR_BAD_QUERY_SYNTAX equ 1615 +ERROR_INVALID_FIELD equ 1616 +ERROR_DEVICE_REMOVED equ 1617 +ERROR_INSTALL_ALREADY_RUNNING equ 1618 +ERROR_INSTALL_PACKAGE_OPEN_FAILED equ 1619 +ERROR_INSTALL_PACKAGE_INVALID equ 1620 +ERROR_INSTALL_UI_FAILURE equ 1621 +ERROR_INSTALL_LOG_FAILURE equ 1622 +ERROR_INSTALL_LANGUAGE_UNSUPPORTED equ 1623 +ERROR_INSTALL_TRANSFORM_FAILURE equ 1624 +ERROR_INSTALL_PACKAGE_REJECTED equ 1625 +ERROR_FUNCTION_NOT_CALLED equ 1626 +ERROR_FUNCTION_FAILED equ 1627 +ERROR_INVALID_TABLE equ 1628 +ERROR_DATATYPE_MISMATCH equ 1629 +ERROR_UNSUPPORTED_TYPE equ 1630 +ERROR_CREATE_FAILED equ 1631 +ERROR_INSTALL_TEMP_UNWRITABLE equ 1632 +ERROR_INSTALL_PLATFORM_UNSUPPORTED equ 1633 +ERROR_INSTALL_NOTUSED equ 1634 +ERROR_PATCH_PACKAGE_OPEN_FAILED equ 1635 +ERROR_PATCH_PACKAGE_INVALID equ 1636 +ERROR_PATCH_PACKAGE_UNSUPPORTED equ 1637 +ERROR_PRODUCT_VERSION equ 1638 +ERROR_INVALID_COMMAND_LINE equ 1639 +ERROR_INSTALL_REMOTE_DISALLOWED equ 1640 +ERROR_SUCCESS_REBOOT_INITIATED equ 1641 +ERROR_PATCH_TARGET_NOT_FOUND equ 1642 +ERROR_PATCH_PACKAGE_REJECTED equ 1643 +ERROR_INSTALL_TRANSFORM_REJECTED equ 1644 +ERROR_INSTALL_REMOTE_PROHIBITED equ 1645 +ERROR_PATCH_REMOVAL_UNSUPPORTED equ 1646 +ERROR_UNKNOWN_PATCH equ 1647 +ERROR_PATCH_NO_SEQUENCE equ 1648 +ERROR_PATCH_REMOVAL_DISALLOWED equ 1649 +ERROR_INVALID_PATCH_XML equ 1650 +ERROR_PATCH_MANAGED_ADVERTISED_PRODUCT equ 1651 +ERROR_INSTALL_SERVICE_SAFEBOOT equ 1652 +RPC_S_PROXY_ACCESS_DENIED equ 1729 +RPC_S_NO_INTERFACES equ 1817 +RPC_S_CALL_CANCELLED equ 1818 +RPC_S_BINDING_INCOMPLETE equ 1819 +RPC_S_COMM_FAILURE equ 1820 +RPC_S_UNSUPPORTED_AUTHN_LEVEL equ 1821 +RPC_S_NO_PRINC_NAME equ 1822 +RPC_S_NOT_RPC_ERROR equ 1823 +RPC_S_UUID_LOCAL_ONLY equ 1824 +RPC_S_SEC_PKG_ERROR equ 1825 +RPC_S_NOT_CANCELLED equ 1826 +RPC_X_INVALID_ES_ACTION equ 1827 +RPC_X_WRONG_ES_VERSION equ 1828 +RPC_X_WRONG_STUB_VERSION equ 1829 +RPC_X_INVALID_PIPE_OBJECT equ 1830 +RPC_X_WRONG_PIPE_ORDER equ 1831 +RPC_X_WRONG_PIPE_VERSION equ 1832 +ERROR_PASSWORD_MUST_CHANGE equ 1907 +ERROR_DOMAIN_CONTROLLER_NOT_FOUND equ 1908 +ERROR_ACCOUNT_LOCKED_OUT equ 1909 +OR_INVALID_OXID equ 1910 +OR_INVALID_OID equ 1911 +OR_INVALID_SET equ 1912 +RPC_S_SEND_INCOMPLETE equ 1913 +RPC_S_INVALID_ASYNC_HANDLE equ 1914 +RPC_S_INVALID_ASYNC_CALL equ 1915 +RPC_X_PIPE_CLOSED equ 1916 +RPC_X_PIPE_DISCIPLINE_ERROR equ 1917 +RPC_X_PIPE_EMPTY equ 1918 +ERROR_NO_SITENAME equ 1919 +ERROR_CANT_ACCESS_FILE equ 1920 +ERROR_CANT_RESOLVE_FILENAME equ 1921 +RPC_S_ENTRY_TYPE_MISMATCH equ 1922 +RPC_S_NOT_ALL_OBJS_EXPORTED equ 1923 +RPC_S_INTERFACE_NOT_EXPORTED equ 1924 +RPC_S_PROFILE_NOT_ADDED equ 1925 +RPC_S_PRF_ELT_NOT_ADDED equ 1926 +RPC_S_PRF_ELT_NOT_REMOVED equ 1927 +RPC_S_GRP_ELT_NOT_ADDED equ 1928 +RPC_S_GRP_ELT_NOT_REMOVED equ 1929 +ERROR_KM_DRIVER_BLOCKED equ 1930 +ERROR_CONTEXT_EXPIRED equ 1931 +ERROR_PER_USER_TRUST_QUOTA_EXCEEDED equ 1932 +ERROR_ALL_USER_TRUST_QUOTA_EXCEEDED equ 1933 +ERROR_USER_DELETE_TRUST_QUOTA_EXCEEDED equ 1934 +ERROR_AUTHENTICATION_FIREWALL_FAILED equ 1935 +ERROR_REMOTE_PRINT_CONNECTIONS_BLOCKED equ 1936 +ERROR_NTLM_BLOCKED equ 1937 +ERROR_INVALID_CMM equ 2010 +ERROR_INVALID_PROFILE equ 2011 +ERROR_TAG_NOT_FOUND equ 2012 +ERROR_TAG_NOT_PRESENT equ 2013 +ERROR_DUPLICATE_TAG equ 2014 +ERROR_PROFILE_NOT_ASSOCIATED_WITH_DEVICE equ 2015 +ERROR_PROFILE_NOT_FOUND equ 2016 +ERROR_INVALID_COLORSPACE equ 2017 +ERROR_ICM_NOT_ENABLED equ 2018 +ERROR_DELETING_ICM_XFORM equ 2019 +ERROR_INVALID_TRANSFORM equ 2020 +ERROR_COLORSPACE_MISMATCH equ 2021 +ERROR_INVALID_COLORINDEX equ 2022 +ERROR_PROFILE_DOES_NOT_MATCH_DEVICE equ 2023 +ERROR_CONNECTED_OTHER_PASSWORD equ 2108 +ERROR_CONNECTED_OTHER_PASSWORD_DEFAULT equ 2109 +ERROR_ACTIVE_CONNECTIONS equ 2402 +ERROR_INVALID_PRINT_MONITOR equ 3007 +ERROR_PRINT_MONITOR_IN_USE equ 3008 +ERROR_PRINTER_HAS_JOBS_QUEUED equ 3009 +ERROR_SUCCESS_REBOOT_REQUIRED equ 3010 +ERROR_SUCCESS_RESTART_REQUIRED equ 3011 +ERROR_PRINTER_NOT_FOUND equ 3012 +ERROR_PRINTER_DRIVER_WARNED equ 3013 +ERROR_PRINTER_DRIVER_BLOCKED equ 3014 +ERROR_PRINTER_DRIVER_PACKAGE_IN_USE equ 3015 +ERROR_CORE_DRIVER_PACKAGE_NOT_FOUND equ 3016 +ERROR_FAIL_REBOOT_REQUIRED equ 3017 +ERROR_FAIL_REBOOT_INITIATED equ 3018 +ERROR_PRINTER_DRIVER_DOWNLOAD_NEEDED equ 3019 +ERROR_PRINT_JOB_RESTART_REQUIRED equ 3020 +ERROR_IO_REISSUE_AS_CACHED equ 3950 +ERROR_DHCP_ADDRESS_CONFLICT equ 4100 +ERROR_WMI_GUID_NOT_FOUND equ 4200 +ERROR_WMI_INSTANCE_NOT_FOUND equ 4201 +ERROR_WMI_ITEMID_NOT_FOUND equ 4202 +ERROR_WMI_TRY_AGAIN equ 4203 +ERROR_WMI_DP_NOT_FOUND equ 4204 +ERROR_WMI_UNRESOLVED_INSTANCE_REF equ 4205 +ERROR_WMI_ALREADY_ENABLED equ 4206 +ERROR_WMI_GUID_DISCONNECTED equ 4207 +ERROR_WMI_SERVER_UNAVAILABLE equ 4208 +ERROR_WMI_DP_FAILED equ 4209 +ERROR_WMI_INVALID_MOF equ 4210 +ERROR_WMI_INVALID_REGINFO equ 4211 +ERROR_WMI_ALREADY_DISABLED equ 4212 +ERROR_WMI_READ_ONLY equ 4213 +ERROR_WMI_SET_FAILURE equ 4214 +ERROR_INVALID_MEDIA equ 4300 +ERROR_INVALID_LIBRARY equ 4301 +ERROR_INVALID_MEDIA_POOL equ 4302 +ERROR_DRIVE_MEDIA_MISMATCH equ 4303 +ERROR_MEDIA_OFFLINE equ 4304 +ERROR_LIBRARY_OFFLINE equ 4305 +ERROR_EMPTY equ 4306 +ERROR_NOT_EMPTY equ 4307 +ERROR_MEDIA_UNAVAILABLE equ 4308 +ERROR_RESOURCE_DISABLED equ 4309 +ERROR_INVALID_CLEANER equ 4310 +ERROR_UNABLE_TO_CLEAN equ 4311 +ERROR_OBJECT_NOT_FOUND equ 4312 +ERROR_DATABASE_FAILURE equ 4313 +ERROR_DATABASE_FULL equ 4314 +ERROR_MEDIA_INCOMPATIBLE equ 4315 +ERROR_RESOURCE_NOT_PRESENT equ 4316 +ERROR_INVALID_OPERATION equ 4317 +ERROR_MEDIA_NOT_AVAILABLE equ 4318 +ERROR_DEVICE_NOT_AVAILABLE equ 4319 +ERROR_REQUEST_REFUSED equ 4320 +ERROR_INVALID_DRIVE_OBJECT equ 4321 +ERROR_LIBRARY_FULL equ 4322 +ERROR_MEDIUM_NOT_ACCESSIBLE equ 4323 +ERROR_UNABLE_TO_LOAD_MEDIUM equ 4324 +ERROR_UNABLE_TO_INVENTORY_DRIVE equ 4325 +ERROR_UNABLE_TO_INVENTORY_SLOT equ 4326 +ERROR_UNABLE_TO_INVENTORY_TRANSPORT equ 4327 +ERROR_TRANSPORT_FULL equ 4328 +ERROR_CONTROLLING_IEPORT equ 4329 +ERROR_UNABLE_TO_EJECT_MOUNTED_MEDIA equ 4330 +ERROR_CLEANER_SLOT_SET equ 4331 +ERROR_CLEANER_SLOT_NOT_SET equ 4332 +ERROR_CLEANER_CARTRIDGE_SPENT equ 4333 +ERROR_UNEXPECTED_OMID equ 4334 +ERROR_CANT_DELETE_LAST_ITEM equ 4335 +ERROR_MESSAGE_EXCEEDS_MAX_SIZE equ 4336 +ERROR_VOLUME_CONTAINS_SYS_FILES equ 4337 +ERROR_INDIGENOUS_TYPE equ 4338 +ERROR_NO_SUPPORTING_DRIVES equ 4339 +ERROR_CLEANER_CARTRIDGE_INSTALLED equ 4340 +ERROR_IEPORT_FULL equ 4341 +ERROR_FILE_OFFLINE equ 4350 +ERROR_REMOTE_STORAGE_NOT_ACTIVE equ 4351 +ERROR_REMOTE_STORAGE_MEDIA_ERROR equ 4352 +ERROR_NOT_A_REPARSE_POINT equ 4390 +ERROR_REPARSE_ATTRIBUTE_CONFLICT equ 4391 +ERROR_INVALID_REPARSE_DATA equ 4392 +ERROR_REPARSE_TAG_INVALID equ 4393 +ERROR_REPARSE_TAG_MISMATCH equ 4394 +ERROR_VOLUME_NOT_SIS_ENABLED equ 4500 +ERROR_DEPENDENT_RESOURCE_EXISTS equ 5001 +ERROR_DEPENDENCY_NOT_FOUND equ 5002 +ERROR_DEPENDENCY_ALREADY_EXISTS equ 5003 +ERROR_RESOURCE_NOT_ONLINE equ 5004 +ERROR_HOST_NODE_NOT_AVAILABLE equ 5005 +ERROR_RESOURCE_NOT_AVAILABLE equ 5006 +ERROR_RESOURCE_NOT_FOUND equ 5007 +ERROR_SHUTDOWN_CLUSTER equ 5008 +ERROR_CANT_EVICT_ACTIVE_NODE equ 5009 +ERROR_OBJECT_ALREADY_EXISTS equ 5010 +ERROR_OBJECT_IN_LIST equ 5011 +ERROR_GROUP_NOT_AVAILABLE equ 5012 +ERROR_GROUP_NOT_FOUND equ 5013 +ERROR_GROUP_NOT_ONLINE equ 5014 +ERROR_HOST_NODE_NOT_RESOURCE_OWNER equ 5015 +ERROR_HOST_NODE_NOT_GROUP_OWNER equ 5016 +ERROR_RESMON_CREATE_FAILED equ 5017 +ERROR_RESMON_ONLINE_FAILED equ 5018 +ERROR_RESOURCE_ONLINE equ 5019 +ERROR_QUORUM_RESOURCE equ 5020 +ERROR_NOT_QUORUM_CAPABLE equ 5021 +ERROR_CLUSTER_SHUTTING_DOWN equ 5022 +ERROR_INVALID_STATE equ 5023 +ERROR_RESOURCE_PROPERTIES_STORED equ 5024 +ERROR_NOT_QUORUM_CLASS equ 5025 +ERROR_CORE_RESOURCE equ 5026 +ERROR_QUORUM_RESOURCE_ONLINE_FAILED equ 5027 +ERROR_QUORUMLOG_OPEN_FAILED equ 5028 +ERROR_CLUSTERLOG_CORRUPT equ 5029 +ERROR_CLUSTERLOG_RECORD_EXCEEDS_MAXSIZE equ 5030 +ERROR_CLUSTERLOG_EXCEEDS_MAXSIZE equ 5031 +ERROR_CLUSTERLOG_CHKPOINT_NOT_FOUND equ 5032 +ERROR_CLUSTERLOG_NOT_ENOUGH_SPACE equ 5033 +ERROR_QUORUM_OWNER_ALIVE equ 5034 +ERROR_NETWORK_NOT_AVAILABLE equ 5035 +ERROR_NODE_NOT_AVAILABLE equ 5036 +ERROR_ALL_NODES_NOT_AVAILABLE equ 5037 +ERROR_RESOURCE_FAILED equ 5038 +ERROR_CLUSTER_INVALID_NODE equ 5039 +ERROR_CLUSTER_NODE_EXISTS equ 5040 +ERROR_CLUSTER_JOIN_IN_PROGRESS equ 5041 +ERROR_CLUSTER_NODE_NOT_FOUND equ 5042 +ERROR_CLUSTER_LOCAL_NODE_NOT_FOUND equ 5043 +ERROR_CLUSTER_NETWORK_EXISTS equ 5044 +ERROR_CLUSTER_NETWORK_NOT_FOUND equ 5045 +ERROR_CLUSTER_NETINTERFACE_EXISTS equ 5046 +ERROR_CLUSTER_NETINTERFACE_NOT_FOUND equ 5047 +ERROR_CLUSTER_INVALID_REQUEST equ 5048 +ERROR_CLUSTER_INVALID_NETWORK_PROVIDER equ 5049 +ERROR_CLUSTER_NODE_DOWN equ 5050 +ERROR_CLUSTER_NODE_UNREACHABLE equ 5051 +ERROR_CLUSTER_NODE_NOT_MEMBER equ 5052 +ERROR_CLUSTER_JOIN_NOT_IN_PROGRESS equ 5053 +ERROR_CLUSTER_INVALID_NETWORK equ 5054 +ERROR_CLUSTER_NODE_UP equ 5056 +ERROR_CLUSTER_IPADDR_IN_USE equ 5057 +ERROR_CLUSTER_NODE_NOT_PAUSED equ 5058 +ERROR_CLUSTER_NO_SECURITY_CONTEXT equ 5059 +ERROR_CLUSTER_NETWORK_NOT_INTERNAL equ 5060 +ERROR_CLUSTER_NODE_ALREADY_UP equ 5061 +ERROR_CLUSTER_NODE_ALREADY_DOWN equ 5062 +ERROR_CLUSTER_NETWORK_ALREADY_ONLINE equ 5063 +ERROR_CLUSTER_NETWORK_ALREADY_OFFLINE equ 5064 +ERROR_CLUSTER_NODE_ALREADY_MEMBER equ 5065 +ERROR_CLUSTER_LAST_INTERNAL_NETWORK equ 5066 +ERROR_CLUSTER_NETWORK_HAS_DEPENDENTS equ 5067 +ERROR_INVALID_OPERATION_ON_QUORUM equ 5068 +ERROR_DEPENDENCY_NOT_ALLOWED equ 5069 +ERROR_CLUSTER_NODE_PAUSED equ 5070 +ERROR_NODE_CANT_HOST_RESOURCE equ 5071 +ERROR_CLUSTER_NODE_NOT_READY equ 5072 +ERROR_CLUSTER_NODE_SHUTTING_DOWN equ 5073 +ERROR_CLUSTER_JOIN_ABORTED equ 5074 +ERROR_CLUSTER_INCOMPATIBLE_VERSIONS equ 5075 +ERROR_CLUSTER_MAXNUM_OF_RESOURCES_EXCEEDED equ 5076 +ERROR_CLUSTER_SYSTEM_CONFIG_CHANGED equ 5077 +ERROR_CLUSTER_RESOURCE_TYPE_NOT_FOUND equ 5078 +ERROR_CLUSTER_RESTYPE_NOT_SUPPORTED equ 5079 +ERROR_CLUSTER_RESNAME_NOT_FOUND equ 5080 +ERROR_CLUSTER_NO_RPC_PACKAGES_REGISTERED equ 5081 +ERROR_CLUSTER_OWNER_NOT_IN_PREFLIST equ 5082 +ERROR_CLUSTER_DATABASE_SEQMISMATCH equ 5083 +ERROR_RESMON_INVALID_STATE equ 5084 +ERROR_CLUSTER_GUM_NOT_LOCKER equ 5085 +ERROR_QUORUM_DISK_NOT_FOUND equ 5086 +ERROR_DATABASE_BACKUP_CORRUPT equ 5087 +ERROR_CLUSTER_NODE_ALREADY_HAS_DFS_ROOT equ 5088 +ERROR_RESOURCE_PROPERTY_UNCHANGEABLE equ 5089 +ERROR_CLUSTER_MEMBERSHIP_INVALID_STATE equ 5890 +ERROR_CLUSTER_QUORUMLOG_NOT_FOUND equ 5891 +ERROR_CLUSTER_MEMBERSHIP_HALT equ 5892 +ERROR_CLUSTER_INSTANCE_ID_MISMATCH equ 5893 +ERROR_CLUSTER_NETWORK_NOT_FOUND_FOR_IP equ 5894 +ERROR_CLUSTER_PROPERTY_DATA_TYPE_MISMATCH equ 5895 +ERROR_CLUSTER_EVICT_WITHOUT_CLEANUP equ 5896 +ERROR_CLUSTER_PARAMETER_MISMATCH equ 5897 +ERROR_NODE_CANNOT_BE_CLUSTERED equ 5898 +ERROR_CLUSTER_WRONG_OS_VERSION equ 5899 +ERROR_CLUSTER_CANT_CREATE_DUP_CLUSTER_NAME equ 5900 +ERROR_CLUSCFG_ALREADY_COMMITTED equ 5901 +ERROR_CLUSCFG_ROLLBACK_FAILED equ 5902 +ERROR_CLUSCFG_SYSTEM_DISK_DRIVE_LETTER_CONFLICT equ 5903 +ERROR_CLUSTER_OLD_VERSION equ 5904 +ERROR_CLUSTER_MISMATCHED_COMPUTER_ACCT_NAME equ 5905 +ERROR_CLUSTER_NO_NET_ADAPTERS equ 5906 +ERROR_CLUSTER_POISONED equ 5907 +ERROR_CLUSTER_GROUP_MOVING equ 5908 +ERROR_CLUSTER_RESOURCE_TYPE_BUSY equ 5909 +ERROR_RESOURCE_CALL_TIMED_OUT equ 5910 +ERROR_INVALID_CLUSTER_IPV6_ADDRESS equ 5911 +ERROR_CLUSTER_INTERNAL_INVALID_FUNCTION equ 5912 +ERROR_CLUSTER_PARAMETER_OUT_OF_BOUNDS equ 5913 +ERROR_CLUSTER_PARTIAL_SEND equ 5914 +ERROR_CLUSTER_REGISTRY_INVALID_FUNCTION equ 5915 +ERROR_CLUSTER_INVALID_STRING_TERMINATION equ 5916 +ERROR_CLUSTER_INVALID_STRING_FORMAT equ 5917 +ERROR_CLUSTER_DATABASE_TRANSACTION_IN_PROGRESS equ 5918 +ERROR_CLUSTER_DATABASE_TRANSACTION_NOT_IN_PROGRESS equ 5919 +ERROR_CLUSTER_NULL_DATA equ 5920 +ERROR_CLUSTER_PARTIAL_READ equ 5921 +ERROR_CLUSTER_PARTIAL_WRITE equ 5922 +ERROR_CLUSTER_CANT_DESERIALIZE_DATA equ 5923 +ERROR_DEPENDENT_RESOURCE_PROPERTY_CONFLICT equ 5924 +ERROR_CLUSTER_NO_QUORUM equ 5925 +ERROR_CLUSTER_INVALID_IPV6_NETWORK equ 5926 +ERROR_CLUSTER_INVALID_IPV6_TUNNEL_NETWORK equ 5927 +ERROR_QUORUM_NOT_ALLOWED_IN_THIS_GROUP equ 5928 +ERROR_DEPENDENCY_TREE_TOO_COMPLEX equ 5929 +ERROR_EXCEPTION_IN_RESOURCE_CALL equ 5930 +ERROR_CLUSTER_RHS_FAILED_INITIALIZATION equ 5931 +ERROR_CLUSTER_NOT_INSTALLED equ 5932 +ERROR_CLUSTER_RESOURCES_MUST_BE_ONLINE_ON_THE_SAME_NODE equ 5933 +ERROR_ENCRYPTION_FAILED equ 6000 +ERROR_DECRYPTION_FAILED equ 6001 +ERROR_FILE_ENCRYPTED equ 6002 +ERROR_NO_RECOVERY_POLICY equ 6003 +ERROR_NO_EFS equ 6004 +ERROR_WRONG_EFS equ 6005 +ERROR_NO_USER_KEYS equ 6006 +ERROR_FILE_NOT_ENCRYPTED equ 6007 +ERROR_NOT_EXPORT_FORMAT equ 6008 +ERROR_FILE_READ_ONLY equ 6009 +ERROR_DIR_EFS_DISALLOWED equ 6010 +ERROR_EFS_SERVER_NOT_TRUSTED equ 6011 +ERROR_BAD_RECOVERY_POLICY equ 6012 +ERROR_EFS_ALG_BLOB_TOO_BIG equ 6013 +ERROR_VOLUME_NOT_SUPPORT_EFS equ 6014 +ERROR_EFS_DISABLED equ 6015 +ERROR_EFS_VERSION_NOT_SUPPORT equ 6016 +ERROR_CS_ENCRYPTION_INVALID_SERVER_RESPONSE equ 6017 +ERROR_CS_ENCRYPTION_UNSUPPORTED_SERVER equ 6018 +ERROR_CS_ENCRYPTION_EXISTING_ENCRYPTED_FILE equ 6019 +ERROR_CS_ENCRYPTION_NEW_ENCRYPTED_FILE equ 6020 +ERROR_CS_ENCRYPTION_FILE_NOT_CSE equ 6021 +SCHED_E_SERVICE_NOT_LOCALSYSTEM equ 6200 +ERROR_LOG_SECTOR_INVALID equ 6600 +ERROR_LOG_SECTOR_PARITY_INVALID equ 6601 +ERROR_LOG_SECTOR_REMAPPED equ 6602 +ERROR_LOG_BLOCK_INCOMPLETE equ 6603 +ERROR_LOG_INVALID_RANGE equ 6604 +ERROR_LOG_BLOCKS_EXHAUSTED equ 6605 +ERROR_LOG_READ_CONTEXT_INVALID equ 6606 +ERROR_LOG_RESTART_INVALID equ 6607 +ERROR_LOG_BLOCK_VERSION equ 6608 +ERROR_LOG_BLOCK_INVALID equ 6609 +ERROR_LOG_READ_MODE_INVALID equ 6610 +ERROR_LOG_NO_RESTART equ 6611 +ERROR_LOG_METADATA_CORRUPT equ 6612 +ERROR_LOG_METADATA_INVALID equ 6613 +ERROR_LOG_METADATA_INCONSISTENT equ 6614 +ERROR_LOG_RESERVATION_INVALID equ 6615 +ERROR_LOG_CANT_DELETE equ 6616 +ERROR_LOG_CONTAINER_LIMIT_EXCEEDED equ 6617 +ERROR_LOG_START_OF_LOG equ 6618 +ERROR_LOG_POLICY_ALREADY_INSTALLED equ 6619 +ERROR_LOG_POLICY_NOT_INSTALLED equ 6620 +ERROR_LOG_POLICY_INVALID equ 6621 +ERROR_LOG_POLICY_CONFLICT equ 6622 +ERROR_LOG_PINNED_ARCHIVE_TAIL equ 6623 +ERROR_LOG_RECORD_NONEXISTENT equ 6624 +ERROR_LOG_RECORDS_RESERVED_INVALID equ 6625 +ERROR_LOG_SPACE_RESERVED_INVALID equ 6626 +ERROR_LOG_TAIL_INVALID equ 6627 +ERROR_LOG_FULL equ 6628 +ERROR_COULD_NOT_RESIZE_LOG equ 6629 +ERROR_LOG_MULTIPLEXED equ 6630 +ERROR_LOG_DEDICATED equ 6631 +ERROR_LOG_ARCHIVE_NOT_IN_PROGRESS equ 6632 +ERROR_LOG_ARCHIVE_IN_PROGRESS equ 6633 +ERROR_LOG_EPHEMERAL equ 6634 +ERROR_LOG_NOT_ENOUGH_CONTAINERS equ 6635 +ERROR_LOG_CLIENT_ALREADY_REGISTERED equ 6636 +ERROR_LOG_CLIENT_NOT_REGISTERED equ 6637 +ERROR_LOG_FULL_HANDLER_IN_PROGRESS equ 6638 +ERROR_LOG_CONTAINER_READ_FAILED equ 6639 +ERROR_LOG_CONTAINER_WRITE_FAILED equ 6640 +ERROR_LOG_CONTAINER_OPEN_FAILED equ 6641 +ERROR_LOG_CONTAINER_STATE_INVALID equ 6642 +ERROR_LOG_STATE_INVALID equ 6643 +ERROR_LOG_PINNED equ 6644 +ERROR_LOG_METADATA_FLUSH_FAILED equ 6645 +ERROR_LOG_INCONSISTENT_SECURITY equ 6646 +ERROR_LOG_APPENDED_FLUSH_FAILED equ 6647 +ERROR_LOG_PINNED_RESERVATION equ 6648 +ERROR_INVALID_TRANSACTION equ 6700 +ERROR_TRANSACTION_NOT_ACTIVE equ 6701 +ERROR_TRANSACTION_REQUEST_NOT_VALID equ 6702 +ERROR_TRANSACTION_NOT_REQUESTED equ 6703 +ERROR_TRANSACTION_ALREADY_ABORTED equ 6704 +ERROR_TRANSACTION_ALREADY_COMMITTED equ 6705 +ERROR_TM_INITIALIZATION_FAILED equ 6706 +ERROR_RESOURCEMANAGER_READ_ONLY equ 6707 +ERROR_TRANSACTION_NOT_JOINED equ 6708 +ERROR_TRANSACTION_SUPERIOR_EXISTS equ 6709 +ERROR_CRM_PROTOCOL_ALREADY_EXISTS equ 6710 +ERROR_TRANSACTION_PROPAGATION_FAILED equ 6711 +ERROR_CRM_PROTOCOL_NOT_FOUND equ 6712 +ERROR_TRANSACTION_INVALID_MARSHALL_BUFFER equ 6713 +ERROR_CURRENT_TRANSACTION_NOT_VALID equ 6714 +ERROR_TRANSACTION_NOT_FOUND equ 6715 +ERROR_RESOURCEMANAGER_NOT_FOUND equ 6716 +ERROR_ENLISTMENT_NOT_FOUND equ 6717 +ERROR_TRANSACTIONMANAGER_NOT_FOUND equ 6718 +ERROR_TRANSACTIONMANAGER_NOT_ONLINE equ 6719 +ERROR_TRANSACTIONMANAGER_RECOVERY_NAME_COLLISION equ 6720 +ERROR_TRANSACTION_NOT_ROOT equ 6721 +ERROR_TRANSACTION_OBJECT_EXPIRED equ 6722 +ERROR_TRANSACTION_RESPONSE_NOT_ENLISTED equ 6723 +ERROR_TRANSACTION_RECORD_TOO_LONG equ 6724 +ERROR_IMPLICIT_TRANSACTION_NOT_SUPPORTED equ 6725 +ERROR_TRANSACTION_INTEGRITY_VIOLATED equ 6726 +ERROR_TRANSACTIONAL_CONFLICT equ 6800 +ERROR_RM_NOT_ACTIVE equ 6801 +ERROR_RM_METADATA_CORRUPT equ 6802 +ERROR_DIRECTORY_NOT_RM equ 6803 +ERROR_TRANSACTIONS_UNSUPPORTED_REMOTE equ 6805 +ERROR_LOG_RESIZE_INVALID_SIZE equ 6806 +ERROR_OBJECT_NO_LONGER_EXISTS equ 6807 +ERROR_STREAM_MINIVERSION_NOT_FOUND equ 6808 +ERROR_STREAM_MINIVERSION_NOT_VALID equ 6809 +ERROR_MINIVERSION_INACCESSIBLE_FROM_SPECIFIED_TRANSACTION equ 6810 +ERROR_CANT_OPEN_MINIVERSION_WITH_MODIFY_INTENT equ 6811 +ERROR_CANT_CREATE_MORE_STREAM_MINIVERSIONS equ 6812 +ERROR_REMOTE_FILE_VERSION_MISMATCH equ 6814 +ERROR_HANDLE_NO_LONGER_VALID equ 6815 +ERROR_NO_TXF_METADATA equ 6816 +ERROR_LOG_CORRUPTION_DETECTED equ 6817 +ERROR_CANT_RECOVER_WITH_HANDLE_OPEN equ 6818 +ERROR_RM_DISCONNECTED equ 6819 +ERROR_ENLISTMENT_NOT_SUPERIOR equ 6820 +ERROR_RECOVERY_NOT_NEEDED equ 6821 +ERROR_RM_ALREADY_STARTED equ 6822 +ERROR_FILE_IDENTITY_NOT_PERSISTENT equ 6823 +ERROR_CANT_BREAK_TRANSACTIONAL_DEPENDENCY equ 6824 +ERROR_CANT_CROSS_RM_BOUNDARY equ 6825 +ERROR_TXF_DIR_NOT_EMPTY equ 6826 +ERROR_INDOUBT_TRANSACTIONS_EXIST equ 6827 +ERROR_TM_VOLATILE equ 6828 +ERROR_ROLLBACK_TIMER_EXPIRED equ 6829 +ERROR_TXF_ATTRIBUTE_CORRUPT equ 6830 +ERROR_EFS_NOT_ALLOWED_IN_TRANSACTION equ 6831 +ERROR_TRANSACTIONAL_OPEN_NOT_ALLOWED equ 6832 +ERROR_LOG_GROWTH_FAILED equ 6833 +ERROR_TRANSACTED_MAPPING_UNSUPPORTED_REMOTE equ 6834 +ERROR_TXF_METADATA_ALREADY_PRESENT equ 6835 +ERROR_TRANSACTION_SCOPE_CALLBACKS_NOT_SET equ 6836 +ERROR_TRANSACTION_REQUIRED_PROMOTION equ 6837 +ERROR_CANNOT_EXECUTE_FILE_IN_TRANSACTION equ 6838 +ERROR_TRANSACTIONS_NOT_FROZEN equ 6839 +ERROR_TRANSACTION_FREEZE_IN_PROGRESS equ 6840 +ERROR_NOT_SNAPSHOT_VOLUME equ 6841 +ERROR_NO_SAVEPOINT_WITH_OPEN_FILES equ 6842 +ERROR_DATA_LOST_REPAIR equ 6843 +ERROR_SPARSE_NOT_ALLOWED_IN_TRANSACTION equ 6844 +ERROR_TM_IDENTITY_MISMATCH equ 6845 +ERROR_FLOATED_SECTION equ 6846 +ERROR_CANNOT_ACCEPT_TRANSACTED_WORK equ 6847 +ERROR_CANNOT_ABORT_TRANSACTIONS equ 6848 +ERROR_BAD_CLUSTERS equ 6849 +ERROR_COMPRESSION_NOT_ALLOWED_IN_TRANSACTION equ 6850 +ERROR_VOLUME_DIRTY equ 6851 +ERROR_NO_LINK_TRACKING_IN_TRANSACTION equ 6852 +ERROR_OPERATION_NOT_SUPPORTED_IN_TRANSACTION equ 6853 +ERROR_CTX_WINSTATION_NAME_INVALID equ 7001 +ERROR_CTX_INVALID_PD equ 7002 +ERROR_CTX_PD_NOT_FOUND equ 7003 +ERROR_CTX_WD_NOT_FOUND equ 7004 +ERROR_CTX_CANNOT_MAKE_EVENTLOG_ENTRY equ 7005 +ERROR_CTX_SERVICE_NAME_COLLISION equ 7006 +ERROR_CTX_CLOSE_PENDING equ 7007 +ERROR_CTX_NO_OUTBUF equ 7008 +ERROR_CTX_MODEM_INF_NOT_FOUND equ 7009 +ERROR_CTX_INVALID_MODEMNAME equ 7010 +ERROR_CTX_MODEM_RESPONSE_ERROR equ 7011 +ERROR_CTX_MODEM_RESPONSE_TIMEOUT equ 7012 +ERROR_CTX_MODEM_RESPONSE_NO_CARRIER equ 7013 +ERROR_CTX_MODEM_RESPONSE_NO_DIALTONE equ 7014 +ERROR_CTX_MODEM_RESPONSE_BUSY equ 7015 +ERROR_CTX_MODEM_RESPONSE_VOICE equ 7016 +ERROR_CTX_TD_ERROR equ 7017 +ERROR_CTX_WINSTATION_NOT_FOUND equ 7022 +ERROR_CTX_WINSTATION_ALREADY_EXISTS equ 7023 +ERROR_CTX_WINSTATION_BUSY equ 7024 +ERROR_CTX_BAD_VIDEO_MODE equ 7025 +ERROR_CTX_GRAPHICS_INVALID equ 7035 +ERROR_CTX_LOGON_DISABLED equ 7037 +ERROR_CTX_NOT_CONSOLE equ 7038 +ERROR_CTX_CLIENT_QUERY_TIMEOUT equ 7040 +ERROR_CTX_CONSOLE_DISCONNECT equ 7041 +ERROR_CTX_CONSOLE_CONNECT equ 7042 +ERROR_CTX_SHADOW_DENIED equ 7044 +ERROR_CTX_WINSTATION_ACCESS_DENIED equ 7045 +ERROR_CTX_INVALID_WD equ 7049 +ERROR_CTX_SHADOW_INVALID equ 7050 +ERROR_CTX_SHADOW_DISABLED equ 7051 +ERROR_CTX_CLIENT_LICENSE_IN_USE equ 7052 +ERROR_CTX_CLIENT_LICENSE_NOT_SET equ 7053 +ERROR_CTX_LICENSE_NOT_AVAILABLE equ 7054 +ERROR_CTX_LICENSE_CLIENT_INVALID equ 7055 +ERROR_CTX_LICENSE_EXPIRED equ 7056 +ERROR_CTX_SHADOW_NOT_RUNNING equ 7057 +ERROR_CTX_SHADOW_ENDED_BY_MODE_CHANGE equ 7058 +ERROR_ACTIVATION_COUNT_EXCEEDED equ 7059 +ERROR_CTX_WINSTATIONS_DISABLED equ 7060 +ERROR_CTX_ENCRYPTION_LEVEL_REQUIRED equ 7061 +ERROR_CTX_SESSION_IN_USE equ 7062 +ERROR_CTX_NO_FORCE_LOGOFF equ 7063 +ERROR_CTX_ACCOUNT_RESTRICTION equ 7064 +ERROR_RDP_PROTOCOL_ERROR equ 7065 +ERROR_CTX_CDM_CONNECT equ 7066 +ERROR_CTX_CDM_DISCONNECT equ 7067 +ERROR_CTX_SECURITY_LAYER_ERROR equ 7068 +ERROR_TS_INCOMPATIBLE_SESSIONS equ 7069 +FRS_ERR_INVALID_API_SEQUENCE equ 8001 +FRS_ERR_STARTING_SERVICE equ 8002 +FRS_ERR_STOPPING_SERVICE equ 8003 +FRS_ERR_INTERNAL_API equ 8004 +FRS_ERR_INTERNAL equ 8005 +FRS_ERR_SERVICE_COMM equ 8006 +FRS_ERR_INSUFFICIENT_PRIV equ 8007 +FRS_ERR_AUTHENTICATION equ 8008 +FRS_ERR_PARENT_INSUFFICIENT_PRIV equ 8009 +FRS_ERR_PARENT_AUTHENTICATION equ 8010 +FRS_ERR_CHILD_TO_PARENT_COMM equ 8011 +FRS_ERR_PARENT_TO_CHILD_COMM equ 8012 +FRS_ERR_SYSVOL_POPULATE equ 8013 +FRS_ERR_SYSVOL_POPULATE_TIMEOUT equ 8014 +FRS_ERR_SYSVOL_IS_BUSY equ 8015 +FRS_ERR_SYSVOL_DEMOTE equ 8016 +FRS_ERR_INVALID_SERVICE_PARAMETER equ 8017 +DS_S_SUCCESS equ NO_ERROR +ERROR_DS_NOT_INSTALLED equ 8200 +ERROR_DS_MEMBERSHIP_EVALUATED_LOCALLY equ 8201 +ERROR_DS_NO_ATTRIBUTE_OR_VALUE equ 8202 +ERROR_DS_INVALID_ATTRIBUTE_SYNTAX equ 8203 +ERROR_DS_ATTRIBUTE_TYPE_UNDEFINED equ 8204 +ERROR_DS_ATTRIBUTE_OR_VALUE_EXISTS equ 8205 +ERROR_DS_BUSY equ 8206 +ERROR_DS_UNAVAILABLE equ 8207 +ERROR_DS_NO_RIDS_ALLOCATED equ 8208 +ERROR_DS_NO_MORE_RIDS equ 8209 +ERROR_DS_INCORRECT_ROLE_OWNER equ 8210 +ERROR_DS_RIDMGR_INIT_ERROR equ 8211 +ERROR_DS_OBJ_CLASS_VIOLATION equ 8212 +ERROR_DS_CANT_ON_NON_LEAF equ 8213 +ERROR_DS_CANT_ON_RDN equ 8214 +ERROR_DS_CANT_MOD_OBJ_CLASS equ 8215 +ERROR_DS_CROSS_DOM_MOVE_ERROR equ 8216 +ERROR_DS_GC_NOT_AVAILABLE equ 8217 +ERROR_SHARED_POLICY equ 8218 +ERROR_POLICY_OBJECT_NOT_FOUND equ 8219 +ERROR_POLICY_ONLY_IN_DS equ 8220 +ERROR_PROMOTION_ACTIVE equ 8221 +ERROR_NO_PROMOTION_ACTIVE equ 8222 +ERROR_DS_OPERATIONS_ERROR equ 8224 +ERROR_DS_PROTOCOL_ERROR equ 8225 +ERROR_DS_TIMELIMIT_EXCEEDED equ 8226 +ERROR_DS_SIZELIMIT_EXCEEDED equ 8227 +ERROR_DS_ADMIN_LIMIT_EXCEEDED equ 8228 +ERROR_DS_COMPARE_FALSE equ 8229 +ERROR_DS_COMPARE_TRUE equ 8230 +ERROR_DS_AUTH_METHOD_NOT_SUPPORTED equ 8231 +ERROR_DS_STRONG_AUTH_REQUIRED equ 8232 +ERROR_DS_INAPPROPRIATE_AUTH equ 8233 +ERROR_DS_AUTH_UNKNOWN equ 8234 +ERROR_DS_REFERRAL equ 8235 +ERROR_DS_UNAVAILABLE_CRIT_EXTENSION equ 8236 +ERROR_DS_CONFIDENTIALITY_REQUIRED equ 8237 +ERROR_DS_INAPPROPRIATE_MATCHING equ 8238 +ERROR_DS_CONSTRAINT_VIOLATION equ 8239 +ERROR_DS_NO_SUCH_OBJECT equ 8240 +ERROR_DS_ALIAS_PROBLEM equ 8241 +ERROR_DS_INVALID_DN_SYNTAX equ 8242 +ERROR_DS_IS_LEAF equ 8243 +ERROR_DS_ALIAS_DEREF_PROBLEM equ 8244 +ERROR_DS_UNWILLING_TO_PERFORM equ 8245 +ERROR_DS_LOOP_DETECT equ 8246 +ERROR_DS_NAMING_VIOLATION equ 8247 +ERROR_DS_OBJECT_RESULTS_TOO_LARGE equ 8248 +ERROR_DS_AFFECTS_MULTIPLE_DSAS equ 8249 +ERROR_DS_SERVER_DOWN equ 8250 +ERROR_DS_LOCAL_ERROR equ 8251 +ERROR_DS_ENCODING_ERROR equ 8252 +ERROR_DS_DECODING_ERROR equ 8253 +ERROR_DS_FILTER_UNKNOWN equ 8254 +ERROR_DS_PARAM_ERROR equ 8255 +ERROR_DS_NOT_SUPPORTED equ 8256 +ERROR_DS_NO_RESULTS_RETURNED equ 8257 +ERROR_DS_CONTROL_NOT_FOUND equ 8258 +ERROR_DS_CLIENT_LOOP equ 8259 +ERROR_DS_REFERRAL_LIMIT_EXCEEDED equ 8260 +ERROR_DS_SORT_CONTROL_MISSING equ 8261 +ERROR_DS_OFFSET_RANGE_ERROR equ 8262 +ERROR_DS_ROOT_MUST_BE_NC equ 8301 +ERROR_DS_ADD_REPLICA_INHIBITED equ 8302 +ERROR_DS_ATT_NOT_DEF_IN_SCHEMA equ 8303 +ERROR_DS_MAX_OBJ_SIZE_EXCEEDED equ 8304 +ERROR_DS_OBJ_STRING_NAME_EXISTS equ 8305 +ERROR_DS_NO_RDN_DEFINED_IN_SCHEMA equ 8306 +ERROR_DS_RDN_DOESNT_MATCH_SCHEMA equ 8307 +ERROR_DS_NO_REQUESTED_ATTS_FOUND equ 8308 +ERROR_DS_USER_BUFFER_TO_SMALL equ 8309 +ERROR_DS_ATT_IS_NOT_ON_OBJ equ 8310 +ERROR_DS_ILLEGAL_MOD_OPERATION equ 8311 +ERROR_DS_OBJ_TOO_LARGE equ 8312 +ERROR_DS_BAD_INSTANCE_TYPE equ 8313 +ERROR_DS_MASTERDSA_REQUIRED equ 8314 +ERROR_DS_OBJECT_CLASS_REQUIRED equ 8315 +ERROR_DS_MISSING_REQUIRED_ATT equ 8316 +ERROR_DS_ATT_NOT_DEF_FOR_CLASS equ 8317 +ERROR_DS_ATT_ALREADY_EXISTS equ 8318 +ERROR_DS_CANT_ADD_ATT_VALUES equ 8320 +ERROR_DS_SINGLE_VALUE_CONSTRAINT equ 8321 +ERROR_DS_RANGE_CONSTRAINT equ 8322 +ERROR_DS_ATT_VAL_ALREADY_EXISTS equ 8323 +ERROR_DS_CANT_REM_MISSING_ATT equ 8324 +ERROR_DS_CANT_REM_MISSING_ATT_VAL equ 8325 +ERROR_DS_ROOT_CANT_BE_SUBREF equ 8326 +ERROR_DS_NO_CHAINING equ 8327 +ERROR_DS_NO_CHAINED_EVAL equ 8328 +ERROR_DS_NO_PARENT_OBJECT equ 8329 +ERROR_DS_PARENT_IS_AN_ALIAS equ 8330 +ERROR_DS_CANT_MIX_MASTER_AND_REPS equ 8331 +ERROR_DS_CHILDREN_EXIST equ 8332 +ERROR_DS_OBJ_NOT_FOUND equ 8333 +ERROR_DS_ALIASED_OBJ_MISSING equ 8334 +ERROR_DS_BAD_NAME_SYNTAX equ 8335 +ERROR_DS_ALIAS_POINTS_TO_ALIAS equ 8336 +ERROR_DS_CANT_DEREF_ALIAS equ 8337 +ERROR_DS_OUT_OF_SCOPE equ 8338 +ERROR_DS_OBJECT_BEING_REMOVED equ 8339 +ERROR_DS_CANT_DELETE_DSA_OBJ equ 8340 +ERROR_DS_GENERIC_ERROR equ 8341 +ERROR_DS_DSA_MUST_BE_INT_MASTER equ 8342 +ERROR_DS_CLASS_NOT_DSA equ 8343 +ERROR_DS_INSUFF_ACCESS_RIGHTS equ 8344 +ERROR_DS_ILLEGAL_SUPERIOR equ 8345 +ERROR_DS_ATTRIBUTE_OWNED_BY_SAM equ 8346 +ERROR_DS_NAME_TOO_MANY_PARTS equ 8347 +ERROR_DS_NAME_TOO_LONG equ 8348 +ERROR_DS_NAME_VALUE_TOO_LONG equ 8349 +ERROR_DS_NAME_UNPARSEABLE equ 8350 +ERROR_DS_NAME_TYPE_UNKNOWN equ 8351 +ERROR_DS_NOT_AN_OBJECT equ 8352 +ERROR_DS_SEC_DESC_TOO_SHORT equ 8353 +ERROR_DS_SEC_DESC_INVALID equ 8354 +ERROR_DS_NO_DELETED_NAME equ 8355 +ERROR_DS_SUBREF_MUST_HAVE_PARENT equ 8356 +ERROR_DS_NCNAME_MUST_BE_NC equ 8357 +ERROR_DS_CANT_ADD_SYSTEM_ONLY equ 8358 +ERROR_DS_CLASS_MUST_BE_CONCRETE equ 8359 +ERROR_DS_INVALID_DMD equ 8360 +ERROR_DS_OBJ_GUID_EXISTS equ 8361 +ERROR_DS_NOT_ON_BACKLINK equ 8362 +ERROR_DS_NO_CROSSREF_FOR_NC equ 8363 +ERROR_DS_SHUTTING_DOWN equ 8364 +ERROR_DS_UNKNOWN_OPERATION equ 8365 +ERROR_DS_INVALID_ROLE_OWNER equ 8366 +ERROR_DS_COULDNT_CONTACT_FSMO equ 8367 +ERROR_DS_CROSS_NC_DN_RENAME equ 8368 +ERROR_DS_CANT_MOD_SYSTEM_ONLY equ 8369 +ERROR_DS_REPLICATOR_ONLY equ 8370 +ERROR_DS_OBJ_CLASS_NOT_DEFINED equ 8371 +ERROR_DS_OBJ_CLASS_NOT_SUBCLASS equ 8372 +ERROR_DS_NAME_REFERENCE_INVALID equ 8373 +ERROR_DS_CROSS_REF_EXISTS equ 8374 +ERROR_DS_CANT_DEL_MASTER_CROSSREF equ 8375 +ERROR_DS_SUBTREE_NOTIFY_NOT_NC_HEAD equ 8376 +ERROR_DS_NOTIFY_FILTER_TOO_COMPLEX equ 8377 +ERROR_DS_DUP_RDN equ 8378 +ERROR_DS_DUP_OID equ 8379 +ERROR_DS_DUP_MAPI_ID equ 8380 +ERROR_DS_DUP_SCHEMA_ID_GUID equ 8381 +ERROR_DS_DUP_LDAP_DISPLAY_NAME equ 8382 +ERROR_DS_SEMANTIC_ATT_TEST equ 8383 +ERROR_DS_SYNTAX_MISMATCH equ 8384 +ERROR_DS_EXISTS_IN_MUST_HAVE equ 8385 +ERROR_DS_EXISTS_IN_MAY_HAVE equ 8386 +ERROR_DS_NONEXISTENT_MAY_HAVE equ 8387 +ERROR_DS_NONEXISTENT_MUST_HAVE equ 8388 +ERROR_DS_AUX_CLS_TEST_FAIL equ 8389 +ERROR_DS_NONEXISTENT_POSS_SUP equ 8390 +ERROR_DS_SUB_CLS_TEST_FAIL equ 8391 +ERROR_DS_BAD_RDN_ATT_ID_SYNTAX equ 8392 +ERROR_DS_EXISTS_IN_AUX_CLS equ 8393 +ERROR_DS_EXISTS_IN_SUB_CLS equ 8394 +ERROR_DS_EXISTS_IN_POSS_SUP equ 8395 +ERROR_DS_RECALCSCHEMA_FAILED equ 8396 +ERROR_DS_TREE_DELETE_NOT_FINISHED equ 8397 +ERROR_DS_CANT_DELETE equ 8398 +ERROR_DS_ATT_SCHEMA_REQ_ID equ 8399 +ERROR_DS_BAD_ATT_SCHEMA_SYNTAX equ 8400 +ERROR_DS_CANT_CACHE_ATT equ 8401 +ERROR_DS_CANT_CACHE_CLASS equ 8402 +ERROR_DS_CANT_REMOVE_ATT_CACHE equ 8403 +ERROR_DS_CANT_REMOVE_CLASS_CACHE equ 8404 +ERROR_DS_CANT_RETRIEVE_DN equ 8405 +ERROR_DS_MISSING_SUPREF equ 8406 +ERROR_DS_CANT_RETRIEVE_INSTANCE equ 8407 +ERROR_DS_CODE_INCONSISTENCY equ 8408 +ERROR_DS_DATABASE_ERROR equ 8409 +ERROR_DS_GOVERNSID_MISSING equ 8410 +ERROR_DS_MISSING_EXPECTED_ATT equ 8411 +ERROR_DS_NCNAME_MISSING_CR_REF equ 8412 +ERROR_DS_SECURITY_CHECKING_ERROR equ 8413 +ERROR_DS_SCHEMA_NOT_LOADED equ 8414 +ERROR_DS_SCHEMA_ALLOC_FAILED equ 8415 +ERROR_DS_ATT_SCHEMA_REQ_SYNTAX equ 8416 +ERROR_DS_GCVERIFY_ERROR equ 8417 +ERROR_DS_DRA_SCHEMA_MISMATCH equ 8418 +ERROR_DS_CANT_FIND_DSA_OBJ equ 8419 +ERROR_DS_CANT_FIND_EXPECTED_NC equ 8420 +ERROR_DS_CANT_FIND_NC_IN_CACHE equ 8421 +ERROR_DS_CANT_RETRIEVE_CHILD equ 8422 +ERROR_DS_SECURITY_ILLEGAL_MODIFY equ 8423 +ERROR_DS_CANT_REPLACE_HIDDEN_REC equ 8424 +ERROR_DS_BAD_HIERARCHY_FILE equ 8425 +ERROR_DS_BUILD_HIERARCHY_TABLE_FAILED equ 8426 +ERROR_DS_CONFIG_PARAM_MISSING equ 8427 +ERROR_DS_COUNTING_AB_INDICES_FAILED equ 8428 +ERROR_DS_HIERARCHY_TABLE_MALLOC_FAILED equ 8429 +ERROR_DS_INTERNAL_FAILURE equ 8430 +ERROR_DS_UNKNOWN_ERROR equ 8431 +ERROR_DS_ROOT_REQUIRES_CLASS_TOP equ 8432 +ERROR_DS_REFUSING_FSMO_ROLES equ 8433 +ERROR_DS_MISSING_FSMO_SETTINGS equ 8434 +ERROR_DS_UNABLE_TO_SURRENDER_ROLES equ 8435 +ERROR_DS_DRA_GENERIC equ 8436 +ERROR_DS_DRA_INVALID_PARAMETER equ 8437 +ERROR_DS_DRA_BUSY equ 8438 +ERROR_DS_DRA_BAD_DN equ 8439 +ERROR_DS_DRA_BAD_NC equ 8440 +ERROR_DS_DRA_DN_EXISTS equ 8441 +ERROR_DS_DRA_INTERNAL_ERROR equ 8442 +ERROR_DS_DRA_INCONSISTENT_DIT equ 8443 +ERROR_DS_DRA_CONNECTION_FAILED equ 8444 +ERROR_DS_DRA_BAD_INSTANCE_TYPE equ 8445 +ERROR_DS_DRA_OUT_OF_MEM equ 8446 +ERROR_DS_DRA_MAIL_PROBLEM equ 8447 +ERROR_DS_DRA_REF_ALREADY_EXISTS equ 8448 +ERROR_DS_DRA_REF_NOT_FOUND equ 8449 +ERROR_DS_DRA_OBJ_IS_REP_SOURCE equ 8450 +ERROR_DS_DRA_DB_ERROR equ 8451 +ERROR_DS_DRA_NO_REPLICA equ 8452 +ERROR_DS_DRA_ACCESS_DENIED equ 8453 +ERROR_DS_DRA_NOT_SUPPORTED equ 8454 +ERROR_DS_DRA_RPC_CANCELLED equ 8455 +ERROR_DS_DRA_SOURCE_DISABLED equ 8456 +ERROR_DS_DRA_SINK_DISABLED equ 8457 +ERROR_DS_DRA_NAME_COLLISION equ 8458 +ERROR_DS_DRA_SOURCE_REINSTALLED equ 8459 +ERROR_DS_DRA_MISSING_PARENT equ 8460 +ERROR_DS_DRA_PREEMPTED equ 8461 +ERROR_DS_DRA_ABANDON_SYNC equ 8462 +ERROR_DS_DRA_SHUTDOWN equ 8463 +ERROR_DS_DRA_INCOMPATIBLE_PARTIAL_SET equ 8464 +ERROR_DS_DRA_SOURCE_IS_PARTIAL_REPLICA equ 8465 +ERROR_DS_DRA_EXTN_CONNECTION_FAILED equ 8466 +ERROR_DS_INSTALL_SCHEMA_MISMATCH equ 8467 +ERROR_DS_DUP_LINK_ID equ 8468 +ERROR_DS_NAME_ERROR_RESOLVING equ 8469 +ERROR_DS_NAME_ERROR_NOT_FOUND equ 8470 +ERROR_DS_NAME_ERROR_NOT_UNIQUE equ 8471 +ERROR_DS_NAME_ERROR_NO_MAPPING equ 8472 +ERROR_DS_NAME_ERROR_DOMAIN_ONLY equ 8473 +ERROR_DS_NAME_ERROR_NO_SYNTACTICAL_MAPPING equ 8474 +ERROR_DS_CONSTRUCTED_ATT_MOD equ 8475 +ERROR_DS_WRONG_OM_OBJ_CLASS equ 8476 +ERROR_DS_DRA_REPL_PENDING equ 8477 +ERROR_DS_DS_REQUIRED equ 8478 +ERROR_DS_INVALID_LDAP_DISPLAY_NAME equ 8479 +ERROR_DS_NON_BASE_SEARCH equ 8480 +ERROR_DS_CANT_RETRIEVE_ATTS equ 8481 +ERROR_DS_BACKLINK_WITHOUT_LINK equ 8482 +ERROR_DS_EPOCH_MISMATCH equ 8483 +ERROR_DS_SRC_NAME_MISMATCH equ 8484 +ERROR_DS_SRC_AND_DST_NC_IDENTICAL equ 8485 +ERROR_DS_DST_NC_MISMATCH equ 8486 +ERROR_DS_NOT_AUTHORITIVE_FOR_DST_NC equ 8487 +ERROR_DS_SRC_GUID_MISMATCH equ 8488 +ERROR_DS_CANT_MOVE_DELETED_OBJECT equ 8489 +ERROR_DS_PDC_OPERATION_IN_PROGRESS equ 8490 +ERROR_DS_CROSS_DOMAIN_CLEANUP_REQD equ 8491 +ERROR_DS_ILLEGAL_XDOM_MOVE_OPERATION equ 8492 +ERROR_DS_CANT_WITH_ACCT_GROUP_MEMBERSHPS equ 8493 +ERROR_DS_NC_MUST_HAVE_NC_PARENT equ 8494 +ERROR_DS_CR_IMPOSSIBLE_TO_VALIDATE equ 8495 +ERROR_DS_DST_DOMAIN_NOT_NATIVE equ 8496 +ERROR_DS_MISSING_INFRASTRUCTURE_CONTAINER equ 8497 +ERROR_DS_CANT_MOVE_ACCOUNT_GROUP equ 8498 +ERROR_DS_CANT_MOVE_RESOURCE_GROUP equ 8499 +ERROR_DS_INVALID_SEARCH_FLAG equ 8500 +ERROR_DS_NO_TREE_DELETE_ABOVE_NC equ 8501 +ERROR_DS_COULDNT_LOCK_TREE_FOR_DELETE equ 8502 +ERROR_DS_COULDNT_IDENTIFY_OBJECTS_FOR_TREE_DELETE equ 8503 +ERROR_DS_SAM_INIT_FAILURE equ 8504 +ERROR_DS_SENSITIVE_GROUP_VIOLATION equ 8505 +ERROR_DS_CANT_MOD_PRIMARYGROUPID equ 8506 +ERROR_DS_ILLEGAL_BASE_SCHEMA_MOD equ 8507 +ERROR_DS_NONSAFE_SCHEMA_CHANGE equ 8508 +ERROR_DS_SCHEMA_UPDATE_DISALLOWED equ 8509 +ERROR_DS_CANT_CREATE_UNDER_SCHEMA equ 8510 +ERROR_DS_INSTALL_NO_SRC_SCH_VERSION equ 8511 +ERROR_DS_INSTALL_NO_SCH_VERSION_IN_INIFILE equ 8512 +ERROR_DS_INVALID_GROUP_TYPE equ 8513 +ERROR_DS_NO_NEST_GLOBALGROUP_IN_MIXEDDOMAIN equ 8514 +ERROR_DS_NO_NEST_LOCALGROUP_IN_MIXEDDOMAIN equ 8515 +ERROR_DS_GLOBAL_CANT_HAVE_LOCAL_MEMBER equ 8516 +ERROR_DS_GLOBAL_CANT_HAVE_UNIVERSAL_MEMBER equ 8517 +ERROR_DS_UNIVERSAL_CANT_HAVE_LOCAL_MEMBER equ 8518 +ERROR_DS_GLOBAL_CANT_HAVE_CROSSDOMAIN_MEMBER equ 8519 +ERROR_DS_LOCAL_CANT_HAVE_CROSSDOMAIN_LOCAL_MEMBER equ 8520 +ERROR_DS_HAVE_PRIMARY_MEMBERS equ 8521 +ERROR_DS_STRING_SD_CONVERSION_FAILED equ 8522 +ERROR_DS_NAMING_MASTER_GC equ 8523 +ERROR_DS_DNS_LOOKUP_FAILURE equ 8524 +ERROR_DS_COULDNT_UPDATE_SPNS equ 8525 +ERROR_DS_CANT_RETRIEVE_SD equ 8526 +ERROR_DS_KEY_NOT_UNIQUE equ 8527 +ERROR_DS_WRONG_LINKED_ATT_SYNTAX equ 8528 +ERROR_DS_SAM_NEED_BOOTKEY_PASSWORD equ 8529 +ERROR_DS_SAM_NEED_BOOTKEY_FLOPPY equ 8530 +ERROR_DS_CANT_START equ 8531 +ERROR_DS_INIT_FAILURE equ 8532 +ERROR_DS_NO_PKT_PRIVACY_ON_CONNECTION equ 8533 +ERROR_DS_SOURCE_DOMAIN_IN_FOREST equ 8534 +ERROR_DS_DESTINATION_DOMAIN_NOT_IN_FOREST equ 8535 +ERROR_DS_DESTINATION_AUDITING_NOT_ENABLED equ 8536 +ERROR_DS_CANT_FIND_DC_FOR_SRC_DOMAIN equ 8537 +ERROR_DS_SRC_OBJ_NOT_GROUP_OR_USER equ 8538 +ERROR_DS_SRC_SID_EXISTS_IN_FOREST equ 8539 +ERROR_DS_SRC_AND_DST_OBJECT_CLASS_MISMATCH equ 8540 +ERROR_SAM_INIT_FAILURE equ 8541 +ERROR_DS_DRA_SCHEMA_INFO_SHIP equ 8542 +ERROR_DS_DRA_SCHEMA_CONFLICT equ 8543 +ERROR_DS_DRA_EARLIER_SCHEMA_CONFLICT equ 8544 +ERROR_DS_DRA_OBJ_NC_MISMATCH equ 8545 +ERROR_DS_NC_STILL_HAS_DSAS equ 8546 +ERROR_DS_GC_REQUIRED equ 8547 +ERROR_DS_LOCAL_MEMBER_OF_LOCAL_ONLY equ 8548 +ERROR_DS_NO_FPO_IN_UNIVERSAL_GROUPS equ 8549 +ERROR_DS_CANT_ADD_TO_GC equ 8550 +ERROR_DS_NO_CHECKPOINT_WITH_PDC equ 8551 +ERROR_DS_SOURCE_AUDITING_NOT_ENABLED equ 8552 +ERROR_DS_CANT_CREATE_IN_NONDOMAIN_NC equ 8553 +ERROR_DS_INVALID_NAME_FOR_SPN equ 8554 +ERROR_DS_FILTER_USES_CONTRUCTED_ATTRS equ 8555 +ERROR_DS_UNICODEPWD_NOT_IN_QUOTES equ 8556 +ERROR_DS_MACHINE_ACCOUNT_QUOTA_EXCEEDED equ 8557 +ERROR_DS_MUST_BE_RUN_ON_DST_DC equ 8558 +ERROR_DS_SRC_DC_MUST_BE_SP4_OR_GREATER equ 8559 +ERROR_DS_CANT_TREE_DELETE_CRITICAL_OBJ equ 8560 +ERROR_DS_INIT_FAILURE_CONSOLE equ 8561 +ERROR_DS_SAM_INIT_FAILURE_CONSOLE equ 8562 +ERROR_DS_FOREST_VERSION_TOO_HIGH equ 8563 +ERROR_DS_DOMAIN_VERSION_TOO_HIGH equ 8564 +ERROR_DS_FOREST_VERSION_TOO_LOW equ 8565 +ERROR_DS_DOMAIN_VERSION_TOO_LOW equ 8566 +ERROR_DS_INCOMPATIBLE_VERSION equ 8567 +ERROR_DS_LOW_DSA_VERSION equ 8568 +ERROR_DS_NO_BEHAVIOR_VERSION_IN_MIXEDDOMAIN equ 8569 +ERROR_DS_NOT_SUPPORTED_SORT_ORDER equ 8570 +ERROR_DS_NAME_NOT_UNIQUE equ 8571 +ERROR_DS_MACHINE_ACCOUNT_CREATED_PRENT4 equ 8572 +ERROR_DS_OUT_OF_VERSION_STORE equ 8573 +ERROR_DS_INCOMPATIBLE_CONTROLS_USED equ 8574 +ERROR_DS_NO_REF_DOMAIN equ 8575 +ERROR_DS_RESERVED_LINK_ID equ 8576 +ERROR_DS_LINK_ID_NOT_AVAILABLE equ 8577 +ERROR_DS_AG_CANT_HAVE_UNIVERSAL_MEMBER equ 8578 +ERROR_DS_MODIFYDN_DISALLOWED_BY_INSTANCE_TYPE equ 8579 +ERROR_DS_NO_OBJECT_MOVE_IN_SCHEMA_NC equ 8580 +ERROR_DS_MODIFYDN_DISALLOWED_BY_FLAG equ 8581 +ERROR_DS_MODIFYDN_WRONG_GRANDPARENT equ 8582 +ERROR_DS_NAME_ERROR_TRUST_REFERRAL equ 8583 +ERROR_NOT_SUPPORTED_ON_STANDARD_SERVER equ 8584 +ERROR_DS_CANT_ACCESS_REMOTE_PART_OF_AD equ 8585 +ERROR_DS_CR_IMPOSSIBLE_TO_VALIDATE_V2 equ 8586 +ERROR_DS_THREAD_LIMIT_EXCEEDED equ 8587 +ERROR_DS_NOT_CLOSEST equ 8588 +ERROR_DS_CANT_DERIVE_SPN_WITHOUT_SERVER_REF equ 8589 +ERROR_DS_SINGLE_USER_MODE_FAILED equ 8590 +ERROR_DS_NTDSCRIPT_SYNTAX_ERROR equ 8591 +ERROR_DS_NTDSCRIPT_PROCESS_ERROR equ 8592 +ERROR_DS_DIFFERENT_REPL_EPOCHS equ 8593 +ERROR_DS_DRS_EXTENSIONS_CHANGED equ 8594 +ERROR_DS_REPLICA_SET_CHANGE_NOT_ALLOWED_ON_DISABLED_CR equ 8595 +ERROR_DS_NO_MSDS_INTID equ 8596 +ERROR_DS_DUP_MSDS_INTID equ 8597 +ERROR_DS_EXISTS_IN_RDNATTID equ 8598 +ERROR_DS_AUTHORIZATION_FAILED equ 8599 +ERROR_DS_INVALID_SCRIPT equ 8600 +ERROR_DS_REMOTE_CROSSREF_OP_FAILED equ 8601 +ERROR_DS_CROSS_REF_BUSY equ 8602 +ERROR_DS_CANT_DERIVE_SPN_FOR_DELETED_DOMAIN equ 8603 +ERROR_DS_CANT_DEMOTE_WITH_WRITEABLE_NC equ 8604 +ERROR_DS_DUPLICATE_ID_FOUND equ 8605 +ERROR_DS_INSUFFICIENT_ATTR_TO_CREATE_OBJECT equ 8606 +ERROR_DS_GROUP_CONVERSION_ERROR equ 8607 +ERROR_DS_CANT_MOVE_APP_BASIC_GROUP equ 8608 +ERROR_DS_CANT_MOVE_APP_QUERY_GROUP equ 8609 +ERROR_DS_ROLE_NOT_VERIFIED equ 8610 +ERROR_DS_WKO_CONTAINER_CANNOT_BE_SPECIAL equ 8611 +ERROR_DS_DOMAIN_RENAME_IN_PROGRESS equ 8612 +ERROR_DS_EXISTING_AD_CHILD_NC equ 8613 +ERROR_DS_REPL_LIFETIME_EXCEEDED equ 8614 +ERROR_DS_DISALLOWED_IN_SYSTEM_CONTAINER equ 8615 +ERROR_DS_LDAP_SEND_QUEUE_FULL equ 8616 +ERROR_DS_DRA_OUT_SCHEDULE_WINDOW equ 8617 +ERROR_DS_POLICY_NOT_KNOWN equ 8618 +ERROR_NO_SITE_SETTINGS_OBJECT equ 8619 +ERROR_NO_SECRETS equ 8620 +ERROR_NO_WRITABLE_DC_FOUND equ 8621 +ERROR_DS_NO_SERVER_OBJECT equ 8622 +ERROR_DS_NO_NTDSA_OBJECT equ 8623 +ERROR_DS_NON_ASQ_SEARCH equ 8624 +ERROR_DS_AUDIT_FAILURE equ 8625 +ERROR_DS_INVALID_SEARCH_FLAG_SUBTREE equ 8626 +ERROR_DS_INVALID_SEARCH_FLAG_TUPLE equ 8627 +ERROR_DS_HIERARCHY_TABLE_TOO_DEEP equ 8628 +DNS_ERROR_RESPONSE_CODES_BASE equ 9000 +DNS_ERROR_RCODE_NO_ERROR equ NO_ERROR +DNS_ERROR_MASK equ 00002328h +DNS_ERROR_RCODE_FORMAT_ERROR equ 9001 +DNS_ERROR_RCODE_SERVER_FAILURE equ 9002 +DNS_ERROR_RCODE_NAME_ERROR equ 9003 +DNS_ERROR_RCODE_NOT_IMPLEMENTED equ 9004 +DNS_ERROR_RCODE_REFUSED equ 9005 +DNS_ERROR_RCODE_YXDOMAIN equ 9006 +DNS_ERROR_RCODE_YXRRSET equ 9007 +DNS_ERROR_RCODE_NXRRSET equ 9008 +DNS_ERROR_RCODE_NOTAUTH equ 9009 +DNS_ERROR_RCODE_NOTZONE equ 9010 +DNS_ERROR_RCODE_BADSIG equ 9016 +DNS_ERROR_RCODE_BADKEY equ 9017 +DNS_ERROR_RCODE_BADTIME equ 9018 +DNS_ERROR_RCODE_LAST equ DNS_ERROR_RCODE_BADTIME +DNS_ERROR_PACKET_FMT_BASE equ 9500 +DNS_INFO_NO_RECORDS equ 9501 +DNS_ERROR_BAD_PACKET equ 9502 +DNS_ERROR_NO_PACKET equ 9503 +DNS_ERROR_RCODE equ 9504 +DNS_ERROR_UNSECURE_PACKET equ 9505 +DNS_STATUS_PACKET_UNSECURE equ DNS_ERROR_UNSECURE_PACKET +DNS_ERROR_NO_MEMORY equ ERROR_OUTOFMEMORY +DNS_ERROR_INVALID_NAME equ ERROR_INVALID_NAME +DNS_ERROR_INVALID_DATA equ ERROR_INVALID_DATA +DNS_ERROR_GENERAL_API_BASE equ 9550 +DNS_ERROR_INVALID_TYPE equ 9551 +DNS_ERROR_INVALID_IP_ADDRESS equ 9552 +DNS_ERROR_INVALID_PROPERTY equ 9553 +DNS_ERROR_TRY_AGAIN_LATER equ 9554 +DNS_ERROR_NOT_UNIQUE equ 9555 +DNS_ERROR_NON_RFC_NAME equ 9556 +DNS_STATUS_FQDN equ 9557 +DNS_STATUS_DOTTED_NAME equ 9558 +DNS_STATUS_SINGLE_PART_NAME equ 9559 +DNS_ERROR_INVALID_NAME_CHAR equ 9560 +DNS_ERROR_NUMERIC_NAME equ 9561 +DNS_ERROR_NOT_ALLOWED_ON_ROOT_SERVER equ 9562 +DNS_ERROR_NOT_ALLOWED_UNDER_DELEGATION equ 9563 +DNS_ERROR_CANNOT_FIND_ROOT_HINTS equ 9564 +DNS_ERROR_INCONSISTENT_ROOT_HINTS equ 9565 +DNS_ERROR_DWORD_VALUE_TOO_SMALL equ 9566 +DNS_ERROR_DWORD_VALUE_TOO_LARGE equ 9567 +DNS_ERROR_BACKGROUND_LOADING equ 9568 +DNS_ERROR_NOT_ALLOWED_ON_RODC equ 9569 +DNS_ERROR_NOT_ALLOWED_UNDER_DNAME equ 9570 +DNS_ERROR_ZONE_BASE equ 9600 +DNS_ERROR_ZONE_DOES_NOT_EXIST equ 9601 +DNS_ERROR_NO_ZONE_INFO equ 9602 +DNS_ERROR_INVALID_ZONE_OPERATION equ 9603 +DNS_ERROR_ZONE_CONFIGURATION_ERROR equ 9604 +DNS_ERROR_ZONE_HAS_NO_SOA_RECORD equ 9605 +DNS_ERROR_ZONE_HAS_NO_NS_RECORDS equ 9606 +DNS_ERROR_ZONE_LOCKED equ 9607 +DNS_ERROR_ZONE_CREATION_FAILED equ 9608 +DNS_ERROR_ZONE_ALREADY_EXISTS equ 9609 +DNS_ERROR_AUTOZONE_ALREADY_EXISTS equ 9610 +DNS_ERROR_INVALID_ZONE_TYPE equ 9611 +DNS_ERROR_SECONDARY_REQUIRES_MASTER_IP equ 9612 +DNS_ERROR_ZONE_NOT_SECONDARY equ 9613 +DNS_ERROR_NEED_SECONDARY_ADDRESSES equ 9614 +DNS_ERROR_WINS_INIT_FAILED equ 9615 +DNS_ERROR_NEED_WINS_SERVERS equ 9616 +DNS_ERROR_NBSTAT_INIT_FAILED equ 9617 +DNS_ERROR_SOA_DELETE_INVALID equ 9618 +DNS_ERROR_FORWARDER_ALREADY_EXISTS equ 9619 +DNS_ERROR_ZONE_REQUIRES_MASTER_IP equ 9620 +DNS_ERROR_ZONE_IS_SHUTDOWN equ 9621 +DNS_ERROR_DATAFILE_BASE equ 9650 +DNS_ERROR_PRIMARY_REQUIRES_DATAFILE equ 9651 +DNS_ERROR_INVALID_DATAFILE_NAME equ 9652 +DNS_ERROR_DATAFILE_OPEN_FAILURE equ 9653 +DNS_ERROR_FILE_WRITEBACK_FAILED equ 9654 +DNS_ERROR_DATAFILE_PARSING equ 9655 +DNS_ERROR_DATABASE_BASE equ 9700 +DNS_ERROR_RECORD_DOES_NOT_EXIST equ 9701 +DNS_ERROR_RECORD_FORMAT equ 9702 +DNS_ERROR_NODE_CREATION_FAILED equ 9703 +DNS_ERROR_UNKNOWN_RECORD_TYPE equ 9704 +DNS_ERROR_RECORD_TIMED_OUT equ 9705 +DNS_ERROR_NAME_NOT_IN_ZONE equ 9706 +DNS_ERROR_CNAME_LOOP equ 9707 +DNS_ERROR_NODE_IS_CNAME equ 9708 +DNS_ERROR_CNAME_COLLISION equ 9709 +DNS_ERROR_RECORD_ONLY_AT_ZONE_ROOT equ 9710 +DNS_ERROR_RECORD_ALREADY_EXISTS equ 9711 +DNS_ERROR_SECONDARY_DATA equ 9712 +DNS_ERROR_NO_CREATE_CACHE_DATA equ 9713 +DNS_ERROR_NAME_DOES_NOT_EXIST equ 9714 +DNS_WARNING_PTR_CREATE_FAILED equ 9715 +DNS_WARNING_DOMAIN_UNDELETED equ 9716 +DNS_ERROR_DS_UNAVAILABLE equ 9717 +DNS_ERROR_DS_ZONE_ALREADY_EXISTS equ 9718 +DNS_ERROR_NO_BOOTFILE_IF_DS_ZONE equ 9719 +DNS_ERROR_NODE_IS_DNAME equ 9720 +DNS_ERROR_DNAME_COLLISION equ 9721 +DNS_ERROR_ALIAS_LOOP equ 9722 +DNS_ERROR_OPERATION_BASE equ 9750 +DNS_INFO_AXFR_COMPLETE equ 9751 +DNS_ERROR_AXFR equ 9752 +DNS_INFO_ADDED_LOCAL_WINS equ 9753 +DNS_ERROR_SECURE_BASE equ 9800 +DNS_STATUS_CONTINUE_NEEDED equ 9801 +DNS_ERROR_SETUP_BASE equ 9850 +DNS_ERROR_NO_TCPIP equ 9851 +DNS_ERROR_NO_DNS_SERVERS equ 9852 +DNS_ERROR_DP_BASE equ 9900 +DNS_ERROR_DP_DOES_NOT_EXIST equ 9901 +DNS_ERROR_DP_ALREADY_EXISTS equ 9902 +DNS_ERROR_DP_NOT_ENLISTED equ 9903 +DNS_ERROR_DP_ALREADY_ENLISTED equ 9904 +DNS_ERROR_DP_NOT_AVAILABLE equ 9905 +DNS_ERROR_DP_FSMO_ERROR equ 9906 +ERROR_IPSEC_QM_POLICY_EXISTS equ 13000 +ERROR_IPSEC_QM_POLICY_NOT_FOUND equ 13001 +ERROR_IPSEC_QM_POLICY_IN_USE equ 13002 +ERROR_IPSEC_MM_POLICY_EXISTS equ 13003 +ERROR_IPSEC_MM_POLICY_NOT_FOUND equ 13004 +ERROR_IPSEC_MM_POLICY_IN_USE equ 13005 +ERROR_IPSEC_MM_FILTER_EXISTS equ 13006 +ERROR_IPSEC_MM_FILTER_NOT_FOUND equ 13007 +ERROR_IPSEC_TRANSPORT_FILTER_EXISTS equ 13008 +ERROR_IPSEC_TRANSPORT_FILTER_NOT_FOUND equ 13009 +ERROR_IPSEC_MM_AUTH_EXISTS equ 13010 +ERROR_IPSEC_MM_AUTH_NOT_FOUND equ 13011 +ERROR_IPSEC_MM_AUTH_IN_USE equ 13012 +ERROR_IPSEC_DEFAULT_MM_POLICY_NOT_FOUND equ 13013 +ERROR_IPSEC_DEFAULT_MM_AUTH_NOT_FOUND equ 13014 +ERROR_IPSEC_DEFAULT_QM_POLICY_NOT_FOUND equ 13015 +ERROR_IPSEC_TUNNEL_FILTER_EXISTS equ 13016 +ERROR_IPSEC_TUNNEL_FILTER_NOT_FOUND equ 13017 +ERROR_IPSEC_MM_FILTER_PENDING_DELETION equ 13018 +ERROR_IPSEC_TRANSPORT_FILTER_PENDING_DELETION equ 13019 +ERROR_IPSEC_TUNNEL_FILTER_PENDING_DELETION equ 13020 +ERROR_IPSEC_MM_POLICY_PENDING_DELETION equ 13021 +ERROR_IPSEC_MM_AUTH_PENDING_DELETION equ 13022 +ERROR_IPSEC_QM_POLICY_PENDING_DELETION equ 13023 +WARNING_IPSEC_MM_POLICY_PRUNED equ 13024 +WARNING_IPSEC_QM_POLICY_PRUNED equ 13025 +ERROR_IPSEC_IKE_NEG_STATUS_BEGIN equ 13800 +ERROR_IPSEC_IKE_AUTH_FAIL equ 13801 +ERROR_IPSEC_IKE_ATTRIB_FAIL equ 13802 +ERROR_IPSEC_IKE_NEGOTIATION_PENDING equ 13803 +ERROR_IPSEC_IKE_GENERAL_PROCESSING_ERROR equ 13804 +ERROR_IPSEC_IKE_TIMED_OUT equ 13805 +ERROR_IPSEC_IKE_NO_CERT equ 13806 +ERROR_IPSEC_IKE_SA_DELETED equ 13807 +ERROR_IPSEC_IKE_SA_REAPED equ 13808 +ERROR_IPSEC_IKE_MM_ACQUIRE_DROP equ 13809 +ERROR_IPSEC_IKE_QM_ACQUIRE_DROP equ 13810 +ERROR_IPSEC_IKE_QUEUE_DROP_MM equ 13811 +ERROR_IPSEC_IKE_QUEUE_DROP_NO_MM equ 13812 +ERROR_IPSEC_IKE_DROP_NO_RESPONSE equ 13813 +ERROR_IPSEC_IKE_MM_DELAY_DROP equ 13814 +ERROR_IPSEC_IKE_QM_DELAY_DROP equ 13815 +ERROR_IPSEC_IKE_ERROR equ 13816 +ERROR_IPSEC_IKE_CRL_FAILED equ 13817 +ERROR_IPSEC_IKE_INVALID_KEY_USAGE equ 13818 +ERROR_IPSEC_IKE_INVALID_CERT_TYPE equ 13819 +ERROR_IPSEC_IKE_NO_PRIVATE_KEY equ 13820 +ERROR_IPSEC_IKE_DH_FAIL equ 13822 +ERROR_IPSEC_IKE_INVALID_HEADER equ 13824 +ERROR_IPSEC_IKE_NO_POLICY equ 13825 +ERROR_IPSEC_IKE_INVALID_SIGNATURE equ 13826 +ERROR_IPSEC_IKE_KERBEROS_ERROR equ 13827 +ERROR_IPSEC_IKE_NO_PUBLIC_KEY equ 13828 +ERROR_IPSEC_IKE_PROCESS_ERR equ 13829 +ERROR_IPSEC_IKE_PROCESS_ERR_SA equ 13830 +ERROR_IPSEC_IKE_PROCESS_ERR_PROP equ 13831 +ERROR_IPSEC_IKE_PROCESS_ERR_TRANS equ 13832 +ERROR_IPSEC_IKE_PROCESS_ERR_KE equ 13833 +ERROR_IPSEC_IKE_PROCESS_ERR_ID equ 13834 +ERROR_IPSEC_IKE_PROCESS_ERR_CERT equ 13835 +ERROR_IPSEC_IKE_PROCESS_ERR_CERT_REQ equ 13836 +ERROR_IPSEC_IKE_PROCESS_ERR_HASH equ 13837 +ERROR_IPSEC_IKE_PROCESS_ERR_SIG equ 13838 +ERROR_IPSEC_IKE_PROCESS_ERR_NONCE equ 13839 +ERROR_IPSEC_IKE_PROCESS_ERR_NOTIFY equ 13840 +ERROR_IPSEC_IKE_PROCESS_ERR_DELETE equ 13841 +ERROR_IPSEC_IKE_PROCESS_ERR_VENDOR equ 13842 +ERROR_IPSEC_IKE_INVALID_PAYLOAD equ 13843 +ERROR_IPSEC_IKE_LOAD_SOFT_SA equ 13844 +ERROR_IPSEC_IKE_SOFT_SA_TORN_DOWN equ 13845 +ERROR_IPSEC_IKE_INVALID_COOKIE equ 13846 +ERROR_IPSEC_IKE_NO_PEER_CERT equ 13847 +ERROR_IPSEC_IKE_PEER_CRL_FAILED equ 13848 +ERROR_IPSEC_IKE_POLICY_CHANGE equ 13849 +ERROR_IPSEC_IKE_NO_MM_POLICY equ 13850 +ERROR_IPSEC_IKE_NOTCBPRIV equ 13851 +ERROR_IPSEC_IKE_SECLOADFAIL equ 13852 +ERROR_IPSEC_IKE_FAILSSPINIT equ 13853 +ERROR_IPSEC_IKE_FAILQUERYSSP equ 13854 +ERROR_IPSEC_IKE_SRVACQFAIL equ 13855 +ERROR_IPSEC_IKE_SRVQUERYCRED equ 13856 +ERROR_IPSEC_IKE_GETSPIFAIL equ 13857 +ERROR_IPSEC_IKE_INVALID_FILTER equ 13858 +ERROR_IPSEC_IKE_OUT_OF_MEMORY equ 13859 +ERROR_IPSEC_IKE_ADD_UPDATE_KEY_FAILED equ 13860 +ERROR_IPSEC_IKE_INVALID_POLICY equ 13861 +ERROR_IPSEC_IKE_UNKNOWN_DOI equ 13862 +ERROR_IPSEC_IKE_INVALID_SITUATION equ 13863 +ERROR_IPSEC_IKE_DH_FAILURE equ 13864 +ERROR_IPSEC_IKE_INVALID_GROUP equ 13865 +ERROR_IPSEC_IKE_ENCRYPT equ 13866 +ERROR_IPSEC_IKE_DECRYPT equ 13867 +ERROR_IPSEC_IKE_POLICY_MATCH equ 13868 +ERROR_IPSEC_IKE_UNSUPPORTED_ID equ 13869 +ERROR_IPSEC_IKE_INVALID_HASH equ 13870 +ERROR_IPSEC_IKE_INVALID_HASH_ALG equ 13871 +ERROR_IPSEC_IKE_INVALID_HASH_SIZE equ 13872 +ERROR_IPSEC_IKE_INVALID_ENCRYPT_ALG equ 13873 +ERROR_IPSEC_IKE_INVALID_AUTH_ALG equ 13874 +ERROR_IPSEC_IKE_INVALID_SIG equ 13875 +ERROR_IPSEC_IKE_LOAD_FAILED equ 13876 +ERROR_IPSEC_IKE_RPC_DELETE equ 13877 +ERROR_IPSEC_IKE_BENIGN_REINIT equ 13878 +ERROR_IPSEC_IKE_INVALID_RESPONDER_LIFETIME_NOTIFY equ 13879 +ERROR_IPSEC_IKE_INVALID_CERT_KEYLEN equ 13881 +ERROR_IPSEC_IKE_MM_LIMIT equ 13882 +ERROR_IPSEC_IKE_NEGOTIATION_DISABLED equ 13883 +ERROR_IPSEC_IKE_QM_LIMIT equ 13884 +ERROR_IPSEC_IKE_MM_EXPIRED equ 13885 +ERROR_IPSEC_IKE_PEER_MM_ASSUMED_INVALID equ 13886 +ERROR_IPSEC_IKE_CERT_CHAIN_POLICY_MISMATCH equ 13887 +ERROR_IPSEC_IKE_UNEXPECTED_MESSAGE_ID equ 13888 +ERROR_IPSEC_IKE_INVALID_AUTH_PAYLOAD equ 13889 +ERROR_IPSEC_IKE_DOS_COOKIE_SENT equ 13890 +ERROR_IPSEC_IKE_SHUTTING_DOWN equ 13891 +ERROR_IPSEC_IKE_CGA_AUTH_FAILED equ 13892 +ERROR_IPSEC_IKE_PROCESS_ERR_NATOA equ 13893 +ERROR_IPSEC_IKE_INVALID_MM_FOR_QM equ 13894 +ERROR_IPSEC_IKE_QM_EXPIRED equ 13895 +ERROR_IPSEC_IKE_TOO_MANY_FILTERS equ 13896 +ERROR_IPSEC_IKE_NEG_STATUS_END equ 13897 +ERROR_IPSEC_BAD_SPI equ 13910 +ERROR_IPSEC_SA_LIFETIME_EXPIRED equ 13911 +ERROR_IPSEC_WRONG_SA equ 13912 +ERROR_IPSEC_REPLAY_CHECK_FAILED equ 13913 +ERROR_IPSEC_INVALID_PACKET equ 13914 +ERROR_IPSEC_INTEGRITY_CHECK_FAILED equ 13915 +ERROR_IPSEC_CLEAR_TEXT_DROP equ 13916 +ERROR_SXS_SECTION_NOT_FOUND equ 14000 +ERROR_SXS_CANT_GEN_ACTCTX equ 14001 +ERROR_SXS_INVALID_ACTCTXDATA_FORMAT equ 14002 +ERROR_SXS_ASSEMBLY_NOT_FOUND equ 14003 +ERROR_SXS_MANIFEST_FORMAT_ERROR equ 14004 +ERROR_SXS_MANIFEST_PARSE_ERROR equ 14005 +ERROR_SXS_ACTIVATION_CONTEXT_DISABLED equ 14006 +ERROR_SXS_KEY_NOT_FOUND equ 14007 +ERROR_SXS_VERSION_CONFLICT equ 14008 +ERROR_SXS_WRONG_SECTION_TYPE equ 14009 +ERROR_SXS_THREAD_QUERIES_DISABLED equ 14010 +ERROR_SXS_PROCESS_DEFAULT_ALREADY_SET equ 14011 +ERROR_SXS_UNKNOWN_ENCODING_GROUP equ 14012 +ERROR_SXS_UNKNOWN_ENCODING equ 14013 +ERROR_SXS_INVALID_XML_NAMESPACE_URI equ 14014 +ERROR_SXS_ROOT_MANIFEST_DEPENDENCY_NOT_INSTALLED equ 14015 +ERROR_SXS_LEAF_MANIFEST_DEPENDENCY_NOT_INSTALLED equ 14016 +ERROR_SXS_INVALID_ASSEMBLY_IDENTITY_ATTRIBUTE equ 14017 +ERROR_SXS_MANIFEST_MISSING_REQUIRED_DEFAULT_NAMESPACE equ 14018 +ERROR_SXS_MANIFEST_INVALID_REQUIRED_DEFAULT_NAMESPACE equ 14019 +ERROR_SXS_PRIVATE_MANIFEST_CROSS_PATH_WITH_REPARSE_POINT equ 14020 +ERROR_SXS_DUPLICATE_DLL_NAME equ 14021 +ERROR_SXS_DUPLICATE_WINDOWCLASS_NAME equ 14022 +ERROR_SXS_DUPLICATE_CLSID equ 14023 +ERROR_SXS_DUPLICATE_IID equ 14024 +ERROR_SXS_DUPLICATE_TLBID equ 14025 +ERROR_SXS_DUPLICATE_PROGID equ 14026 +ERROR_SXS_DUPLICATE_ASSEMBLY_NAME equ 14027 +ERROR_SXS_FILE_HASH_MISMATCH equ 14028 +ERROR_SXS_POLICY_PARSE_ERROR equ 14029 +ERROR_SXS_XML_E_MISSINGQUOTE equ 14030 +ERROR_SXS_XML_E_COMMENTSYNTAX equ 14031 +ERROR_SXS_XML_E_BADSTARTNAMECHAR equ 14032 +ERROR_SXS_XML_E_BADNAMECHAR equ 14033 +ERROR_SXS_XML_E_BADCHARINSTRING equ 14034 +ERROR_SXS_XML_E_XMLDECLSYNTAX equ 14035 +ERROR_SXS_XML_E_BADCHARDATA equ 14036 +ERROR_SXS_XML_E_MISSINGWHITESPACE equ 14037 +ERROR_SXS_XML_E_EXPECTINGTAGEND equ 14038 +ERROR_SXS_XML_E_MISSINGSEMICOLON equ 14039 +ERROR_SXS_XML_E_UNBALANCEDPAREN equ 14040 +ERROR_SXS_XML_E_INTERNALERROR equ 14041 +ERROR_SXS_XML_E_UNEXPECTED_WHITESPACE equ 14042 +ERROR_SXS_XML_E_INCOMPLETE_ENCODING equ 14043 +ERROR_SXS_XML_E_MISSING_PAREN equ 14044 +ERROR_SXS_XML_E_EXPECTINGCLOSEQUOTE equ 14045 +ERROR_SXS_XML_E_MULTIPLE_COLONS equ 14046 +ERROR_SXS_XML_E_INVALID_DECIMAL equ 14047 +ERROR_SXS_XML_E_INVALID_HEXIDECIMAL equ 14048 +ERROR_SXS_XML_E_INVALID_UNICODE equ 14049 +ERROR_SXS_XML_E_WHITESPACEORQUESTIONMARK equ 14050 +ERROR_SXS_XML_E_UNEXPECTEDENDTAG equ 14051 +ERROR_SXS_XML_E_UNCLOSEDTAG equ 14052 +ERROR_SXS_XML_E_DUPLICATEATTRIBUTE equ 14053 +ERROR_SXS_XML_E_MULTIPLEROOTS equ 14054 +ERROR_SXS_XML_E_INVALIDATROOTLEVEL equ 14055 +ERROR_SXS_XML_E_BADXMLDECL equ 14056 +ERROR_SXS_XML_E_MISSINGROOT equ 14057 +ERROR_SXS_XML_E_UNEXPECTEDEOF equ 14058 +ERROR_SXS_XML_E_BADPEREFINSUBSET equ 14059 +ERROR_SXS_XML_E_UNCLOSEDSTARTTAG equ 14060 +ERROR_SXS_XML_E_UNCLOSEDENDTAG equ 14061 +ERROR_SXS_XML_E_UNCLOSEDSTRING equ 14062 +ERROR_SXS_XML_E_UNCLOSEDCOMMENT equ 14063 +ERROR_SXS_XML_E_UNCLOSEDDECL equ 14064 +ERROR_SXS_XML_E_UNCLOSEDCDATA equ 14065 +ERROR_SXS_XML_E_RESERVEDNAMESPACE equ 14066 +ERROR_SXS_XML_E_INVALIDENCODING equ 14067 +ERROR_SXS_XML_E_INVALIDSWITCH equ 14068 +ERROR_SXS_XML_E_BADXMLCASE equ 14069 +ERROR_SXS_XML_E_INVALID_STANDALONE equ 14070 +ERROR_SXS_XML_E_UNEXPECTED_STANDALONE equ 14071 +ERROR_SXS_XML_E_INVALID_VERSION equ 14072 +ERROR_SXS_XML_E_MISSINGEQUALS equ 14073 +ERROR_SXS_PROTECTION_RECOVERY_FAILED equ 14074 +ERROR_SXS_PROTECTION_PUBLIC_KEY_TOO_SHORT equ 14075 +ERROR_SXS_PROTECTION_CATALOG_NOT_VALID equ 14076 +ERROR_SXS_UNTRANSLATABLE_HRESULT equ 14077 +ERROR_SXS_PROTECTION_CATALOG_FILE_MISSING equ 14078 +ERROR_SXS_MISSING_ASSEMBLY_IDENTITY_ATTRIBUTE equ 14079 +ERROR_SXS_INVALID_ASSEMBLY_IDENTITY_ATTRIBUTE_NAME equ 14080 +ERROR_SXS_ASSEMBLY_MISSING equ 14081 +ERROR_SXS_CORRUPT_ACTIVATION_STACK equ 14082 +ERROR_SXS_CORRUPTION equ 14083 +ERROR_SXS_EARLY_DEACTIVATION equ 14084 +ERROR_SXS_INVALID_DEACTIVATION equ 14085 +ERROR_SXS_MULTIPLE_DEACTIVATION equ 14086 +ERROR_SXS_PROCESS_TERMINATION_REQUESTED equ 14087 +ERROR_SXS_RELEASE_ACTIVATION_CONTEXT equ 14088 +ERROR_SXS_SYSTEM_DEFAULT_ACTIVATION_CONTEXT_EMPTY equ 14089 +ERROR_SXS_INVALID_IDENTITY_ATTRIBUTE_VALUE equ 14090 +ERROR_SXS_INVALID_IDENTITY_ATTRIBUTE_NAME equ 14091 +ERROR_SXS_IDENTITY_DUPLICATE_ATTRIBUTE equ 14092 +ERROR_SXS_IDENTITY_PARSE_ERROR equ 14093 +ERROR_MALFORMED_SUBSTITUTION_STRING equ 14094 +ERROR_SXS_INCORRECT_PUBLIC_KEY_TOKEN equ 14095 +ERROR_UNMAPPED_SUBSTITUTION_STRING equ 14096 +ERROR_SXS_ASSEMBLY_NOT_LOCKED equ 14097 +ERROR_SXS_COMPONENT_STORE_CORRUPT equ 14098 +ERROR_ADVANCED_INSTALLER_FAILED equ 14099 +ERROR_XML_ENCODING_MISMATCH equ 14100 +ERROR_SXS_MANIFEST_IDENTITY_SAME_BUT_CONTENTS_DIFFERENT equ 14101 +ERROR_SXS_IDENTITIES_DIFFERENT equ 14102 +ERROR_SXS_ASSEMBLY_IS_NOT_A_DEPLOYMENT equ 14103 +ERROR_SXS_FILE_NOT_PART_OF_ASSEMBLY equ 14104 +ERROR_SXS_MANIFEST_TOO_BIG equ 14105 +ERROR_SXS_SETTING_NOT_REGISTERED equ 14106 +ERROR_SXS_TRANSACTION_CLOSURE_INCOMPLETE equ 14107 +ERROR_SMI_PRIMITIVE_INSTALLER_FAILED equ 14108 +ERROR_GENERIC_COMMAND_FAILED equ 14109 +ERROR_SXS_FILE_HASH_MISSING equ 14110 +ERROR_EVT_INVALID_CHANNEL_PATH equ 15000 +ERROR_EVT_INVALID_QUERY equ 15001 +ERROR_EVT_PUBLISHER_METADATA_NOT_FOUND equ 15002 +ERROR_EVT_EVENT_TEMPLATE_NOT_FOUND equ 15003 +ERROR_EVT_INVALID_PUBLISHER_NAME equ 15004 +ERROR_EVT_INVALID_EVENT_DATA equ 15005 +ERROR_EVT_CHANNEL_NOT_FOUND equ 15007 +ERROR_EVT_MALFORMED_XML_TEXT equ 15008 +ERROR_EVT_SUBSCRIPTION_TO_DIRECT_CHANNEL equ 15009 +ERROR_EVT_CONFIGURATION_ERROR equ 15010 +ERROR_EVT_QUERY_RESULT_STALE equ 15011 +ERROR_EVT_QUERY_RESULT_INVALID_POSITION equ 15012 +ERROR_EVT_NON_VALIDATING_MSXML equ 15013 +ERROR_EVT_FILTER_ALREADYSCOPED equ 15014 +ERROR_EVT_FILTER_NOTELTSET equ 15015 +ERROR_EVT_FILTER_INVARG equ 15016 +ERROR_EVT_FILTER_INVTEST equ 15017 +ERROR_EVT_FILTER_INVTYPE equ 15018 +ERROR_EVT_FILTER_PARSEERR equ 15019 +ERROR_EVT_FILTER_UNSUPPORTEDOP equ 15020 +ERROR_EVT_FILTER_UNEXPECTEDTOKEN equ 15021 +ERROR_EVT_INVALID_OPERATION_OVER_ENABLED_DIRECT_CHANNEL equ 15022 +ERROR_EVT_INVALID_CHANNEL_PROPERTY_VALUE equ 15023 +ERROR_EVT_INVALID_PUBLISHER_PROPERTY_VALUE equ 15024 +ERROR_EVT_CHANNEL_CANNOT_ACTIVATE equ 15025 +ERROR_EVT_FILTER_TOO_COMPLEX equ 15026 +ERROR_EVT_MESSAGE_NOT_FOUND equ 15027 +ERROR_EVT_MESSAGE_ID_NOT_FOUND equ 15028 +ERROR_EVT_UNRESOLVED_VALUE_INSERT equ 15029 +ERROR_EVT_UNRESOLVED_PARAMETER_INSERT equ 15030 +ERROR_EVT_MAX_INSERTS_REACHED equ 15031 +ERROR_EVT_EVENT_DEFINITION_NOT_FOUND equ 15032 +ERROR_EVT_MESSAGE_LOCALE_NOT_FOUND equ 15033 +ERROR_EVT_VERSION_TOO_OLD equ 15034 +ERROR_EVT_VERSION_TOO_NEW equ 15035 +ERROR_EVT_CANNOT_OPEN_CHANNEL_OF_QUERY equ 15036 +ERROR_EVT_PUBLISHER_DISABLED equ 15037 +ERROR_EVT_FILTER_OUT_OF_RANGE equ 15038 +ERROR_EC_SUBSCRIPTION_CANNOT_ACTIVATE equ 15080 +ERROR_EC_LOG_DISABLED equ 15081 +ERROR_EC_CIRCULAR_FORWARDING equ 15082 +ERROR_EC_CREDSTORE_FULL equ 15083 +ERROR_EC_CRED_NOT_FOUND equ 15084 +ERROR_EC_NO_ACTIVE_CHANNEL equ 15085 +ERROR_MUI_FILE_NOT_FOUND equ 15100 +ERROR_MUI_INVALID_FILE equ 15101 +ERROR_MUI_INVALID_RC_CONFIG equ 15102 +ERROR_MUI_INVALID_LOCALE_NAME equ 15103 +ERROR_MUI_INVALID_ULTIMATEFALLBACK_NAME equ 15104 +ERROR_MUI_FILE_NOT_LOADED equ 15105 +ERROR_RESOURCE_ENUM_USER_STOP equ 15106 +ERROR_MUI_INTLSETTINGS_UILANG_NOT_INSTALLED equ 15107 +ERROR_MUI_INTLSETTINGS_INVALID_LOCALE_NAME equ 15108 +ERROR_MCA_INVALID_CAPABILITIES_STRING equ 15200 +ERROR_MCA_INVALID_VCP_VERSION equ 15201 +ERROR_MCA_MONITOR_VIOLATES_MCCS_SPECIFICATION equ 15202 +ERROR_MCA_MCCS_VERSION_MISMATCH equ 15203 +ERROR_MCA_UNSUPPORTED_MCCS_VERSION equ 15204 +ERROR_MCA_INTERNAL_ERROR equ 15205 +ERROR_MCA_INVALID_TECHNOLOGY_TYPE_RETURNED equ 15206 +ERROR_MCA_UNSUPPORTED_COLOR_TEMPERATURE equ 15207 +ERROR_AMBIGUOUS_SYSTEM_DEVICE equ 15250 +ERROR_SYSTEM_DEVICE_NOT_FOUND equ 15299 +E_PENDING equ 8000000Ah +CO_E_CANT_REMOTE equ 80004013h +CO_E_BAD_SERVER_NAME equ 80004014h +CO_E_WRONG_SERVER_IDENTITY equ 80004015h +CO_E_OLE1DDE_DISABLED equ 80004016h +CO_E_RUNAS_SYNTAX equ 80004017h +CO_E_CREATEPROCESS_FAILURE equ 80004018h +CO_E_RUNAS_LOGON_FAILURE equ 8000401Ah +CO_E_LAUNCH_PERMSSION_DENIED equ 8000401Bh +CO_E_START_SERVICE_FAILURE equ 8000401Ch +CO_E_SERVER_START_TIMEOUT equ 8000401Eh +CO_E_CLSREG_INCONSISTENT equ 8000401Fh +CO_E_IIDREG_INCONSISTENT equ 80004020h +CO_E_NOT_SUPPORTED equ 80004021h +CO_E_RELOAD_DLL equ 80004022h +CO_E_MSI_ERROR equ 80004023h +CO_E_SERVER_PAUSED equ 80004025h +CO_E_SERVER_NOT_PAUSED equ 80004026h +CO_E_CLASS_DISABLED equ 80004027h +CO_E_CLRNOTAVAILABLE equ 80004028h +CO_E_ASYNC_WORK_REJECTED equ 80004029h +CO_E_SERVER_INIT_TIMEOUT equ 8000402Ah +CO_E_NO_SECCTX_IN_ACTIVATE equ 8000402Bh +CO_E_TRACKER_CONFIG equ 80004030h +CO_E_THREADPOOL_CONFIG equ 80004031h +CO_E_SXS_CONFIG equ 80004032h +CO_E_MALFORMED_SPN equ 80004033h +CLASS_E_NOTLICENSED equ 80040112h +REGDB_E_BADTHREADINGMODEL equ 80040156h +CAT_E_FIRST equ 80040160h +CAT_E_LAST equ 80040161h +CAT_E_CATIDNOEXIST equ 80040160h +CAT_E_NODESCRIPTION equ 80040161h +CS_E_FIRST equ 80040164h +CS_E_LAST equ 8004016Fh +CS_E_PACKAGE_NOTFOUND equ 80040164h +CS_E_NOT_DELETABLE equ 80040165h +CS_E_CLASS_NOTFOUND equ 80040166h +CS_E_INVALID_VERSION equ 80040167h +CS_E_NO_CLASSSTORE equ 80040168h +CS_E_OBJECT_NOTFOUND equ 80040169h +CS_E_OBJECT_ALREADY_EXISTS equ 8004016Ah +CS_E_INVALID_PATH equ 8004016Bh +CS_E_NETWORK_ERROR equ 8004016Ch +CS_E_ADMIN_LIMIT_EXCEEDED equ 8004016Dh +CS_E_SCHEMA_MISMATCH equ 8004016Eh +CS_E_INTERNAL_ERROR equ 8004016Fh +EVENT_E_FIRST equ 80040200h +EVENT_E_LAST equ 8004021Fh +EVENT_S_FIRST equ 00040200h +EVENT_S_LAST equ 0004021Fh +EVENT_S_SOME_SUBSCRIBERS_FAILED equ 00040200h +EVENT_E_ALL_SUBSCRIBERS_FAILED equ 80040201h +EVENT_S_NOSUBSCRIBERS equ 00040202h +EVENT_E_QUERYSYNTAX equ 80040203h +EVENT_E_QUERYFIELD equ 80040204h +EVENT_E_INTERNALEXCEPTION equ 80040205h +EVENT_E_INTERNALERROR equ 80040206h +EVENT_E_INVALID_PER_USER_SID equ 80040207h +EVENT_E_USER_EXCEPTION equ 80040208h +EVENT_E_TOO_MANY_METHODS equ 80040209h +EVENT_E_MISSING_EVENTCLASS equ 8004020Ah +EVENT_E_NOT_ALL_REMOVED equ 8004020Bh +EVENT_E_COMPLUS_NOT_INSTALLED equ 8004020Ch +XACT_E_FIRST equ 8004D000h +XACT_E_LAST equ 8004D029h +XACT_S_FIRST equ 0004D000h +XACT_S_LAST equ 0004D010h +XACT_E_ALREADYOTHERSINGLEPHASE equ 8004D000h +XACT_E_CANTRETAIN equ 8004D001h +XACT_E_COMMITFAILED equ 8004D002h +XACT_E_COMMITPREVENTED equ 8004D003h +XACT_E_HEURISTICABORT equ 8004D004h +XACT_E_HEURISTICCOMMIT equ 8004D005h +XACT_E_HEURISTICDAMAGE equ 8004D006h +XACT_E_HEURISTICDANGER equ 8004D007h +XACT_E_ISOLATIONLEVEL equ 8004D008h +XACT_E_NOASYNC equ 8004D009h +XACT_E_NOENLIST equ 8004D00Ah +XACT_E_NOISORETAIN equ 8004D00Bh +XACT_E_NORESOURCE equ 8004D00Ch +XACT_E_NOTCURRENT equ 8004D00Dh +XACT_E_NOTRANSACTION equ 8004D00Eh +XACT_E_NOTSUPPORTED equ 8004D00Fh +XACT_E_UNKNOWNRMGRID equ 8004D010h +XACT_E_WRONGSTATE equ 8004D011h +XACT_E_WRONGUOW equ 8004D012h +XACT_E_XTIONEXISTS equ 8004D013h +XACT_E_NOIMPORTOBJECT equ 8004D014h +XACT_E_INVALIDCOOKIE equ 8004D015h +XACT_E_INDOUBT equ 8004D016h +XACT_E_NOTIMEOUT equ 8004D017h +XACT_E_ALREADYINPROGRESS equ 8004D018h +XACT_E_ABORTED equ 8004D019h +XACT_E_LOGFULL equ 8004D01Ah +XACT_E_TMNOTAVAILABLE equ 8004D01Bh +XACT_E_CONNECTION_DOWN equ 8004D01Ch +XACT_E_CONNECTION_DENIED equ 8004D01Dh +XACT_E_REENLISTTIMEOUT equ 8004D01Eh +XACT_E_TIP_CONNECT_FAILED equ 8004D01Fh +XACT_E_TIP_PROTOCOL_ERROR equ 8004D020h +XACT_E_TIP_PULL_FAILED equ 8004D021h +XACT_E_DEST_TMNOTAVAILABLE equ 8004D022h +XACT_E_TIP_DISABLED equ 8004D023h +XACT_E_NETWORK_TX_DISABLED equ 8004D024h +XACT_E_XA_TX_DISABLED equ 8004D026h +XACT_E_UNABLE_TO_LOAD_DTC_PROXY equ 8004D028h +XACT_E_ABORTING equ 8004D029h +XACT_E_CLERKNOTFOUND equ 8004D080h +XACT_E_CLERKEXISTS equ 8004D081h +XACT_E_RECOVERYINPROGRESS equ 8004D082h +XACT_E_TRANSACTIONCLOSED equ 8004D083h +XACT_E_INVALIDLSN equ 8004D084h +XACT_E_REPLAYREQUEST equ 8004D085h +XACT_S_ASYNC equ 0004D000h +XACT_S_DEFECT equ 0004D001h +XACT_S_READONLY equ 0004D002h +XACT_S_SOMENORETAIN equ 0004D003h +XACT_S_OKINFORM equ 0004D004h +XACT_S_MADECHANGESCONTENT equ 0004D005h +XACT_S_MADECHANGESINFORM equ 0004D006h +XACT_S_ALLNORETAIN equ 0004D007h +XACT_S_ABORTING equ 0004D008h +XACT_S_SINGLEPHASE equ 0004D009h +XACT_S_LOCALLY_OK equ 0004D00Ah +XACT_S_LASTRESOURCEMANAGER equ 0004D010h +CONTEXT_E_FIRST equ 8004E000h +CONTEXT_E_LAST equ 8004E02Fh +CONTEXT_S_FIRST equ 0004E000h +CONTEXT_S_LAST equ 0004E02Fh +CONTEXT_E_ABORTED equ 8004E002h +CONTEXT_E_ABORTING equ 8004E003h +CONTEXT_E_NOCONTEXT equ 8004E004h +CONTEXT_E_WOULD_DEADLOCK equ 8004E005h +CONTEXT_E_SYNCH_TIMEOUT equ 8004E006h +CONTEXT_E_OLDREF equ 8004E007h +CONTEXT_E_ROLENOTFOUND equ 8004E00Ch +CONTEXT_E_TMNOTAVAILABLE equ 8004E00Fh +CO_E_ACTIVATIONFAILED equ 8004E021h +CO_E_ACTIVATIONFAILED_TIMEOUT equ 8004E024h +CO_E_INITIALIZATIONFAILED equ 8004E025h +CONTEXT_E_NOJIT equ 8004E026h +CONTEXT_E_NOTRANSACTION equ 8004E027h +CO_E_THREADINGMODEL_CHANGED equ 8004E028h +CO_E_NOIISINTRINSICS equ 8004E029h +CO_E_NOCOOKIES equ 8004E02Ah +CO_E_DBERROR equ 8004E02Bh +CO_E_NOTPOOLED equ 8004E02Ch +CO_E_NOTCONSTRUCTED equ 8004E02Dh +CO_E_NOSYNCHRONIZATION equ 8004E02Eh +CO_E_ISOLEVELMISMATCH equ 8004E02Fh +SCHED_S_TASK_READY equ 00041300h +SCHED_S_TASK_RUNNING equ 00041301h +SCHED_S_TASK_DISABLED equ 00041302h +SCHED_S_TASK_HAS_NOT_RUN equ 00041303h +SCHED_S_TASK_NO_MORE_RUNS equ 00041304h +SCHED_S_TASK_NOT_SCHEDULED equ 00041305h +SCHED_S_TASK_TERMINATED equ 00041306h +SCHED_S_TASK_NO_VALID_TRIGGERS equ 00041307h +SCHED_S_EVENT_TRIGGER equ 00041308h +SCHED_E_TRIGGER_NOT_FOUND equ 80041309h +SCHED_E_TASK_NOT_READY equ 8004130Ah +SCHED_E_TASK_NOT_RUNNING equ 8004130Bh +SCHED_E_SERVICE_NOT_INSTALLED equ 8004130Ch +SCHED_E_CANNOT_OPEN_TASK equ 8004130Dh +SCHED_E_INVALID_TASK equ 8004130Eh +SCHED_E_ACCOUNT_NAME_NOT_FOUND equ 80041310h +SCHED_E_ACCOUNT_DBASE_CORRUPT equ 80041311h +SCHED_E_NO_SECURITY_SERVICES equ 80041312h +SCHED_E_UNKNOWN_OBJECT_VERSION equ 80041313h +SCHED_E_SERVICE_NOT_RUNNING equ 80041315h +SCHED_E_UNEXPECTEDNODE equ 80041316h +SCHED_E_NAMESPACE equ 80041317h +SCHED_E_INVALIDVALUE equ 80041318h +SCHED_E_MISSINGNODE equ 80041319h +SCHED_E_MALFORMEDXML equ 8004131Ah +SCHED_S_SOME_TRIGGERS_FAILED equ 0004131Bh +SCHED_S_BATCH_LOGON_PROBLEM equ 0004131Ch +SCHED_E_TOO_MANY_NODES equ 8004131Dh +SCHED_E_PAST_END_BOUNDARY equ 8004131Eh +SCHED_E_ALREADY_RUNNING equ 8004131Fh +SCHED_E_USER_NOT_LOGGED_ON equ 80041320h +SCHED_E_INVALID_TASK_HASH equ 80041321h +SCHED_E_SERVICE_NOT_AVAILABLE equ 80041322h +SCHED_E_SERVICE_TOO_BUSY equ 80041323h +SCHED_E_TASK_ATTEMPTED equ 80041324h +SCHED_S_TASK_QUEUED equ 00041325h +SCHED_E_TASK_DISABLED equ 80041326h +SCHED_E_TASK_NOT_V1_COMPAT equ 80041327h +SCHED_E_START_ON_DEMAND equ 80041328h +CO_S_NOTALLINTERFACES equ 00080012h +CO_S_MACHINENAMENOTFOUND equ 00080013h +CO_E_MISSING_DISPLAYNAME equ 80080015h +CO_E_RUNAS_VALUE_MUST_BE_AAA equ 80080016h +CO_E_ELEVATION_DISABLED equ 80080017h +DISP_E_DIVBYZERO equ 80020012h +DISP_E_BUFFERTOOSMALL equ 80020013h +TYPE_E_FIELDNOTFOUND equ 80028017h +STG_E_PROPSETMISMATCHED equ 800300F0h +STG_E_DOCFILECORRUPT equ 80030109h +STG_E_BADBASEADDRESS equ 80030110h +STG_E_DOCFILETOOLARGE equ 80030111h +STG_E_NOTSIMPLEFORMAT equ 80030112h +STG_E_INCOMPLETE equ 80030201h +STG_E_TERMINATED equ 80030202h +STG_S_BLOCK equ 00030201h +STG_S_RETRYNOW equ 00030202h +STG_S_MONITORING equ 00030203h +STG_S_MULTIPLEOPENS equ 00030204h +STG_S_CONSOLIDATIONFAILED equ 00030205h +STG_S_CANNOTCONSOLIDATE equ 00030206h +STG_E_CSS_KEY_NOT_PRESENT equ 80030307h +STG_E_CSS_KEY_NOT_ESTABLISHED equ 80030308h +STG_E_CSS_SCRAMBLED_SECTOR equ 80030309h +STG_E_CSS_REGION_MISMATCH equ 8003030Ah +STG_E_RESETS_EXHAUSTED equ 8003030Bh +RPC_E_VERSION_MISMATCH equ 80010110h +RPC_E_INVALID_HEADER equ 80010111h +RPC_E_INVALID_EXTENSION equ 80010112h +RPC_E_INVALID_IPID equ 80010113h +RPC_E_INVALID_OBJECT equ 80010114h +RPC_S_CALLPENDING equ 80010115h +RPC_S_WAITONTIMER equ 80010116h +RPC_E_CALL_COMPLETE equ 80010117h +RPC_E_UNSECURE_CALL equ 80010118h +RPC_E_TOO_LATE equ 80010119h +RPC_E_NO_GOOD_SECURITY_PACKAGES equ 8001011Ah +RPC_E_ACCESS_DENIED equ 8001011Bh +RPC_E_REMOTE_DISABLED equ 8001011Ch +RPC_E_INVALID_OBJREF equ 8001011Dh +RPC_E_NO_CONTEXT equ 8001011Eh +RPC_E_TIMEOUT equ 8001011Fh +RPC_E_NO_SYNC equ 80010120h +RPC_E_FULLSIC_REQUIRED equ 80010121h +RPC_E_INVALID_STD_NAME equ 80010122h +CO_E_FAILEDTOIMPERSONATE equ 80010123h +CO_E_FAILEDTOGETSECCTX equ 80010124h +CO_E_FAILEDTOOPENTHREADTOKEN equ 80010125h +CO_E_FAILEDTOGETTOKENINFO equ 80010126h +CO_E_TRUSTEEDOESNTMATCHCLIENT equ 80010127h +CO_E_FAILEDTOQUERYCLIENTBLANKET equ 80010128h +CO_E_FAILEDTOSETDACL equ 80010129h +CO_E_ACCESSCHECKFAILED equ 8001012Ah +CO_E_NETACCESSAPIFAILED equ 8001012Bh +CO_E_WRONGTRUSTEENAMESYNTAX equ 8001012Ch +CO_E_INVALIDSID equ 8001012Dh +CO_E_CONVERSIONFAILED equ 8001012Eh +CO_E_NOMATCHINGSIDFOUND equ 8001012Fh +CO_E_LOOKUPACCSIDFAILED equ 80010130h +CO_E_NOMATCHINGNAMEFOUND equ 80010131h +CO_E_LOOKUPACCNAMEFAILED equ 80010132h +CO_E_SETSERLHNDLFAILED equ 80010133h +CO_E_FAILEDTOGETWINDIR equ 80010134h +CO_E_PATHTOOLONG equ 80010135h +CO_E_FAILEDTOGENUUID equ 80010136h +CO_E_FAILEDTOCREATEFILE equ 80010137h +CO_E_FAILEDTOCLOSEHANDLE equ 80010138h +CO_E_EXCEEDSYSACLLIMIT equ 80010139h +CO_E_ACESINWRONGORDER equ 8001013Ah +CO_E_INCOMPATIBLESTREAMVERSION equ 8001013Bh +CO_E_FAILEDTOOPENPROCESSTOKEN equ 8001013Ch +CO_E_DECODEFAILED equ 8001013Dh +CO_E_ACNOTINITIALIZED equ 8001013Fh +CO_E_CANCEL_DISABLED equ 80010140h +ERROR_AUDITING_DISABLED equ 0C0090001h +ERROR_ALL_SIDS_FILTERED equ 0C0090002h +ERROR_BIZRULES_NOT_ENABLED equ 0C0090003h +NTE_BAD_UID equ 80090001h +NTE_BAD_HASH equ 80090002h +NTE_BAD_KEY equ 80090003h +NTE_BAD_LEN equ 80090004h +NTE_BAD_DATA equ 80090005h +NTE_BAD_SIGNATURE equ 80090006h +NTE_BAD_VER equ 80090007h +NTE_BAD_ALGID equ 80090008h +NTE_BAD_FLAGS equ 80090009h +NTE_BAD_TYPE equ 8009000Ah +NTE_BAD_KEY_STATE equ 8009000Bh +NTE_BAD_HASH_STATE equ 8009000Ch +NTE_NO_KEY equ 8009000Dh +NTE_NO_MEMORY equ 8009000Eh +NTE_EXISTS equ 8009000Fh +NTE_PERM equ 80090010h +NTE_NOT_FOUND equ 80090011h +NTE_DOUBLE_ENCRYPT equ 80090012h +NTE_BAD_PROVIDER equ 80090013h +NTE_BAD_PROV_TYPE equ 80090014h +NTE_BAD_PUBLIC_KEY equ 80090015h +NTE_BAD_KEYSET equ 80090016h +NTE_PROV_TYPE_NOT_DEF equ 80090017h +NTE_PROV_TYPE_ENTRY_BAD equ 80090018h +NTE_KEYSET_NOT_DEF equ 80090019h +NTE_KEYSET_ENTRY_BAD equ 8009001Ah +NTE_PROV_TYPE_NO_MATCH equ 8009001Bh +NTE_SIGNATURE_FILE_BAD equ 8009001Ch +NTE_PROVIDER_DLL_FAIL equ 8009001Dh +NTE_PROV_DLL_NOT_FOUND equ 8009001Eh +NTE_BAD_KEYSET_PARAM equ 8009001Fh +NTE_FAIL equ 80090020h +NTE_SYS_ERR equ 80090021h +NTE_SILENT_CONTEXT equ 80090022h +NTE_TOKEN_KEYSET_STORAGE_FULL equ 80090023h +NTE_TEMPORARY_PROFILE equ 80090024h +NTE_FIXEDPARAMETER equ 80090025h +NTE_INVALID_HANDLE equ 80090026h +NTE_INVALID_PARAMETER equ 80090027h +NTE_BUFFER_TOO_SMALL equ 80090028h +NTE_NOT_SUPPORTED equ 80090029h +NTE_NO_MORE_ITEMS equ 8009002Ah +NTE_BUFFERS_OVERLAP equ 8009002Bh +NTE_DECRYPTION_FAILURE equ 8009002Ch +NTE_INTERNAL_ERROR equ 8009002Dh +NTE_UI_REQUIRED equ 8009002Eh +NTE_HMAC_NOT_SUPPORTED equ 8009002Fh +SEC_E_INSUFFICIENT_MEMORY equ 80090300h +SEC_E_INVALID_HANDLE equ 80090301h +SEC_E_UNSUPPORTED_FUNCTION equ 80090302h +SEC_E_TARGET_UNKNOWN equ 80090303h +SEC_E_INTERNAL_ERROR equ 80090304h +SEC_E_SECPKG_NOT_FOUND equ 80090305h +SEC_E_NOT_OWNER equ 80090306h +SEC_E_CANNOT_INSTALL equ 80090307h +SEC_E_INVALID_TOKEN equ 80090308h +SEC_E_CANNOT_PACK equ 80090309h +SEC_E_QOP_NOT_SUPPORTED equ 8009030Ah +SEC_E_NO_IMPERSONATION equ 8009030Bh +SEC_E_LOGON_DENIED equ 8009030Ch +SEC_E_UNKNOWN_CREDENTIALS equ 8009030Dh +SEC_E_NO_CREDENTIALS equ 8009030Eh +SEC_E_MESSAGE_ALTERED equ 8009030Fh +SEC_E_OUT_OF_SEQUENCE equ 80090310h +SEC_I_CONTINUE_NEEDED equ 00090312h +SEC_I_COMPLETE_NEEDED equ 00090313h +SEC_I_COMPLETE_AND_CONTINUE equ 00090314h +SEC_I_LOCAL_LOGON equ 00090315h +SEC_E_BAD_PKGID equ 80090316h +SEC_E_CONTEXT_EXPIRED equ 80090317h +SEC_I_CONTEXT_EXPIRED equ 00090317h +SEC_E_INCOMPLETE_MESSAGE equ 80090318h +SEC_E_INCOMPLETE_CREDENTIALS equ 80090320h +SEC_E_BUFFER_TOO_SMALL equ 80090321h +SEC_I_INCOMPLETE_CREDENTIALS equ 00090320h +SEC_I_RENEGOTIATE equ 00090321h +SEC_E_WRONG_PRINCIPAL equ 80090322h +SEC_I_NO_LSA_CONTEXT equ 00090323h +SEC_E_TIME_SKEW equ 80090324h +SEC_E_UNTRUSTED_ROOT equ 80090325h +SEC_E_ILLEGAL_MESSAGE equ 80090326h +SEC_E_CERT_UNKNOWN equ 80090327h +SEC_E_CERT_EXPIRED equ 80090328h +SEC_E_ENCRYPT_FAILURE equ 80090329h +SEC_E_DECRYPT_FAILURE equ 80090330h +SEC_E_ALGORITHM_MISMATCH equ 80090331h +SEC_E_SECURITY_QOS_FAILED equ 80090332h +SEC_E_NO_TGT_REPLY equ 80090334h +SEC_E_NO_IP_ADDRESSES equ 80090335h +SEC_E_WRONG_CREDENTIAL_HANDLE equ 80090336h +SEC_E_CRYPTO_SYSTEM_INVALID equ 80090337h +SEC_E_MAX_REFERRALS_EXCEEDED equ 80090338h +SEC_E_MUST_BE_KDC equ 80090339h +SEC_E_TOO_MANY_PRINCIPALS equ 8009033Bh +SEC_E_NO_PA_DATA equ 8009033Ch +SEC_E_PKINIT_NAME_MISMATCH equ 8009033Dh +SEC_E_SMARTCARD_LOGON_REQUIRED equ 8009033Eh +SEC_E_SHUTDOWN_IN_PROGRESS equ 8009033Fh +SEC_E_KDC_INVALID_REQUEST equ 80090340h +SEC_E_KDC_UNABLE_TO_REFER equ 80090341h +SEC_E_KDC_UNKNOWN_ETYPE equ 80090342h +SEC_E_UNSUPPORTED_PREAUTH equ 80090343h +SEC_E_DELEGATION_REQUIRED equ 80090345h +SEC_E_BAD_BINDINGS equ 80090346h +SEC_E_MULTIPLE_ACCOUNTS equ 80090347h +SEC_E_NO_KERB_KEY equ 80090348h +SEC_E_CERT_WRONG_USAGE equ 80090349h +SEC_E_DOWNGRADE_DETECTED equ 80090350h +SEC_E_SMARTCARD_CERT_REVOKED equ 80090351h +SEC_E_ISSUING_CA_UNTRUSTED equ 80090352h +SEC_E_REVOCATION_OFFLINE_C equ 80090353h +SEC_E_PKINIT_CLIENT_FAILURE equ 80090354h +SEC_E_SMARTCARD_CERT_EXPIRED equ 80090355h +SEC_E_NO_S4U_PROT_SUPPORT equ 80090356h +SEC_E_REVOCATION_OFFLINE_KDC equ 80090358h +SEC_E_ISSUING_CA_UNTRUSTED_KDC equ 80090359h +SEC_E_KDC_CERT_EXPIRED equ 8009035Ah +SEC_E_KDC_CERT_REVOKED equ 8009035Bh +SEC_I_SIGNATURE_NEEDED equ 0009035Ch +SEC_E_INVALID_PARAMETER equ 8009035Dh +SEC_E_DELEGATION_POLICY equ 8009035Eh +SEC_E_POLICY_NLTM_ONLY equ 8009035Fh +SEC_I_NO_RENEGOTIATION equ 00090360h +SEC_E_NO_SPM equ SEC_E_INTERNAL_ERROR +SEC_E_NOT_SUPPORTED equ SEC_E_UNSUPPORTED_FUNCTION +CRYPT_E_MSG_ERROR equ 80091001h +CRYPT_E_UNKNOWN_ALGO equ 80091002h +CRYPT_E_OID_FORMAT equ 80091003h +CRYPT_E_INVALID_MSG_TYPE equ 80091004h +CRYPT_E_UNEXPECTED_ENCODING equ 80091005h +CRYPT_E_AUTH_ATTR_MISSING equ 80091006h +CRYPT_E_HASH_VALUE equ 80091007h +CRYPT_E_INVALID_INDEX equ 80091008h +CRYPT_E_ALREADY_DECRYPTED equ 80091009h +CRYPT_E_NOT_DECRYPTED equ 8009100Ah +CRYPT_E_RECIPIENT_NOT_FOUND equ 8009100Bh +CRYPT_E_CONTROL_TYPE equ 8009100Ch +CRYPT_E_ISSUER_SERIALNUMBER equ 8009100Dh +CRYPT_E_SIGNER_NOT_FOUND equ 8009100Eh +CRYPT_E_ATTRIBUTES_MISSING equ 8009100Fh +CRYPT_E_STREAM_MSG_NOT_READY equ 80091010h +CRYPT_I_NEW_PROTECTION_REQUIRED equ 00091012h +CRYPT_E_BAD_LEN equ 80092001h +CRYPT_E_BAD_ENCODE equ 80092002h +CRYPT_E_FILE_ERROR equ 80092003h +CRYPT_E_NOT_FOUND equ 80092004h +CRYPT_E_EXISTS equ 80092005h +CRYPT_E_NO_PROVIDER equ 80092006h +CRYPT_E_SELF_SIGNED equ 80092007h +CRYPT_E_DELETED_PREV equ 80092008h +CRYPT_E_NO_MATCH equ 80092009h +CRYPT_E_UNEXPECTED_MSG_TYPE equ 8009200Ah +CRYPT_E_NO_KEY_PROPERTY equ 8009200Bh +CRYPT_E_NO_DECRYPT_CERT equ 8009200Ch +CRYPT_E_BAD_MSG equ 8009200Dh +CRYPT_E_NO_SIGNER equ 8009200Eh +CRYPT_E_PENDING_CLOSE equ 8009200Fh +CRYPT_E_REVOKED equ 80092010h +CRYPT_E_NO_REVOCATION_DLL equ 80092011h +CRYPT_E_NO_REVOCATION_CHECK equ 80092012h +CRYPT_E_REVOCATION_OFFLINE equ 80092013h +CRYPT_E_INVALID_NUMERIC_STRING equ 80092020h +CRYPT_E_INVALID_IA5_STRING equ 80092022h +CRYPT_E_INVALID_X500_STRING equ 80092023h +CRYPT_E_NOT_CHAR_STRING equ 80092024h +CRYPT_E_FILERESIZED equ 80092025h +CRYPT_E_SECURITY_SETTINGS equ 80092026h +CRYPT_E_NO_VERIFY_USAGE_DLL equ 80092027h +CRYPT_E_NO_VERIFY_USAGE_CHECK equ 80092028h +CRYPT_E_VERIFY_USAGE_OFFLINE equ 80092029h +CRYPT_E_NOT_IN_CTL equ 8009202Ah +CRYPT_E_NO_TRUSTED_SIGNER equ 8009202Bh +CRYPT_E_MISSING_PUBKEY_PARA equ 8009202Ch +CRYPT_E_OSS_ERROR equ 80093000h +OSS_MORE_BUF equ 80093001h +OSS_NEGATIVE_UINTEGER equ 80093002h +OSS_PDU_RANGE equ 80093003h +OSS_MORE_INPUT equ 80093004h +OSS_DATA_ERROR equ 80093005h +OSS_BAD_ARG equ 80093006h +OSS_BAD_VERSION equ 80093007h +OSS_OUT_MEMORY equ 80093008h +OSS_PDU_MISMATCH equ 80093009h +OSS_LIMITED equ 8009300Ah +OSS_BAD_PTR equ 8009300Bh +OSS_BAD_TIME equ 8009300Ch +OSS_INDEFINITE_NOT_SUPPORTED equ 8009300Dh +OSS_MEM_ERROR equ 8009300Eh +OSS_BAD_TABLE equ 8009300Fh +OSS_TOO_LONG equ 80093010h +OSS_CONSTRAINT_VIOLATED equ 80093011h +OSS_FATAL_ERROR equ 80093012h +OSS_ACCESS_SERIALIZATION_ERROR equ 80093013h +OSS_NULL_TBL equ 80093014h +OSS_NULL_FCN equ 80093015h +OSS_BAD_ENCRULES equ 80093016h +OSS_UNAVAIL_ENCRULES equ 80093017h +OSS_CANT_OPEN_TRACE_WINDOW equ 80093018h +OSS_UNIMPLEMENTED equ 80093019h +OSS_OID_DLL_NOT_LINKED equ 8009301Ah +OSS_CANT_OPEN_TRACE_FILE equ 8009301Bh +OSS_TRACE_FILE_ALREADY_OPEN equ 8009301Ch +OSS_TABLE_MISMATCH equ 8009301Dh +OSS_TYPE_NOT_SUPPORTED equ 8009301Eh +OSS_REAL_DLL_NOT_LINKED equ 8009301Fh +OSS_REAL_CODE_NOT_LINKED equ 80093020h +OSS_OUT_OF_RANGE equ 80093021h +OSS_COPIER_DLL_NOT_LINKED equ 80093022h +OSS_CONSTRAINT_DLL_NOT_LINKED equ 80093023h +OSS_COMPARATOR_DLL_NOT_LINKED equ 80093024h +OSS_COMPARATOR_CODE_NOT_LINKED equ 80093025h +OSS_MEM_MGR_DLL_NOT_LINKED equ 80093026h +OSS_PDV_DLL_NOT_LINKED equ 80093027h +OSS_PDV_CODE_NOT_LINKED equ 80093028h +OSS_API_DLL_NOT_LINKED equ 80093029h +OSS_BERDER_DLL_NOT_LINKED equ 8009302Ah +OSS_PER_DLL_NOT_LINKED equ 8009302Bh +OSS_OPEN_TYPE_ERROR equ 8009302Ch +OSS_MUTEX_NOT_CREATED equ 8009302Dh +OSS_CANT_CLOSE_TRACE_FILE equ 8009302Eh +CRYPT_E_ASN1_ERROR equ 80093100h +CRYPT_E_ASN1_INTERNAL equ 80093101h +CRYPT_E_ASN1_EOD equ 80093102h +CRYPT_E_ASN1_CORRUPT equ 80093103h +CRYPT_E_ASN1_LARGE equ 80093104h +CRYPT_E_ASN1_CONSTRAINT equ 80093105h +CRYPT_E_ASN1_MEMORY equ 80093106h +CRYPT_E_ASN1_OVERFLOW equ 80093107h +CRYPT_E_ASN1_BADPDU equ 80093108h +CRYPT_E_ASN1_BADARGS equ 80093109h +CRYPT_E_ASN1_BADREAL equ 8009310Ah +CRYPT_E_ASN1_BADTAG equ 8009310Bh +CRYPT_E_ASN1_CHOICE equ 8009310Ch +CRYPT_E_ASN1_RULE equ 8009310Dh +CRYPT_E_ASN1_UTF8 equ 8009310Eh +CRYPT_E_ASN1_PDU_TYPE equ 80093133h +CRYPT_E_ASN1_NYI equ 80093134h +CRYPT_E_ASN1_EXTENDED equ 80093201h +CRYPT_E_ASN1_NOEOD equ 80093202h +CERTSRV_E_BAD_REQUESTSUBJECT equ 80094001h +CERTSRV_E_NO_REQUEST equ 80094002h +CERTSRV_E_BAD_REQUESTSTATUS equ 80094003h +CERTSRV_E_PROPERTY_EMPTY equ 80094004h +CERTSRV_E_SERVER_SUSPENDED equ 80094006h +CERTSRV_E_ENCODING_LENGTH equ 80094007h +CERTSRV_E_ROLECONFLICT equ 80094008h +CERTSRV_E_RESTRICTEDOFFICER equ 80094009h +CERTSRV_E_NO_VALID_KRA equ 8009400Bh +CERTSRV_E_NO_CAADMIN_DEFINED equ 8009400Dh +CERTSRV_E_NO_DB_SESSIONS equ 8009400Fh +CERTSRV_E_ALIGNMENT_FAULT equ 80094010h +CERTSRV_E_ENROLL_DENIED equ 80094011h +CERTSRV_E_TEMPLATE_DENIED equ 80094012h +CERTSRV_E_UNSUPPORTED_CERT_TYPE equ 80094800h +CERTSRV_E_NO_CERT_TYPE equ 80094801h +CERTSRV_E_TEMPLATE_CONFLICT equ 80094802h +CERTSRV_E_ARCHIVED_KEY_REQUIRED equ 80094804h +CERTSRV_E_SMIME_REQUIRED equ 80094805h +CERTSRV_E_BAD_RENEWAL_SUBJECT equ 80094806h +CERTSRV_E_BAD_TEMPLATE_VERSION equ 80094807h +CERTSRV_E_SIGNATURE_COUNT equ 8009480Ah +CERTSRV_E_SIGNATURE_REJECTED equ 8009480Bh +CERTSRV_E_SUBJECT_UPN_REQUIRED equ 8009480Dh +CERTSRV_E_SUBJECT_DNS_REQUIRED equ 8009480Fh +CERTSRV_E_KEY_LENGTH equ 80094811h +CERTSRV_E_UNKNOWN_CERT_TYPE equ 80094813h +CERTSRV_E_CERT_TYPE_OVERLAP equ 80094814h +CERTSRV_E_TOO_MANY_SIGNATURES equ 80094815h +XENROLL_E_KEY_NOT_EXPORTABLE equ 80095000h +XENROLL_E_CANNOT_ADD_ROOT_CERT equ 80095001h +TRUST_E_SYSTEM_ERROR equ 80096001h +TRUST_E_NO_SIGNER_CERT equ 80096002h +TRUST_E_COUNTER_SIGNER equ 80096003h +TRUST_E_CERT_SIGNATURE equ 80096004h +TRUST_E_TIME_STAMP equ 80096005h +TRUST_E_BAD_DIGEST equ 80096010h +TRUST_E_BASIC_CONSTRAINTS equ 80096019h +TRUST_E_FINANCIAL_CRITERIA equ 8009601Eh +MSSIPOTF_E_OUTOFMEMRANGE equ 80097001h +MSSIPOTF_E_CANTGETOBJECT equ 80097002h +MSSIPOTF_E_NOHEADTABLE equ 80097003h +MSSIPOTF_E_BAD_MAGICNUMBER equ 80097004h +MSSIPOTF_E_BAD_OFFSET_TABLE equ 80097005h +MSSIPOTF_E_TABLE_TAGORDER equ 80097006h +MSSIPOTF_E_TABLE_LONGWORD equ 80097007h +MSSIPOTF_E_TABLES_OVERLAP equ 80097009h +MSSIPOTF_E_TABLE_PADBYTES equ 8009700Ah +MSSIPOTF_E_FILETOOSMALL equ 8009700Bh +MSSIPOTF_E_TABLE_CHECKSUM equ 8009700Ch +MSSIPOTF_E_FILE_CHECKSUM equ 8009700Dh +MSSIPOTF_E_FAILED_POLICY equ 80097010h +MSSIPOTF_E_FAILED_HINTS_CHECK equ 80097011h +MSSIPOTF_E_NOT_OPENTYPE equ 80097012h +MSSIPOTF_E_FILE equ 80097013h +MSSIPOTF_E_CRYPT equ 80097014h +MSSIPOTF_E_BADVERSION equ 80097015h +MSSIPOTF_E_DSIG_STRUCTURE equ 80097016h +MSSIPOTF_E_PCONST_CHECK equ 80097017h +MSSIPOTF_E_STRUCTURE equ 80097018h +NTE_OP_OK equ 0 +TRUST_E_PROVIDER_UNKNOWN equ 800B0001h +TRUST_E_ACTION_UNKNOWN equ 800B0002h +TRUST_E_SUBJECT_FORM_UNKNOWN equ 800B0003h +TRUST_E_SUBJECT_NOT_TRUSTED equ 800B0004h +DIGSIG_E_ENCODE equ 800B0005h +DIGSIG_E_DECODE equ 800B0006h +DIGSIG_E_EXTENSIBILITY equ 800B0007h +DIGSIG_E_CRYPTO equ 800B0008h +PERSIST_E_SIZEDEFINITE equ 800B0009h +PERSIST_E_SIZEINDEFINITE equ 800B000Ah +PERSIST_E_NOTSELFSIZING equ 800B000Bh +TRUST_E_NOSIGNATURE equ 800B0100h +CERT_E_EXPIRED equ 800B0101h +CERT_E_VALIDITYPERIODNESTING equ 800B0102h +CERT_E_ROLE equ 800B0103h +CERT_E_PATHLENCONST equ 800B0104h +CERT_E_CRITICAL equ 800B0105h +CERT_E_PURPOSE equ 800B0106h +CERT_E_ISSUERCHAINING equ 800B0107h +CERT_E_MALFORMED equ 800B0108h +CERT_E_UNTRUSTEDROOT equ 800B0109h +CERT_E_CHAINING equ 800B010Ah +TRUST_E_FAIL equ 800B010Bh +CERT_E_REVOKED equ 800B010Ch +CERT_E_UNTRUSTEDTESTROOT equ 800B010Dh +CERT_E_REVOCATION_FAILURE equ 800B010Eh +CERT_E_CN_NO_MATCH equ 800B010Fh +CERT_E_WRONG_USAGE equ 800B0110h +TRUST_E_EXPLICIT_DISTRUST equ 800B0111h +CERT_E_UNTRUSTEDCA equ 800B0112h +CERT_E_INVALID_POLICY equ 800B0113h +CERT_E_INVALID_NAME equ 800B0114h +SPAPI_E_EXPECTED_SECTION_NAME equ 800F0000h +SPAPI_E_BAD_SECTION_NAME_LINE equ 800F0001h +SPAPI_E_SECTION_NAME_TOO_LONG equ 800F0002h +SPAPI_E_GENERAL_SYNTAX equ 800F0003h +SPAPI_E_WRONG_INF_STYLE equ 800F0100h +SPAPI_E_SECTION_NOT_FOUND equ 800F0101h +SPAPI_E_LINE_NOT_FOUND equ 800F0102h +SPAPI_E_NO_BACKUP equ 800F0103h +SPAPI_E_NO_ASSOCIATED_CLASS equ 800F0200h +SPAPI_E_CLASS_MISMATCH equ 800F0201h +SPAPI_E_DUPLICATE_FOUND equ 800F0202h +SPAPI_E_NO_DRIVER_SELECTED equ 800F0203h +SPAPI_E_KEY_DOES_NOT_EXIST equ 800F0204h +SPAPI_E_INVALID_DEVINST_NAME equ 800F0205h +SPAPI_E_INVALID_CLASS equ 800F0206h +SPAPI_E_DEVINST_ALREADY_EXISTS equ 800F0207h +SPAPI_E_DEVINFO_NOT_REGISTERED equ 800F0208h +SPAPI_E_INVALID_REG_PROPERTY equ 800F0209h +SPAPI_E_NO_INF equ 800F020Ah +SPAPI_E_NO_SUCH_DEVINST equ 800F020Bh +SPAPI_E_CANT_LOAD_CLASS_ICON equ 800F020Ch +SPAPI_E_INVALID_CLASS_INSTALLER equ 800F020Dh +SPAPI_E_DI_DO_DEFAULT equ 800F020Eh +SPAPI_E_DI_NOFILECOPY equ 800F020Fh +SPAPI_E_INVALID_HWPROFILE equ 800F0210h +SPAPI_E_NO_DEVICE_SELECTED equ 800F0211h +SPAPI_E_DEVINFO_LIST_LOCKED equ 800F0212h +SPAPI_E_DEVINFO_DATA_LOCKED equ 800F0213h +SPAPI_E_DI_BAD_PATH equ 800F0214h +SPAPI_E_NO_CLASSINSTALL_PARAMS equ 800F0215h +SPAPI_E_FILEQUEUE_LOCKED equ 800F0216h +SPAPI_E_BAD_SERVICE_INSTALLSECT equ 800F0217h +SPAPI_E_NO_CLASS_DRIVER_LIST equ 800F0218h +SPAPI_E_NO_ASSOCIATED_SERVICE equ 800F0219h +SPAPI_E_DEVICE_INTERFACE_ACTIVE equ 800F021Bh +SPAPI_E_NO_SUCH_INTERFACE_CLASS equ 800F021Eh +SPAPI_E_INVALID_MACHINENAME equ 800F0220h +SPAPI_E_REMOTE_COMM_FAILURE equ 800F0221h +SPAPI_E_MACHINE_UNAVAILABLE equ 800F0222h +SPAPI_E_NO_CONFIGMGR_SERVICES equ 800F0223h +SPAPI_E_INVALID_COINSTALLER equ 800F0227h +SPAPI_E_NO_COMPAT_DRIVERS equ 800F0228h +SPAPI_E_NO_DEVICE_ICON equ 800F0229h +SPAPI_E_INVALID_INF_LOGCONFIG equ 800F022Ah +SPAPI_E_DI_DONT_INSTALL equ 800F022Bh +SPAPI_E_INVALID_FILTER_DRIVER equ 800F022Ch +SPAPI_E_NON_WINDOWS_NT_DRIVER equ 800F022Dh +SPAPI_E_NON_WINDOWS_DRIVER equ 800F022Eh +SPAPI_E_NO_CATALOG_FOR_OEM_INF equ 800F022Fh +SPAPI_E_NOT_DISABLEABLE equ 800F0231h +SPAPI_E_CANT_REMOVE_DEVINST equ 800F0232h +SPAPI_E_INVALID_TARGET equ 800F0233h +SPAPI_E_DRIVER_NONNATIVE equ 800F0234h +SPAPI_E_IN_WOW64 equ 800F0235h +SPAPI_E_INCORRECTLY_COPIED_INF equ 800F0237h +SPAPI_E_SCE_DISABLED equ 800F0238h +SPAPI_E_UNKNOWN_EXCEPTION equ 800F0239h +SPAPI_E_PNP_REGISTRY_ERROR equ 800F023Ah +SPAPI_E_INF_IN_USE_BY_DEVICES equ 800F023Dh +SPAPI_E_DI_FUNCTION_OBSOLETE equ 800F023Eh +SPAPI_E_NO_AUTHENTICODE_CATALOG equ 800F023Fh +SPAPI_E_AUTHENTICODE_DISALLOWED equ 800F0240h +SPAPI_E_DRIVER_STORE_ADD_FAILED equ 800F0247h +SPAPI_E_DEVICE_INSTALL_BLOCKED equ 800F0248h +SPAPI_E_DRIVER_INSTALL_BLOCKED equ 800F0249h +SPAPI_E_WRONG_INF_TYPE equ 800F024Ah +SPAPI_E_ERROR_NOT_INSTALLED equ 800F1000h +SCARD_S_SUCCESS equ NO_ERROR +SCARD_F_INTERNAL_ERROR equ 80100001h +SCARD_E_CANCELLED equ 80100002h +SCARD_E_INVALID_HANDLE equ 80100003h +SCARD_E_INVALID_PARAMETER equ 80100004h +SCARD_E_INVALID_TARGET equ 80100005h +SCARD_E_NO_MEMORY equ 80100006h +SCARD_F_WAITED_TOO_LONG equ 80100007h +SCARD_E_INSUFFICIENT_BUFFER equ 80100008h +SCARD_E_UNKNOWN_READER equ 80100009h +SCARD_E_TIMEOUT equ 8010000Ah +SCARD_E_SHARING_VIOLATION equ 8010000Bh +SCARD_E_NO_SMARTCARD equ 8010000Ch +SCARD_E_UNKNOWN_CARD equ 8010000Dh +SCARD_E_CANT_DISPOSE equ 8010000Eh +SCARD_E_PROTO_MISMATCH equ 8010000Fh +SCARD_E_NOT_READY equ 80100010h +SCARD_E_INVALID_VALUE equ 80100011h +SCARD_E_SYSTEM_CANCELLED equ 80100012h +SCARD_F_COMM_ERROR equ 80100013h +SCARD_F_UNKNOWN_ERROR equ 80100014h +SCARD_E_INVALID_ATR equ 80100015h +SCARD_E_NOT_TRANSACTED equ 80100016h +SCARD_E_READER_UNAVAILABLE equ 80100017h +SCARD_P_SHUTDOWN equ 80100018h +SCARD_E_PCI_TOO_SMALL equ 80100019h +SCARD_E_READER_UNSUPPORTED equ 8010001Ah +SCARD_E_DUPLICATE_READER equ 8010001Bh +SCARD_E_CARD_UNSUPPORTED equ 8010001Ch +SCARD_E_NO_SERVICE equ 8010001Dh +SCARD_E_SERVICE_STOPPED equ 8010001Eh +SCARD_E_UNEXPECTED equ 8010001Fh +SCARD_E_ICC_INSTALLATION equ 80100020h +SCARD_E_ICC_CREATEORDER equ 80100021h +SCARD_E_UNSUPPORTED_FEATURE equ 80100022h +SCARD_E_DIR_NOT_FOUND equ 80100023h +SCARD_E_FILE_NOT_FOUND equ 80100024h +SCARD_E_NO_DIR equ 80100025h +SCARD_E_NO_FILE equ 80100026h +SCARD_E_NO_ACCESS equ 80100027h +SCARD_E_WRITE_TOO_MANY equ 80100028h +SCARD_E_BAD_SEEK equ 80100029h +SCARD_E_INVALID_CHV equ 8010002Ah +SCARD_E_UNKNOWN_RES_MNG equ 8010002Bh +SCARD_E_NO_SUCH_CERTIFICATE equ 8010002Ch +SCARD_E_CERTIFICATE_UNAVAILABLE equ 8010002Dh +SCARD_E_NO_READERS_AVAILABLE equ 8010002Eh +SCARD_E_COMM_DATA_LOST equ 8010002Fh +SCARD_E_NO_KEY_CONTAINER equ 80100030h +SCARD_E_SERVER_TOO_BUSY equ 80100031h +SCARD_W_UNSUPPORTED_CARD equ 80100065h +SCARD_W_UNRESPONSIVE_CARD equ 80100066h +SCARD_W_UNPOWERED_CARD equ 80100067h +SCARD_W_RESET_CARD equ 80100068h +SCARD_W_REMOVED_CARD equ 80100069h +SCARD_W_SECURITY_VIOLATION equ 8010006Ah +SCARD_W_WRONG_CHV equ 8010006Bh +SCARD_W_CHV_BLOCKED equ 8010006Ch +SCARD_W_EOF equ 8010006Dh +SCARD_W_CANCELLED_BY_USER equ 8010006Eh +SCARD_W_CARD_NOT_AUTHENTICATED equ 8010006Fh +SCARD_W_CACHE_ITEM_NOT_FOUND equ 80100070h +SCARD_W_CACHE_ITEM_STALE equ 80100071h +SCARD_W_CACHE_ITEM_TOO_BIG equ 80100072h +COMADMIN_E_OBJECTERRORS equ 80110401h +COMADMIN_E_OBJECTINVALID equ 80110402h +COMADMIN_E_KEYMISSING equ 80110403h +COMADMIN_E_ALREADYINSTALLED equ 80110404h +COMADMIN_E_APP_FILE_WRITEFAIL equ 80110407h +COMADMIN_E_APP_FILE_READFAIL equ 80110408h +COMADMIN_E_APP_FILE_VERSION equ 80110409h +COMADMIN_E_BADPATH equ 8011040Ah +COMADMIN_E_APPLICATIONEXISTS equ 8011040Bh +COMADMIN_E_ROLEEXISTS equ 8011040Ch +COMADMIN_E_CANTCOPYFILE equ 8011040Dh +COMADMIN_E_NOUSER equ 8011040Fh +COMADMIN_E_INVALIDUSERIDS equ 80110410h +COMADMIN_E_NOREGISTRYCLSID equ 80110411h +COMADMIN_E_BADREGISTRYPROGID equ 80110412h +COMADMIN_E_AUTHENTICATIONLEVEL equ 80110413h +COMADMIN_E_USERPASSWDNOTVALID equ 80110414h +COMADMIN_E_CLSIDORIIDMISMATCH equ 80110418h +COMADMIN_E_REMOTEINTERFACE equ 80110419h +COMADMIN_E_DLLREGISTERSERVER equ 8011041Ah +COMADMIN_E_NOSERVERSHARE equ 8011041Bh +COMADMIN_E_DLLLOADFAILED equ 8011041Dh +COMADMIN_E_BADREGISTRYLIBID equ 8011041Eh +COMADMIN_E_APPDIRNOTFOUND equ 8011041Fh +COMADMIN_E_REGISTRARFAILED equ 80110423h +COMADMIN_E_COMPFILE_LOADDLLFAIL equ 80110425h +COMADMIN_E_COMPFILE_GETCLASSOBJ equ 80110426h +COMADMIN_E_COMPFILE_BADTLB equ 80110428h +COMADMIN_E_NOTCHANGEABLE equ 8011042Ah +COMADMIN_E_NOTDELETEABLE equ 8011042Bh +COMADMIN_E_SESSION equ 8011042Ch +COMADMIN_E_COMP_MOVE_LOCKED equ 8011042Dh +COMADMIN_E_COMP_MOVE_BAD_DEST equ 8011042Eh +COMADMIN_E_REGISTERTLB equ 80110430h +COMADMIN_E_SYSTEMAPP equ 80110433h +COMADMIN_E_COMPFILE_NOREGISTRAR equ 80110434h +COMADMIN_E_COREQCOMPINSTALLED equ 80110435h +COMADMIN_E_SERVICENOTINSTALLED equ 80110436h +COMADMIN_E_PROPERTYSAVEFAILED equ 80110437h +COMADMIN_E_OBJECTEXISTS equ 80110438h +COMADMIN_E_COMPONENTEXISTS equ 80110439h +COMADMIN_E_REGFILE_CORRUPT equ 8011043Bh +COMADMIN_E_PROPERTY_OVERFLOW equ 8011043Ch +COMADMIN_E_NOTINREGISTRY equ 8011043Eh +COMADMIN_E_OBJECTNOTPOOLABLE equ 8011043Fh +COMADMIN_E_APPLID_MATCHES_CLSID equ 80110446h +COMADMIN_E_ROLE_DOES_NOT_EXIST equ 80110447h +COMADMIN_E_CAN_NOT_START_APP equ 8011044Bh +COMADMIN_E_BASE_PARTITION_ONLY equ 80110450h +COMADMIN_E_START_APP_DISABLED equ 80110451h +COMADMIN_E_CAT_PARTITION_IN_USE equ 80110459h +COMADMIN_E_REGDB_NOTINITIALIZED equ 80110472h +COMADMIN_E_REGDB_NOTOPEN equ 80110473h +COMADMIN_E_REGDB_SYSTEMERR equ 80110474h +COMADMIN_E_REGDB_ALREADYRUNNING equ 80110475h +COMADMIN_E_MIG_SCHEMANOTFOUND equ 80110481h +COMADMIN_E_CAT_BITNESSMISMATCH equ 80110482h +COMADMIN_E_CAT_WRONGAPPBITNESS equ 80110484h +COMADMIN_E_CAT_SERVERFAULT equ 80110486h +COMQC_E_APPLICATION_NOT_QUEUED equ 80110600h +COMQC_E_NO_QUEUEABLE_INTERFACES equ 80110601h +COMQC_E_NO_IPERSISTSTREAM equ 80110603h +COMQC_E_BAD_MESSAGE equ 80110604h +COMQC_E_UNAUTHENTICATED equ 80110605h +COMQC_E_UNTRUSTED_ENQUEUER equ 80110606h +MSDTC_E_DUPLICATE_RESOURCE equ 80110701h +COMADMIN_E_APP_NOT_RUNNING equ 8011080Ah +COMADMIN_E_INVALID_PARTITION equ 8011080Bh +COMADMIN_E_USER_IN_SET equ 8011080Eh +COMADMIN_E_PROGIDINUSEBYCLSID equ 80110815h +COMADMIN_E_PARTITION_MSI_ONLY equ 80110819h +COMADMIN_E_COMP_MOVE_SOURCE equ 8011081Ch +COMADMIN_E_COMP_MOVE_DEST equ 8011081Dh +COMADMIN_E_COMP_MOVE_PRIVATE equ 8011081Eh +COMADMIN_E_PRIVATE_ACCESSDENIED equ 80110821h +COMADMIN_E_SAFERINVALID equ 80110822h +COMADMIN_E_PARTITIONS_DISABLED equ 80110824h +ERROR_FLT_IO_COMPLETE equ 001F0001h +ERROR_FLT_NO_HANDLER_DEFINED equ 801F0001h +ERROR_FLT_DISALLOW_FAST_IO equ 801F0004h +ERROR_FLT_INVALID_NAME_REQUEST equ 801F0005h +ERROR_FLT_NOT_INITIALIZED equ 801F0007h +ERROR_FLT_FILTER_NOT_READY equ 801F0008h +ERROR_FLT_INTERNAL_ERROR equ 801F000Ah +ERROR_FLT_DELETING_OBJECT equ 801F000Bh +ERROR_FLT_MUST_BE_NONPAGED_POOL equ 801F000Ch +ERROR_FLT_DUPLICATE_ENTRY equ 801F000Dh +ERROR_FLT_CBDQ_DISABLED equ 801F000Eh +ERROR_FLT_DO_NOT_ATTACH equ 801F000Fh +ERROR_FLT_DO_NOT_DETACH equ 801F0010h +ERROR_FLT_FILTER_NOT_FOUND equ 801F0013h +ERROR_FLT_VOLUME_NOT_FOUND equ 801F0014h +ERROR_FLT_INSTANCE_NOT_FOUND equ 801F0015h +ERROR_FLT_NAME_CACHE_MISS equ 801F0018h +ERROR_FLT_NO_DEVICE_OBJECT equ 801F0019h +ERROR_FLT_ALREADY_ENLISTED equ 801F001Bh +ERROR_FLT_NO_WAITER_FOR_REPLY equ 801F0020h +DWM_E_COMPOSITIONDISABLED equ 80263001h +DWM_E_REMOTING_NOT_SUPPORTED equ 80263002h +DWM_E_NOT_QUEUING_PRESENTS equ 80263004h +ERROR_MONITOR_NO_DESCRIPTOR equ 80261001h +ERROR_GRAPHICS_PRESENT_OCCLUDED equ 0C0262006h +ERROR_GRAPHICS_PRESENT_DENIED equ 0C0262007h +ERROR_GRAPHICS_DRIVER_MISMATCH equ 0C0262009h +ERROR_GRAPHICS_NO_VIDEO_MEMORY equ 0C0262100h +ERROR_GRAPHICS_CANT_LOCK_MEMORY equ 0C0262101h +ERROR_GRAPHICS_ALLOCATION_BUSY equ 0C0262102h +ERROR_GRAPHICS_TRY_AGAIN_LATER equ 0C0262104h +ERROR_GRAPHICS_TRY_AGAIN_NOW equ 0C0262105h +ERROR_GRAPHICS_INVALID_VIDPN equ 0C0262303h +ERROR_GRAPHICS_MODE_NOT_PINNED equ 00262307h +ERROR_GRAPHICS_STALE_MODESET equ 0C0262320h +ERROR_GRAPHICS_NO_VIDPNMGR equ 0C0262335h +ERROR_GRAPHICS_NO_ACTIVE_VIDPN equ 0C0262336h +ERROR_GRAPHICS_INVALID_STRIDE equ 0C026233Ch +ERROR_GRAPHICS_DATASET_IS_EMPTY equ 0026234Bh +ERROR_GRAPHICS_START_DEFERRED equ 4026243Ah +ERROR_GRAPHICS_PVP_HFS_FAILED equ 0C0262511h +ERROR_GRAPHICS_OPM_INVALID_SRM equ 0C0262512h +ERROR_GRAPHICS_INVALID_POINTER equ 0C02625E4h +ERROR_GRAPHICS_INTERNAL_ERROR equ 0C02625E7h +TPM_E_ERROR_MASK equ 80280000h +TPM_E_AUTHFAIL equ 80280001h +TPM_E_BADINDEX equ 80280002h +TPM_E_BAD_PARAMETER equ 80280003h +TPM_E_AUDITFAILURE equ 80280004h +TPM_E_CLEAR_DISABLED equ 80280005h +TPM_E_DEACTIVATED equ 80280006h +TPM_E_DISABLED equ 80280007h +TPM_E_DISABLED_CMD equ 80280008h +TPM_E_FAIL equ 80280009h +TPM_E_BAD_ORDINAL equ 8028000Ah +TPM_E_INSTALL_DISABLED equ 8028000Bh +TPM_E_INVALID_KEYHANDLE equ 8028000Ch +TPM_E_KEYNOTFOUND equ 8028000Dh +TPM_E_INAPPROPRIATE_ENC equ 8028000Eh +TPM_E_MIGRATEFAIL equ 8028000Fh +TPM_E_INVALID_PCR_INFO equ 80280010h +TPM_E_NOSPACE equ 80280011h +TPM_E_NOSRK equ 80280012h +TPM_E_NOTSEALED_BLOB equ 80280013h +TPM_E_OWNER_SET equ 80280014h +TPM_E_RESOURCES equ 80280015h +TPM_E_SHORTRANDOM equ 80280016h +TPM_E_SIZE equ 80280017h +TPM_E_WRONGPCRVAL equ 80280018h +TPM_E_BAD_PARAM_SIZE equ 80280019h +TPM_E_SHA_THREAD equ 8028001Ah +TPM_E_SHA_ERROR equ 8028001Bh +TPM_E_FAILEDSELFTEST equ 8028001Ch +TPM_E_AUTH2FAIL equ 8028001Dh +TPM_E_BADTAG equ 8028001Eh +TPM_E_IOERROR equ 8028001Fh +TPM_E_ENCRYPT_ERROR equ 80280020h +TPM_E_DECRYPT_ERROR equ 80280021h +TPM_E_INVALID_AUTHHANDLE equ 80280022h +TPM_E_NO_ENDORSEMENT equ 80280023h +TPM_E_INVALID_KEYUSAGE equ 80280024h +TPM_E_WRONG_ENTITYTYPE equ 80280025h +TPM_E_INVALID_POSTINIT equ 80280026h +TPM_E_INAPPROPRIATE_SIG equ 80280027h +TPM_E_BAD_KEY_PROPERTY equ 80280028h +TPM_E_BAD_MIGRATION equ 80280029h +TPM_E_BAD_SCHEME equ 8028002Ah +TPM_E_BAD_DATASIZE equ 8028002Bh +TPM_E_BAD_MODE equ 8028002Ch +TPM_E_BAD_PRESENCE equ 8028002Dh +TPM_E_BAD_VERSION equ 8028002Eh +TPM_E_NO_WRAP_TRANSPORT equ 8028002Fh +TPM_E_AUDITFAIL_UNSUCCESSFUL equ 80280030h +TPM_E_AUDITFAIL_SUCCESSFUL equ 80280031h +TPM_E_NOTRESETABLE equ 80280032h +TPM_E_NOTLOCAL equ 80280033h +TPM_E_BAD_TYPE equ 80280034h +TPM_E_INVALID_RESOURCE equ 80280035h +TPM_E_NOTFIPS equ 80280036h +TPM_E_INVALID_FAMILY equ 80280037h +TPM_E_NO_NV_PERMISSION equ 80280038h +TPM_E_REQUIRES_SIGN equ 80280039h +TPM_E_KEY_NOTSUPPORTED equ 8028003Ah +TPM_E_AUTH_CONFLICT equ 8028003Bh +TPM_E_AREA_LOCKED equ 8028003Ch +TPM_E_BAD_LOCALITY equ 8028003Dh +TPM_E_READ_ONLY equ 8028003Eh +TPM_E_PER_NOWRITE equ 8028003Fh +TPM_E_FAMILYCOUNT equ 80280040h +TPM_E_WRITE_LOCKED equ 80280041h +TPM_E_BAD_ATTRIBUTES equ 80280042h +TPM_E_INVALID_STRUCTURE equ 80280043h +TPM_E_KEY_OWNER_CONTROL equ 80280044h +TPM_E_BAD_COUNTER equ 80280045h +TPM_E_NOT_FULLWRITE equ 80280046h +TPM_E_CONTEXT_GAP equ 80280047h +TPM_E_MAXNVWRITES equ 80280048h +TPM_E_NOOPERATOR equ 80280049h +TPM_E_RESOURCEMISSING equ 8028004Ah +TPM_E_DELEGATE_LOCK equ 8028004Bh +TPM_E_DELEGATE_FAMILY equ 8028004Ch +TPM_E_DELEGATE_ADMIN equ 8028004Dh +TPM_E_TRANSPORT_NOTEXCLUSIVE equ 8028004Eh +TPM_E_OWNER_CONTROL equ 8028004Fh +TPM_E_DAA_RESOURCES equ 80280050h +TPM_E_DAA_INPUT_DATA0 equ 80280051h +TPM_E_DAA_INPUT_DATA1 equ 80280052h +TPM_E_DAA_ISSUER_SETTINGS equ 80280053h +TPM_E_DAA_TPM_SETTINGS equ 80280054h +TPM_E_DAA_STAGE equ 80280055h +TPM_E_DAA_ISSUER_VALIDITY equ 80280056h +TPM_E_DAA_WRONG_W equ 80280057h +TPM_E_BAD_HANDLE equ 80280058h +TPM_E_BAD_DELEGATE equ 80280059h +TPM_E_BADCONTEXT equ 8028005Ah +TPM_E_TOOMANYCONTEXTS equ 8028005Bh +TPM_E_MA_TICKET_SIGNATURE equ 8028005Ch +TPM_E_MA_DESTINATION equ 8028005Dh +TPM_E_MA_SOURCE equ 8028005Eh +TPM_E_MA_AUTHORITY equ 8028005Fh +TPM_E_PERMANENTEK equ 80280061h +TPM_E_BAD_SIGNATURE equ 80280062h +TPM_E_NOCONTEXTSPACE equ 80280063h +TPM_E_COMMAND_BLOCKED equ 80280400h +TPM_E_INVALID_HANDLE equ 80280401h +TPM_E_DUPLICATE_VHANDLE equ 80280402h +TPM_E_EMBEDDED_COMMAND_BLOCKED equ 80280403h +TPM_E_RETRY equ 80280800h +TPM_E_NEEDS_SELFTEST equ 80280801h +TPM_E_DOING_SELFTEST equ 80280802h +TPM_E_DEFEND_LOCK_RUNNING equ 80280803h +TBS_E_INTERNAL_ERROR equ 80284001h +TBS_E_BAD_PARAMETER equ 80284002h +TBS_E_INVALID_OUTPUT_POINTER equ 80284003h +TBS_E_INVALID_CONTEXT equ 80284004h +TBS_E_INSUFFICIENT_BUFFER equ 80284005h +TBS_E_IOERROR equ 80284006h +TBS_E_INVALID_CONTEXT_PARAM equ 80284007h +TBS_E_SERVICE_NOT_RUNNING equ 80284008h +TBS_E_TOO_MANY_TBS_CONTEXTS equ 80284009h +TBS_E_TOO_MANY_RESOURCES equ 8028400Ah +TBS_E_SERVICE_START_PENDING equ 8028400Bh +TBS_E_PPI_NOT_SUPPORTED equ 8028400Ch +TBS_E_COMMAND_CANCELED equ 8028400Dh +TBS_E_BUFFER_TOO_LARGE equ 8028400Eh +TBS_E_TPM_NOT_FOUND equ 8028400Fh +TBS_E_SERVICE_DISABLED equ 80284010h +TPMAPI_E_INVALID_STATE equ 80290100h +TPMAPI_E_NOT_ENOUGH_DATA equ 80290101h +TPMAPI_E_TOO_MUCH_DATA equ 80290102h +TPMAPI_E_INVALID_OUTPUT_POINTER equ 80290103h +TPMAPI_E_INVALID_PARAMETER equ 80290104h +TPMAPI_E_OUT_OF_MEMORY equ 80290105h +TPMAPI_E_BUFFER_TOO_SMALL equ 80290106h +TPMAPI_E_INTERNAL_ERROR equ 80290107h +TPMAPI_E_ACCESS_DENIED equ 80290108h +TPMAPI_E_AUTHORIZATION_FAILED equ 80290109h +TPMAPI_E_INVALID_CONTEXT_HANDLE equ 8029010Ah +TPMAPI_E_TPM_COMMAND_ERROR equ 8029010Ch +TPMAPI_E_MESSAGE_TOO_LARGE equ 8029010Dh +TPMAPI_E_INVALID_ENCODING equ 8029010Eh +TPMAPI_E_INVALID_KEY_SIZE equ 8029010Fh +TPMAPI_E_ENCRYPTION_FAILED equ 80290110h +TPMAPI_E_INVALID_KEY_PARAMS equ 80290111h +TPMAPI_E_INVALID_PCR_INDEX equ 80290113h +TPMAPI_E_INVALID_DELEGATE_BLOB equ 80290114h +TPMAPI_E_INVALID_CONTEXT_PARAMS equ 80290115h +TPMAPI_E_INVALID_KEY_BLOB equ 80290116h +TPMAPI_E_INVALID_PCR_DATA equ 80290117h +TPMAPI_E_INVALID_OWNER_AUTH equ 80290118h +TPMAPI_E_FIPS_RNG_CHECK_FAILED equ 80290119h +TBSIMP_E_BUFFER_TOO_SMALL equ 80290200h +TBSIMP_E_CLEANUP_FAILED equ 80290201h +TBSIMP_E_INVALID_CONTEXT_HANDLE equ 80290202h +TBSIMP_E_INVALID_CONTEXT_PARAM equ 80290203h +TBSIMP_E_TPM_ERROR equ 80290204h +TBSIMP_E_HASH_BAD_KEY equ 80290205h +TBSIMP_E_DUPLICATE_VHANDLE equ 80290206h +TBSIMP_E_INVALID_OUTPUT_POINTER equ 80290207h +TBSIMP_E_INVALID_PARAMETER equ 80290208h +TBSIMP_E_RPC_INIT_FAILED equ 80290209h +TBSIMP_E_SCHEDULER_NOT_RUNNING equ 8029020Ah +TBSIMP_E_COMMAND_CANCELED equ 8029020Bh +TBSIMP_E_OUT_OF_MEMORY equ 8029020Ch +TBSIMP_E_LIST_NO_MORE_ITEMS equ 8029020Dh +TBSIMP_E_LIST_NOT_FOUND equ 8029020Eh +TBSIMP_E_NOT_ENOUGH_SPACE equ 8029020Fh +TBSIMP_E_COMMAND_FAILED equ 80290211h +TBSIMP_E_UNKNOWN_ORDINAL equ 80290212h +TBSIMP_E_RESOURCE_EXPIRED equ 80290213h +TBSIMP_E_INVALID_RESOURCE equ 80290214h +TBSIMP_E_NOTHING_TO_UNLOAD equ 80290215h +TBSIMP_E_HASH_TABLE_FULL equ 80290216h +TBSIMP_E_TOO_MANY_TBS_CONTEXTS equ 80290217h +TBSIMP_E_TOO_MANY_RESOURCES equ 80290218h +TBSIMP_E_PPI_NOT_SUPPORTED equ 80290219h +TBSIMP_E_TPM_INCOMPATIBLE equ 8029021Ah +TPM_E_PPI_ACPI_FAILURE equ 80290300h +TPM_E_PPI_USER_ABORT equ 80290301h +TPM_E_PPI_BIOS_FAILURE equ 80290302h +TPM_E_PPI_NOT_SUPPORTED equ 80290303h +PLA_E_DCS_NOT_FOUND equ 80300002h +PLA_E_DCS_IN_USE equ 803000AAh +PLA_E_TOO_MANY_FOLDERS equ 80300045h +PLA_E_NO_MIN_DISK equ 80300070h +PLA_E_DCS_ALREADY_EXISTS equ 803000B7h +PLA_S_PROPERTY_IGNORED equ 00300100h +PLA_E_PROPERTY_CONFLICT equ 80300101h +PLA_E_DCS_SINGLETON_REQUIRED equ 80300102h +PLA_E_CREDENTIALS_REQUIRED equ 80300103h +PLA_E_DCS_NOT_RUNNING equ 80300104h +PLA_E_CONFLICT_INCL_EXCL_API equ 80300105h +PLA_E_NETWORK_EXE_NOT_VALID equ 80300106h +PLA_E_EXE_ALREADY_CONFIGURED equ 80300107h +PLA_E_EXE_PATH_NOT_VALID equ 80300108h +PLA_E_DC_ALREADY_EXISTS equ 80300109h +PLA_E_DCS_START_WAIT_TIMEOUT equ 8030010Ah +PLA_E_DC_START_WAIT_TIMEOUT equ 8030010Bh +PLA_E_REPORT_WAIT_TIMEOUT equ 8030010Ch +PLA_E_NO_DUPLICATES equ 8030010Dh +PLA_E_EXE_FULL_PATH_REQUIRED equ 8030010Eh +PLA_E_INVALID_SESSION_NAME equ 8030010Fh +PLA_E_PLA_CHANNEL_NOT_ENABLED equ 80300110h +PLA_E_RULES_MANAGER_FAILED equ 80300112h +PLA_E_CABAPI_FAILURE equ 80300113h +FVE_E_LOCKED_VOLUME equ 80310000h +FVE_E_NOT_ENCRYPTED equ 80310001h +FVE_E_NO_TPM_BIOS equ 80310002h +FVE_E_NO_MBR_METRIC equ 80310003h +FVE_E_NO_BOOTSECTOR_METRIC equ 80310004h +FVE_E_NO_BOOTMGR_METRIC equ 80310005h +FVE_E_WRONG_BOOTMGR equ 80310006h +FVE_E_SECURE_KEY_REQUIRED equ 80310007h +FVE_E_NOT_ACTIVATED equ 80310008h +FVE_E_ACTION_NOT_ALLOWED equ 80310009h +FVE_E_AD_SCHEMA_NOT_INSTALLED equ 8031000Ah +FVE_E_AD_INVALID_DATATYPE equ 8031000Bh +FVE_E_AD_INVALID_DATASIZE equ 8031000Ch +FVE_E_AD_NO_VALUES equ 8031000Dh +FVE_E_AD_ATTR_NOT_SET equ 8031000Eh +FVE_E_AD_GUID_NOT_FOUND equ 8031000Fh +FVE_E_BAD_INFORMATION equ 80310010h +FVE_E_TOO_SMALL equ 80310011h +FVE_E_SYSTEM_VOLUME equ 80310012h +FVE_E_FAILED_WRONG_FS equ 80310013h +FVE_E_FAILED_BAD_FS equ 80310014h +FVE_E_NOT_SUPPORTED equ 80310015h +FVE_E_BAD_DATA equ 80310016h +FVE_E_VOLUME_NOT_BOUND equ 80310017h +FVE_E_TPM_NOT_OWNED equ 80310018h +FVE_E_NOT_DATA_VOLUME equ 80310019h +FVE_E_AD_INSUFFICIENT_BUFFER equ 8031001Ah +FVE_E_CONV_READ equ 8031001Bh +FVE_E_CONV_WRITE equ 8031001Ch +FVE_E_KEY_REQUIRED equ 8031001Dh +FVE_E_CLUSTERING_NOT_SUPPORTED equ 8031001Eh +FVE_E_VOLUME_BOUND_ALREADY equ 8031001Fh +FVE_E_OS_NOT_PROTECTED equ 80310020h +FVE_E_PROTECTION_DISABLED equ 80310021h +FVE_E_RECOVERY_KEY_REQUIRED equ 80310022h +FVE_E_FOREIGN_VOLUME equ 80310023h +FVE_E_OVERLAPPED_UPDATE equ 80310024h +FVE_E_TPM_SRK_AUTH_NOT_ZERO equ 80310025h +FVE_E_FAILED_SECTOR_SIZE equ 80310026h +FVE_E_FAILED_AUTHENTICATION equ 80310027h +FVE_E_NOT_OS_VOLUME equ 80310028h +FVE_E_AUTOUNLOCK_ENABLED equ 80310029h +FVE_E_WRONG_BOOTSECTOR equ 8031002Ah +FVE_E_WRONG_SYSTEM_FS equ 8031002Bh +FVE_E_POLICY_PASSWORD_REQUIRED equ 8031002Ch +FVE_E_CANNOT_SET_FVEK_ENCRYPTED equ 8031002Dh +FVE_E_CANNOT_ENCRYPT_NO_KEY equ 8031002Eh +FVE_E_BOOTABLE_CDDVD equ 80310030h +FVE_E_PROTECTOR_EXISTS equ 80310031h +FVE_E_RELATIVE_PATH equ 80310032h +FVE_E_PROTECTOR_NOT_FOUND equ 80310033h +FVE_E_INVALID_KEY_FORMAT equ 80310034h +FVE_E_INVALID_PASSWORD_FORMAT equ 80310035h +FVE_E_FIPS_RNG_CHECK_FAILED equ 80310036h +FVE_E_NOT_DECRYPTED equ 80310039h +FVE_E_INVALID_PROTECTOR_TYPE equ 8031003Ah +FVE_E_NO_PROTECTORS_TO_TEST equ 8031003Bh +FVE_E_KEYFILE_NOT_FOUND equ 8031003Ch +FVE_E_KEYFILE_INVALID equ 8031003Dh +FVE_E_KEYFILE_NO_VMK equ 8031003Eh +FVE_E_TPM_DISABLED equ 8031003Fh +FVE_E_NOT_ALLOWED_IN_SAFE_MODE equ 80310040h +FVE_E_TPM_INVALID_PCR equ 80310041h +FVE_E_TPM_NO_VMK equ 80310042h +FVE_E_PIN_INVALID equ 80310043h +FVE_E_AUTH_INVALID_APPLICATION equ 80310044h +FVE_E_AUTH_INVALID_CONFIG equ 80310045h +FVE_E_FS_NOT_EXTENDED equ 80310047h +FVE_E_NO_LICENSE equ 80310049h +FVE_E_NOT_ON_STACK equ 8031004Ah +FVE_E_FS_MOUNTED equ 8031004Bh +FVE_E_TOKEN_NOT_IMPERSONATED equ 8031004Ch +FVE_E_DRY_RUN_FAILED equ 8031004Dh +FVE_E_REBOOT_REQUIRED equ 8031004Eh +FVE_E_DEBUGGER_ENABLED equ 8031004Fh +FVE_E_RAW_ACCESS equ 80310050h +FVE_E_RAW_BLOCKED equ 80310051h +FVE_E_NOT_ALLOWED_IN_VERSION equ 80310053h +FWP_E_CALLOUT_NOT_FOUND equ 80320001h +FWP_E_CONDITION_NOT_FOUND equ 80320002h +FWP_E_FILTER_NOT_FOUND equ 80320003h +FWP_E_LAYER_NOT_FOUND equ 80320004h +FWP_E_PROVIDER_NOT_FOUND equ 80320005h +FWP_E_SUBLAYER_NOT_FOUND equ 80320007h +FWP_E_NOT_FOUND equ 80320008h +FWP_E_ALREADY_EXISTS equ 80320009h +FWP_E_IN_USE equ 8032000Ah +FWP_E_WRONG_SESSION equ 8032000Ch +FWP_E_NO_TXN_IN_PROGRESS equ 8032000Dh +FWP_E_TXN_IN_PROGRESS equ 8032000Eh +FWP_E_TXN_ABORTED equ 8032000Fh +FWP_E_SESSION_ABORTED equ 80320010h +FWP_E_INCOMPATIBLE_TXN equ 80320011h +FWP_E_TIMEOUT equ 80320012h +FWP_E_NET_EVENTS_DISABLED equ 80320013h +FWP_E_INCOMPATIBLE_LAYER equ 80320014h +FWP_E_KM_CLIENTS_ONLY equ 80320015h +FWP_E_LIFETIME_MISMATCH equ 80320016h +FWP_E_BUILTIN_OBJECT equ 80320017h +FWP_E_TOO_MANY_CALLOUTS equ 80320018h +FWP_E_NOTIFICATION_DROPPED equ 80320019h +FWP_E_TRAFFIC_MISMATCH equ 8032001Ah +FWP_E_INCOMPATIBLE_SA_STATE equ 8032001Bh +FWP_E_NULL_POINTER equ 8032001Ch +FWP_E_INVALID_ENUMERATOR equ 8032001Dh +FWP_E_INVALID_FLAGS equ 8032001Eh +FWP_E_INVALID_NET_MASK equ 8032001Fh +FWP_E_INVALID_RANGE equ 80320020h +FWP_E_INVALID_INTERVAL equ 80320021h +FWP_E_ZERO_LENGTH_ARRAY equ 80320022h +FWP_E_NULL_DISPLAY_NAME equ 80320023h +FWP_E_INVALID_ACTION_TYPE equ 80320024h +FWP_E_INVALID_WEIGHT equ 80320025h +FWP_E_MATCH_TYPE_MISMATCH equ 80320026h +FWP_E_TYPE_MISMATCH equ 80320027h +FWP_E_OUT_OF_BOUNDS equ 80320028h +FWP_E_RESERVED equ 80320029h +FWP_E_DUPLICATE_CONDITION equ 8032002Ah +FWP_E_DUPLICATE_KEYMOD equ 8032002Bh +FWP_E_INCOMPATIBLE_AUTH_METHOD equ 80320030h +FWP_E_INCOMPATIBLE_DH_GROUP equ 80320031h +FWP_E_EM_NOT_SUPPORTED equ 80320032h +FWP_E_NEVER_MATCH equ 80320033h +FWP_E_PROVIDER_CONTEXT_MISMATCH equ 80320034h +FWP_E_INVALID_PARAMETER equ 80320035h +FWP_E_TOO_MANY_SUBLAYERS equ 80320036h +FWP_E_INVALID_AUTH_TRANSFORM equ 80320038h +FWP_E_INVALID_CIPHER_TRANSFORM equ 80320039h +ERROR_NDIS_INTERFACE_CLOSING equ 80340002h +ERROR_NDIS_BAD_VERSION equ 80340004h +ERROR_NDIS_BAD_CHARACTERISTICS equ 80340005h +ERROR_NDIS_ADAPTER_NOT_FOUND equ 80340006h +ERROR_NDIS_OPEN_FAILED equ 80340007h +ERROR_NDIS_DEVICE_FAILED equ 80340008h +ERROR_NDIS_MULTICAST_FULL equ 80340009h +ERROR_NDIS_MULTICAST_EXISTS equ 8034000Ah +ERROR_NDIS_MULTICAST_NOT_FOUND equ 8034000Bh +ERROR_NDIS_REQUEST_ABORTED equ 8034000Ch +ERROR_NDIS_RESET_IN_PROGRESS equ 8034000Dh +ERROR_NDIS_NOT_SUPPORTED equ 803400BBh +ERROR_NDIS_INVALID_PACKET equ 8034000Fh +ERROR_NDIS_ADAPTER_NOT_READY equ 80340011h +ERROR_NDIS_INVALID_LENGTH equ 80340014h +ERROR_NDIS_INVALID_DATA equ 80340015h +ERROR_NDIS_BUFFER_TOO_SHORT equ 80340016h +ERROR_NDIS_INVALID_OID equ 80340017h +ERROR_NDIS_ADAPTER_REMOVED equ 80340018h +ERROR_NDIS_UNSUPPORTED_MEDIA equ 80340019h +ERROR_NDIS_GROUP_ADDRESS_IN_USE equ 8034001Ah +ERROR_NDIS_FILE_NOT_FOUND equ 8034001Bh +ERROR_NDIS_ERROR_READING_FILE equ 8034001Ch +ERROR_NDIS_ALREADY_MAPPED equ 8034001Dh +ERROR_NDIS_RESOURCE_CONFLICT equ 8034001Eh +ERROR_NDIS_MEDIA_DISCONNECTED equ 8034001Fh +ERROR_NDIS_INVALID_ADDRESS equ 80340022h +ERROR_NDIS_INVALID_DEVICE_REQUEST equ 80340010h +ERROR_NDIS_PAUSED equ 8034002Ah +ERROR_NDIS_INTERFACE_NOT_FOUND equ 8034002Bh +ERROR_NDIS_UNSUPPORTED_REVISION equ 8034002Ch +ERROR_NDIS_INVALID_PORT equ 8034002Dh +ERROR_NDIS_INVALID_PORT_STATE equ 8034002Eh +ERROR_NDIS_LOW_POWER_STATE equ 8034002Fh +ERROR_NDIS_DOT11_AUTO_CONFIG_ENABLED equ 80342000h +ERROR_NDIS_DOT11_MEDIA_IN_USE equ 80342001h +ERROR_NDIS_DOT11_POWER_STATE_INVALID equ 80342002h +ERROR_NDIS_INDICATION_REQUIRED equ 00340001h + +;;;; end winerror + +;;;; wincrypt + +ALG_CLASS_ANY equ 0 +ALG_TYPE_ANY equ 0 +ALG_SID_ANY equ 0 +ALG_SID_RSA_ANY equ 0 +ALG_SID_RSA_PKCS equ 1 +ALG_SID_RSA_MSATWORK equ 2 +ALG_SID_RSA_ENTRUST equ 3 +ALG_SID_RSA_PGP equ 4 +ALG_SID_DSS_ANY equ 0 +ALG_SID_DSS_PKCS equ 1 +ALG_SID_DSS_DMS equ 2 +ALG_SID_DES equ 1 +ALG_SID_3DES equ 3 +ALG_SID_DESX equ 4 +ALG_SID_IDEA equ 5 +ALG_SID_CAST equ 6 +ALG_SID_SAFERSK64 equ 7 +ALG_SID_SAFERSK128 equ 8 +ALG_SID_3DES_112 equ 9 +ALG_SID_CYLINK_MEK equ 12 +ALG_SID_RC5 equ 13 +ALG_SID_AES_128 equ 14 +ALG_SID_AES_192 equ 15 +ALG_SID_AES_256 equ 16 +ALG_SID_AES equ 17 +ALG_SID_SKIPJACK equ 10 +ALG_SID_TEK equ 11 +CRYPT_MODE_CBCI equ 6 +CRYPT_MODE_CFBP equ 7 +CRYPT_MODE_OFBP equ 8 +CRYPT_MODE_CBCOFM equ 9 +CRYPT_MODE_CBCOFMI equ 10 +ALG_SID_RC2 equ 2 +ALG_SID_RC4 equ 1 +ALG_SID_SEAL equ 2 +ALG_SID_DH_SANDF equ 1 +ALG_SID_DH_EPHEM equ 2 +ALG_SID_AGREED_KEY_ANY equ 3 +ALG_SID_KEA equ 4 +ALG_SID_MD2 equ 1 +ALG_SID_MD4 equ 2 +ALG_SID_MD5 equ 3 +ALG_SID_SHA equ 4 +ALG_SID_SHA1 equ 4 +ALG_SID_MAC equ 5 +ALG_SID_RIPEMD equ 6 +ALG_SID_RIPEMD160 equ 7 +ALG_SID_SSL3SHAMD5 equ 8 +ALG_SID_HMAC equ 9 +ALG_SID_TLS1PRF equ 10 +ALG_SID_HASH_REPLACE_OWF equ 11 +ALG_SID_SHA_256 equ 12 +ALG_SID_SHA_384 equ 13 +ALG_SID_SHA_512 equ 14 +ALG_SID_SSL3_MASTER equ 1 +ALG_SID_SCHANNEL_MASTER_HASH equ 2 +ALG_SID_SCHANNEL_MAC_KEY equ 3 +ALG_SID_PCT1_MASTER equ 4 +ALG_SID_SSL2_MASTER equ 5 +ALG_SID_TLS1_MASTER equ 6 +ALG_SID_SCHANNEL_ENC_KEY equ 7 +ALG_SID_EXAMPLE equ 80 +CALG_MD2 equ (ALG_CLASS_HASH or ALG_TYPE_ANY or ALG_SID_MD2) +CALG_MD4 equ (ALG_CLASS_HASH or ALG_TYPE_ANY or ALG_SID_MD4) +CALG_MD5 equ (ALG_CLASS_HASH or ALG_TYPE_ANY or ALG_SID_MD5) +CALG_SHA equ (ALG_CLASS_HASH or ALG_TYPE_ANY or ALG_SID_SHA) +CALG_SHA1 equ (ALG_CLASS_HASH or ALG_TYPE_ANY or ALG_SID_SHA1) +CALG_MAC equ (ALG_CLASS_HASH or ALG_TYPE_ANY or ALG_SID_MAC) +CALG_RSA_SIGN equ (ALG_CLASS_SIGNATURE or ALG_TYPE_RSA or ALG_SID_RSA_ANY) +CALG_DSS_SIGN equ (ALG_CLASS_SIGNATURE or ALG_TYPE_DSS or ALG_SID_DSS_ANY) +CALG_NO_SIGN equ (ALG_CLASS_SIGNATURE or ALG_TYPE_ANY or ALG_SID_ANY) +CALG_RSA_KEYX equ (ALG_CLASS_KEY_EXCHANGE or ALG_TYPE_RSAorALG_SID_RSA_ANY) +CALG_DES equ (ALG_CLASS_DATA_ENCRYPT or ALG_TYPE_BLOCKorALG_SID_DES) +CALG_3DES_112 equ (ALG_CLASS_DATA_ENCRYPT or ALG_TYPE_BLOCKorALG_SID_3DES_112) +CALG_3DES equ (ALG_CLASS_DATA_ENCRYPT or ALG_TYPE_BLOCKorALG_SID_3DES) +CALG_DESX equ (ALG_CLASS_DATA_ENCRYPT or ALG_TYPE_BLOCKorALG_SID_DESX) +CALG_RC2 equ (ALG_CLASS_DATA_ENCRYPT or ALG_TYPE_BLOCKorALG_SID_RC2) +CALG_RC4 equ (ALG_CLASS_DATA_ENCRYPT or ALG_TYPE_STREAMorALG_SID_RC4) +CALG_SEAL equ (ALG_CLASS_DATA_ENCRYPT or ALG_TYPE_STREAMorALG_SID_SEAL) +CALG_DH_SF equ (ALG_CLASS_KEY_EXCHANGE or ALG_TYPE_DHorALG_SID_DH_SANDF) +CALG_DH_EPHEM equ (ALG_CLASS_KEY_EXCHANGE or ALG_TYPE_DHorALG_SID_DH_EPHEM) +CALG_AGREEDKEY_ANY equ (ALG_CLASS_KEY_EXCHANGE or ALG_TYPE_DHorALG_SID_AGREED_KEY_ANY) +CALG_KEA_KEYX equ (ALG_CLASS_KEY_EXCHANGE or ALG_TYPE_DHorALG_SID_KEA) +CALG_HUGHES_MD5 equ (ALG_CLASS_KEY_EXCHANGE or ALG_TYPE_ANYorALG_SID_MD5) +CALG_SKIPJACK equ (ALG_CLASS_DATA_ENCRYPT or ALG_TYPE_BLOCKorALG_SID_SKIPJACK) +CALG_TEK equ (ALG_CLASS_DATA_ENCRYPT or ALG_TYPE_BLOCKorALG_SID_TEK) +CALG_CYLINK_MEK equ (ALG_CLASS_DATA_ENCRYPT or ALG_TYPE_BLOCKorALG_SID_CYLINK_MEK) +CALG_SSL3_SHAMD5 equ (ALG_CLASS_HASH or ALG_TYPE_ANY or ALG_SID_SSL3SHAMD5) +CALG_SSL3_MASTER equ (ALG_CLASS_MSG_ENCRYPT or ALG_TYPE_SECURECHANNELorALG_SID_SSL3_MASTER) +CALG_SCHANNEL_MASTER_HASH equ (ALG_CLASS_MSG_ENCRYPT or ALG_TYPE_SECURECHANNELorALG_SID_SCHANNEL_MASTER_HASH) +CALG_SCHANNEL_MAC_KEY equ (ALG_CLASS_MSG_ENCRYPT or ALG_TYPE_SECURECHANNELorALG_SID_SCHANNEL_MAC_KEY) +CALG_SCHANNEL_ENC_KEY equ (ALG_CLASS_MSG_ENCRYPT or ALG_TYPE_SECURECHANNELorALG_SID_SCHANNEL_ENC_KEY) +CALG_PCT1_MASTER equ (ALG_CLASS_MSG_ENCRYPT or ALG_TYPE_SECURECHANNELorALG_SID_PCT1_MASTER) +CALG_SSL2_MASTER equ (ALG_CLASS_MSG_ENCRYPT or ALG_TYPE_SECURECHANNELorALG_SID_SSL2_MASTER) +CALG_TLS1_MASTER equ (ALG_CLASS_MSG_ENCRYPT or ALG_TYPE_SECURECHANNELorALG_SID_TLS1_MASTER) +CALG_RC5 equ (ALG_CLASS_DATA_ENCRYPT or ALG_TYPE_BLOCKorALG_SID_RC5) +CALG_HMAC equ (ALG_CLASS_HASH or ALG_TYPE_ANY or ALG_SID_HMAC) +CALG_TLS1PRF equ (ALG_CLASS_HASH or ALG_TYPE_ANY or ALG_SID_TLS1PRF) +CALG_HASH_REPLACE_OWF equ (ALG_CLASS_HASH or ALG_TYPE_ANY or ALG_SID_HASH_REPLACE_OWF) +CALG_AES_128 equ (ALG_CLASS_DATA_ENCRYPT or ALG_TYPE_BLOCKorALG_SID_AES_128) +CALG_AES_192 equ (ALG_CLASS_DATA_ENCRYPT or ALG_TYPE_BLOCKorALG_SID_AES_192) +CALG_AES_256 equ (ALG_CLASS_DATA_ENCRYPT or ALG_TYPE_BLOCKorALG_SID_AES_256) +CALG_AES equ (ALG_CLASS_DATA_ENCRYPT or ALG_TYPE_BLOCKorALG_SID_AES) +CALG_SHA_256 equ (ALG_CLASS_HASH or ALG_TYPE_ANY or ALG_SID_SHA_256) +CALG_SHA_384 equ (ALG_CLASS_HASH or ALG_TYPE_ANY or ALG_SID_SHA_384) +CALG_SHA_512 equ (ALG_CLASS_HASH or ALG_TYPE_ANY or ALG_SID_SHA_512) +CRYPT_VERIFYCONTEXT equ 0F0000000h +CRYPT_NEWKEYSET equ 00000008h +CRYPT_DELETEKEYSET equ 00000010h +CRYPT_MACHINE_KEYSET equ 00000020h +CRYPT_SILENT equ 00000040h +CRYPT_EXPORTABLE equ 00000001h +CRYPT_USER_PROTECTED equ 00000002h +CRYPT_CREATE_SALT equ 00000004h +CRYPT_UPDATE_KEY equ 00000008h +CRYPT_NO_SALT equ 00000010h +CRYPT_PREGEN equ 00000040h +CRYPT_RECIPIENT equ 00000010h +CRYPT_INITIATOR equ 00000040h +CRYPT_ONLINE equ 00000080h +CRYPT_SF equ 00000100h +CRYPT_CREATE_IV equ 00000200h +CRYPT_KEK equ 00000400h +CRYPT_DATA_KEY equ 00000800h +CRYPT_VOLATILE equ 00001000h +CRYPT_SGCKEY equ 00002000h +CRYPT_ARCHIVABLE equ 00004000h +RSA1024BIT_KEY equ 04000000h +CRYPT_SERVER equ 00000400h +KEY_LENGTH_MASK equ 0FFFF0000h +CRYPT_Y_ONLY equ 00000001h +CRYPT_SSL2_FALLBACK equ 00000002h +CRYPT_DESTROYKEY equ 00000004h +CRYPT_OAEP equ 00000040h +CRYPT_BLOB_VER3 equ 00000080h +CRYPT_IPSEC_HMAC_KEY equ 00000100h +CRYPT_DECRYPT_RSA_NO_PADDING_CHECK equ 00000020h +CRYPT_SECRETDIGEST equ 00000001h +CRYPT_OWF_REPL_LM_HASH equ 00000001h +CRYPT_LITTLE_ENDIAN equ 00000001h +CRYPT_NOHASHOID equ 00000001h +CRYPT_TYPE2_FORMAT equ 00000002h +CRYPT_X931_FORMAT equ 00000004h +CRYPT_MACHINE_DEFAULT equ 00000001h +CRYPT_USER_DEFAULT equ 00000002h +CRYPT_DELETE_DEFAULT equ 00000004h +SIMPLEBLOB equ 1h +PUBLICKEYBLOB equ 6h +PRIVATEKEYBLOB equ 7h +PLAINTEXTKEYBLOB equ 8h +OPAQUEKEYBLOB equ 9h +PUBLICKEYBLOBEX equ 0Ah +SYMMETRICWRAPKEYBLOB equ 0Bh +AT_KEYEXCHANGE equ 1 +AT_SIGNATURE equ 2 +CRYPT_USERDATA equ 1 +KP_IV equ 1 +KP_SALT equ 2 +KP_PADDING equ 3 +KP_MODE equ 4 +KP_MODE_BITS equ 5 +KP_PERMISSIONS equ 6 +KP_ALGID equ 7 +KP_BLOCKLEN equ 8 +KP_KEYLEN equ 9 +KP_SALT_EX equ 10 +KP_P equ 11 +KP_G equ 12 +KP_Q equ 13 +KP_X equ 14 +KP_Y equ 15 +KP_RA equ 16 +KP_RB equ 17 +KP_INFO equ 18 +KP_EFFECTIVE_KEYLEN equ 19 +KP_SCHANNEL_ALG equ 20 +KP_CLIENT_RANDOM equ 21 +KP_SERVER_RANDOM equ 22 +KP_RP equ 23 +KP_PRECOMP_MD5 equ 24 +KP_PRECOMP_SHA equ 25 +KP_CERTIFICATE equ 26 +KP_CLEAR_KEY equ 27 +KP_PUB_EX_LEN equ 28 +KP_PUB_EX_VAL equ 29 +KP_KEYVAL equ 30 +KP_ADMIN_PIN equ 31 +KP_KEYEXCHANGE_PIN equ 32 +KP_SIGNATURE_PIN equ 33 +KP_PREHASH equ 34 +KP_ROUNDS equ 35 +KP_OAEP_PARAMS equ 36 +KP_CMS_KEY_INFO equ 37 +KP_CMS_DH_KEY_INFO equ 38 +KP_PUB_PARAMS equ 39 +KP_VERIFY_PARAMS equ 40 +KP_HIGHEST_VERSION equ 41 +KP_GET_USE_COUNT equ 42 +PKCS5_PADDING equ 1 +RANDOM_PADDING equ 2 +ZERO_PADDING equ 3 +CRYPT_MODE_CBC equ 1 +CRYPT_MODE_ECB equ 2 +CRYPT_MODE_OFB equ 3 +CRYPT_MODE_CFB equ 4 +CRYPT_MODE_CTS equ 5 +CRYPT_ENCRYPT equ 0001h +CRYPT_DECRYPT equ 0002h +CRYPT_EXPORT equ 0004h +CRYPT_READ equ 0008h +CRYPT_WRITE equ 0010h +CRYPT_MAC equ 0020h +CRYPT_EXPORT_KEY equ 0040h +CRYPT_IMPORT_KEY equ 0080h +CRYPT_ARCHIVE equ 0100h +HP_ALGID equ 0001h +HP_HASHVAL equ 0002h +HP_HASHSIZE equ 0004h +HP_HMAC_INFO equ 0005h +HP_TLS1PRF_LABEL equ 0006h +HP_TLS1PRF_SEED equ 0007h +CRYPT_FAILED equ FALSE +CRYPT_SUCCEED equ TRUE +PP_ENUMALGS equ 1 +PP_ENUMCONTAINERS equ 2 +PP_IMPTYPE equ 3 +PP_NAME equ 4 +PP_VERSION equ 5 +PP_CONTAINER equ 6 +PP_CHANGE_PASSWORD equ 7 +PP_KEYSET_SEC_DESCR equ 8 +PP_CERTCHAIN equ 9 +PP_KEY_TYPE_SUBTYPE equ 10 +PP_PROVTYPE equ 16 +PP_KEYSTORAGE equ 17 +PP_APPLI_CERT equ 18 +PP_SYM_KEYSIZE equ 19 +PP_SESSION_KEYSIZE equ 20 +PP_UI_PROMPT equ 21 +PP_ENUMALGS_EX equ 22 +PP_ENUMMANDROOTS equ 25 +PP_ENUMELECTROOTS equ 26 +PP_KEYSET_TYPE equ 27 +PP_ADMIN_PIN equ 31 +PP_KEYEXCHANGE_PIN equ 32 +PP_SIGNATURE_PIN equ 33 +PP_SIG_KEYSIZE_INC equ 34 +PP_KEYX_KEYSIZE_INC equ 35 +PP_UNIQUE_CONTAINER equ 36 +PP_SGC_INFO equ 37 +PP_USE_HARDWARE_RNG equ 38 +PP_KEYSPEC equ 39 +PP_ENUMEX_SIGNING_PROT equ 40 +PP_CRYPT_COUNT_KEY_USE equ 41 +CRYPT_FIRST equ 1 +CRYPT_NEXT equ 2 +CRYPT_SGC_ENUM equ 4 +CRYPT_IMPL_HARDWARE equ 1 +CRYPT_IMPL_SOFTWARE equ 2 +CRYPT_IMPL_MIXED equ 3 +CRYPT_IMPL_UNKNOWN equ 4 +CRYPT_IMPL_REMOVABLE equ 8 +CRYPT_SEC_DESCR equ 00000001h +CRYPT_PSTORE equ 00000002h +CRYPT_UI_PROMPT equ 00000004h +CRYPT_FLAG_PCT1 equ 0001h +CRYPT_FLAG_SSL2 equ 0002h +CRYPT_FLAG_SSL3 equ 0004h +CRYPT_FLAG_TLS1 equ 0008h +CRYPT_FLAG_IPSEC equ 0010h +CRYPT_FLAG_SIGNING equ 0020h +CRYPT_SGC equ 0001h +CRYPT_FASTSGC equ 0002h +PP_CLIENT_HWND equ 1 +PP_CONTEXT_INFO equ 11 +PP_KEYEXCHANGE_KEYSIZE equ 12 +PP_SIGNATURE_KEYSIZE equ 13 +PP_KEYEXCHANGE_ALG equ 14 +PP_SIGNATURE_ALG equ 15 +PP_DELETEKEY equ 24 +PROV_RSA_FULL equ 1 +PROV_RSA_SIG equ 2 +PROV_DSS equ 3 +PROV_FORTEZZA equ 4 +PROV_MS_EXCHANGE equ 5 +PROV_SSL equ 6 +PROV_RSA_SCHANNEL equ 12 +PROV_DSS_DH equ 13 +PROV_EC_ECDSA_SIG equ 14 +PROV_EC_ECNRA_SIG equ 15 +PROV_EC_ECDSA_FULL equ 16 +PROV_EC_ECNRA_FULL equ 17 +PROV_DH_SCHANNEL equ 18 +PROV_SPYRUS_LYNKS equ 20 +PROV_RNG equ 21 +PROV_INTEL_SEC equ 22 +PROV_REPLACE_OWF equ 23 +PROV_RSA_AES equ 24 +MAXUIDLEN equ 64 +dwFORCE_KEY_PROTECTION_DISABLED equ 0h +dwFORCE_KEY_PROTECTION_USER_SELECT equ 1h +dwFORCE_KEY_PROTECTION_HIGH equ 2h +CUR_BLOB_VERSION equ 2 +SCHANNEL_MAC_KEY equ 00000000h +SCHANNEL_ENC_KEY equ 00000001h +INTERNATIONAL_USAGE equ 00000001h +CERT_RDN_ANY_TYPE equ 0 +CERT_RDN_ENCODED_BLOB equ 1 +CERT_RDN_OCTET_STRING equ 2 +CERT_RDN_NUMERIC_STRING equ 3 +CERT_RDN_PRINTABLE_STRING equ 4 +CERT_RDN_TELETEX_STRING equ 5 +CERT_RDN_T61_STRING equ 5 +CERT_RDN_VIDEOTEX_STRING equ 6 +CERT_RDN_IA5_STRING equ 7 +CERT_RDN_GRAPHIC_STRING equ 8 +CERT_RDN_VISIBLE_STRING equ 9 +CERT_RDN_ISO646_STRING equ 9 +CERT_RDN_GENERAL_STRING equ 10 +CERT_RDN_UNIVERSAL_STRING equ 11 +CERT_RDN_INT4_STRING equ 11 +CERT_RDN_BMP_STRING equ 12 +CERT_RDN_UNICODE_STRING equ 12 +CERT_RDN_UTF8_STRING equ 13 +CERT_RDN_TYPE_MASK equ 000000FFh +CERT_RDN_FLAGS_MASK equ 0FF000000h +CERT_RDN_ENABLE_T61_UNICODE_FLAG equ 80000000h +CERT_RDN_ENABLE_UTF8_UNICODE_FLAG equ 20000000h +CERT_RDN_DISABLE_CHECK_TYPE_FLAG equ 40000000h +CERT_RDN_DISABLE_IE4_UTF8_FLAG equ 01000000h +CERT_RSA_PUBLIC_KEY_OBJID equ szOID_RSA_RSA +CERT_DEFAULT_OID_PUBLIC_KEY_SIGN equ szOID_RSA_RSA +CERT_DEFAULT_OID_PUBLIC_KEY_XCHG equ szOID_RSA_RSA +CERT_V1 equ 0 +CERT_V2 equ 1 +CERT_V3 equ 2 +CERT_INFO_VERSION_FLAG equ 1 +CERT_INFO_SERIAL_NUMBER_FLAG equ 2 +CERT_INFO_SIGNATURE_ALGORITHM_FLAG equ 3 +CERT_INFO_ISSUER_FLAG equ 4 +CERT_INFO_NOT_BEFORE_FLAG equ 5 +CERT_INFO_NOT_AFTER_FLAG equ 6 +CERT_INFO_SUBJECT_FLAG equ 7 +CERT_INFO_SUBJECT_PUBLIC_KEY_INFO_FLAG equ 8 +CERT_INFO_ISSUER_UNIQUE_ID_FLAG equ 9 +CERT_INFO_SUBJECT_UNIQUE_ID_FLAG equ 10 +CERT_INFO_EXTENSION_FLAG equ 11 +CRL_V1 equ 0 +CRL_V2 equ 1 +CERT_REQUEST_V1 equ 0 +CERT_KEYGEN_REQUEST_V1 equ 0 +CTL_V1 equ 0 +CERT_ENCODING_TYPE_MASK equ 0000FFFFh +CMSG_ENCODING_TYPE_MASK equ 0FFFF0000h +CRYPT_ASN_ENCODING equ 00000001h +CRYPT_NDR_ENCODING equ 00000002h +X509_ASN_ENCODING equ 00000001h +X509_NDR_ENCODING equ 00000002h +PKCS_7_ASN_ENCODING equ 00010000h +PKCS_7_NDR_ENCODING equ 00020000h +CRYPT_FORMAT_STR_MULTI_LINE equ 0001h +CRYPT_FORMAT_STR_NO_HEX equ 0010h +CRYPT_FORMAT_SIMPLE equ 0001h +CRYPT_FORMAT_X509 equ 0002h +CRYPT_FORMAT_OID equ 0004h +CRYPT_FORMAT_RDN_SEMICOLON equ 0100h +CRYPT_FORMAT_RDN_CRLF equ 0200h +CRYPT_FORMAT_RDN_UNQUOTE equ 0400h +CRYPT_FORMAT_RDN_REVERSE equ 0800h +CRYPT_FORMAT_COMMA equ 1000h +CRYPT_FORMAT_SEMICOLON equ CRYPT_FORMAT_RDN_SEMICOLON +CRYPT_FORMAT_CRLF equ CRYPT_FORMAT_RDN_CRLF +CRYPT_ENCODE_NO_SIGNATURE_BYTE_REVERSAL_FLAG equ 8h +CRYPT_ENCODE_ALLOC_FLAG equ 8000h +CRYPT_SORTED_CTL_ENCODE_HASHED_SUBJECT_IDENTIFIER_FLAG equ 10000h +CRYPT_DECODE_NOCOPY_FLAG equ 1h +CRYPT_DECODE_TO_BE_SIGNED_FLAG equ 2h +CRYPT_DECODE_SHARE_OID_STRING_FLAG equ 4h +CRYPT_DECODE_NO_SIGNATURE_BYTE_REVERSAL_FLAG equ 8h +CRYPT_DECODE_ALLOC_FLAG equ 8000h +CRYPT_ENCODE_DECODE_NONE equ 0 +X509_CERT equ 1 +X509_CERT_TO_BE_SIGNED equ 2 +X509_CERT_CRL_TO_BE_SIGNED equ 3 +X509_CERT_REQUEST_TO_BE_SIGNED equ 4 +X509_EXTENSIONS equ 5 +X509_NAME_VALUE equ 6 +X509_NAME equ 7 +X509_PUBLIC_KEY_INFO equ 8 +X509_AUTHORITY_KEY_ID equ 9 +X509_KEY_ATTRIBUTES equ 10 +X509_KEY_USAGE_RESTRICTION equ 11 +X509_ALTERNATE_NAME equ 12 +X509_BASIC_CONSTRAINTS equ 13 +X509_KEY_USAGE equ 14 +X509_BASIC_CONSTRAINTS2 equ 15 +X509_CERT_POLICIES equ 16 +PKCS_UTC_TIME equ 17 +PKCS_TIME_REQUEST equ 18 +RSA_CSP_PUBLICKEYBLOB equ 19 +X509_UNICODE_NAME equ 20 +X509_KEYGEN_REQUEST_TO_BE_SIGNED equ 21 +PKCS_ATTRIBUTE equ 22 +PKCS_CONTENT_INFO_SEQUENCE_OF_ANY equ 23 +X509_UNICODE_NAME_VALUE equ 24 +X509_ANY_STRING equ X509_NAME_VALUE +X509_UNICODE_ANY_STRING equ X509_UNICODE_NAME_VALUE +X509_OCTET_STRING equ 25 +X509_BITS equ 26 +X509_INTEGER equ 27 +X509_MULTI_BYTE_INTEGER equ 28 +X509_ENUMERATED equ 29 +X509_CHOICE_OF_TIME equ 30 +X509_AUTHORITY_KEY_ID2 equ 31 +X509_AUTHORITY_INFO_ACCESS equ 32 +X509_CRL_REASON_CODE equ X509_ENUMERATED +PKCS_CONTENT_INFO equ 33 +X509_SEQUENCE_OF_ANY equ 34 +X509_CRL_DIST_POINTS equ 35 +X509_ENHANCED_KEY_USAGE equ 36 +PKCS_CTL equ 37 +X509_MULTI_BYTE_UINT equ 38 +X509_DSS_PUBLICKEY equ X509_MULTI_BYTE_UINT +X509_DSS_PARAMETERS equ 39 +X509_DSS_SIGNATURE equ 40 +PKCS_RC2_CBC_PARAMETERS equ 41 +PKCS_SMIME_CAPABILITIES equ 42 +PKCS_RSA_PRIVATE_KEY equ 43 +PKCS_PRIVATE_KEY_INFO equ 44 +PKCS_ENCRYPTED_PRIVATE_KEY_INFO equ 45 +X509_PKIX_POLICY_QUALIFIER_USERNOTICE equ 46 +X509_DH_PUBLICKEY equ X509_MULTI_BYTE_UINT +X509_DH_PARAMETERS equ 47 +PKCS_ATTRIBUTES equ 48 +PKCS_SORTED_CTL equ 49 +X942_DH_PARAMETERS equ 50 +X509_BITS_WITHOUT_TRAILING_ZEROES equ 51 +X942_OTHER_INFO equ 52 +X509_CERT_PAIR equ 53 +X509_ISSUING_DIST_POINT equ 54 +X509_NAME_CONSTRAINTS equ 55 +X509_POLICY_MAPPINGS equ 56 +X509_POLICY_CONSTRAINTS equ 57 +X509_CROSS_CERT_DIST_POINTS equ 58 +CMC_DATA equ 59 +CMC_RESPONSE equ 60 +CMC_STATUS equ 61 +CMC_ADD_EXTENSIONS equ 62 +CMC_ADD_ATTRIBUTES equ 63 +X509_CERTIFICATE_TEMPLATE equ 64 +PKCS7_SIGNER_INFO equ 500 +CMS_SIGNER_INFO equ 501 +CERT_UNICODE_RDN_ERR_INDEX_MASK equ 3FFh +CERT_UNICODE_RDN_ERR_INDEX_SHIFT equ 22 +CERT_UNICODE_ATTR_ERR_INDEX_MASK equ 003Fh +CERT_UNICODE_ATTR_ERR_INDEX_SHIFT equ 16 +CERT_UNICODE_VALUE_ERR_INDEX_MASK equ 0000FFFFh +CERT_UNICODE_VALUE_ERR_INDEX_SHIFT equ 0 +CERT_DIGITAL_SIGNATURE_KEY_USAGE equ 80h +CERT_NON_REPUDIATION_KEY_USAGE equ 40h +CERT_KEY_ENCIPHERMENT_KEY_USAGE equ 20h +CERT_DATA_ENCIPHERMENT_KEY_USAGE equ 10h +CERT_KEY_AGREEMENT_KEY_USAGE equ 08h +CERT_KEY_CERT_SIGN_KEY_USAGE equ 04h +CERT_OFFLINE_CRL_SIGN_KEY_USAGE equ 02h +CERT_CRL_SIGN_KEY_USAGE equ 02h +CERT_ENCIPHER_ONLY_KEY_USAGE equ 01h +CERT_DECIPHER_ONLY_KEY_USAGE equ 80h +CERT_ALT_NAME_OTHER_NAME equ 1 +CERT_ALT_NAME_RFC822_NAME equ 2 +CERT_ALT_NAME_DNS_NAME equ 3 +CERT_ALT_NAME_X400_ADDRESS equ 4 +CERT_ALT_NAME_DIRECTORY_NAME equ 5 +CERT_ALT_NAME_EDI_PARTY_NAME equ 6 +CERT_ALT_NAME_URL equ 7 +CERT_ALT_NAME_IP_ADDRESS equ 8 +CERT_ALT_NAME_REGISTERED_ID equ 9 +CERT_ALT_NAME_ENTRY_ERR_INDEX_MASK equ 0FFh +CERT_ALT_NAME_ENTRY_ERR_INDEX_SHIFT equ 16 +CERT_ALT_NAME_VALUE_ERR_INDEX_MASK equ 0000FFFFh +CERT_ALT_NAME_VALUE_ERR_INDEX_SHIFT equ 0 +CERT_CA_SUBJECT_FLAG equ 80h +CERT_END_ENTITY_SUBJECT_FLAG equ 40h +CRL_REASON_UNSPECIFIED equ 0 +CRL_REASON_KEY_COMPROMISE equ 1 +CRL_REASON_CA_COMPROMISE equ 2 +CRL_REASON_AFFILIATION_CHANGED equ 3 +CRL_REASON_SUPERSEDED equ 4 +CRL_REASON_CESSATION_OF_OPERATION equ 5 +CRL_REASON_CERTIFICATE_HOLD equ 6 +CRL_REASON_REMOVE_FROM_CRL equ 8 +CRL_DIST_POINT_NO_NAME equ 0 +CRL_DIST_POINT_FULL_NAME equ 1 +CRL_DIST_POINT_ISSUER_RDN_NAME equ 2 +CRL_REASON_UNUSED_FLAG equ 80h +CRL_REASON_KEY_COMPROMISE_FLAG equ 40h +CRL_REASON_CA_COMPROMISE_FLAG equ 20h +CRL_REASON_AFFILIATION_CHANGED_FLAG equ 10h +CRL_REASON_SUPERSEDED_FLAG equ 08h +CRL_REASON_CESSATION_OF_OPERATION_FLAG equ 04h +CRL_REASON_CERTIFICATE_HOLD_FLAG equ 02h +CRL_DIST_POINT_ERR_INDEX_MASK equ 7Fh +CRL_DIST_POINT_ERR_INDEX_SHIFT equ 24 +CRL_DIST_POINT_ERR_CRL_ISSUER_BIT equ 80000000h +CROSS_CERT_DIST_POINT_ERR_INDEX_MASK equ 0FFh +CROSS_CERT_DIST_POINT_ERR_INDEX_SHIFT equ 24 +CERT_EXCLUDED_SUBTREE_BIT equ 80000000h +SORTED_CTL_EXT_FLAGS_OFFSET equ 0 +SORTED_CTL_EXT_COUNT_OFFSET equ 4 +SORTED_CTL_EXT_MAX_COLLISION_OFFSET equ 8 +SORTED_CTL_EXT_HASH_BUCKET_OFFSET equ 12 +SORTED_CTL_EXT_HASHED_SUBJECT_IDENTIFIER_FLAG equ 1h +CERT_DSS_R_LEN equ 20 +CERT_DSS_S_LEN equ 20 +CERT_DSS_SIGNATURE_LEN equ (CERT_DSS_R_LEN + CERT_DSS_S_LEN) +CRYPT_X942_COUNTER_BYTE_LENGTH equ 4 +CRYPT_X942_KEY_LENGTH_BYTE_LENGTH equ 4 +CRYPT_X942_PUB_INFO_BYTE_LENGTH equ (512/8) +CRYPT_RC2_40BIT_VERSION equ 160 +CRYPT_RC2_56BIT_VERSION equ 52 +CRYPT_RC2_64BIT_VERSION equ 120 +CRYPT_RC2_128BIT_VERSION equ 58 +NETSCAPE_SSL_CLIENT_AUTH_CERT_TYPE equ 80h +NETSCAPE_SSL_SERVER_AUTH_CERT_TYPE equ 40h +NETSCAPE_SMIME_CERT_TYPE equ 20h +NETSCAPE_SIGN_CERT_TYPE equ 10h +NETSCAPE_SSL_CA_CERT_TYPE equ 04h +NETSCAPE_SMIME_CA_CERT_TYPE equ 02h +NETSCAPE_SIGN_CA_CERT_TYPE equ 01h +CMC_TAGGED_CERT_REQUEST_CHOICE equ 1 +CMC_OTHER_INFO_NO_CHOICE equ 0 +CMC_OTHER_INFO_FAIL_CHOICE equ 1 +CMC_OTHER_INFO_PEND_CHOICE equ 2 +CMC_STATUS_SUCCESS equ 0 +CMC_STATUS_FAILED equ 2 +CMC_STATUS_PENDING equ 3 +CMC_STATUS_NO_SUPPORT equ 4 +CMC_STATUS_CONFIRM_REQUIRED equ 5 +CMC_FAIL_BAD_ALG equ 0 +CMC_FAIL_BAD_MESSAGE_CHECK equ 1 +CMC_FAIL_BAD_REQUEST equ 2 +CMC_FAIL_BAD_TIME equ 3 +CMC_FAIL_BAD_CERT_ID equ 4 +CMC_FAIL_UNSUPORTED_EXT equ 5 +CMC_FAIL_MUST_ARCHIVE_KEYS equ 6 +CMC_FAIL_BAD_IDENTITY equ 7 +CMC_FAIL_POP_REQUIRED equ 8 +CMC_FAIL_POP_FAILED equ 9 +CMC_FAIL_NO_KEY_REUSE equ 10 +CMC_FAIL_INTERNAL_CA_ERROR equ 11 +CMC_FAIL_TRY_LATER equ 12 +CRYPT_INSTALL_OID_FUNC_BEFORE_FLAG equ 1 +CRYPT_GET_INSTALLED_OID_FUNC_FLAG equ 1h +CRYPT_REGISTER_FIRST_INDEX equ 0 +CRYPT_REGISTER_LAST_INDEX equ 0FFFFFFFFh +CRYPT_MATCH_ANY_ENCODING_TYPE equ 0FFFFFFFFh +CRYPT_HASH_ALG_OID_GROUP_ID equ 1 +CRYPT_ENCRYPT_ALG_OID_GROUP_ID equ 2 +CRYPT_PUBKEY_ALG_OID_GROUP_ID equ 3 +CRYPT_SIGN_ALG_OID_GROUP_ID equ 4 +CRYPT_RDN_ATTR_OID_GROUP_ID equ 5 +CRYPT_EXT_OR_ATTR_OID_GROUP_ID equ 6 +CRYPT_ENHKEY_USAGE_OID_GROUP_ID equ 7 +CRYPT_POLICY_OID_GROUP_ID equ 8 +CRYPT_TEMPLATE_OID_GROUP_ID equ 9 +CRYPT_LAST_OID_GROUP_ID equ 9 +CRYPT_FIRST_ALG_OID_GROUP_ID equ CRYPT_HASH_ALG_OID_GROUP_ID +CRYPT_LAST_ALG_OID_GROUP_ID equ CRYPT_SIGN_ALG_OID_GROUP_ID +CRYPT_OID_INHIBIT_SIGNATURE_FORMAT_FLAG equ 1h +CRYPT_OID_USE_PUBKEY_PARA_FOR_PKCS7_FLAG equ 2h +CRYPT_OID_NO_NULL_ALGORITHM_PARA_FLAG equ 4h +CRYPT_OID_INFO_OID_KEY equ 1 +CRYPT_OID_INFO_NAME_KEY equ 2 +CRYPT_OID_INFO_ALGID_KEY equ 3 +CRYPT_OID_INFO_SIGN_KEY equ 4 +CRYPT_INSTALL_OID_INFO_BEFORE_FLAG equ 1 +CRYPT_LOCALIZED_NAME_ENCODING_TYPE equ 0 +CMSG_DATA equ 1 +CMSG_SIGNED equ 2 +CMSG_ENVELOPED equ 3 +CMSG_SIGNED_AND_ENVELOPED equ 4 +CMSG_HASHED equ 5 +CMSG_ENCRYPTED equ 6 +CERT_ID_ISSUER_SERIAL_NUMBER equ 1 +CERT_ID_KEY_IDENTIFIER equ 2 +CERT_ID_SHA1_HASH equ 3 +CMSG_KEY_AGREE_EPHEMERAL_KEY_CHOICE equ 1 +CMSG_KEY_AGREE_STATIC_KEY_CHOICE equ 2 +CMSG_MAIL_LIST_HANDLE_KEY_CHOICE equ 1 +CMSG_KEY_TRANS_RECIPIENT equ 1 +CMSG_KEY_AGREE_RECIPIENT equ 2 +CMSG_MAIL_LIST_RECIPIENT equ 3 +CMSG_SP3_COMPATIBLE_ENCRYPT_FLAG equ 80000000h +CMSG_RC4_NO_SALT_FLAG equ 40000000h +CMSG_INDEFINITE_LENGTH equ 0FFFFFFFFh +CMSG_BARE_CONTENT_FLAG equ 00000001h +CMSG_LENGTH_ONLY_FLAG equ 00000002h +CMSG_DETACHED_FLAG equ 00000004h +CMSG_AUTHENTICATED_ATTRIBUTES_FLAG equ 00000008h +CMSG_CONTENTS_OCTETS_FLAG equ 00000010h +CMSG_MAX_LENGTH_FLAG equ 00000020h +CMSG_CMS_ENCAPSULATED_CONTENT_FLAG equ 00000040h +CMSG_CRYPT_RELEASE_CONTEXT_FLAG equ 00008000h +CMSG_TYPE_PARAM equ 1 +CMSG_CONTENT_PARAM equ 2 +CMSG_BARE_CONTENT_PARAM equ 3 +CMSG_INNER_CONTENT_TYPE_PARAM equ 4 +CMSG_SIGNER_COUNT_PARAM equ 5 +CMSG_SIGNER_INFO_PARAM equ 6 +CMSG_SIGNER_CERT_INFO_PARAM equ 7 +CMSG_SIGNER_HASH_ALGORITHM_PARAM equ 8 +CMSG_SIGNER_AUTH_ATTR_PARAM equ 9 +CMSG_SIGNER_UNAUTH_ATTR_PARAM equ 10 +CMSG_CERT_COUNT_PARAM equ 11 +CMSG_CERT_PARAM equ 12 +CMSG_CRL_COUNT_PARAM equ 13 +CMSG_CRL_PARAM equ 14 +CMSG_ENVELOPE_ALGORITHM_PARAM equ 15 +CMSG_RECIPIENT_COUNT_PARAM equ 17 +CMSG_RECIPIENT_INDEX_PARAM equ 18 +CMSG_RECIPIENT_INFO_PARAM equ 19 +CMSG_HASH_ALGORITHM_PARAM equ 20 +CMSG_HASH_DATA_PARAM equ 21 +CMSG_COMPUTED_HASH_PARAM equ 22 +CMSG_ENCRYPT_PARAM equ 26 +CMSG_ENCRYPTED_DIGEST equ 27 +CMSG_ENCODED_SIGNER equ 28 +CMSG_ENCODED_MESSAGE equ 29 +CMSG_VERSION_PARAM equ 30 +CMSG_ATTR_CERT_COUNT_PARAM equ 31 +CMSG_ATTR_CERT_PARAM equ 32 +CMSG_CMS_RECIPIENT_COUNT_PARAM equ 33 +CMSG_CMS_RECIPIENT_INDEX_PARAM equ 34 +CMSG_CMS_RECIPIENT_ENCRYPTED_KEY_INDEX_PARAM equ 35 +CMSG_CMS_RECIPIENT_INFO_PARAM equ 36 +CMSG_UNPROTECTED_ATTR_PARAM equ 37 +CMSG_SIGNER_CERT_ID_PARAM equ 38 +CMSG_CMS_SIGNER_INFO_PARAM equ 39 +CMSG_SIGNED_DATA_V1 equ 1 +CMSG_SIGNED_DATA_V3 equ 3 +CMSG_SIGNED_DATA_PKCS_1_5_VERSION equ CMSG_SIGNED_DATA_V1 +CMSG_SIGNED_DATA_CMS_VERSION equ CMSG_SIGNED_DATA_V3 +CMSG_SIGNER_INFO_V1 equ 1 +CMSG_SIGNER_INFO_V3 equ 3 +CMSG_SIGNER_INFO_PKCS_1_5_VERSION equ CMSG_SIGNER_INFO_V1 +CMSG_SIGNER_INFO_CMS_VERSION equ CMSG_SIGNER_INFO_V3 +CMSG_HASHED_DATA_V0 equ 0 +CMSG_HASHED_DATA_V2 equ 2 +CMSG_HASHED_DATA_PKCS_1_5_VERSION equ CMSG_HASHED_DATA_V0 +CMSG_HASHED_DATA_CMS_VERSION equ CMSG_HASHED_DATA_V2 +CMSG_ENVELOPED_DATA_V0 equ 0 +CMSG_ENVELOPED_DATA_V2 equ 2 +CMSG_ENVELOPED_DATA_PKCS_1_5_VERSION equ CMSG_ENVELOPED_DATA_V0 +CMSG_ENVELOPED_DATA_CMS_VERSION equ CMSG_ENVELOPED_DATA_V2 +CMSG_KEY_AGREE_ORIGINATOR_CERT equ 1 +CMSG_KEY_AGREE_ORIGINATOR_PUBLIC_KEY equ 2 +CMSG_ENVELOPED_RECIPIENT_V0 equ 0 +CMSG_ENVELOPED_RECIPIENT_V2 equ 2 +CMSG_ENVELOPED_RECIPIENT_V3 equ 3 +CMSG_ENVELOPED_RECIPIENT_V4 equ 4 +CMSG_KEY_TRANS_PKCS_1_5_VERSION equ CMSG_ENVELOPED_RECIPIENT_V0 +CMSG_KEY_TRANS_CMS_VERSION equ CMSG_ENVELOPED_RECIPIENT_V2 +CMSG_KEY_AGREE_VERSION equ CMSG_ENVELOPED_RECIPIENT_V3 +CMSG_MAIL_LIST_VERSION equ CMSG_ENVELOPED_RECIPIENT_V4 +CMSG_CTRL_VERIFY_SIGNATURE equ 1 +CMSG_CTRL_DECRYPT equ 2 +CMSG_CTRL_VERIFY_HASH equ 5 +CMSG_CTRL_ADD_SIGNER equ 6 +CMSG_CTRL_DEL_SIGNER equ 7 +CMSG_CTRL_ADD_SIGNER_UNAUTH_ATTR equ 8 +CMSG_CTRL_DEL_SIGNER_UNAUTH_ATTR equ 9 +CMSG_CTRL_ADD_CERT equ 10 +CMSG_CTRL_DEL_CERT equ 11 +CMSG_CTRL_ADD_CRL equ 12 +CMSG_CTRL_DEL_CRL equ 13 +CMSG_CTRL_ADD_ATTR_CERT equ 14 +CMSG_CTRL_DEL_ATTR_CERT equ 15 +CMSG_CTRL_KEY_TRANS_DECRYPT equ 16 +CMSG_CTRL_KEY_AGREE_DECRYPT equ 17 +CMSG_CTRL_MAIL_LIST_DECRYPT equ 18 +CMSG_CTRL_VERIFY_SIGNATURE_EX equ 19 +CMSG_CTRL_ADD_CMS_SIGNER_INFO equ 20 +CMSG_VERIFY_SIGNER_PUBKEY equ 1 +CMSG_VERIFY_SIGNER_CERT equ 2 +CMSG_VERIFY_SIGNER_CHAIN equ 3 +CMSG_VERIFY_SIGNER_NULL equ 4 +CMSG_DEFAULT_INSTALLABLE_FUNC_OID equ 1 +CMSG_CONTENT_ENCRYPT_PAD_ENCODED_LEN_FLAG equ 00000001h +CMSG_CONTENT_ENCRYPT_FREE_PARA_FLAG equ 00000001h +CMSG_CONTENT_ENCRYPT_RELEASE_CONTEXT_FLAG equ 00008000h +CMSG_KEY_TRANS_ENCRYPT_FREE_PARA_FLAG equ 00000001h +CMSG_KEY_AGREE_ENCRYPT_FREE_PARA_FLAG equ 00000001h +CMSG_KEY_AGREE_ENCRYPT_FREE_MATERIAL_FLAG equ 00000002h +CMSG_KEY_AGREE_ENCRYPT_FREE_PUBKEY_ALG_FLAG equ 00000004h +CMSG_KEY_AGREE_ENCRYPT_FREE_PUBKEY_PARA_FLAG equ 00000008h +CMSG_KEY_AGREE_ENCRYPT_FREE_PUBKEY_BITS_FLAG equ 00000010h +CMSG_MAIL_LIST_ENCRYPT_FREE_PARA_FLAG equ 00000001h +CERT_KEY_PROV_HANDLE_PROP_ID equ 1 +CERT_KEY_PROV_INFO_PROP_ID equ 2 +CERT_SHA1_HASH_PROP_ID equ 3 +CERT_MD5_HASH_PROP_ID equ 4 +CERT_HASH_PROP_ID equ CERT_SHA1_HASH_PROP_ID +CERT_KEY_CONTEXT_PROP_ID equ 5 +CERT_KEY_SPEC_PROP_ID equ 6 +CERT_IE30_RESERVED_PROP_ID equ 7 +CERT_PUBKEY_HASH_RESERVED_PROP_ID equ 8 +CERT_ENHKEY_USAGE_PROP_ID equ 9 +CERT_CTL_USAGE_PROP_ID equ CERT_ENHKEY_USAGE_PROP_ID +CERT_NEXT_UPDATE_LOCATION_PROP_ID equ 10 +CERT_FRIENDLY_NAME_PROP_ID equ 11 +CERT_PVK_FILE_PROP_ID equ 12 +CERT_DESCRIPTION_PROP_ID equ 13 +CERT_ACCESS_STATE_PROP_ID equ 14 +CERT_SIGNATURE_HASH_PROP_ID equ 15 +CERT_SMART_CARD_DATA_PROP_ID equ 16 +CERT_EFS_PROP_ID equ 17 +CERT_FORTEZZA_DATA_PROP_ID equ 18 +CERT_ARCHIVED_PROP_ID equ 19 +CERT_KEY_IDENTIFIER_PROP_ID equ 20 +CERT_AUTO_ENROLL_PROP_ID equ 21 +CERT_PUBKEY_ALG_PARA_PROP_ID equ 22 +CERT_CROSS_CERT_DIST_POINTS_PROP_ID equ 23 +CERT_ISSUER_PUBLIC_KEY_MD5_HASH_PROP_ID equ 24 +CERT_SUBJECT_PUBLIC_KEY_MD5_HASH_PROP_ID equ 25 +CERT_ENROLLMENT_PROP_ID equ 26 +CERT_DATE_STAMP_PROP_ID equ 27 +CERT_ISSUER_SERIAL_NUMBER_MD5_HASH_PROP_ID equ 28 +CERT_SUBJECT_NAME_MD5_HASH_PROP_ID equ 29 +CERT_EXTENDED_ERROR_INFO_PROP_ID equ 30 +CERT_RENEWAL_PROP_ID equ 64 +CERT_ARCHIVED_KEY_HASH_PROP_ID equ 65 +CERT_AUTO_ENROLL_RETRY_PROP_ID equ 66 +CERT_AIA_URL_RETRIEVED_PROP_ID equ 67 +CERT_FIRST_RESERVED_PROP_ID equ 68 +CERT_LAST_RESERVED_PROP_ID equ 00007FFFh +CERT_FIRST_USER_PROP_ID equ 00008000h +CERT_LAST_USER_PROP_ID equ 0000FFFFh +CERT_ACCESS_STATE_WRITE_PERSIST_FLAG equ 1h +CERT_ACCESS_STATE_SYSTEM_STORE_FLAG equ 2h +CERT_ACCESS_STATE_LM_SYSTEM_STORE_FLAG equ 4h +CERT_SET_KEY_PROV_HANDLE_PROP_ID equ 00000001h +CERT_SET_KEY_CONTEXT_PROP_ID equ 00000001h +CERT_STORE_PROV_MSG equ 1 +CERT_STORE_PROV_MEMORY equ 2 +CERT_STORE_PROV_FILE equ 3 +CERT_STORE_PROV_REG equ 4 +CERT_STORE_PROV_PKCS7 equ 5 +CERT_STORE_PROV_SERIALIZED equ 6 +CERT_STORE_PROV_FILENAME_A equ 7 +CERT_STORE_PROV_FILENAME_W equ 8 +CERT_STORE_PROV_FILENAME equ CERT_STORE_PROV_FILENAME_W +CERT_STORE_PROV_SYSTEM_A equ 9 +CERT_STORE_PROV_SYSTEM_W equ 10 +CERT_STORE_PROV_SYSTEM equ CERT_STORE_PROV_SYSTEM_W +CERT_STORE_PROV_COLLECTION equ 11 +CERT_STORE_PROV_SYSTEM_REGISTRY_A equ 12 +CERT_STORE_PROV_SYSTEM_REGISTRY_W equ 13 +CERT_STORE_PROV_SYSTEM_REGISTRY equ CERT_STORE_PROV_SYSTEM_REGISTRY_W +CERT_STORE_PROV_PHYSICAL_W equ 14 +CERT_STORE_PROV_PHYSICAL equ CERT_STORE_PROV_PHYSICAL_W +CERT_STORE_PROV_SMART_CARD_W equ 15 +CERT_STORE_PROV_SMART_CARD equ CERT_STORE_PROV_SMART_CARD_W +CERT_STORE_PROV_LDAP_W equ 16 +CERT_STORE_PROV_LDAP equ CERT_STORE_PROV_LDAP_W +CERT_STORE_SIGNATURE_FLAG equ 00000001h +CERT_STORE_TIME_VALIDITY_FLAG equ 00000002h +CERT_STORE_REVOCATION_FLAG equ 00000004h +CERT_STORE_NO_CRL_FLAG equ 00010000h +CERT_STORE_NO_ISSUER_FLAG equ 00020000h +CERT_STORE_BASE_CRL_FLAG equ 00000100h +CERT_STORE_DELTA_CRL_FLAG equ 00000200h +CERT_STORE_NO_CRYPT_RELEASE_FLAG equ 00000001h +CERT_STORE_SET_LOCALIZED_NAME_FLAG equ 00000002h +CERT_STORE_DEFER_CLOSE_UNTIL_LAST_FREE_FLAG equ 00000004h +CERT_STORE_DELETE_FLAG equ 00000010h +CERT_STORE_UNSAFE_PHYSICAL_FLAG equ 00000020h +CERT_STORE_SHARE_STORE_FLAG equ 00000040h +CERT_STORE_SHARE_CONTEXT_FLAG equ 00000080h +CERT_STORE_MANIFOLD_FLAG equ 00000100h +CERT_STORE_ENUM_ARCHIVED_FLAG equ 00000200h +CERT_STORE_UPDATE_KEYID_FLAG equ 00000400h +CERT_STORE_BACKUP_RESTORE_FLAG equ 00000800h +CERT_STORE_READONLY_FLAG equ 00008000h +CERT_STORE_OPEN_EXISTING_FLAG equ 00004000h +CERT_STORE_CREATE_NEW_FLAG equ 00002000h +CERT_STORE_MAXIMUM_ALLOWED_FLAG equ 00001000h +CERT_SYSTEM_STORE_MASK equ 0FFFF0000h +CERT_SYSTEM_STORE_RELOCATE_FLAG equ 80000000h +CERT_SYSTEM_STORE_UNPROTECTED_FLAG equ 40000000h +CERT_SYSTEM_STORE_LOCATION_MASK equ 00FF0000h +CERT_SYSTEM_STORE_LOCATION_SHIFT equ 16 +CERT_SYSTEM_STORE_CURRENT_USER_ID equ 1 +CERT_SYSTEM_STORE_LOCAL_MACHINE_ID equ 2 +CERT_SYSTEM_STORE_CURRENT_SERVICE_ID equ 4 +CERT_SYSTEM_STORE_SERVICES_ID equ 5 +CERT_SYSTEM_STORE_USERS_ID equ 6 +CERT_SYSTEM_STORE_CURRENT_USER_GROUP_POLICY_ID equ 7 +CERT_SYSTEM_STORE_LOCAL_MACHINE_GROUP_POLICY_ID equ 8 +CERT_SYSTEM_STORE_LOCAL_MACHINE_ENTERPRISE_ID equ 9 +CERT_PROT_ROOT_DISABLE_CURRENT_USER_FLAG equ 1h +CERT_PROT_ROOT_INHIBIT_ADD_AT_INIT_FLAG equ 2h +CERT_PROT_ROOT_INHIBIT_PURGE_LM_FLAG equ 4h +CERT_PROT_ROOT_DISABLE_LM_AUTH_FLAG equ 8h +CERT_PROT_ROOT_ONLY_LM_GPT_FLAG equ 8h +CERT_PROT_ROOT_DISABLE_NT_AUTH_REQUIRED_FLAG equ 10h +CERT_PROT_ROOT_DISABLE_NOT_DEFINED_NAME_CONSTRAINT_FLAG equ 20h +CERT_TRUST_PUB_ALLOW_TRUST_MASK equ 00000003h +CERT_TRUST_PUB_ALLOW_END_USER_TRUST equ 00000000h +CERT_TRUST_PUB_ALLOW_MACHINE_ADMIN_TRUST equ 00000001h +CERT_TRUST_PUB_ALLOW_ENTERPRISE_ADMIN_TRUST equ 00000002h +CERT_TRUST_PUB_CHECK_PUBLISHER_REV_FLAG equ 00000100h +CERT_TRUST_PUB_CHECK_TIMESTAMP_REV_FLAG equ 00000200h +CERT_AUTH_ROOT_AUTO_UPDATE_DISABLE_UNTRUSTED_ROOT_LOGGING_FLAG equ 1h +CERT_AUTH_ROOT_AUTO_UPDATE_DISABLE_PARTIAL_CHAIN_LOGGING_FLAG equ 2h +CERT_REGISTRY_STORE_REMOTE_FLAG equ 10000h +CERT_REGISTRY_STORE_SERIALIZED_FLAG equ 20000h +CERT_REGISTRY_STORE_CLIENT_GPT_FLAG equ 80000000h +CERT_REGISTRY_STORE_LM_GPT_FLAG equ 01000000h +CERT_REGISTRY_STORE_ROAMING_FLAG equ 40000h +CERT_REGISTRY_STORE_MY_IE_DIRTY_FLAG equ 80000h +CERT_FILE_STORE_COMMIT_ENABLE_FLAG equ 10000h +CERT_LDAP_STORE_SIGN_FLAG equ 10000h +CERT_LDAP_STORE_AREC_EXCLUSIVE_FLAG equ 20000h +CERT_LDAP_STORE_OPENED_FLAG equ 40000h +CERT_LDAP_STORE_UNBIND_FLAG equ 80000h +CERT_STORE_PROV_EXTERNAL_FLAG equ 1h +CERT_STORE_PROV_DELETED_FLAG equ 2h +CERT_STORE_PROV_NO_PERSIST_FLAG equ 4h +CERT_STORE_PROV_SYSTEM_STORE_FLAG equ 8h +CERT_STORE_PROV_LM_SYSTEM_STORE_FLAG equ 10h +CERT_STORE_PROV_CLOSE_FUNC equ 0 +CERT_STORE_PROV_READ_CERT_FUNC equ 1 +CERT_STORE_PROV_WRITE_CERT_FUNC equ 2 +CERT_STORE_PROV_DELETE_CERT_FUNC equ 3 +CERT_STORE_PROV_SET_CERT_PROPERTY_FUNC equ 4 +CERT_STORE_PROV_READ_CRL_FUNC equ 5 +CERT_STORE_PROV_WRITE_CRL_FUNC equ 6 +CERT_STORE_PROV_DELETE_CRL_FUNC equ 7 +CERT_STORE_PROV_SET_CRL_PROPERTY_FUNC equ 8 +CERT_STORE_PROV_READ_CTL_FUNC equ 9 +CERT_STORE_PROV_WRITE_CTL_FUNC equ 10 +CERT_STORE_PROV_DELETE_CTL_FUNC equ 11 +CERT_STORE_PROV_SET_CTL_PROPERTY_FUNC equ 12 +CERT_STORE_PROV_CONTROL_FUNC equ 13 +CERT_STORE_PROV_FIND_CERT_FUNC equ 14 +CERT_STORE_PROV_FREE_FIND_CERT_FUNC equ 15 +CERT_STORE_PROV_GET_CERT_PROPERTY_FUNC equ 16 +CERT_STORE_PROV_FIND_CRL_FUNC equ 17 +CERT_STORE_PROV_FREE_FIND_CRL_FUNC equ 18 +CERT_STORE_PROV_GET_CRL_PROPERTY_FUNC equ 19 +CERT_STORE_PROV_FIND_CTL_FUNC equ 20 +CERT_STORE_PROV_FREE_FIND_CTL_FUNC equ 21 +CERT_STORE_PROV_GET_CTL_PROPERTY_FUNC equ 22 +CERT_STORE_PROV_WRITE_ADD_FLAG equ 1h +CERT_STORE_SAVE_AS_STORE equ 1 +CERT_STORE_SAVE_AS_PKCS7 equ 2 +CERT_STORE_SAVE_TO_FILE equ 1 +CERT_STORE_SAVE_TO_MEMORY equ 2 +CERT_STORE_SAVE_TO_FILENAME_A equ 3 +CERT_STORE_SAVE_TO_FILENAME_W equ 4 +CERT_STORE_SAVE_TO_FILENAME equ CERT_STORE_SAVE_TO_FILENAME_W +CERT_CLOSE_STORE_FORCE_FLAG equ 00000001h +CERT_CLOSE_STORE_CHECK_FLAG equ 00000002h +CERT_COMPARE_MASK equ 0FFFFh +CERT_COMPARE_SHIFT equ 16 +CERT_COMPARE_ANY equ 0 +CERT_COMPARE_SHA1_HASH equ 1 +CERT_COMPARE_NAME equ 2 +CERT_COMPARE_ATTR equ 3 +CERT_COMPARE_MD5_HASH equ 4 +CERT_COMPARE_PROPERTY equ 5 +CERT_COMPARE_PUBLIC_KEY equ 6 +CERT_COMPARE_HASH equ CERT_COMPARE_SHA1_HASH +CERT_COMPARE_NAME_STR_A equ 7 +CERT_COMPARE_NAME_STR_W equ 8 +CERT_COMPARE_KEY_SPEC equ 9 +CERT_COMPARE_ENHKEY_USAGE equ 10 +CERT_COMPARE_CTL_USAGE equ CERT_COMPARE_ENHKEY_USAGE +CERT_COMPARE_SUBJECT_CERT equ 11 +CERT_COMPARE_ISSUER_OF equ 12 +CERT_COMPARE_EXISTING equ 13 +CERT_COMPARE_SIGNATURE_HASH equ 14 +CERT_COMPARE_KEY_IDENTIFIER equ 15 +CERT_COMPARE_CERT_ID equ 16 +CERT_COMPARE_CROSS_CERT_DIST_POINTS equ 17 +CERT_COMPARE_PUBKEY_MD5_HASH equ 18 +CERT_FIND_OPTIONAL_ENHKEY_USAGE_FLAG equ 1h +CERT_FIND_EXT_ONLY_ENHKEY_USAGE_FLAG equ 2h +CERT_FIND_PROP_ONLY_ENHKEY_USAGE_FLAG equ 4h +CERT_FIND_NO_ENHKEY_USAGE_FLAG equ 8h +CERT_FIND_OR_ENHKEY_USAGE_FLAG equ 10h +CERT_FIND_VALID_ENHKEY_USAGE_FLAG equ 20h +CERT_FIND_OPTIONAL_CTL_USAGE_FLAG equ CERT_FIND_OPTIONAL_ENHKEY_USAGE_FLAG +CERT_FIND_NO_CTL_USAGE_FLAG equ CERT_FIND_NO_ENHKEY_USAGE_FLAG +CERT_FIND_OR_CTL_USAGE_FLAG equ CERT_FIND_OR_ENHKEY_USAGE_FLAG +CERT_FIND_VALID_CTL_USAGE_FLAG equ CERT_FIND_VALID_ENHKEY_USAGE_FLAG +CERT_SET_PROPERTY_IGNORE_PERSIST_ERROR_FLAG equ 80000000h +CERT_SET_PROPERTY_INHIBIT_PERSIST_FLAG equ 40000000h +CTL_ENTRY_FROM_PROP_CHAIN_FLAG equ 1h +CRL_FIND_ANY equ 0 +CRL_FIND_ISSUED_BY equ 1 +CRL_FIND_EXISTING equ 2 +CRL_FIND_ISSUED_FOR equ 3 +CRL_FIND_ISSUED_BY_AKI_FLAG equ 1h +CRL_FIND_ISSUED_BY_SIGNATURE_FLAG equ 2h +CRL_FIND_ISSUED_BY_DELTA_FLAG equ 4h +CRL_FIND_ISSUED_BY_BASE_FLAG equ 8h +CERT_STORE_ADD_NEW equ 1 +CERT_STORE_ADD_USE_EXISTING equ 2 +CERT_STORE_ADD_REPLACE_EXISTING equ 3 +CERT_STORE_ADD_ALWAYS equ 4 +CERT_STORE_ADD_REPLACE_EXISTING_INHERIT_PROPERTIES equ 5 +CERT_STORE_ADD_NEWER equ 6 +CERT_STORE_ADD_NEWER_INHERIT_PROPERTIES equ 7 +CERT_STORE_CERTIFICATE_CONTEXT equ 1 +CERT_STORE_CRL_CONTEXT equ 2 +CERT_STORE_CTL_CONTEXT equ 3 +CERT_STORE_ALL_CONTEXT_FLAG equ 0 +CTL_ANY_SUBJECT_TYPE equ 1 +CTL_CERT_SUBJECT_TYPE equ 2 +CTL_FIND_ANY equ 0 +CTL_FIND_SHA1_HASH equ 1 +CTL_FIND_MD5_HASH equ 2 +CTL_FIND_USAGE equ 3 +CTL_FIND_SUBJECT equ 4 +CTL_FIND_EXISTING equ 5 +CTL_FIND_NO_LIST_ID_CBDATA equ 0FFFFFFFFh +CTL_FIND_NO_SIGNER_PTR equ -1 +CTL_FIND_SAME_USAGE_FLAG equ 1h +CERT_STORE_CTRL_RESYNC equ 1 +CERT_STORE_CTRL_NOTIFY_CHANGE equ 2 +CERT_STORE_CTRL_COMMIT equ 3 +CERT_STORE_CTRL_AUTO_RESYNC equ 4 +CERT_STORE_CTRL_CANCEL_NOTIFY equ 5 +CERT_STORE_CTRL_INHIBIT_DUPLICATE_HANDLE_FLAG equ 1h +CERT_STORE_CTRL_COMMIT_FORCE_FLAG equ 1h +CERT_STORE_CTRL_COMMIT_CLEAR_FLAG equ 2h +CERT_STORE_LOCALIZED_NAME_PROP_ID equ 1000h +CERT_CREATE_CONTEXT_NOCOPY_FLAG equ 1h +CERT_CREATE_CONTEXT_SORTED_FLAG equ 2h +CERT_CREATE_CONTEXT_NO_HCRYPTMSG_FLAG equ 4h +CERT_CREATE_CONTEXT_NO_ENTRY_FLAG equ 8h +CERT_PHYSICAL_STORE_ADD_ENABLE_FLAG equ 1h +CERT_PHYSICAL_STORE_OPEN_DISABLE_FLAG equ 2h +CERT_PHYSICAL_STORE_REMOTE_OPEN_DISABLE_FLAG equ 4h +CERT_PHYSICAL_STORE_INSERT_COMPUTER_NAME_ENABLE_FLAG equ 8h +CERT_PHYSICAL_STORE_PREDEFINED_ENUM_FLAG equ 1h +CMSG_TRUSTED_SIGNER_FLAG equ 1h +CMSG_SIGNER_ONLY_FLAG equ 2h +CMSG_USE_SIGNER_INDEX_FLAG equ 4h +CMSG_CMS_ENCAPSULATED_CTL_FLAG equ 00008000h +CMSG_ENCODE_SORTED_CTL_FLAG equ 1h +CMSG_ENCODE_HASHED_SUBJECT_IDENTIFIER_FLAG equ 2h +CERT_VERIFY_INHIBIT_CTL_UPDATE_FLAG equ 1h +CERT_VERIFY_TRUSTED_SIGNERS_FLAG equ 2h +CERT_VERIFY_NO_TIME_CHECK_FLAG equ 4h +CERT_VERIFY_ALLOW_MORE_USAGE_FLAG equ 8h +CERT_VERIFY_UPDATED_CTL_FLAG equ 1h +CERT_CONTEXT_REVOCATION_TYPE equ 1 +CERT_VERIFY_REV_CHAIN_FLAG equ 00000001h +CERT_VERIFY_CACHE_ONLY_BASED_REVOCATION equ 00000002h +CERT_VERIFY_REV_ACCUMULATIVE_TIMEOUT_FLAG equ 00000004h +CERT_UNICODE_IS_RDN_ATTRS_FLAG equ 1h +CERT_CASE_INSENSITIVE_IS_RDN_ATTRS_FLAG equ 2h +CRYPT_VERIFY_CERT_SIGN_SUBJECT_BLOB equ 1 +CRYPT_VERIFY_CERT_SIGN_SUBJECT_CERT equ 2 +CRYPT_VERIFY_CERT_SIGN_SUBJECT_CRL equ 3 +CRYPT_VERIFY_CERT_SIGN_ISSUER_PUBKEY equ 1 +CRYPT_VERIFY_CERT_SIGN_ISSUER_CERT equ 2 +CRYPT_VERIFY_CERT_SIGN_ISSUER_CHAIN equ 3 +CRYPT_VERIFY_CERT_SIGN_ISSUER_NULL equ 4 +CRYPT_DEFAULT_CONTEXT_AUTO_RELEASE_FLAG equ 00000001h +CRYPT_DEFAULT_CONTEXT_PROCESS_FLAG equ 00000002h +CRYPT_DEFAULT_CONTEXT_CERT_SIGN_OID equ 1 +CRYPT_DEFAULT_CONTEXT_MULTI_CERT_SIGN_OID equ 2 +CRYPT_ACQUIRE_CACHE_FLAG equ 00000001h +CRYPT_ACQUIRE_USE_PROV_INFO_FLAG equ 00000002h +CRYPT_ACQUIRE_COMPARE_KEY_FLAG equ 00000004h +CRYPT_ACQUIRE_SILENT_FLAG equ 00000040h +CRYPT_FIND_USER_KEYSET_FLAG equ 00000001h +CRYPT_FIND_MACHINE_KEYSET_FLAG equ 00000002h +CRYPT_FIND_SILENT_KEYSET_FLAG equ 00000040h +CRYPT_DELETE_KEYSET equ 0001h +CERT_SIMPLE_NAME_STR equ 1 +CERT_OID_NAME_STR equ 2 +CERT_X500_NAME_STR equ 3 +CERT_NAME_STR_SEMICOLON_FLAG equ 40000000h +CERT_NAME_STR_NO_PLUS_FLAG equ 20000000h +CERT_NAME_STR_NO_QUOTING_FLAG equ 10000000h +CERT_NAME_STR_CRLF_FLAG equ 08000000h +CERT_NAME_STR_COMMA_FLAG equ 04000000h +CERT_NAME_STR_REVERSE_FLAG equ 02000000h +CERT_NAME_STR_DISABLE_IE4_UTF8_FLAG equ 00010000h +CERT_NAME_STR_ENABLE_T61_UNICODE_FLAG equ 00020000h +CERT_NAME_STR_ENABLE_UTF8_UNICODE_FLAG equ 00040000h +CERT_NAME_EMAIL_TYPE equ 1 +CERT_NAME_RDN_TYPE equ 2 +CERT_NAME_ATTR_TYPE equ 3 +CERT_NAME_SIMPLE_DISPLAY_TYPE equ 4 +CERT_NAME_FRIENDLY_DISPLAY_TYPE equ 5 +CERT_NAME_DNS_TYPE equ 6 +CERT_NAME_URL_TYPE equ 7 +CERT_NAME_UPN_TYPE equ 8 +CERT_NAME_ISSUER_FLAG equ 1h +CERT_NAME_DISABLE_IE4_UTF8_FLAG equ 00010000h +CRYPT_MESSAGE_BARE_CONTENT_OUT_FLAG equ 00000001h +CRYPT_MESSAGE_ENCAPSULATED_CONTENT_OUT_FLAG equ 00000002h +CRYPT_MESSAGE_KEYID_SIGNER_FLAG equ 00000004h +CRYPT_MESSAGE_SILENT_KEYSET_FLAG equ 00000040h +CRYPT_MESSAGE_KEYID_RECIPIENT_FLAG equ 4h +CERT_QUERY_OBJECT_FILE equ 00000001h +CERT_QUERY_OBJECT_BLOB equ 00000002h +CERT_QUERY_CONTENT_CERT equ 1 +CERT_QUERY_CONTENT_CTL equ 2 +CERT_QUERY_CONTENT_CRL equ 3 +CERT_QUERY_CONTENT_SERIALIZED_STORE equ 4 +CERT_QUERY_CONTENT_SERIALIZED_CERT equ 5 +CERT_QUERY_CONTENT_SERIALIZED_CTL equ 6 +CERT_QUERY_CONTENT_SERIALIZED_CRL equ 7 +CERT_QUERY_CONTENT_PKCS7_SIGNED equ 8 +CERT_QUERY_CONTENT_PKCS7_UNSIGNED equ 9 +CERT_QUERY_CONTENT_PKCS7_SIGNED_EMBED equ 10 +CERT_QUERY_CONTENT_PKCS10 equ 11 +CERT_QUERY_CONTENT_PFX equ 12 +CERT_QUERY_CONTENT_CERT_PAIR equ 13 +CERT_QUERY_FORMAT_BINARY equ 1 +CERT_QUERY_FORMAT_BASE64_ENCODED equ 2 +CERT_QUERY_FORMAT_ASN_ASCII_HEX_ENCODED equ 3 +CREDENTIAL_OID_PASSWORD_CREDENTIALS_A equ 1 +CREDENTIAL_OID_PASSWORD_CREDENTIALS_W equ 2 +CONTEXT_OID_CERTIFICATE equ 1 +CONTEXT_OID_CRL equ 2 +CONTEXT_OID_CTL equ 3 +CONTEXT_OID_PKCS7 equ 4 +CONTEXT_OID_CAPI2_ANY equ 5 +CRYPT_RETRIEVE_MULTIPLE_OBJECTS equ 00000001h +CRYPT_CACHE_ONLY_RETRIEVAL equ 00000002h +CRYPT_WIRE_ONLY_RETRIEVAL equ 00000004h +CRYPT_DONT_CACHE_RESULT equ 00000008h +CRYPT_ASYNC_RETRIEVAL equ 00000010h +CRYPT_STICKY_CACHE_RETRIEVAL equ 00001000h +CRYPT_LDAP_SCOPE_BASE_ONLY_RETRIEVAL equ 00002000h +CRYPT_OFFLINE_CHECK_RETRIEVAL equ 00004000h +CRYPT_LDAP_INSERT_ENTRY_ATTRIBUTE equ 00008000h +CRYPT_LDAP_SIGN_RETRIEVAL equ 00010000h +CRYPT_NO_AUTH_RETRIEVAL equ 00020000h +CRYPT_LDAP_AREC_EXCLUSIVE_RETRIEVAL equ 00040000h +CRYPT_AIA_RETRIEVAL equ 00080000h +CRYPT_VERIFY_CONTEXT_SIGNATURE equ 00000020h +CRYPT_VERIFY_DATA_HASH equ 00000040h +CRYPT_KEEP_TIME_VALID equ 00000080h +CRYPT_DONT_VERIFY_SIGNATURE equ 00000100h +CRYPT_DONT_CHECK_TIME_VALIDITY equ 00000200h +CRYPT_CHECK_FRESHNESS_TIME_VALIDITY equ 00000400h +CRYPT_ACCUMULATIVE_TIMEOUT equ 00000800h +CRYPT_PARAM_ASYNC_RETRIEVAL_COMPLETION equ 1 +CRYPT_PARAM_CANCEL_ASYNC_RETRIEVAL equ 2 +CRYPT_GET_URL_FROM_PROPERTY equ 00000001h +CRYPT_GET_URL_FROM_EXTENSION equ 00000002h +CRYPT_GET_URL_FROM_UNAUTH_ATTRIBUTE equ 00000004h +CRYPT_GET_URL_FROM_AUTH_ATTRIBUTE equ 00000008h +URL_OID_CERTIFICATE_ISSUER equ 1 +URL_OID_CERTIFICATE_CRL_DIST_POINT equ 2 +URL_OID_CTL_ISSUER equ 3 +URL_OID_CTL_NEXT_UPDATE equ 4 +URL_OID_CRL_ISSUER equ 5 +URL_OID_CERTIFICATE_FRESHEST_CRL equ 6 +URL_OID_CRL_FRESHEST_CRL equ 7 +URL_OID_CROSS_CERT_DIST_POINT equ 8 +TIME_VALID_OID_GET_CTL equ 1 +TIME_VALID_OID_GET_CRL equ 2 +TIME_VALID_OID_GET_CRL_FROM_CERT equ 3 +TIME_VALID_OID_GET_FRESHEST_CRL_FROM_CERT equ 4 +TIME_VALID_OID_GET_FRESHEST_CRL_FROM_CRL equ 5 +TIME_VALID_OID_FLUSH_CTL equ 1 +TIME_VALID_OID_FLUSH_CRL equ 2 +TIME_VALID_OID_FLUSH_CRL_FROM_CERT equ 3 +TIME_VALID_OID_FLUSH_FRESHEST_CRL_FROM_CERT equ 4 +TIME_VALID_OID_FLUSH_FRESHEST_CRL_FROM_CRL equ 5 +CRYPTPROTECT_PROMPT_ON_UNPROTECT equ 1h +CRYPTPROTECT_PROMPT_ON_PROTECT equ 2h +CRYPTPROTECT_PROMPT_RESERVED equ 04h +CRYPTPROTECT_PROMPT_STRONG equ 08h +CRYPTPROTECT_PROMPT_REQUIRE_STRONG equ 10h +CRYPTPROTECT_UI_FORBIDDEN equ 1h +CRYPTPROTECT_LOCAL_MACHINE equ 4h +CRYPTPROTECT_CRED_SYNC equ 8h +CRYPTPROTECT_AUDIT equ 10h +CRYPTPROTECT_NO_RECOVERY equ 20h +CRYPTPROTECT_VERIFY_PROTECTION equ 40h +CRYPTPROTECT_CRED_REGENERATE equ 80h +CRYPTPROTECT_FIRST_RESERVED_FLAGVAL equ 0FFFFFFFh +CRYPTPROTECT_LAST_RESERVED_FLAGVAL equ 0FFFFFFFFh +CRYPTPROTECTMEMORY_BLOCK_SIZE equ 16 +CRYPTPROTECTMEMORY_SAME_PROCESS equ 00h +CRYPTPROTECTMEMORY_CROSS_PROCESS equ 01h +CRYPTPROTECTMEMORY_SAME_LOGON equ 02h +CERT_CREATE_SELFSIGN_NO_SIGN equ 1 +CERT_CREATE_SELFSIGN_NO_KEY_INFO equ 2 +CRYPT_KEYID_MACHINE_FLAG equ 00000020h +CRYPT_KEYID_ALLOC_FLAG equ 00008000h +CRYPT_KEYID_DELETE_FLAG equ 00000010h +CRYPT_KEYID_SET_NEW_FLAG equ 00002000h +CERT_CHAIN_MAX_AIA_URL_COUNT_IN_CERT_DEFAULT equ 5 +CERT_CHAIN_MAX_AIA_URL_RETRIEVAL_COUNT_PER_CHAIN_DEFAULT equ 10 +CERT_CHAIN_MAX_AIA_URL_RETRIEVAL_BYTE_COUNT_DEFAULT equ 100000 +CERT_CHAIN_MAX_AIA_URL_RETRIEVAL_CERT_COUNT_DEFAULT equ 10 +HCCE_CURRENT_USER equ 0 +HCCE_LOCAL_MACHINE equ 1 +CERT_CHAIN_CACHE_END_CERT equ 00000001h +CERT_CHAIN_THREAD_STORE_SYNC equ 00000002h +CERT_CHAIN_CACHE_ONLY_URL_RETRIEVAL equ 00000004h +CERT_CHAIN_USE_LOCAL_MACHINE_STORE equ 00000008h +CERT_CHAIN_ENABLE_CACHE_AUTO_UPDATE equ 00000010h +CERT_CHAIN_ENABLE_SHARE_STORE equ 00000020h +CERT_TRUST_NO_ERROR equ 00000000h +CERT_TRUST_IS_NOT_TIME_VALID equ 00000001h +CERT_TRUST_IS_NOT_TIME_NESTED equ 00000002h +CERT_TRUST_IS_REVOKED equ 00000004h +CERT_TRUST_IS_NOT_SIGNATURE_VALID equ 00000008h +CERT_TRUST_IS_NOT_VALID_FOR_USAGE equ 00000010h +CERT_TRUST_IS_UNTRUSTED_ROOT equ 00000020h +CERT_TRUST_REVOCATION_STATUS_UNKNOWN equ 00000040h +CERT_TRUST_IS_CYCLIC equ 00000080h +CERT_TRUST_INVALID_EXTENSION equ 00000100h +CERT_TRUST_INVALID_POLICY_CONSTRAINTS equ 00000200h +CERT_TRUST_INVALID_BASIC_CONSTRAINTS equ 00000400h +CERT_TRUST_INVALID_NAME_CONSTRAINTS equ 00000800h +CERT_TRUST_HAS_NOT_SUPPORTED_NAME_CONSTRAINT equ 00001000h +CERT_TRUST_HAS_NOT_DEFINED_NAME_CONSTRAINT equ 00002000h +CERT_TRUST_HAS_NOT_PERMITTED_NAME_CONSTRAINT equ 00004000h +CERT_TRUST_HAS_EXCLUDED_NAME_CONSTRAINT equ 00008000h +CERT_TRUST_IS_OFFLINE_REVOCATION equ 01000000h +CERT_TRUST_NO_ISSUANCE_CHAIN_POLICY equ 02000000h +CERT_TRUST_IS_PARTIAL_CHAIN equ 00010000h +CERT_TRUST_CTL_IS_NOT_TIME_VALID equ 00020000h +CERT_TRUST_CTL_IS_NOT_SIGNATURE_VALID equ 00040000h +CERT_TRUST_CTL_IS_NOT_VALID_FOR_USAGE equ 00080000h +CERT_TRUST_HAS_EXACT_MATCH_ISSUER equ 00000001h +CERT_TRUST_HAS_KEY_MATCH_ISSUER equ 00000002h +CERT_TRUST_HAS_NAME_MATCH_ISSUER equ 00000004h +CERT_TRUST_IS_SELF_SIGNED equ 00000008h +CERT_TRUST_HAS_PREFERRED_ISSUER equ 00000100h +CERT_TRUST_HAS_ISSUANCE_CHAIN_POLICY equ 00000200h +CERT_TRUST_HAS_VALID_NAME_CONSTRAINTS equ 00000400h +CERT_TRUST_IS_COMPLEX_CHAIN equ 00010000h +USAGE_MATCH_TYPE_AND equ 00000000h +USAGE_MATCH_TYPE_OR equ 00000001h +CERT_CHAIN_REVOCATION_CHECK_END_CERT equ 10000000h +CERT_CHAIN_REVOCATION_CHECK_CHAIN equ 20000000h +CERT_CHAIN_REVOCATION_CHECK_CHAIN_EXCLUDE_ROOT equ 40000000h +CERT_CHAIN_REVOCATION_CHECK_CACHE_ONLY equ 80000000h +CERT_CHAIN_REVOCATION_ACCUMULATIVE_TIMEOUT equ 08000000h +CERT_CHAIN_DISABLE_PASS1_QUALITY_FILTERING equ 00000040h +CERT_CHAIN_RETURN_LOWER_QUALITY_CONTEXTS equ 00000080h +CERT_CHAIN_DISABLE_AUTH_ROOT_AUTO_UPDATE equ 00000100h +CERT_CHAIN_TIMESTAMP_TIME equ 00000200h +REVOCATION_OID_CRL_REVOCATION equ 1 +CERT_CHAIN_FIND_BY_ISSUER equ 1 +CERT_CHAIN_FIND_BY_ISSUER_COMPARE_KEY_FLAG equ 0001h +CERT_CHAIN_FIND_BY_ISSUER_COMPLEX_CHAIN_FLAG equ 0002h +CERT_CHAIN_FIND_BY_ISSUER_CACHE_ONLY_URL_FLAG equ 0004h +CERT_CHAIN_FIND_BY_ISSUER_LOCAL_MACHINE_FLAG equ 0008h +CERT_CHAIN_FIND_BY_ISSUER_NO_KEY_FLAG equ 4000h +CERT_CHAIN_FIND_BY_ISSUER_CACHE_ONLY_FLAG equ 8000h +CERT_CHAIN_POLICY_IGNORE_NOT_TIME_VALID_FLAG equ 00000001h +CERT_CHAIN_POLICY_IGNORE_CTL_NOT_TIME_VALID_FLAG equ 00000002h +CERT_CHAIN_POLICY_IGNORE_NOT_TIME_NESTED_FLAG equ 00000004h +CERT_CHAIN_POLICY_IGNORE_INVALID_BASIC_CONSTRAINTS_FLAG equ 00000008h +CERT_CHAIN_POLICY_ALLOW_UNKNOWN_CA_FLAG equ 00000010h +CERT_CHAIN_POLICY_IGNORE_WRONG_USAGE_FLAG equ 00000020h +CERT_CHAIN_POLICY_IGNORE_INVALID_NAME_FLAG equ 00000040h +CERT_CHAIN_POLICY_IGNORE_INVALID_POLICY_FLAG equ 00000080h +CERT_CHAIN_POLICY_IGNORE_END_REV_UNKNOWN_FLAG equ 00000100h +CERT_CHAIN_POLICY_IGNORE_CTL_SIGNER_REV_UNKNOWN_FLAG equ 00000200h +CERT_CHAIN_POLICY_IGNORE_CA_REV_UNKNOWN_FLAG equ 00000400h +CERT_CHAIN_POLICY_IGNORE_ROOT_REV_UNKNOWN_FLAG equ 00000800h +CERT_CHAIN_POLICY_ALLOW_TESTROOT_FLAG equ 00008000h +CERT_CHAIN_POLICY_TRUST_TESTROOT_FLAG equ 00004000h +CERT_CHAIN_POLICY_BASE equ 1 +CERT_CHAIN_POLICY_AUTHENTICODE equ 2 +CERT_CHAIN_POLICY_AUTHENTICODE_TS equ 3 +CERT_CHAIN_POLICY_SSL equ 4 +CERT_CHAIN_POLICY_BASIC_CONSTRAINTS equ 5 +CERT_CHAIN_POLICY_NT_AUTH equ 6 +CERT_CHAIN_POLICY_MICROSOFT_ROOT equ 7 +BASIC_CONSTRAINTS_CERT_CHAIN_POLICY_CA_FLAG equ 80000000h +BASIC_CONSTRAINTS_CERT_CHAIN_POLICY_END_ENTITY_FLAG equ 40000000h +MICROSOFT_ROOT_CERT_CHAIN_POLICY_ENABLE_TEST_ROOT_FLAG equ 00010000h +CRYPT_STRING_BASE64HEADER equ 00000000h +CRYPT_STRING_BASE64 equ 00000001h +CRYPT_STRING_BINARY equ 00000002h +CRYPT_STRING_BASE64REQUESTHEADER equ 00000003h +CRYPT_STRING_HEX equ 00000004h +CRYPT_STRING_HEXASCII equ 00000005h +CRYPT_STRING_BASE64_ANY equ 00000006h +CRYPT_STRING_ANY equ 00000007h +CRYPT_STRING_HEX_ANY equ 00000008h +CRYPT_STRING_BASE64X509CRLHEADER equ 00000009h +CRYPT_STRING_HEXADDR equ 0000000ah +CRYPT_STRING_HEXASCIIADDR equ 0000000bh +CRYPT_STRING_NOCR equ 80000000h +CRYPT_USER_KEYSET equ 00001000h +PKCS12_IMPORT_RESERVED_MASK equ 0ffff0000h +REPORT_NO_PRIVATE_KEY equ 0001h +REPORT_NOT_ABLE_TO_EXPORT_PRIVATE_KEY equ 0002h +EXPORT_PRIVATE_KEYS equ 0004h +PKCS12_EXPORT_RESERVED_MASK equ 0ffff0000h + +;;;; end wincrypt + +;;;; odbcsql + +;------------------------------------------------------------------------------------------ +; ODBCInst.h +;------------------------------------------------------------------------------------------ +ODBC_ADD_DSN equ 1 +ODBC_CONFIG_DSN equ 2 +ODBC_REMOVE_DSN equ 3 +ODBC_ADD_SYS_DSN equ 4 +ODBC_CONFIG_SYS_DSN equ 5 +ODBC_REMOVE_SYS_DSN equ 6 +ODBC_REMOVE_DEFAULT_DSN equ 7 +ODBC_INSTALL_INQUIRY equ 1 +ODBC_INSTALL_COMPLETE equ 2 +ODBC_INSTALL_DRIVER equ 1 +ODBC_REMOVE_DRIVER equ 2 +ODBC_CONFIG_DRIVER equ 3 +ODBC_CONFIG_DRIVER_MAX equ 100 +ODBC_BOTH_DSN equ 0 +ODBC_USER_DSN equ 1 +ODBC_SYSTEM_DSN equ 2 +ODBC_ERROR_GENERAL_ERR equ 1 +ODBC_ERROR_INVALID_BUFF_LEN equ 2 +ODBC_ERROR_INVALID_HWND equ 3 +ODBC_ERROR_INVALID_STR equ 4 +ODBC_ERROR_INVALID_REQUEST_TYPE equ 5 +ODBC_ERROR_COMPONENT_NOT_FOUND equ 6 +ODBC_ERROR_INVALID_NAME equ 7 +ODBC_ERROR_INVALID_KEYWORD_VALUE equ 8 +ODBC_ERROR_INVALID_DSN equ 9 +ODBC_ERROR_INVALID_INF equ 10 +ODBC_ERROR_REQUEST_FAILED equ 11 +ODBC_ERROR_INVALID_PATH equ 12 +ODBC_ERROR_LOAD_LIB_FAILED equ 13 +ODBC_ERROR_INVALID_PARAM_SEQUENCE equ 14 +ODBC_ERROR_INVALID_LOG_FILE equ 15 +ODBC_ERROR_USER_CANCELED equ 16 +ODBC_ERROR_USAGE_UPDATE_FAILED equ 17 +ODBC_ERROR_CREATE_DSN_FAILED equ 18 +ODBC_ERROR_WRITING_SYSINFO_FAILED equ 19 +ODBC_ERROR_REMOVE_DSN_FAILED equ 20 +ODBC_ERROR_OUT_OF_MEM equ 21 +ODBC_ERROR_OUTPUT_STRING_TRUNCATED equ 22 +;--------------------------------------------------------------------------------------------------------------- +; sql.h +;--------------------------------------------------------------------------------------------------------------- +SQL_NULL_DATA equ (-1) +SQL_DATA_AT_EXEC equ (-2) +SQL_SUCCESS equ 0 +SQL_SUCCESS_WITH_INFO equ 1 +SQL_NO_DATA equ 100 +SQL_ERROR equ (-1) +SQL_INVALID_HANDLE equ (-2) +SQL_STILL_EXECUTING equ 2 +SQL_NEED_DATA equ 99 +SQL_NTS equ (-3) +SQL_NTSL equ (-3) +SQL_MAX_MESSAGE_LENGTH equ 512 +SQL_DATE_LEN equ 10 +SQL_TIME_LEN equ 8 +SQL_TIMESTAMP_LEN equ 19 +SQL_HANDLE_ENV equ 1 +SQL_HANDLE_DBC equ 2 +SQL_HANDLE_STMT equ 3 +SQL_HANDLE_DESC equ 4 +SQL_ATTR_OUTPUT_NTS equ 10001 +SQL_ATTR_AUTO_IPD equ 10001 +SQL_ATTR_METADATA_ID equ 10014 +SQL_ATTR_APP_ROW_DESC equ 10010 +SQL_ATTR_APP_PARAM_DESC equ 10011 +SQL_ATTR_IMP_ROW_DESC equ 10012 +SQL_ATTR_IMP_PARAM_DESC equ 10013 +SQL_ATTR_CURSOR_SCROLLABLE equ (-1) +SQL_ATTR_CURSOR_SENSITIVITY equ (-2) +SQL_NONSCROLLABLE equ 0 +SQL_SCROLLABLE equ 1 +SQL_DESC_COUNT equ 1001 +SQL_DESC_TYPE equ 1002 +SQL_DESC_LENGTH equ 1003 +SQL_DESC_OCTET_LENGTH_PTR equ 1004 +SQL_DESC_PRECISION equ 1005 +SQL_DESC_SCALE equ 1006 +SQL_DESC_DATETIME_INTERVAL_CODE equ 1007 +SQL_DESC_NULLABLE equ 1008 +SQL_DESC_INDICATOR_PTR equ 1009 +SQL_DESC_DATA_PTR equ 1010 +SQL_DESC_NAME equ 1011 +SQL_DESC_UNNAMED equ 1012 +SQL_DESC_OCTET_LENGTH equ 1013 +SQL_DESC_ALLOC_TYPE equ 1099 +SQL_DIAG_RETURNCODE equ 1 +SQL_DIAG_NUMBER equ 2 +SQL_DIAG_ROW_COUNT equ 3 +SQL_DIAG_SQLSTATE equ 4 +SQL_DIAG_NATIVE equ 5 +SQL_DIAG_MESSAGE_TEXT equ 6 +SQL_DIAG_DYNAMIC_FUNCTION equ 7 +SQL_DIAG_CLASS_ORIGIN equ 8 +SQL_DIAG_SUBCLASS_ORIGIN equ 9 +SQL_DIAG_CONNECTION_NAME equ 10 +SQL_DIAG_SERVER_NAME equ 11 +SQL_DIAG_DYNAMIC_FUNCTION_CODE equ 12 +SQL_DIAG_ALTER_DOMAIN equ 3 +SQL_DIAG_ALTER_TABLE equ 4 +SQL_DIAG_CALL equ 7 +SQL_DIAG_CREATE_ASSERTION equ 6 +SQL_DIAG_CREATE_CHARACTER_SET equ 8 +SQL_DIAG_CREATE_COLLATION equ 10 +SQL_DIAG_CREATE_DOMAIN equ 23 +SQL_DIAG_CREATE_INDEX equ (-1) +SQL_DIAG_CREATE_SCHEMA equ 64 +SQL_DIAG_CREATE_TABLE equ 77 +SQL_DIAG_CREATE_TRANSLATION equ 79 +SQL_DIAG_CREATE_VIEW equ 84 +SQL_DIAG_DELETE_WHERE equ 19 +SQL_DIAG_DROP_ASSERTION equ 24 +SQL_DIAG_DROP_CHARACTER_SET equ 25 +SQL_DIAG_DROP_COLLATION equ 26 +SQL_DIAG_DROP_DOMAIN equ 27 +SQL_DIAG_DROP_INDEX equ (-2) +SQL_DIAG_DROP_SCHEMA equ 31 +SQL_DIAG_DROP_TABLE equ 32 +SQL_DIAG_DROP_TRANSLATION equ 33 +SQL_DIAG_DROP_VIEW equ 36 +SQL_DIAG_DYNAMIC_DELETE_CURSOR equ 38 +SQL_DIAG_DYNAMIC_UPDATE_CURSOR equ 81 +SQL_DIAG_GRANT equ 48 +SQL_DIAG_INSERT equ 50 +SQL_DIAG_REVOKE equ 59 +SQL_DIAG_SELECT_CURSOR equ 85 +SQL_DIAG_UNKNOWN_STATEMENT equ 0 +SQL_DIAG_UPDATE_WHERE equ 82 +SQL_UNKNOWN_TYPE equ 0 +SQL_CHAR equ 1 +SQL_NUMERIC equ 2 +SQL_DECIMAL equ 3 +SQL_INTEGER equ 4 +SQL_SMALLINT equ 5 +SQL_FLOAT equ 6 +SQL_REAL equ 7 +SQL_DOUBLE equ 8 +SQL_DATETIME equ 9 +SQL_VARCHAR equ 12 +SQL_TYPE_DATE equ 91 +SQL_TYPE_TIME equ 92 +SQL_TYPE_TIMESTAMP equ 93 +SQL_UNSPECIFIED equ 0 +SQL_INSENSITIVE equ 1 +SQL_SENSITIVE equ 2 +SQL_ALL_TYPES equ 0 +SQL_DEFAULT equ 99 +SQL_ARD_TYPE equ (-99) +SQL_CODE_DATE equ 1 +SQL_CODE_TIME equ 2 +SQL_CODE_TIMESTAMP equ 3 +SQL_FALSE equ 0 +SQL_TRUE equ 1 +SQL_NO_NULLS equ 0 +SQL_NULLABLE equ 1 +SQL_NULLABLE_UNKNOWN equ 2 +SQL_PRED_NONE equ 0 +SQL_PRED_CHAR equ 1 +SQL_PRED_BASIC equ 2 +SQL_NAMED equ 0 +SQL_UNNAMED equ 1 +SQL_DESC_ALLOC_AUTO equ 1 +SQL_DESC_ALLOC_USER equ 2 +SQL_CLOSE equ 0 +SQL_DROP equ 1 +SQL_UNBIND equ 2 +SQL_RESET_PARAMS equ 3 +SQL_FETCH_NEXT equ 1 +SQL_FETCH_FIRST equ 2 +SQL_FETCH_LAST equ 3 +SQL_FETCH_PRIOR equ 4 +SQL_FETCH_ABSOLUTE equ 5 +SQL_FETCH_RELATIVE equ 6 +SQL_COMMIT equ 0 +SQL_ROLLBACK equ 1 +SQL_NULL_HENV equ 0 +SQL_NULL_HDBC equ 0 +SQL_NULL_HSTMT equ 0 +SQL_NULL_HDESC equ 0 +SQL_NULL_HANDLE equ 0 +SQL_SCOPE_CURROW equ 0 +SQL_SCOPE_TRANSACTION equ 1 +SQL_SCOPE_SESSION equ 2 +SQL_PC_UNKNOWN equ 0 +SQL_PC_NON_PSEUDO equ 1 +SQL_PC_PSEUDO equ 2 +SQL_ROW_IDENTIFIER equ 1 +SQL_INDEX_UNIQUE equ 0 +SQL_INDEX_ALL equ 1 +SQL_INDEX_CLUSTERED equ 1 +SQL_INDEX_HASHED equ 2 +SQL_INDEX_OTHER equ 3 +SQL_API_SQLALLOCCONNECT equ 1 +SQL_API_SQLALLOCENV equ 2 +SQL_API_SQLALLOCHANDLE equ 1001 +SQL_API_SQLALLOCSTMT equ 3 +SQL_API_SQLBINDCOL equ 4 +SQL_API_SQLBINDPARAM equ 1002 +SQL_API_SQLCANCEL equ 5 +SQL_API_SQLCLOSECURSOR equ 1003 +SQL_API_SQLCOLATTRIBUTE equ 6 +SQL_API_SQLCOLUMNS equ 40 +SQL_API_SQLCONNECT equ 7 +SQL_API_SQLCOPYDESC equ 1004 +SQL_API_SQLDATASOURCES equ 57 +SQL_API_SQLDESCRIBECOL equ 8 +SQL_API_SQLDISCONNECT equ 9 +SQL_API_SQLENDTRAN equ 1005 +SQL_API_SQLERROR equ 10 +SQL_API_SQLEXECDIRECT equ 11 +SQL_API_SQLEXECUTE equ 12 +SQL_API_SQLFETCH equ 13 +SQL_API_SQLFETCHSCROLL equ 1021 +SQL_API_SQLFREECONNECT equ 14 +SQL_API_SQLFREEENV equ 15 +SQL_API_SQLFREEHANDLE equ 1006 +SQL_API_SQLFREESTMT equ 16 +SQL_API_SQLGETCONNECTATTR equ 1007 +SQL_API_SQLGETCONNECTOPTION equ 42 +SQL_API_SQLGETCURSORNAME equ 17 +SQL_API_SQLGETDATA equ 43 +SQL_API_SQLGETDESCFIELD equ 1008 +SQL_API_SQLGETDESCREC equ 1009 +SQL_API_SQLGETDIAGFIELD equ 1010 +SQL_API_SQLGETDIAGREC equ 1011 +SQL_API_SQLGETENVATTR equ 1012 +SQL_API_SQLGETFUNCTIONS equ 44 +SQL_API_SQLGETINFO equ 45 +SQL_API_SQLGETSTMTATTR equ 1014 +SQL_API_SQLGETSTMTOPTION equ 46 +SQL_API_SQLGETTYPEINFO equ 47 +SQL_API_SQLNUMRESULTCOLS equ 18 +SQL_API_SQLPARAMDATA equ 48 +SQL_API_SQLPREPARE equ 19 +SQL_API_SQLPUTDATA equ 49 +SQL_API_SQLROWCOUNT equ 20 +SQL_API_SQLSETCONNECTATTR equ 1016 +SQL_API_SQLSETCONNECTOPTION equ 50 +SQL_API_SQLSETCURSORNAME equ 21 +SQL_API_SQLSETDESCFIELD equ 1017 +SQL_API_SQLSETDESCREC equ 1018 +SQL_API_SQLSETENVATTR equ 1019 +SQL_API_SQLSETPARAM equ 22 +SQL_API_SQLSETSTMTATTR equ 1020 +SQL_API_SQLSETSTMTOPTION equ 51 +SQL_API_SQLSPECIALCOLUMNS equ 52 +SQL_API_SQLSTATISTICS equ 53 +SQL_API_SQLTABLES equ 54 +SQL_API_SQLTRANSACT equ 23 +SQL_MAX_DRIVER_CONNECTIONS equ 0 +SQL_MAXIMUM_DRIVER_CONNECTIONS equ SQL_MAX_DRIVER_CONNECTIONS +SQL_MAX_CONCURRENT_ACTIVITIES equ 1 +SQL_MAXIMUM_CONCURRENT_ACTIVITIES equ SQL_MAX_CONCURRENT_ACTIVITIES +SQL_DATA_SOURCE_NAME equ 2 +SQL_FETCH_DIRECTION equ 8 +SQL_SERVER_NAME equ 13 +SQL_SEARCH_PATTERN_ESCAPE equ 14 +SQL_DBMS_NAME equ 17 +SQL_DBMS_VER equ 18 +SQL_ACCESSIBLE_TABLES equ 19 +SQL_ACCESSIBLE_PROCEDURES equ 20 +SQL_CURSOR_COMMIT_BEHAVIOR equ 23 +SQL_DATA_SOURCE_READ_ONLY equ 25 +SQL_DEFAULT_TXN_ISOLATION equ 26 +SQL_IDENTIFIER_CASE equ 28 +SQL_IDENTIFIER_QUOTE_CHAR equ 29 +SQL_MAX_COLUMN_NAME_LEN equ 30 +SQL_MAXIMUM_COLUMN_NAME_LENGTH equ SQL_MAX_COLUMN_NAME_LEN +SQL_MAX_CURSOR_NAME_LEN equ 31 +SQL_MAXIMUM_CURSOR_NAME_LENGTH equ SQL_MAX_CURSOR_NAME_LEN +SQL_MAX_SCHEMA_NAME_LEN equ 32 +SQL_MAXIMUM_SCHEMA_NAME_LENGTH equ SQL_MAX_SCHEMA_NAME_LEN +SQL_MAX_CATALOG_NAME_LEN equ 34 +SQL_MAXIMUM_CATALOG_NAME_LENGTH equ SQL_MAX_CATALOG_NAME_LEN +SQL_MAX_TABLE_NAME_LEN equ 35 +SQL_SCROLL_CONCURRENCY equ 43 +SQL_TXN_CAPABLE equ 46 +SQL_TRANSACTION_CAPABLE equ SQL_TXN_CAPABLE +SQL_USER_NAME equ 47 +SQL_TXN_ISOLATION_OPTION equ 72 +SQL_TRANSACTION_ISOLATION_OPTION equ SQL_TXN_ISOLATION_OPTION +SQL_INTEGRITY equ 73 +SQL_GETDATA_EXTENSIONS equ 81 +SQL_NULL_COLLATION equ 85 +SQL_ALTER_TABLE equ 86 +SQL_ORDER_BY_COLUMNS_IN_SELECT equ 90 +SQL_SPECIAL_CHARACTERS equ 94 +SQL_MAX_COLUMNS_IN_GROUP_BY equ 97 +SQL_MAXIMUM_COLUMNS_IN_GROUP_BY equ SQL_MAX_COLUMNS_IN_GROUP_BY +SQL_MAX_COLUMNS_IN_INDEX equ 98 +SQL_MAXIMUM_COLUMNS_IN_INDEX equ SQL_MAX_COLUMNS_IN_INDEX +SQL_MAX_COLUMNS_IN_ORDER_BY equ 99 +SQL_MAXIMUM_COLUMNS_IN_ORDER_BY equ SQL_MAX_COLUMNS_IN_ORDER_BY +SQL_MAX_COLUMNS_IN_SELECT equ 100 +SQL_MAXIMUM_COLUMNS_IN_SELECT equ SQL_MAX_COLUMNS_IN_SELECT +SQL_MAX_COLUMNS_IN_TABLE equ 101 +SQL_MAX_INDEX_SIZE equ 102 +SQL_MAXIMUM_INDEX_SIZE equ SQL_MAX_INDEX_SIZE +SQL_MAX_ROW_SIZE equ 104 +SQL_MAXIMUM_ROW_SIZE equ SQL_MAX_ROW_SIZE +SQL_MAX_STATEMENT_LEN equ 105 +SQL_MAXIMUM_STATEMENT_LENGTH equ SQL_MAX_STATEMENT_LEN +SQL_MAX_TABLES_IN_SELECT equ 106 +SQL_MAXIMUM_TABLES_IN_SELECT equ SQL_MAX_TABLES_IN_SELECT +SQL_MAX_USER_NAME_LEN equ 107 +SQL_MAXIMUM_USER_NAME_LENGTH equ SQL_MAX_USER_NAME_LEN +SQL_OJ_CAPABILITIES equ 115 +SQL_OUTER_JOIN_CAPABILITIES equ SQL_OJ_CAPABILITIES +SQL_XOPEN_CLI_YEAR equ 10000 +SQL_CURSOR_SENSITIVITY equ 10001 +SQL_DESCRIBE_PARAMETER equ 10002 +SQL_CATALOG_NAME equ 10003 +SQL_COLLATION_SEQ equ 10004 +SQL_MAX_IDENTIFIER_LEN equ 10005 +SQL_MAXIMUM_IDENTIFIER_LENGTH equ SQL_MAX_IDENTIFIER_LEN +SQL_AT_ADD_COLUMN equ 1 +SQL_AT_DROP_COLUMN equ 2 +SQL_AT_ADD_CONSTRAINT equ 8 +SQL_AT_COLUMN_SINGLE equ 20h +SQL_AT_ADD_COLUMN_DEFAULT equ 40h +SQL_AT_ADD_COLUMN_COLLATION equ 80h +SQL_AT_SET_COLUMN_DEFAULT equ 100h +SQL_AT_DROP_COLUMN_DEFAULT equ 200h +SQL_AT_DROP_COLUMN_CASCADE equ 400h +SQL_AT_DROP_COLUMN_RESTRICT equ 800h +SQL_AT_ADD_TABLE_CONSTRAINT equ 1000h +SQL_AT_DROP_TABLE_CONSTRAINT_CASCADE equ 2000h +SQL_AT_DROP_TABLE_CONSTRAINT_RESTRICT equ 4000h +SQL_AT_CONSTRAINT_NAME_DEFINITION equ 8000h +SQL_AT_CONSTRAINT_INITIALLY_DEFERRED equ 10000h +SQL_AT_CONSTRAINT_INITIALLY_IMMEDIATE equ 20000h +SQL_AT_CONSTRAINT_DEFERRABLE equ 40000h +SQL_AT_CONSTRAINT_NON_DEFERRABLE equ 80000h +SQL_AM_NONE equ 0 +SQL_AM_CONNECTION equ 1 +SQL_AM_STATEMENT equ 2 +SQL_CB_DELETE equ 0 +SQL_CB_CLOSE equ 1 +SQL_CB_PRESERVE equ 2 +SQL_FD_FETCH_NEXT equ 1 +SQL_FD_FETCH_FIRST equ 2 +SQL_FD_FETCH_LAST equ 4 +SQL_FD_FETCH_PRIOR equ 8 +SQL_FD_FETCH_ABSOLUTE equ 10h +SQL_FD_FETCH_RELATIVE equ 20h +SQL_GD_ANY_COLUMN equ 1 +SQL_GD_ANY_ORDER equ 2 +SQL_IC_UPPER equ 1 +SQL_IC_LOWER equ 2 +SQL_IC_SENSITIVE equ 3 +SQL_IC_MIXED equ 4 +SQL_OJ_LEFT equ 1 +SQL_OJ_RIGHT equ 2 +SQL_OJ_FULL equ 4 +SQL_OJ_NESTED equ 8 +SQL_OJ_NOT_ORDERED equ 10h +SQL_OJ_INNER equ 20h +SQL_OJ_ALL_COMPARISON_OPS equ 40h +SQL_SCCO_READ_ONLY equ 1 +SQL_SCCO_LOCK equ 2 +SQL_SCCO_OPT_ROWVER equ 4 +SQL_SCCO_OPT_VALUES equ 8 +SQL_TC_NONE equ 0 +SQL_TC_DML equ 1 +SQL_TC_ALL equ 2 +SQL_TC_DDL_COMMIT equ 3 +SQL_TC_DDL_IGNORE equ 4 +SQL_TXN_READ_UNCOMMITTED equ 1 +SQL_TRANSACTION_READ_UNCOMMITTED equ SQL_TXN_READ_UNCOMMITTED +SQL_TXN_READ_COMMITTED equ 2 +SQL_TRANSACTION_READ_COMMITTED equ SQL_TXN_READ_COMMITTED +SQL_TXN_REPEATABLE_READ equ 4 +SQL_TRANSACTION_REPEATABLE_READ equ SQL_TXN_REPEATABLE_READ +SQL_TXN_SERIALIZABLE equ 8 +SQL_TRANSACTION_SERIALIZABLE equ SQL_TXN_SERIALIZABLE +SQL_NC_HIGH equ 0 +SQL_NC_LOW equ 1 + +;------------------------------------------------------------------------------------------------------------ +; sqlext.h +;------------------------------------------------------------------------------------------------------------- + +SQL_SPEC_MAJOR equ 3 +SQL_SPEC_MINOR equ 51 +SQL_SPEC_STRING equ A("03.51") +SQL_SQLSTATE_SIZE equ 5 +SQL_MAX_DSN_LENGTH equ 32 +SQL_MAX_OPTION_STRING_LENGTH equ 256 +SQL_NO_DATA_FOUND equ SQL_NO_DATA +SQL_HANDLE_SENV equ 5 +SQL_ATTR_ODBC_VERSION equ 200 +SQL_ATTR_CONNECTION_POOLING equ 201 +SQL_ATTR_CP_MATCH equ 202 +SQL_CP_OFF equ 0 +SQL_CP_ONE_PER_DRIVER equ 1 +SQL_CP_ONE_PER_HENV equ 2 +SQL_CP_DEFAULT equ SQL_CP_OFF +SQL_CP_STRICT_MATCH equ 0 +SQL_CP_RELAXED_MATCH equ 1 +SQL_CP_MATCH_DEFAULT equ SQL_CP_STRICT_MATCH +SQL_OV_ODBC2 equ 2 +SQL_OV_ODBC3 equ 3 +SQL_ACCESS_MODE equ 101 +SQL_AUTOCOMMIT equ 102 +SQL_LOGIN_TIMEOUT equ 103 +SQL_OPT_TRACE equ 104 +SQL_OPT_TRACEFILE equ 105 +SQL_TRANSLATE_DLL equ 106 +SQL_TRANSLATE_OPTION equ 107 +SQL_TXN_ISOLATION equ 108 +SQL_CURRENT_QUALIFIER equ 109 +SQL_ODBC_CURSORS equ 110 +SQL_QUIET_MODE equ 111 +SQL_PACKET_SIZE equ 112 +SQL_ATTR_ACCESS_MODE equ SQL_ACCESS_MODE +SQL_ATTR_AUTOCOMMIT equ SQL_AUTOCOMMIT +SQL_ATTR_CONNECTION_TIMEOUT equ 113 +SQL_ATTR_CURRENT_CATALOG equ SQL_CURRENT_QUALIFIER +SQL_ATTR_DISCONNECT_BEHAVIOR equ 114 +SQL_ATTR_ENLIST_IN_DTC equ 1207 +SQL_ATTR_ENLIST_IN_XA equ 1208 +SQL_ATTR_LOGIN_TIMEOUT equ SQL_LOGIN_TIMEOUT +SQL_ATTR_ODBC_CURSORS equ SQL_ODBC_CURSORS +SQL_ATTR_PACKET_SIZE equ SQL_PACKET_SIZE +SQL_ATTR_QUIET_MODE equ SQL_QUIET_MODE +SQL_ATTR_TRACE equ SQL_OPT_TRACE +SQL_ATTR_TRACEFILE equ SQL_OPT_TRACEFILE +SQL_ATTR_TRANSLATE_LIB equ SQL_TRANSLATE_DLL +SQL_ATTR_TRANSLATE_OPTION equ SQL_TRANSLATE_OPTION +SQL_ATTR_TXN_ISOLATION equ SQL_TXN_ISOLATION +SQL_ATTR_CONNECTION_DEAD equ 1209 +SQL_ATTR_ANSI_APP equ 115 +SQL_MODE_READ_WRITE equ 0 +SQL_MODE_READ_ONLY equ 1 +SQL_MODE_DEFAULT equ SQL_MODE_READ_WRITE +SQL_AUTOCOMMIT_OFF equ 0 +SQL_AUTOCOMMIT_ON equ 1 +SQL_AUTOCOMMIT_DEFAULT equ SQL_AUTOCOMMIT_ON +SQL_LOGIN_TIMEOUT_DEFAULT equ 15 +SQL_OPT_TRACE_OFF equ 0 +SQL_OPT_TRACE_ON equ 1 +SQL_OPT_TRACE_DEFAULT equ SQL_OPT_TRACE_OFF +SQL_OPT_TRACE_FILE_DEFAULT equ A("\SQL.LOG") +SQL_CUR_USE_IF_NEEDED equ 0 +SQL_CUR_USE_ODBC equ 1 +SQL_CUR_USE_DRIVER equ 2 +SQL_CUR_DEFAULT equ SQL_CUR_USE_DRIVER +SQL_DB_RETURN_TO_POOL equ 0 +SQL_DB_DISCONNECT equ 1 +SQL_DB_DEFAULT equ SQL_DB_RETURN_TO_POOL +SQL_DTC_DONE equ 0 +SQL_CD_TRUE equ 1 +SQL_CD_FALSE equ 0 +SQL_AA_TRUE equ 1 +SQL_AA_FALSE equ 0 +SQL_QUERY_TIMEOUT equ 0 +SQL_MAX_ROWS equ 1 +SQL_NOSCAN equ 2 +SQL_MAX_LENGTH equ 3 +SQL_ASYNC_ENABLE equ 4 +SQL_BIND_TYPE equ 5 +SQL_CURSOR_TYPE equ 6 +SQL_CONCURRENCY equ 7 +SQL_KEYSET_SIZE equ 8 +SQL_ROWSET_SIZE equ 9 +SQL_SIMULATE_CURSOR equ 10 +SQL_RETRIEVE_DATA equ 11 +SQL_USE_BOOKMARKS equ 12 +SQL_GET_BOOKMARK equ 13 +SQL_ROW_NUMBER equ 14 +SQL_ATTR_ASYNC_ENABLE equ 4 +SQL_ATTR_CONCURRENCY equ SQL_CONCURRENCY +SQL_ATTR_CURSOR_TYPE equ SQL_CURSOR_TYPE +SQL_ATTR_ENABLE_AUTO_IPD equ 15 +SQL_ATTR_FETCH_BOOKMARK_PTR equ 16 +SQL_ATTR_KEYSET_SIZE equ SQL_KEYSET_SIZE +SQL_ATTR_MAX_LENGTH equ SQL_MAX_LENGTH +SQL_ATTR_MAX_ROWS equ SQL_MAX_ROWS +SQL_ATTR_NOSCAN equ SQL_NOSCAN +SQL_ATTR_PARAM_BIND_OFFSET_PTR equ 17 +SQL_ATTR_PARAM_BIND_TYPE equ 18 +SQL_ATTR_PARAM_OPERATION_PTR equ 19 +SQL_ATTR_PARAM_STATUS_PTR equ 20 +SQL_ATTR_PARAMS_PROCESSED_PTR equ 21 +SQL_ATTR_PARAMSET_SIZE equ 22 +SQL_ATTR_QUERY_TIMEOUT equ SQL_QUERY_TIMEOUT +SQL_ATTR_RETRIEVE_DATA equ SQL_RETRIEVE_DATA +SQL_ATTR_ROW_BIND_OFFSET_PTR equ 23 +SQL_ATTR_ROW_BIND_TYPE equ SQL_BIND_TYPE +SQL_ATTR_ROW_NUMBER equ SQL_ROW_NUMBER +SQL_ATTR_ROW_OPERATION_PTR equ 24 +SQL_ATTR_ROW_STATUS_PTR equ 25 +SQL_ATTR_ROWS_FETCHED_PTR equ 26 +SQL_ATTR_ROW_ARRAY_SIZE equ 27 +SQL_ATTR_SIMULATE_CURSOR equ SQL_SIMULATE_CURSOR +SQL_ATTR_USE_BOOKMARKS equ SQL_USE_BOOKMARKS +SQL_COL_PRED_CHAR equ SQL_LIKE_ONLY +SQL_COL_PRED_BASIC equ SQL_ALL_EXCEPT_LIKE +SQL_IS_POINTER equ (-4) +SQL_IS_UINTEGER equ (-5) +SQL_IS_INTEGER equ (-6) +SQL_IS_USMALLINT equ (-7) +SQL_IS_SMALLINT equ (-8) +SQL_PARAM_BIND_BY_COLUMN equ 0 +SQL_PARAM_BIND_TYPE_DEFAULT equ SQL_PARAM_BIND_BY_COLUMN +SQL_QUERY_TIMEOUT_DEFAULT equ 0 +SQL_MAX_ROWS_DEFAULT equ 0 +SQL_NOSCAN_OFF equ 0 +SQL_NOSCAN_ON equ 1 +SQL_NOSCAN_DEFAULT equ SQL_NOSCAN_OFF +SQL_MAX_LENGTH_DEFAULT equ 0 +SQL_ASYNC_ENABLE_OFF equ 0 +SQL_ASYNC_ENABLE_ON equ 1 +SQL_ASYNC_ENABLE_DEFAULT equ SQL_ASYNC_ENABLE_OFF +SQL_BIND_BY_COLUMN equ 0 +SQL_BIND_TYPE_DEFAULT equ SQL_BIND_BY_COLUMN +SQL_CONCUR_READ_ONLY equ 1 +SQL_CONCUR_LOCK equ 2 +SQL_CONCUR_ROWVER equ 3 +SQL_CONCUR_VALUES equ 4 +SQL_CONCUR_DEFAULT equ SQL_CONCUR_READ_ONLY +SQL_CURSOR_FORWARD_ONLY equ 0 +SQL_CURSOR_KEYSET_DRIVEN equ 1 +SQL_CURSOR_DYNAMIC equ 2 +SQL_CURSOR_STATIC equ 3 +SQL_CURSOR_TYPE_DEFAULT equ SQL_CURSOR_FORWARD_ONLY +SQL_ROWSET_SIZE_DEFAULT equ 1 +SQL_KEYSET_SIZE_DEFAULT equ 0 +SQL_SC_NON_UNIQUE equ 0 +SQL_SC_TRY_UNIQUE equ 1 +SQL_SC_UNIQUE equ 2 +SQL_RD_OFF equ 0 +SQL_RD_ON equ 1 +SQL_RD_DEFAULT equ SQL_RD_ON +SQL_UB_OFF equ 0 +SQL_UB_ON equ 01 +SQL_UB_DEFAULT equ SQL_UB_OFF +SQL_UB_FIXED equ SQL_UB_ON +SQL_UB_VARIABLE equ 2 +SQL_DESC_ARRAY_SIZE equ 20 +SQL_DESC_ARRAY_STATUS_PTR equ 21 +SQL_DESC_AUTO_UNIQUE_VALUE equ SQL_COLUMN_AUTO_INCREMENT +SQL_DESC_BASE_COLUMN_NAME equ 22 +SQL_DESC_BASE_TABLE_NAME equ 23 +SQL_DESC_BIND_OFFSET_PTR equ 24 +SQL_DESC_BIND_TYPE equ 25 +SQL_DESC_CASE_SENSITIVE equ SQL_COLUMN_CASE_SENSITIVE +SQL_DESC_CATALOG_NAME equ SQL_COLUMN_QUALIFIER_NAME +SQL_DESC_CONCISE_TYPE equ SQL_COLUMN_TYPE +SQL_DESC_DATETIME_INTERVAL_PRECISION equ 26 +SQL_DESC_DISPLAY_SIZE equ SQL_COLUMN_DISPLAY_SIZE +SQL_DESC_FIXED_PREC_SCALE equ SQL_COLUMN_MONEY +SQL_DESC_LABEL equ SQL_COLUMN_LABEL +SQL_DESC_LITERAL_PREFIX equ 27 +SQL_DESC_LITERAL_SUFFIX equ 28 +SQL_DESC_LOCAL_TYPE_NAME equ 29 +SQL_DESC_MAXIMUM_SCALE equ 30 +SQL_DESC_MINIMUM_SCALE equ 31 +SQL_DESC_NUM_PREC_RADIX equ 32 +SQL_DESC_PARAMETER_TYPE equ 33 +SQL_DESC_ROWS_PROCESSED_PTR equ 34 +SQL_DESC_ROWVER equ 35 +SQL_DESC_SCHEMA_NAME equ SQL_COLUMN_OWNER_NAME +SQL_DESC_SEARCHABLE equ SQL_COLUMN_SEARCHABLE +SQL_DESC_TYPE_NAME equ SQL_COLUMN_TYPE_NAME +SQL_DESC_TABLE_NAME equ SQL_COLUMN_TABLE_NAME +SQL_DESC_UNSIGNED equ SQL_COLUMN_UNSIGNED +SQL_DESC_UPDATABLE equ SQL_COLUMN_UPDATABLE +SQL_DIAG_CURSOR_ROW_COUNT equ (-1249) +SQL_DIAG_ROW_NUMBER equ (-1248) +SQL_DIAG_COLUMN_NUMBER equ (-1247) +SQL_DATE equ 9 +SQL_INTERVAL equ 10 +SQL_TIME equ 10 +SQL_TIMESTAMP equ 11 +SQL_LONGVARCHAR equ (-1) +SQL_BINARY equ (-2) +SQL_VARBINARY equ (-3) +SQL_LONGVARBINARY equ (-4) +SQL_BIGINT equ (-5) +SQL_TINYINT equ (-6) +SQL_BIT equ (-7) +SQL_GUID equ (-11) +SQL_CODE_YEAR equ 1 +SQL_CODE_MONTH equ 2 +SQL_CODE_DAY equ 3 +SQL_CODE_HOUR equ 4 +SQL_CODE_MINUTE equ 5 +SQL_CODE_SECOND equ 6 +SQL_CODE_YEAR_TO_MONTH equ 7 +SQL_CODE_DAY_TO_HOUR equ 8 +SQL_CODE_DAY_TO_MINUTE equ 9 +SQL_CODE_DAY_TO_SECOND equ 10 +SQL_CODE_HOUR_TO_MINUTE equ 11 +SQL_CODE_HOUR_TO_SECOND equ 12 +SQL_CODE_MINUTE_TO_SECOND equ 13 +SQL_INTERVAL_YEAR equ (100 + SQL_CODE_YEAR) +SQL_INTERVAL_MONTH equ (100 + SQL_CODE_MONTH) +SQL_INTERVAL_DAY equ (100 + SQL_CODE_DAY) +SQL_INTERVAL_HOUR equ (100 + SQL_CODE_HOUR) +SQL_INTERVAL_MINUTE equ (100 + SQL_CODE_MINUTE) +SQL_INTERVAL_SECOND equ (100 + SQL_CODE_SECOND) +SQL_INTERVAL_YEAR_TO_MONTH equ (100 + SQL_CODE_YEAR_TO_MONTH) +SQL_INTERVAL_DAY_TO_HOUR equ (100 + SQL_CODE_DAY_TO_HOUR) +SQL_INTERVAL_DAY_TO_MINUTE equ (100 + SQL_CODE_DAY_TO_MINUTE) +SQL_INTERVAL_DAY_TO_SECOND equ (100 + SQL_CODE_DAY_TO_SECOND) +SQL_INTERVAL_HOUR_TO_MINUTE equ (100 + SQL_CODE_HOUR_TO_MINUTE) +SQL_INTERVAL_HOUR_TO_SECOND equ (100 + SQL_CODE_HOUR_TO_SECOND) +SQL_INTERVAL_MINUTE_TO_SECOND equ (100 + SQL_CODE_MINUTE_TO_SECOND) +SQL_WCHAR equ (-8) +SQL_UNICODE equ SQL_WCHAR +SQL_WVARCHAR equ (-9) +SQL_UNICODE_VARCHAR equ SQL_WVARCHAR +SQL_WLONGVARCHAR equ (-10) +SQL_UNICODE_LONGVARCHAR equ SQL_WLONGVARCHAR +SQL_UNICODE_CHAR equ SQL_WCHAR +SQL_C_CHAR equ SQL_CHAR +SQL_C_LONG equ SQL_INTEGER +SQL_C_SHORT equ SQL_SMALLINT +SQL_C_FLOAT equ SQL_REAL +SQL_C_DOUBLE equ SQL_DOUBLE +SQL_C_NUMERIC equ SQL_NUMERIC +SQL_C_DEFAULT equ 99 +SQL_SIGNED_OFFSET equ (-20) +SQL_UNSIGNED_OFFSET equ (-22) +SQL_C_DATE equ SQL_DATE +SQL_C_TIME equ SQL_TIME +SQL_C_TIMESTAMP equ SQL_TIMESTAMP +SQL_C_TYPE_DATE equ SQL_TYPE_DATE +SQL_C_TYPE_TIME equ SQL_TYPE_TIME +SQL_C_TYPE_TIMESTAMP equ SQL_TYPE_TIMESTAMP +SQL_C_INTERVAL_YEAR equ SQL_INTERVAL_YEAR +SQL_C_INTERVAL_MONTH equ SQL_INTERVAL_MONTH +SQL_C_INTERVAL_DAY equ SQL_INTERVAL_DAY +SQL_C_INTERVAL_HOUR equ SQL_INTERVAL_HOUR +SQL_C_INTERVAL_MINUTE equ SQL_INTERVAL_MINUTE +SQL_C_INTERVAL_SECOND equ SQL_INTERVAL_SECOND +SQL_C_INTERVAL_YEAR_TO_MONTH equ SQL_INTERVAL_YEAR_TO_MONTH +SQL_C_INTERVAL_DAY_TO_HOUR equ SQL_INTERVAL_DAY_TO_HOUR +SQL_C_INTERVAL_DAY_TO_MINUTE equ SQL_INTERVAL_DAY_TO_MINUTE +SQL_C_INTERVAL_DAY_TO_SECOND equ SQL_INTERVAL_DAY_TO_SECOND +SQL_C_INTERVAL_HOUR_TO_MINUTE equ SQL_INTERVAL_HOUR_TO_MINUTE +SQL_C_INTERVAL_HOUR_TO_SECOND equ SQL_INTERVAL_HOUR_TO_SECOND +SQL_C_INTERVAL_MINUTE_TO_SECOND equ SQL_INTERVAL_MINUTE_TO_SECOND +SQL_C_BINARY equ SQL_BINARY +SQL_C_BIT equ SQL_BIT +SQL_C_SBIGINT equ (SQL_BIGINT+SQL_SIGNED_OFFSET) +SQL_C_UBIGINT equ (SQL_BIGINT+SQL_UNSIGNED_OFFSET) +SQL_C_TINYINT equ SQL_TINYINT +SQL_C_SLONG equ (SQL_C_LONG+SQL_SIGNED_OFFSET) +SQL_C_SSHORT equ (SQL_C_SHORT+SQL_SIGNED_OFFSET) +SQL_C_STINYINT equ (SQL_TINYINT+SQL_SIGNED_OFFSET) +SQL_C_ULONG equ (SQL_C_LONG+SQL_UNSIGNED_OFFSET) +SQL_C_USHORT equ (SQL_C_SHORT+SQL_UNSIGNED_OFFSET) +SQL_C_UTINYINT equ (SQL_TINYINT+SQL_UNSIGNED_OFFSET) +SQL_C_BOOKMARK equ SQL_C_ULONG +SQL_C_GUID equ SQL_GUID +SQL_TYPE_NULL equ 0 +SQL_C_VARBOOKMARK equ SQL_C_BINARY +SQL_NO_ROW_NUMBER equ (-1) +SQL_NO_COLUMN_NUMBER equ (-1) +SQL_ROW_NUMBER_UNKNOWN equ (-2) +SQL_COLUMN_NUMBER_UNKNOWN equ (-2) +SQL_DEFAULT_PARAM equ (-5) +SQL_IGNORE equ (-6) +SQL_COLUMN_IGNORE equ SQL_IGNORE +SQL_LEN_DATA_AT_EXEC_OFFSET equ (-100) +SQL_LEN_BINARY_ATTR_OFFSET equ (-100) +SQL_PARAM_TYPE_DEFAULT equ SQL_PARAM_INPUT_OUTPUT +SQL_SETPARAM_VALUE_MAX equ (-1) +SQL_COLUMN_COUNT equ 0 +SQL_COLUMN_NAME equ 1 +SQL_COLUMN_TYPE equ 2 +SQL_COLUMN_LENGTH equ 3 +SQL_COLUMN_PRECISION equ 4 +SQL_COLUMN_SCALE equ 5 +SQL_COLUMN_DISPLAY_SIZE equ 6 +SQL_COLUMN_NULLABLE equ 7 +SQL_COLUMN_UNSIGNED equ 8 +SQL_COLUMN_MONEY equ 9 +SQL_COLUMN_UPDATABLE equ 10 +SQL_COLUMN_AUTO_INCREMENT equ 11 +SQL_COLUMN_CASE_SENSITIVE equ 12 +SQL_COLUMN_SEARCHABLE equ 13 +SQL_COLUMN_TYPE_NAME equ 14 +SQL_COLUMN_TABLE_NAME equ 15 +SQL_COLUMN_OWNER_NAME equ 16 +SQL_COLUMN_QUALIFIER_NAME equ 17 +SQL_COLUMN_LABEL equ 18 +SQL_COLATT_OPT_MAX equ SQL_COLUMN_LABEL +SQL_COLATT_OPT_MIN equ SQL_COLUMN_COUNT +SQL_ATTR_READONLY equ 0 +SQL_ATTR_WRITE equ 1 +SQL_ATTR_READWRITE_UNKNOWN equ 2 +SQL_UNSEARCHABLE equ 0 +SQL_LIKE_ONLY equ 1 +SQL_ALL_EXCEPT_LIKE equ 2 +SQL_SEARCHABLE equ 3 +SQL_PRED_SEARCHABLE equ SQL_SEARCHABLE +SQL_NO_TOTAL equ (-4) +SQL_API_SQLALLOCHANDLESTD equ 73 +SQL_API_SQLBULKOPERATIONS equ 24 +SQL_API_SQLBINDPARAMETER equ 72 +SQL_API_SQLBROWSECONNECT equ 55 +SQL_API_SQLCOLATTRIBUTES equ 6 +SQL_API_SQLCOLUMNPRIVILEGES equ 56 +SQL_API_SQLDESCRIBEPARAM equ 58 +SQL_API_SQLDRIVERCONNECT equ 41 +SQL_API_SQLDRIVERS equ 71 +SQL_API_SQLEXTENDEDFETCH equ 59 +SQL_API_SQLFOREIGNKEYS equ 60 +SQL_API_SQLMORERESULTS equ 61 +SQL_API_SQLNATIVESQL equ 62 +SQL_API_SQLNUMPARAMS equ 63 +SQL_API_SQLPARAMOPTIONS equ 64 +SQL_API_SQLPRIMARYKEYS equ 65 +SQL_API_SQLPROCEDURECOLUMNS equ 66 +SQL_API_SQLPROCEDURES equ 67 +SQL_API_SQLSETPOS equ 68 +SQL_API_SQLSETSCROLLOPTIONS equ 69 +SQL_API_SQLTABLEPRIVILEGES equ 70 +SQL_API_ALL_FUNCTIONS equ 0 +SQL_API_LOADBYORDINAL equ 199 +SQL_API_ODBC3_ALL_FUNCTIONS equ 999 +SQL_API_ODBC3_ALL_FUNCTIONS_SIZE equ 250 +SQL_INFO_FIRST equ 0 +SQL_ACTIVE_CONNECTIONS equ 0 +SQL_ACTIVE_STATEMENTS equ 1 +SQL_DRIVER_HDBC equ 3 +SQL_DRIVER_HENV equ 4 +SQL_DRIVER_HSTMT equ 5 +SQL_DRIVER_NAME equ 6 +SQL_DRIVER_VER equ 7 +SQL_ODBC_API_CONFORMANCE equ 9 +SQL_ODBC_VER equ 10 +SQL_ROW_UPDATES equ 11 +SQL_ODBC_SAG_CLI_CONFORMANCE equ 12 +SQL_ODBC_SQL_CONFORMANCE equ 15 +SQL_PROCEDURES equ 21 +SQL_CONCAT_NULL_BEHAVIOR equ 22 +SQL_CURSOR_ROLLBACK_BEHAVIOR equ 24 +SQL_EXPRESSIONS_IN_ORDERBY equ 27 +SQL_MAX_OWNER_NAME_LEN equ 32 +SQL_MAX_PROCEDURE_NAME_LEN equ 33 +SQL_MAX_QUALIFIER_NAME_LEN equ 34 +SQL_MULT_RESULT_SETS equ 36 +SQL_MULTIPLE_ACTIVE_TXN equ 37 +SQL_OUTER_JOINS equ 38 +SQL_OWNER_TERM equ 39 +SQL_PROCEDURE_TERM equ 40 +SQL_QUALIFIER_NAME_SEPARATOR equ 41 +SQL_QUALIFIER_TERM equ 42 +SQL_SCROLL_OPTIONS equ 44 +SQL_TABLE_TERM equ 45 +SQL_CONVERT_FUNCTIONS equ 48 +SQL_NUMERIC_FUNCTIONS equ 49 +SQL_STRING_FUNCTIONS equ 50 +SQL_SYSTEM_FUNCTIONS equ 51 +SQL_TIMEDATE_FUNCTIONS equ 52 +SQL_CONVERT_BIGINT equ 53 +SQL_CONVERT_BINARY equ 54 +SQL_CONVERT_BIT equ 55 +SQL_CONVERT_CHAR equ 56 +SQL_CONVERT_DATE equ 57 +SQL_CONVERT_DECIMAL equ 58 +SQL_CONVERT_DOUBLE equ 59 +SQL_CONVERT_FLOAT equ 60 +SQL_CONVERT_INTEGER equ 61 +SQL_CONVERT_LONGVARCHAR equ 62 +SQL_CONVERT_NUMERIC equ 63 +SQL_CONVERT_REAL equ 64 +SQL_CONVERT_SMALLINT equ 65 +SQL_CONVERT_TIME equ 66 +SQL_CONVERT_TIMESTAMP equ 67 +SQL_CONVERT_TINYINT equ 68 +SQL_CONVERT_VARBINARY equ 69 +SQL_CONVERT_VARCHAR equ 70 +SQL_CONVERT_LONGVARBINARY equ 71 +SQL_ODBC_SQL_OPT_IEF equ 73 +SQL_CORRELATION_NAME equ 74 +SQL_NON_NULLABLE_COLUMNS equ 75 +SQL_DRIVER_HLIB equ 76 +SQL_DRIVER_ODBC_VER equ 77 +SQL_LOCK_TYPES equ 78 +SQL_POS_OPERATIONS equ 79 +SQL_POSITIONED_STATEMENTS equ 80 +SQL_BOOKMARK_PERSISTENCE equ 82 +SQL_STATIC_SENSITIVITY equ 83 +SQL_FILE_USAGE equ 84 +SQL_COLUMN_ALIAS equ 87 +SQL_GROUP_BY equ 88 +SQL_KEYWORDS equ 89 +SQL_OWNER_USAGE equ 91 +SQL_QUALIFIER_USAGE equ 92 +SQL_QUOTED_IDENTIFIER_CASE equ 93 +SQL_SUBQUERIES equ 95 +SQL_UNION equ 96 +SQL_MAX_ROW_SIZE_INCLUDES_LONG equ 103 +SQL_MAX_CHAR_LITERAL_LEN equ 108 +SQL_TIMEDATE_ADD_INTERVALS equ 109 +SQL_TIMEDATE_DIFF_INTERVALS equ 110 +SQL_NEED_LONG_DATA_LEN equ 111 +SQL_MAX_BINARY_LITERAL_LEN equ 112 +SQL_LIKE_ESCAPE_CLAUSE equ 113 +SQL_QUALIFIER_LOCATION equ 114 +SQL_ACTIVE_ENVIRONMENTS equ 116 +SQL_ALTER_DOMAIN equ 117 +SQL_SQL_CONFORMANCE equ 118 +SQL_DATETIME_LITERALS equ 119 +SQL_ASYNC_MODE equ 10021 +SQL_BATCH_ROW_COUNT equ 120 +SQL_BATCH_SUPPORT equ 121 +SQL_CATALOG_LOCATION equ SQL_QUALIFIER_LOCATION +SQL_CATALOG_NAME_SEPARATOR equ SQL_QUALIFIER_NAME_SEPARATOR +SQL_CATALOG_TERM equ SQL_QUALIFIER_TERM +SQL_CATALOG_USAGE equ SQL_QUALIFIER_USAGE +SQL_CONVERT_WCHAR equ 122 +SQL_CONVERT_INTERVAL_DAY_TIME equ 123 +SQL_CONVERT_INTERVAL_YEAR_MONTH equ 124 +SQL_CONVERT_WLONGVARCHAR equ 125 +SQL_CONVERT_WVARCHAR equ 126 +SQL_CREATE_ASSERTION equ 127 +SQL_CREATE_CHARACTER_SET equ 128 +SQL_CREATE_COLLATION equ 129 +SQL_CREATE_DOMAIN equ 130 +SQL_CREATE_SCHEMA equ 131 +SQL_CREATE_TABLE equ 132 +SQL_CREATE_TRANSLATION equ 133 +SQL_CREATE_VIEW equ 134 +SQL_DRIVER_HDESC equ 135 +SQL_DROP_ASSERTION equ 136 +SQL_DROP_CHARACTER_SET equ 137 +SQL_DROP_COLLATION equ 138 +SQL_DROP_DOMAIN equ 139 +SQL_DROP_SCHEMA equ 140 +SQL_DROP_TABLE equ 141 +SQL_DROP_TRANSLATION equ 142 +SQL_DROP_VIEW equ 143 +SQL_DYNAMIC_CURSOR_ATTRIBUTES1 equ 144 +SQL_DYNAMIC_CURSOR_ATTRIBUTES2 equ 145 +SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES1 equ 146 +SQL_FORWARD_ONLY_CURSOR_ATTRIBUTES2 equ 147 +SQL_INDEX_KEYWORDS equ 148 +SQL_INFO_SCHEMA_VIEWS equ 149 +SQL_KEYSET_CURSOR_ATTRIBUTES1 equ 150 +SQL_KEYSET_CURSOR_ATTRIBUTES2 equ 151 +SQL_MAX_ASYNC_CONCURRENT_STATEMENTS equ 10022 +SQL_ODBC_INTERFACE_CONFORMANCE equ 152 +SQL_PARAM_ARRAY_ROW_COUNTS equ 153 +SQL_PARAM_ARRAY_SELECTS equ 154 +SQL_SCHEMA_TERM equ SQL_OWNER_TERM +SQL_SCHEMA_USAGE equ SQL_OWNER_USAGE +SQL_SQL92_DATETIME_FUNCTIONS equ 155 +SQL_SQL92_FOREIGN_KEY_DELETE_RULE equ 156 +SQL_SQL92_FOREIGN_KEY_UPDATE_RULE equ 157 +SQL_SQL92_GRANT equ 158 +SQL_SQL92_NUMERIC_VALUE_FUNCTIONS equ 159 +SQL_SQL92_PREDICATES equ 160 +SQL_SQL92_RELATIONAL_JOIN_OPERATORS equ 161 +SQL_SQL92_REVOKE equ 162 +SQL_SQL92_ROW_VALUE_CONSTRUCTOR equ 163 +SQL_SQL92_STRING_FUNCTIONS equ 164 +SQL_SQL92_VALUE_EXPRESSIONS equ 165 +SQL_STANDARD_CLI_CONFORMANCE equ 166 +SQL_STATIC_CURSOR_ATTRIBUTES1 equ 167 +SQL_STATIC_CURSOR_ATTRIBUTES2 equ 168 +SQL_AGGREGATE_FUNCTIONS equ 169 +SQL_DDL_INDEX equ 170 +SQL_DM_VER equ 171 +SQL_INSERT_STATEMENT equ 172 +SQL_UNION_STATEMENT equ SQL_UNION +SQL_DTC_TRANSITION_COST equ 1750 +SQL_AT_ADD_COLUMN_SINGLE equ 20h +SQL_CVT_CHAR equ 1 +SQL_CVT_NUMERIC equ 2 +SQL_CVT_DECIMAL equ 4 +SQL_CVT_INTEGER equ 8 +SQL_CVT_SMALLINT equ 10h +SQL_CVT_FLOAT equ 20h +SQL_CVT_REAL equ 40h +SQL_CVT_DOUBLE equ 80h +SQL_CVT_VARCHAR equ 100h +SQL_CVT_LONGVARCHAR equ 200h +SQL_CVT_BINARY equ 400h +SQL_CVT_VARBINARY equ 800h +SQL_CVT_BIT equ 1000h +SQL_CVT_TINYINT equ 2000h +SQL_CVT_BIGINT equ 4000h +SQL_CVT_DATE equ 8000h +SQL_CVT_TIME equ 10000h +SQL_CVT_TIMESTAMP equ 20000h +SQL_CVT_LONGVARBINARY equ 40000h +SQL_CVT_INTERVAL_YEAR_MONTH equ 80000h +SQL_CVT_INTERVAL_DAY_TIME equ 100000h +SQL_CVT_WCHAR equ 200000h +SQL_CVT_WLONGVARCHAR equ 400000h +SQL_CVT_WVARCHAR equ 800000h +SQL_FN_CVT_CONVERT equ 1 +SQL_FN_CVT_CAST equ 2 +SQL_FN_STR_CONCAT equ 1 +SQL_FN_STR_INSERT equ 2 +SQL_FN_STR_LEFT equ 4 +SQL_FN_STR_LTRIM equ 8 +SQL_FN_STR_LENGTH equ 10h +SQL_FN_STR_LOCATE equ 20h +SQL_FN_STR_LCASE equ 40h +SQL_FN_STR_REPEAT equ 80h +SQL_FN_STR_REPLACE equ 100h +SQL_FN_STR_RIGHT equ 200h +SQL_FN_STR_RTRIM equ 400h +SQL_FN_STR_SUBSTRING equ 800h +SQL_FN_STR_UCASE equ 1000h +SQL_FN_STR_ASCII equ 2000h +SQL_FN_STR_CHAR equ 4000h +SQL_FN_STR_DIFFERENCE equ 8000h +SQL_FN_STR_LOCATE_2 equ 10000h +SQL_FN_STR_SOUNDEX equ 20000h +SQL_FN_STR_SPACE equ 40000h +SQL_FN_STR_BIT_LENGTH equ 80000h +SQL_FN_STR_CHAR_LENGTH equ 100000h +SQL_FN_STR_CHARACTER_LENGTH equ 200000h +SQL_FN_STR_OCTET_LENGTH equ 400000h +SQL_FN_STR_POSITION equ 800000h +SQL_SSF_CONVERT equ 1 +SQL_SSF_LOWER equ 2 +SQL_SSF_UPPER equ 4 +SQL_SSF_SUBSTRING equ 8 +SQL_SSF_TRANSLATE equ 10h +SQL_SSF_TRIM_BOTH equ 20h +SQL_SSF_TRIM_LEADING equ 40h +SQL_SSF_TRIM_TRAILING equ 80h +SQL_FN_NUM_ABS equ 1 +SQL_FN_NUM_ACOS equ 2 +SQL_FN_NUM_ASIN equ 4 +SQL_FN_NUM_ATAN equ 8 +SQL_FN_NUM_ATAN2 equ 10h +SQL_FN_NUM_CEILING equ 20h +SQL_FN_NUM_COS equ 40h +SQL_FN_NUM_COT equ 80h +SQL_FN_NUM_EXP equ 100h +SQL_FN_NUM_FLOOR equ 200h +SQL_FN_NUM_LOG equ 400h +SQL_FN_NUM_MOD equ 800h +SQL_FN_NUM_SIGN equ 1000h +SQL_FN_NUM_SIN equ 2000h +SQL_FN_NUM_SQRT equ 4000h +SQL_FN_NUM_TAN equ 8000h +SQL_FN_NUM_PI equ 10000h +SQL_FN_NUM_RAND equ 20000h +SQL_FN_NUM_DEGREES equ 40000h +SQL_FN_NUM_LOG10 equ 80000h +SQL_FN_NUM_POWER equ 100000h +SQL_FN_NUM_RADIANS equ 200000h +SQL_FN_NUM_ROUND equ 400000h +SQL_FN_NUM_TRUNCATE equ 800000h +SQL_SNVF_BIT_LENGTH equ 1 +SQL_SNVF_CHAR_LENGTH equ 2 +SQL_SNVF_CHARACTER_LENGTH equ 4 +SQL_SNVF_EXTRACT equ 8 +SQL_SNVF_OCTET_LENGTH equ 10h +SQL_SNVF_POSITION equ 20h +SQL_FN_TD_NOW equ 1 +SQL_FN_TD_CURDATE equ 2 +SQL_FN_TD_DAYOFMONTH equ 4 +SQL_FN_TD_DAYOFWEEK equ 8 +SQL_FN_TD_DAYOFYEAR equ 10h +SQL_FN_TD_MONTH equ 20h +SQL_FN_TD_QUARTER equ 40h +SQL_FN_TD_WEEK equ 80h +SQL_FN_TD_YEAR equ 100h +SQL_FN_TD_CURTIME equ 200h +SQL_FN_TD_HOUR equ 400h +SQL_FN_TD_MINUTE equ 800h +SQL_FN_TD_SECOND equ 1000h +SQL_FN_TD_TIMESTAMPADD equ 2000h +SQL_FN_TD_TIMESTAMPDIFF equ 4000h +SQL_FN_TD_DAYNAME equ 8000h +SQL_FN_TD_MONTHNAME equ 10000h +SQL_FN_TD_CURRENT_DATE equ 20000h +SQL_FN_TD_CURRENT_TIME equ 40000h +SQL_FN_TD_CURRENT_TIMESTAMP equ 80000h +SQL_FN_TD_EXTRACT equ 100000h +SQL_SDF_CURRENT_DATE equ 1 +SQL_SDF_CURRENT_TIME equ 2 +SQL_SDF_CURRENT_TIMESTAMP equ 4 +SQL_FN_SYS_USERNAME equ 1 +SQL_FN_SYS_DBNAME equ 2 +SQL_FN_SYS_IFNULL equ 4 +SQL_FN_TSI_FRAC_SECOND equ 1 +SQL_FN_TSI_SECOND equ 2 +SQL_FN_TSI_MINUTE equ 4 +SQL_FN_TSI_HOUR equ 8 +SQL_FN_TSI_DAY equ 10h +SQL_FN_TSI_WEEK equ 20h +SQL_FN_TSI_MONTH equ 40h +SQL_FN_TSI_QUARTER equ 80h +SQL_FN_TSI_YEAR equ 100h +SQL_CA1_NEXT equ 1 +SQL_CA1_ABSOLUTE equ 2 +SQL_CA1_RELATIVE equ 4 +SQL_CA1_BOOKMARK equ 8 +SQL_CA1_LOCK_NO_CHANGE equ 40h +SQL_CA1_LOCK_EXCLUSIVE equ 80h +SQL_CA1_LOCK_UNLOCK equ 100h +SQL_CA1_POS_POSITION equ 200h +SQL_CA1_POS_UPDATE equ 400h +SQL_CA1_POS_DELETE equ 800h +SQL_CA1_POS_REFRESH equ 1000h +SQL_CA1_POSITIONED_UPDATE equ 2000h +SQL_CA1_POSITIONED_DELETE equ 4000h +SQL_CA1_SELECT_FOR_UPDATE equ 8000h +SQL_CA1_BULK_ADD equ 10000h +SQL_CA1_BULK_UPDATE_BY_BOOKMARK equ 20000h +SQL_CA1_BULK_DELETE_BY_BOOKMARK equ 40000h +SQL_CA1_BULK_FETCH_BY_BOOKMARK equ 80000h +SQL_CA2_READ_ONLY_CONCURRENCY equ 1 +SQL_CA2_LOCK_CONCURRENCY equ 2 +SQL_CA2_OPT_ROWVER_CONCURRENCY equ 4 +SQL_CA2_OPT_VALUES_CONCURRENCY equ 8 +SQL_CA2_SENSITIVITY_ADDITIONS equ 10h +SQL_CA2_SENSITIVITY_DELETIONS equ 20h +SQL_CA2_SENSITIVITY_UPDATES equ 40h +SQL_CA2_MAX_ROWS_SELECT equ 80h +SQL_CA2_MAX_ROWS_INSERT equ 100h +SQL_CA2_MAX_ROWS_DELETE equ 200h +SQL_CA2_MAX_ROWS_UPDATE equ 400h +SQL_CA2_MAX_ROWS_CATALOG equ 800h +SQL_CA2_MAX_ROWS_AFFECTS_ALL equ (SQL_CA2_MAX_ROWS_SELECT+SQL_CA2_MAX_ROWS_INSERT+SQL_CA2_MAX_ROWS_DELETE+SQL_CA2_MAX_ROWS_UPDATE+SQL_CA2_MAX_ROWS_CATALOG) +SQL_CA2_CRC_EXACT equ 1000h +SQL_CA2_CRC_APPROXIMATE equ 2000h +SQL_CA2_SIMULATE_NON_UNIQUE equ 4000h +SQL_CA2_SIMULATE_TRY_UNIQUE equ 8000h +SQL_CA2_SIMULATE_UNIQUE equ 10000h +SQL_OAC_NONE equ 0 +SQL_OAC_LEVEL1 equ 1 +SQL_OAC_LEVEL2 equ 2 +SQL_OSCC_NOT_COMPLIANT equ 0 +SQL_OSCC_COMPLIANT equ 1 +SQL_OSC_MINIMUM equ 0 +SQL_OSC_CORE equ 1 +SQL_OSC_EXTENDED equ 2 +SQL_CB_NULL equ 0 +SQL_CB_NON_NULL equ 1 +SQL_SO_FORWARD_ONLY equ 1 +SQL_SO_KEYSET_DRIVEN equ 2 +SQL_SO_DYNAMIC equ 4 +SQL_SO_MIXED equ 8 +SQL_SO_STATIC equ 10h +SQL_FD_FETCH_BOOKMARK equ 80h +SQL_CN_NONE equ 0 +SQL_CN_DIFFERENT equ 1 +SQL_CN_ANY equ 2 +SQL_NNC_NULL equ 0 +SQL_NNC_NON_NULL equ 1 +SQL_NC_START equ 2 +SQL_NC_END equ 4 +SQL_FILE_NOT_SUPPORTED equ 0 +SQL_FILE_TABLE equ 1 +SQL_FILE_QUALIFIER equ 2 +SQL_FILE_CATALOG equ SQL_FILE_QUALIFIER +SQL_GD_BLOCK equ 4 +SQL_GD_BOUND equ 8 +SQL_PS_POSITIONED_DELETE equ 1 +SQL_PS_POSITIONED_UPDATE equ 2 +SQL_PS_SELECT_FOR_UPDATE equ 4 +SQL_GB_NOT_SUPPORTED equ 0 +SQL_GB_GROUP_BY_EQUALS_SELECT equ 1 +SQL_GB_GROUP_BY_CONTAINS_SELECT equ 2 +SQL_GB_NO_RELATION equ 3 +SQL_GB_COLLATE equ 4 +SQL_OU_DML_STATEMENTS equ 1 +SQL_OU_PROCEDURE_INVOCATION equ 2 +SQL_OU_TABLE_DEFINITION equ 4 +SQL_OU_INDEX_DEFINITION equ 8 +SQL_OU_PRIVILEGE_DEFINITION equ 10h +SQL_SU_DML_STATEMENTS equ SQL_OU_DML_STATEMENTS +SQL_SU_PROCEDURE_INVOCATION equ SQL_OU_PROCEDURE_INVOCATION +SQL_SU_TABLE_DEFINITION equ SQL_OU_TABLE_DEFINITION +SQL_SU_INDEX_DEFINITION equ SQL_OU_INDEX_DEFINITION +SQL_SU_PRIVILEGE_DEFINITION equ SQL_OU_PRIVILEGE_DEFINITION +SQL_QU_DML_STATEMENTS equ 1 +SQL_QU_PROCEDURE_INVOCATION equ 2 +SQL_QU_TABLE_DEFINITION equ 4 +SQL_QU_INDEX_DEFINITION equ 8 +SQL_QU_PRIVILEGE_DEFINITION equ 10h +SQL_CU_DML_STATEMENTS equ SQL_QU_DML_STATEMENTS +SQL_CU_PROCEDURE_INVOCATION equ SQL_QU_PROCEDURE_INVOCATION +SQL_CU_TABLE_DEFINITION equ SQL_QU_TABLE_DEFINITION +SQL_CU_INDEX_DEFINITION equ SQL_QU_INDEX_DEFINITION +SQL_CU_PRIVILEGE_DEFINITION equ SQL_QU_PRIVILEGE_DEFINITION +SQL_SQ_COMPARISON equ 1 +SQL_SQ_EXISTS equ 2 +SQL_SQ_IN equ 4 +SQL_SQ_QUANTIFIED equ 8 +SQL_SQ_CORRELATED_SUBQUERIES equ 10h +SQL_U_UNION equ 1 +SQL_U_UNION_ALL equ 2 +SQL_BP_CLOSE equ 1 +SQL_BP_DELETE equ 2 +SQL_BP_DROP equ 4 +SQL_BP_TRANSACTION equ 8 +SQL_BP_UPDATE equ 10h +SQL_BP_OTHER_HSTMT equ 20h +SQL_BP_SCROLL equ 40h +SQL_SS_ADDITIONS equ 1 +SQL_SS_DELETIONS equ 2 +SQL_SS_UPDATES equ 4 +SQL_CV_CREATE_VIEW equ 1 +SQL_CV_CHECK_OPTION equ 2 +SQL_CV_CASCADED equ 4 +SQL_CV_LOCAL equ 8 +SQL_LCK_NO_CHANGE equ 1 +SQL_LCK_EXCLUSIVE equ 2 +SQL_LCK_UNLOCK equ 4 +SQL_POS_POSITION equ 1 +SQL_POS_REFRESH equ 2 +SQL_POS_UPDATE equ 4 +SQL_POS_DELETE equ 8 +SQL_POS_ADD equ 10h +SQL_QL_START equ 1 +SQL_QL_END equ 2 +SQL_AF_AVG equ 1 +SQL_AF_COUNT equ 2 +SQL_AF_MAX equ 4 +SQL_AF_MIN equ 8 +SQL_AF_SUM equ 10h +SQL_AF_DISTINCT equ 20h +SQL_AF_ALL equ 40h +SQL_SC_SQL92_ENTRY equ 1 +SQL_SC_FIPS127_2_TRANSITIONAL equ 2 +SQL_SC_SQL92_INTERMEDIATE equ 4 +SQL_SC_SQL92_FULL equ 8 +SQL_DL_SQL92_DATE equ 1 +SQL_DL_SQL92_TIME equ 2 +SQL_DL_SQL92_TIMESTAMP equ 4 +SQL_DL_SQL92_INTERVAL_YEAR equ 8 +SQL_DL_SQL92_INTERVAL_MONTH equ 10h +SQL_DL_SQL92_INTERVAL_DAY equ 20h +SQL_DL_SQL92_INTERVAL_HOUR equ 40h +SQL_DL_SQL92_INTERVAL_MINUTE equ 80h +SQL_DL_SQL92_INTERVAL_SECOND equ 100h +SQL_DL_SQL92_INTERVAL_YEAR_TO_MONTH equ 200h +SQL_DL_SQL92_INTERVAL_DAY_TO_HOUR equ 400h +SQL_DL_SQL92_INTERVAL_DAY_TO_MINUTE equ 800h +SQL_DL_SQL92_INTERVAL_DAY_TO_SECOND equ 1000h +SQL_DL_SQL92_INTERVAL_HOUR_TO_MINUTE equ 2000h +SQL_DL_SQL92_INTERVAL_HOUR_TO_SECOND equ 4000h +SQL_DL_SQL92_INTERVAL_MINUTE_TO_SECOND equ 8000h +SQL_CL_START equ SQL_QL_START +SQL_CL_END equ SQL_QL_END +SQL_BRC_PROCEDURES equ 1 +SQL_BRC_EXPLICIT equ 2 +SQL_BRC_ROLLED_UP equ 4 +SQL_BS_SELECT_EXPLICIT equ 1 +SQL_BS_ROW_COUNT_EXPLICIT equ 2 +SQL_BS_SELECT_PROC equ 4 +SQL_BS_ROW_COUNT_PROC equ 8 +SQL_PARC_BATCH equ 1 +SQL_PARC_NO_BATCH equ 2 +SQL_PAS_BATCH equ 1 +SQL_PAS_NO_BATCH equ 2 +SQL_PAS_NO_SELECT equ 3 +SQL_IK_NONE equ 0 +SQL_IK_ASC equ 1 +SQL_IK_DESC equ 2 +SQL_IK_ALL equ (SQL_IK_ASC + SQL_IK_DESC) +SQL_ISV_ASSERTIONS equ 1 +SQL_ISV_CHARACTER_SETS equ 2 +SQL_ISV_CHECK_CONSTRAINTS equ 4 +SQL_ISV_COLLATIONS equ 8 +SQL_ISV_COLUMN_DOMAIN_USAGE equ 10h +SQL_ISV_COLUMN_PRIVILEGES equ 20h +SQL_ISV_COLUMNS equ 40h +SQL_ISV_CONSTRAINT_COLUMN_USAGE equ 80h +SQL_ISV_CONSTRAINT_TABLE_USAGE equ 100h +SQL_ISV_DOMAIN_CONSTRAINTS equ 200h +SQL_ISV_DOMAINS equ 400h +SQL_ISV_KEY_COLUMN_USAGE equ 800h +SQL_ISV_REFERENTIAL_CONSTRAINTS equ 1000h +SQL_ISV_SCHEMATA equ 2000h +SQL_ISV_SQL_LANGUAGES equ 4000h +SQL_ISV_TABLE_CONSTRAINTS equ 8000h +SQL_ISV_TABLE_PRIVILEGES equ 10000h +SQL_ISV_TABLES equ 20000h +SQL_ISV_TRANSLATIONS equ 40000h +SQL_ISV_USAGE_PRIVILEGES equ 80000h +SQL_ISV_VIEW_COLUMN_USAGE equ 100000h +SQL_ISV_VIEW_TABLE_USAGE equ 200000h +SQL_ISV_VIEWS equ 400000h +SQL_AD_CONSTRAINT_NAME_DEFINITION equ 1 +SQL_AD_ADD_DOMAIN_CONSTRAINT equ 2 +SQL_AD_DROP_DOMAIN_CONSTRAINT equ 4 +SQL_AD_ADD_DOMAIN_DEFAULT equ 8 +SQL_AD_DROP_DOMAIN_DEFAULT equ 10h +SQL_AD_ADD_CONSTRAINT_INITIALLY_DEFERRED equ 20h +SQL_AD_ADD_CONSTRAINT_INITIALLY_IMMEDIATE equ 40h +SQL_AD_ADD_CONSTRAINT_DEFERRABLE equ 80h +SQL_AD_ADD_CONSTRAINT_NON_DEFERRABLE equ 100h +SQL_CS_CREATE_SCHEMA equ 1 +SQL_CS_AUTHORIZATION equ 2 +SQL_CS_DEFAULT_CHARACTER_SET equ 4 +SQL_CTR_CREATE_TRANSLATION equ 1 +SQL_CA_CREATE_ASSERTION equ 1 +SQL_CA_CONSTRAINT_INITIALLY_DEFERRED equ 10h +SQL_CA_CONSTRAINT_INITIALLY_IMMEDIATE equ 20h +SQL_CA_CONSTRAINT_DEFERRABLE equ 40h +SQL_CA_CONSTRAINT_NON_DEFERRABLE equ 80h +SQL_CCS_CREATE_CHARACTER_SET equ 1 +SQL_CCS_COLLATE_CLAUSE equ 2 +SQL_CCS_LIMITED_COLLATION equ 4 +SQL_CCOL_CREATE_COLLATION equ 1 +SQL_CDO_CREATE_DOMAIN equ 1 +SQL_CDO_DEFAULT equ 2 +SQL_CDO_CONSTRAINT equ 4 +SQL_CDO_COLLATION equ 8 +SQL_CDO_CONSTRAINT_NAME_DEFINITION equ 10h +SQL_CDO_CONSTRAINT_INITIALLY_DEFERRED equ 20h +SQL_CDO_CONSTRAINT_INITIALLY_IMMEDIATE equ 40h +SQL_CDO_CONSTRAINT_DEFERRABLE equ 80h +SQL_CDO_CONSTRAINT_NON_DEFERRABLE equ 100h +SQL_CT_CREATE_TABLE equ 1 +SQL_CT_COMMIT_PRESERVE equ 2 +SQL_CT_COMMIT_DELETE equ 4 +SQL_CT_GLOBAL_TEMPORARY equ 8 +SQL_CT_LOCAL_TEMPORARY equ 10h +SQL_CT_CONSTRAINT_INITIALLY_DEFERRED equ 20h +SQL_CT_CONSTRAINT_INITIALLY_IMMEDIATE equ 40h +SQL_CT_CONSTRAINT_DEFERRABLE equ 80h +SQL_CT_CONSTRAINT_NON_DEFERRABLE equ 100h +SQL_CT_COLUMN_CONSTRAINT equ 200h +SQL_CT_COLUMN_DEFAULT equ 400h +SQL_CT_COLUMN_COLLATION equ 800h +SQL_CT_TABLE_CONSTRAINT equ 1000h +SQL_CT_CONSTRAINT_NAME_DEFINITION equ 2000h +SQL_DI_CREATE_INDEX equ 1 +SQL_DI_DROP_INDEX equ 2 +SQL_DC_DROP_COLLATION equ 1 +SQL_DD_DROP_DOMAIN equ 1 +SQL_DD_RESTRICT equ 2 +SQL_DD_CASCADE equ 4 +SQL_DS_DROP_SCHEMA equ 1 +SQL_DS_RESTRICT equ 2 +SQL_DS_CASCADE equ 4 +SQL_DCS_DROP_CHARACTER_SET equ 1 +SQL_DA_DROP_ASSERTION equ 1 +SQL_DT_DROP_TABLE equ 1 +SQL_DT_RESTRICT equ 2 +SQL_DT_CASCADE equ 4 +SQL_DTR_DROP_TRANSLATION equ 1 +SQL_DV_DROP_VIEW equ 1 +SQL_DV_RESTRICT equ 2 +SQL_DV_CASCADE equ 4 +SQL_IS_INSERT_LITERALS equ 1 +SQL_IS_INSERT_SEARCHED equ 2 +SQL_IS_SELECT_INTO equ 4 +SQL_OIC_CORE equ 1 +SQL_OIC_LEVEL1 equ 2 +SQL_OIC_LEVEL2 equ 3 +SQL_SFKD_CASCADE equ 1 +SQL_SFKD_NO_ACTION equ 2 +SQL_SFKD_SET_DEFAULT equ 4 +SQL_SFKD_SET_NULL equ 8 +SQL_SFKU_CASCADE equ 1 +SQL_SFKU_NO_ACTION equ 2 +SQL_SFKU_SET_DEFAULT equ 4 +SQL_SFKU_SET_NULL equ 8 +SQL_SG_USAGE_ON_DOMAIN equ 1 +SQL_SG_USAGE_ON_CHARACTER_SET equ 2 +SQL_SG_USAGE_ON_COLLATION equ 4 +SQL_SG_USAGE_ON_TRANSLATION equ 8 +SQL_SG_WITH_GRANT_OPTION equ 10h +SQL_SG_DELETE_TABLE equ 20h +SQL_SG_INSERT_TABLE equ 40h +SQL_SG_INSERT_COLUMN equ 80h +SQL_SG_REFERENCES_TABLE equ 100h +SQL_SG_REFERENCES_COLUMN equ 200h +SQL_SG_SELECT_TABLE equ 400h +SQL_SG_UPDATE_TABLE equ 800h +SQL_SG_UPDATE_COLUMN equ 1000h +SQL_SP_EXISTS equ 1 +SQL_SP_ISNOTNULL equ 2 +SQL_SP_ISNULL equ 4 +SQL_SP_MATCH_FULL equ 8 +SQL_SP_MATCH_PARTIAL equ 10h +SQL_SP_MATCH_UNIQUE_FULL equ 20h +SQL_SP_MATCH_UNIQUE_PARTIAL equ 40h +SQL_SP_OVERLAPS equ 80h +SQL_SP_UNIQUE equ 100h +SQL_SP_LIKE equ 200h +SQL_SP_IN equ 400h +SQL_SP_BETWEEN equ 800h +SQL_SP_COMPARISON equ 1000h +SQL_SP_QUANTIFIED_COMPARISON equ 2000h +SQL_SRJO_CORRESPONDING_CLAUSE equ 1 +SQL_SRJO_CROSS_JOIN equ 2 +SQL_SRJO_EXCEPT_JOIN equ 4 +SQL_SRJO_FULL_OUTER_JOIN equ 8 +SQL_SRJO_INNER_JOIN equ 10h +SQL_SRJO_INTERSECT_JOIN equ 20h +SQL_SRJO_LEFT_OUTER_JOIN equ 40h +SQL_SRJO_NATURAL_JOIN equ 80h +SQL_SRJO_RIGHT_OUTER_JOIN equ 100h +SQL_SRJO_UNION_JOIN equ 200h +SQL_SR_USAGE_ON_DOMAIN equ 1 +SQL_SR_USAGE_ON_CHARACTER_SET equ 2 +SQL_SR_USAGE_ON_COLLATION equ 4 +SQL_SR_USAGE_ON_TRANSLATION equ 8 +SQL_SR_GRANT_OPTION_FOR equ 10h +SQL_SR_CASCADE equ 20h +SQL_SR_RESTRICT equ 40h +SQL_SR_DELETE_TABLE equ 80h +SQL_SR_INSERT_TABLE equ 100h +SQL_SR_INSERT_COLUMN equ 200h +SQL_SR_REFERENCES_TABLE equ 400h +SQL_SR_REFERENCES_COLUMN equ 800h +SQL_SR_SELECT_TABLE equ 1000h +SQL_SR_UPDATE_TABLE equ 2000h +SQL_SR_UPDATE_COLUMN equ 4000h +SQL_SRVC_VALUE_EXPRESSION equ 1 +SQL_SRVC_NULL equ 2 +SQL_SRVC_DEFAULT equ 4 +SQL_SRVC_ROW_SUBQUERY equ 8 +SQL_SVE_CASE equ 1 +SQL_SVE_CAST equ 2 +SQL_SVE_COALESCE equ 4 +SQL_SVE_NULLIF equ 8 +SQL_SCC_XOPEN_CLI_VERSION1 equ 1 +SQL_SCC_ISO92_CLI equ 2 +SQL_US_UNION equ SQL_U_UNION +SQL_US_UNION_ALL equ SQL_U_UNION_ALL +SQL_DTC_ENLIST_EXPENSIVE equ 1 +SQL_DTC_UNENLIST_EXPENSIVE equ 2 +SQL_FETCH_FIRST_USER equ 31 +SQL_FETCH_FIRST_SYSTEM equ 32 +SQL_ENTIRE_ROWSET equ 0 +SQL_POSITION equ 0 +SQL_REFRESH equ 1 +SQL_UPDATE equ 2 +SQL_DELETE equ 3 +SQL_ADD equ 4 +SQL_SETPOS_MAX_OPTION_VALUE equ SQL_ADD +SQL_UPDATE_BY_BOOKMARK equ 5 +SQL_DELETE_BY_BOOKMARK equ 6 +SQL_FETCH_BY_BOOKMARK equ 7 +SQL_LOCK_NO_CHANGE equ 0 +SQL_LOCK_EXCLUSIVE equ 1 +SQL_LOCK_UNLOCK equ 2 +SQL_SETPOS_MAX_LOCK_VALUE equ SQL_LOCK_UNLOCK +SQL_BEST_ROWID equ 1 +SQL_ROWVER equ 2 +SQL_PC_NOT_PSEUDO equ 1 +SQL_QUICK equ 0 +SQL_ENSURE equ 1 +SQL_TABLE_STAT equ 0 +SQL_ALL_CATALOGS equ A("%") +SQL_ALL_SCHEMAS equ A("%") +SQL_ALL_TABLE_TYPES equ A("%") +SQL_DRIVER_NOPROMPT equ 0 +SQL_DRIVER_COMPLETE equ 1 +SQL_DRIVER_PROMPT equ 2 +SQL_DRIVER_COMPLETE_REQUIRED equ 3 +SQL_FETCH_BOOKMARK equ 8 +SQL_ROW_SUCCESS equ 0 +SQL_ROW_DELETED equ 1 +SQL_ROW_UPDATED equ 2 +SQL_ROW_NOROW equ 3 +SQL_ROW_ADDED equ 4 +SQL_ROW_ERROR equ 5 +SQL_ROW_SUCCESS_WITH_INFO equ 6 +SQL_ROW_PROCEED equ 0 +SQL_ROW_IGNORE equ 1 +SQL_PARAM_SUCCESS equ 0 +SQL_PARAM_SUCCESS_WITH_INFO equ 6 +SQL_PARAM_ERROR equ 5 +SQL_PARAM_UNUSED equ 7 +SQL_PARAM_DIAG_UNAVAILABLE equ 1 +SQL_PARAM_PROCEED equ 0 +SQL_PARAM_IGNORE equ 1 +SQL_CASCADE equ 0 +SQL_RESTRICT equ 1 +SQL_SET_NULL equ 2 +SQL_NO_ACTION equ 3 +SQL_SET_DEFAULT equ 4 +SQL_INITIALLY_DEFERRED equ 5 +SQL_INITIALLY_IMMEDIATE equ 6 +SQL_NOT_DEFERRABLE equ 7 +SQL_PARAM_TYPE_UNKNOWN equ 0 +SQL_PARAM_INPUT equ 1 +SQL_PARAM_INPUT_OUTPUT equ 2 +SQL_RESULT_COL equ 3 +SQL_PARAM_OUTPUT equ 4 +SQL_RETURN_VALUE equ 5 +SQL_PT_UNKNOWN equ 0 +SQL_PT_PROCEDURE equ 1 +SQL_PT_FUNCTION equ 2 +SQL_YEAR equ SQL_CODE_YEAR +SQL_MONTH equ SQL_CODE_MONTH +SQL_DAY equ SQL_CODE_DAY +SQL_HOUR equ SQL_CODE_HOUR +SQL_MINUTE equ SQL_CODE_MINUTE +SQL_SECOND equ SQL_CODE_SECOND +SQL_YEAR_TO_MONTH equ SQL_CODE_YEAR_TO_MONTH +SQL_DAY_TO_HOUR equ SQL_CODE_DAY_TO_HOUR +SQL_DAY_TO_MINUTE equ SQL_CODE_DAY_TO_MINUTE +SQL_DAY_TO_SECOND equ SQL_CODE_DAY_TO_SECOND +SQL_HOUR_TO_MINUTE equ SQL_CODE_HOUR_TO_MINUTE +SQL_HOUR_TO_SECOND equ SQL_CODE_HOUR_TO_SECOND +SQL_MINUTE_TO_SECOND equ SQL_CODE_MINUTE_TO_SECOND +SQL_DATABASE_NAME equ 16 +SQL_FD_FETCH_PREV equ SQL_FD_FETCH_PRIOR +SQL_FETCH_PREV equ SQL_FETCH_PRIOR +SQL_CONCUR_TIMESTAMP equ SQL_CONCUR_ROWVER +SQL_SCCO_OPT_TIMESTAMP equ SQL_SCCO_OPT_ROWVER +SQL_CC_DELETE equ SQL_CB_DELETE +SQL_CR_DELETE equ SQL_CB_DELETE +SQL_CC_CLOSE equ SQL_CB_CLOSE +SQL_CR_CLOSE equ SQL_CB_CLOSE +SQL_CC_PRESERVE equ SQL_CB_PRESERVE +SQL_CR_PRESERVE equ SQL_CB_PRESERVE +SQL_SCROLL_FORWARD_ONLY equ 0 +SQL_SCROLL_KEYSET_DRIVEN equ (-1) +SQL_SCROLL_DYNAMIC equ (-2) +SQL_SCROLL_STATIC equ (-3) +TRACE_VERSION equ 1000 +TRACE_ON equ 1 +TRACE_VS_EVENT_ON equ 2 +ODBC_VS_FLAG_UNICODE_ARG equ 1 +ODBC_VS_FLAG_UNICODE_COR equ 2 +ODBC_VS_FLAG_RETCODE equ 4 +ODBC_VS_FLAG_STOP equ 8 +;----------------------------------------------------------------------------------------- +; sqltypes.h +;----------------------------------------------------------------------------------------- +DATE_STRUCT struct + year dw ? + month dw ? + day dw ? +DATE_STRUCT ends +SQL_DATE_STRUCT equ DATE_STRUCT +TIME_STRUCT struct + hour dw ? + minute dw ? + second dw ? +TIME_STRUCT ends +SQL_TIME_STRUCT equ TIME_STRUCT +TIMESTAMP_STRUCT struct + year dw ? + month dw ? + day dw ? + hour dw ? + minute dw ? + second dw ? + fraction dd ? +TIMESTAMP_STRUCT ends +SQL_TIMESTAMP_STRUCT equ TIMESTAMP_STRUCT +SQL_IS_YEAR equ 1 +SQL_IS_MONTH equ 2 +SQL_IS_DAY equ 3 +SQL_IS_HOUR equ 4 +SQL_IS_MINUTE equ 5 +SQL_IS_SECOND equ 6 +SQL_IS_YEAR_TO_MONTH equ 7 +SQL_IS_DAY_TO_HOUR equ 8 +SQL_IS_DAY_TO_MINUTE equ 9 +SQL_IS_DAY_TO_SECOND equ 10 +SQL_IS_HOUR_TO_MINUTE equ 11 +SQL_IS_HOUR_TO_SECOND equ 12 +SQL_IS_MINUTE_TO_SECOND equ 13 +SQL_YEAR_MONTH_STRUCT struct + year dword ? + month dword ? +SQL_YEAR_MONTH_STRUCT ends +SQL_DAY_SECOND_STRUCT struct + day dword ? + hour dword ? + minute dword ? + second dword ? + fraction dword ? +SQL_DAY_SECOND_STRUCT ends + +SQL_INTERVAL_STRUCT struct + interval_type dword ? + interval_sign dword ? + union intval + year_month SQL_YEAR_MONTH_STRUCT <> + day_second SQL_DAY_SECOND_STRUCT <> + ends +SQL_INTERVAL_STRUCT ends +SQL_MAX_NUMERIC_LEN equ 16 +SQL_NUMERIC_STRUCT struct + precision db ? + scale db ? + sign db ? + val db SQL_MAX_NUMERIC_LEN dup(?) +SQL_NUMERIC_STRUCT ends +SQLGUID struct + Data1 dd ? + Data2 dw ? + Data3 dw ? + Data4 db 8 dup(?) +SQLGUID ends + +;;;; end odbcsql + +;;;; NTextra + +FLOAT128 STRUCT + LowPart QWORD ? + HighPart QWORD ? +FLOAT128 ENDS + +LIST_ENTRY32 STRUCT + Flink DWORD ? + Blink DWORD ? +LIST_ENTRY32 ENDS + +LIST_ENTRY64 STRUCT + Flink QWORD ? + Blink QWORD ? +LIST_ENTRY64 ENDS + +M128A STRUCT + _Low QWORD ? + _High QWORD ? +M128A ENDS + +XMM_SAVE_AREA32 STRUCT + ControlWord WORD ? + StatusWord WORD ? + TagWord BYTE ? + Reserved1 BYTE ? + ErrorOpcode WORD ? + ErrorOffset DWORD ? + ErrorSelector WORD ? + Reserved2 WORD ? + DataOffset DWORD ? + DataSelector WORD ? + Reserved3 WORD ? + MxCsr DWORD ? + MxCsr_Mask DWORD ? + FloatRegisters M128A 8 dup (<>) + XmmRegisters M128A 16 dup (<>) + Reserved BYTE 96 dup (?) +XMM_SAVE_AREA32 ENDS + +RUNTIME_FUNCTION STRUCT + BeginAddress DWORD ? + EndAddress DWORD ? + UnwindData DWORD ? +RUNTIME_FUNCTION ENDS + +PLABEL_DESCRIPTOR STRUCT + EntryPoint QWORD ? + GlobalPointer QWORD ? +PLABEL_DESCRIPTOR ENDS + +WOW64_FLOATING_SAVE_AREA STRUCT + ControlWord DWORD ? + StatusWord DWORD ? + TagWord DWORD ? + ErrorOffset DWORD ? + ErrorSelector DWORD ? + DataOffset DWORD ? + DataSelector DWORD ? + RegisterArea BYTE WOW64_SIZE_OF_80387_REGISTERS dup (?) + Cr0NpxState DWORD ? +WOW64_FLOATING_SAVE_AREA ENDS + +WOW64_CONTEXT STRUCT + ContextFlags DWORD ? + _Dr0 DWORD ? + _Dr1 DWORD ? + _Dr2 DWORD ? + _Dr3 DWORD ? + _Dr6 DWORD ? + _Dr7 DWORD ? + _FloatSave WOW64_FLOATING_SAVE_AREA <> + _SegGs DWORD ? + _SegFs DWORD ? + _SegEs DWORD ? + _SegDs DWORD ? + _Edi DWORD ? + _Esi DWORD ? + _Ebx DWORD ? + _Edx DWORD ? + _Ecx DWORD ? + _Eax DWORD ? + _Ebp DWORD ? + _Eip DWORD ? + _SegCs DWORD ? + _EFlags DWORD ? + _Esp DWORD ? + _SegSs DWORD ? + ExtendedRegisters BYTE WOW64_MAXIMUM_SUPPORTED_EXTENSION dup (?) +WOW64_CONTEXT ENDS + +EXCEPTION_RECORD32 STRUCT + ExceptionCode DWORD ? + ExceptionFlags DWORD ? + ExceptionRecord DWORD ? + ExceptionAddress DWORD ? + NumberParameters DWORD ? + ExceptionInformation DWORD EXCEPTION_MAXIMUM_PARAMETERS dup (?) +EXCEPTION_RECORD32 ENDS + +EXCEPTION_RECORD64 STRUCT + ExceptionCode DWORD ? + ExceptionFlags DWORD ? + ExceptionRecord QWORD ? + ExceptionAddress QWORD ? + NumberParameters DWORD ? + __unusedAlignment DWORD ? + ExceptionInformation QWORD EXCEPTION_MAXIMUM_PARAMETERS dup (?) +EXCEPTION_RECORD64 ENDS + + ; SID_AND_ATTRIBUTES_HASH STRUCT + ; SidCount DWORD ? + ; SidAttr PSID_AND_ATTRIBUTES <> + ; Hash SID_HASH_ENTRY SID_HASH_SIZE dup (<>) + ; SID_AND_ATTRIBUTES_HASH ENDS + +SYSTEM_MANDATORY_LABEL_ACE STRUCT + Header ACE_HEADER <> + _Mask DWORD ? + SidStart DWORD ? +SYSTEM_MANDATORY_LABEL_ACE ENDS + +ACCESS_ALLOWED_CALLBACK_ACE STRUCT + Header ACE_HEADER <> + _Mask DWORD ? + SidStart DWORD ? +ACCESS_ALLOWED_CALLBACK_ACE ENDS + +ACCESS_DENIED_CALLBACK_ACE STRUCT + Header ACE_HEADER <> + _Mask DWORD ? + SidStart DWORD ? +ACCESS_DENIED_CALLBACK_ACE ENDS + +SYSTEM_AUDIT_CALLBACK_ACE STRUCT + Header ACE_HEADER <> + _Mask DWORD ? + SidStart DWORD ? +SYSTEM_AUDIT_CALLBACK_ACE ENDS + +SYSTEM_ALARM_CALLBACK_ACE STRUCT + Header ACE_HEADER <> + _Mask DWORD ? + SidStart DWORD ? +SYSTEM_ALARM_CALLBACK_ACE ENDS + +ACCESS_ALLOWED_CALLBACK_OBJECT_ACE STRUCT + Header ACE_HEADER <> + _Mask DWORD ? + Flags DWORD ? + ObjectType GUID <> + InheritedObjectType GUID <> + SidStart DWORD ? +ACCESS_ALLOWED_CALLBACK_OBJECT_ACE ENDS + +ACCESS_DENIED_CALLBACK_OBJECT_ACE STRUCT + Header ACE_HEADER <> + _Mask DWORD ? + Flags DWORD ? + ObjectType GUID <> + InheritedObjectType GUID <> + SidStart DWORD ? +ACCESS_DENIED_CALLBACK_OBJECT_ACE ENDS + +SYSTEM_AUDIT_CALLBACK_OBJECT_ACE STRUCT + Header ACE_HEADER <> + _Mask DWORD ? + Flags DWORD ? + ObjectType GUID <> + InheritedObjectType GUID <> + SidStart DWORD ? +SYSTEM_AUDIT_CALLBACK_OBJECT_ACE ENDS + +SYSTEM_ALARM_CALLBACK_OBJECT_ACE STRUCT + Header ACE_HEADER <> + _Mask DWORD ? + Flags DWORD ? + ObjectType GUID <> + InheritedObjectType GUID <> + SidStart DWORD ? +SYSTEM_ALARM_CALLBACK_OBJECT_ACE ENDS + +TOKEN_LINKED_TOKEN STRUCT + LinkedToken DWORD ? +TOKEN_LINKED_TOKEN ENDS + +TOKEN_ELEVATION STRUCT + TokenIsElevated DWORD ? +TOKEN_ELEVATION ENDS + +TOKEN_MANDATORY_LABEL STRUCT + _Label SID_AND_ATTRIBUTES <> +TOKEN_MANDATORY_LABEL ENDS + +TOKEN_MANDATORY_POLICY STRUCT + Policy DWORD ? +TOKEN_MANDATORY_POLICY ENDS + +TOKEN_ORIGIN STRUCT + OriginatingLogonSession DWORD ? +TOKEN_ORIGIN ENDS + +JOB_SET_ARRAY STRUCT + JobHandle DWORD ? + MemberLevel DWORD ? + Flags DWORD ? +JOB_SET_ARRAY ENDS + +IO_COUNTERS STRUCT + ReadOperationCount QWORD ? + WriteOperationCount QWORD ? + OtherOperationCount QWORD ? + ReadTransferCount QWORD ? + WriteTransferCount QWORD ? + OtherTransferCount QWORD ? +IO_COUNTERS ENDS + +MEMORY_BASIC_INFORMATION32 STRUCT + BaseAddress DWORD ? + AllocationBase DWORD ? + AllocationProtect DWORD ? + RegionSize DWORD ? + State DWORD ? + Protect DWORD ? + _Type DWORD ? +MEMORY_BASIC_INFORMATION32 ENDS + +MEMORY_BASIC_INFORMATION64 STRUCT + BaseAddress QWORD ? + AllocationBase QWORD ? + AllocationProtect DWORD ? + __alignment1 DWORD ? + RegionSize QWORD ? + State DWORD ? + Protect DWORD ? + _Type DWORD ? + __alignment2 DWORD ? +MEMORY_BASIC_INFORMATION64 ENDS + +NOTIFY_USER_POWER_SETTING STRUCT + Guid GUID <> +NOTIFY_USER_POWER_SETTING ENDS + +APPLICATIONLAUNCH_SETTING_VALUE STRUCT + ActivationTime LARGE_INTEGER <> + Flags DWORD ? + ButtonInstanceID DWORD ? +APPLICATIONLAUNCH_SETTING_VALUE ENDS + +BATTERY_REPORTING_SCALE STRUCT + Granularity DWORD ? + Capacity DWORD ? +BATTERY_REPORTING_SCALE ENDS + +PPM_SIMULATED_PROCESSOR_LOAD STRUCT + Enabled BYTE ? + PercentBusy BYTE MAXIMUM_PROCESSORS dup (?) +PPM_SIMULATED_PROCESSOR_LOAD ENDS + +PPM_WMI_LEGACY_PERFSTATE STRUCT + Frequency DWORD ? + Flags DWORD ? + PercentFrequency DWORD ? +PPM_WMI_LEGACY_PERFSTATE ENDS + +PPM_WMI_IDLE_STATE STRUCT + Latency DWORD ? + Power DWORD ? + TimeCheck DWORD ? + PromotePercent BYTE ? + DemotePercent BYTE ? + StateType BYTE ? + Reserved BYTE ? + StateFlags DWORD ? + Context DWORD ? + IdleHandler DWORD ? + Reserved1 DWORD ? +PPM_WMI_IDLE_STATE ENDS + +PPM_WMI_IDLE_STATES STRUCT + _Type DWORD ? + Count DWORD ? + TargetState DWORD ? + OldState DWORD ? + TargetProcessors QWORD ? + State PPM_WMI_IDLE_STATE ANYSIZE_ARRAY dup (<>) +PPM_WMI_IDLE_STATES ENDS + +PPM_WMI_PERF_STATE STRUCT + Frequency DWORD ? + Power DWORD ? + PercentFrequency BYTE ? + IncreaseLevel BYTE ? + DecreaseLevel BYTE ? + _Type BYTE ? + IncreaseTime DWORD ? + DecreaseTime DWORD ? + Control QWORD ? + Status QWORD ? + HitCount DWORD ? + Reserved1 DWORD ? + Reserved2 QWORD ? + Reserved3 QWORD ? +PPM_WMI_PERF_STATE ENDS + +PPM_WMI_PERF_STATES STRUCT + Count DWORD ? + MaxFrequency DWORD ? + CurrentState DWORD ? + MaxPerfState DWORD ? + MinPerfState DWORD ? + LowestPerfState DWORD ? + ThermalConstraint DWORD ? + BusyAdjThreshold BYTE ? + PolicyType BYTE ? + _Type BYTE ? + Reserved BYTE ? + TimerInterval DWORD ? + TargetProcessors QWORD ? + PStateHandler DWORD ? + PStateContext DWORD ? + TStateHandler DWORD ? + TStateContext DWORD ? + FeedbackHandler DWORD ? + Reserved1 DWORD ? + Reserved2 QWORD ? + State PPM_WMI_PERF_STATE ANYSIZE_ARRAY dup (<>) +PPM_WMI_PERF_STATES ENDS + +PPM_IDLE_STATE_ACCOUNTING STRUCT + IdleTransitions DWORD ? + FailedTransitions DWORD ? + InvalidBucketIndex DWORD ? + TotalTime QWORD ? + IdleTimeBuckets DWORD PROC_IDLE_BUCKET_COUNT dup (?) +PPM_IDLE_STATE_ACCOUNTING ENDS + +PPM_IDLE_ACCOUNTING STRUCT + StateCount DWORD ? + TotalTransitions DWORD ? + ResetCount DWORD ? + StartTime QWORD ? + State PPM_IDLE_STATE_ACCOUNTING ANYSIZE_ARRAY dup (<>) +PPM_IDLE_ACCOUNTING ENDS + +PPM_PERFSTATE_EVENT STRUCT + State DWORD ? + Status DWORD ? + Latency DWORD ? + Speed DWORD ? + Processor DWORD ? +PPM_PERFSTATE_EVENT ENDS + +PPM_PERFSTATE_DOMAIN_EVENT STRUCT + State DWORD ? + Latency DWORD ? + Speed DWORD ? + Processors QWORD ? +PPM_PERFSTATE_DOMAIN_EVENT ENDS + +PPM_IDLESTATE_EVENT STRUCT + NewState DWORD ? + OldState DWORD ? + Processors QWORD ? +PPM_IDLESTATE_EVENT ENDS + +PPM_THERMALCHANGE_EVENT STRUCT + ThermalConstraint DWORD ? + Processors QWORD ? +PPM_THERMALCHANGE_EVENT ENDS + +PPM_THERMAL_POLICY_EVENT STRUCT + Mode BYTE ? + Processors QWORD ? +PPM_THERMAL_POLICY_EVENT ENDS + +PROCESSOR_IDLESTATE_INFO STRUCT + TimeCheck DWORD ? + DemotePercent BYTE ? + PromotePercent BYTE ? + Spare BYTE 2 dup (?) +PROCESSOR_IDLESTATE_INFO ENDS + +SYSTEM_BATTERY_STATE STRUCT + AcOnLine BYTE ? + BatteryPresent BYTE ? + Charging BYTE ? + Discharging BYTE ? + Spare1 BYTE 4 dup (?) + MaxCapacity DWORD ? + RemainingCapacity DWORD ? + Rate DWORD ? + EstimatedTime DWORD ? + DefaultAlert1 DWORD ? + DefaultAlert2 DWORD ? +SYSTEM_BATTERY_STATE ENDS + +IMAGE_OPTIONAL_HEADER64 STRUCT + Magic WORD ? + MajorLinkerVersion BYTE ? + MinorLinkerVersion BYTE ? + SizeOfCode DWORD ? + SizeOfInitializedData DWORD ? + SizeOfUninitializedData DWORD ? + AddressOfEntryPoint DWORD ? + BaseOfCode DWORD ? + ImageBase QWORD ? + SectionAlignment DWORD ? + FileAlignment DWORD ? + MajorOperatingSystemVersion WORD ? + MinorOperatingSystemVersion WORD ? + MajorImageVersion WORD ? + MinorImageVersion WORD ? + MajorSubsystemVersion WORD ? + MinorSubsystemVersion WORD ? + Win32VersionValue DWORD ? + SizeOfImage DWORD ? + SizeOfHeaders DWORD ? + CheckSum DWORD ? + Subsystem WORD ? + DllCharacteristics WORD ? + SizeOfStackReserve QWORD ? + SizeOfStackCommit QWORD ? + SizeOfHeapReserve QWORD ? + SizeOfHeapCommit QWORD ? + LoaderFlags DWORD ? + NumberOfRvaAndSizes DWORD ? + DataDirectory IMAGE_DATA_DIRECTORY IMAGE_NUMBEROF_DIRECTORY_ENTRIES dup (<>) +IMAGE_OPTIONAL_HEADER64 ENDS + +IMAGE_NT_HEADERS64 STRUCT + Signature DWORD ? + FileHeader IMAGE_FILE_HEADER <> + OptionalHeader IMAGE_OPTIONAL_HEADER64 <> +IMAGE_NT_HEADERS64 ENDS + +ANON_OBJECT_HEADER STRUCT + Sig1 WORD ? + Sig2 WORD ? + Version WORD ? + Machine WORD ? + TimeDateStamp DWORD ? + ClassID CLSID <> + SizeOfData DWORD ? +ANON_OBJECT_HEADER ENDS + +ANON_OBJECT_HEADER_V2 STRUCT + Sig1 WORD ? + Sig2 WORD ? + Version WORD ? + Machine WORD ? + TimeDateStamp DWORD ? + ClassID CLSID <> + SizeOfData DWORD ? + Flags DWORD ? + MetaDataSize DWORD ? + MetaDataOffset DWORD ? +ANON_OBJECT_HEADER_V2 ENDS + +IMAGE_AUX_SYMBOL_TOKEN_DEF STRUCT + bAuxType BYTE ? + bReserved BYTE ? + SymbolTableIndex DWORD ? + rgbReserved BYTE 12 dup (?) +IMAGE_AUX_SYMBOL_TOKEN_DEF ENDS + +IMAGE_TLS_DIRECTORY64 STRUCT + StartAddressOfRawData QWORD ? + EndAddressOfRawData QWORD ? + AddressOfIndex QWORD ? + AddressOfCallBacks QWORD ? + SizeOfZeroFill DWORD ? + Characteristics DWORD ? +IMAGE_TLS_DIRECTORY64 ENDS + +IMAGE_LOAD_CONFIG_DIRECTORY32 STRUCT + _Size DWORD ? + TimeDateStamp DWORD ? + MajorVersion WORD ? + MinorVersion WORD ? + GlobalFlagsClear DWORD ? + GlobalFlagsSet DWORD ? + CriticalSectionDefaultTimeout DWORD ? + DeCommitFreeBlockThreshold DWORD ? + DeCommitTotalFreeThreshold DWORD ? + LockPrefixTable DWORD ? + MaximumAllocationSize DWORD ? + VirtualMemoryThreshold DWORD ? + ProcessHeapFlags DWORD ? + ProcessAffinityMask DWORD ? + CSDVersion WORD ? + Reserved1 WORD ? + EditList DWORD ? + SecurityCookie DWORD ? + SEHandlerTable DWORD ? + SEHandlerCount DWORD ? +IMAGE_LOAD_CONFIG_DIRECTORY32 ENDS + +IMAGE_LOAD_CONFIG_DIRECTORY64 STRUCT + _Size DWORD ? + TimeDateStamp DWORD ? + MajorVersion WORD ? + MinorVersion WORD ? + GlobalFlagsClear DWORD ? + GlobalFlagsSet DWORD ? + CriticalSectionDefaultTimeout DWORD ? + DeCommitFreeBlockThreshold QWORD ? + DeCommitTotalFreeThreshold QWORD ? + LockPrefixTable QWORD ? + MaximumAllocationSize QWORD ? + VirtualMemoryThreshold QWORD ? + ProcessAffinityMask QWORD ? + ProcessHeapFlags DWORD ? + CSDVersion WORD ? + Reserved1 WORD ? + EditList QWORD ? + SecurityCookie QWORD ? + SEHandlerTable QWORD ? + SEHandlerCount QWORD ? +IMAGE_LOAD_CONFIG_DIRECTORY64 ENDS + +NON_PAGED_DEBUG_INFO STRUCT + Signature WORD ? + Flags WORD ? + _Size DWORD ? + Machine WORD ? + Characteristics WORD ? + TimeDateStamp DWORD ? + CheckSum DWORD ? + SizeOfImage DWORD ? + ImageBase QWORD ? +NON_PAGED_DEBUG_INFO ENDS + +IMAGE_ARCHITECTURE_ENTRY STRUCT + FixupInstRVA DWORD ? + NewInst DWORD ? +IMAGE_ARCHITECTURE_ENTRY ENDS + +IMAGE_COR20_HEADER STRUCT + cb DWORD ? + MajorRuntimeVersion WORD ? + MinorRuntimeVersion WORD ? + MetaData IMAGE_DATA_DIRECTORY <> + Flags DWORD ? + EntryPointToken DWORD ? + Resources IMAGE_DATA_DIRECTORY <> + StrongNameSignature IMAGE_DATA_DIRECTORY <> + CodeManagerTable IMAGE_DATA_DIRECTORY <> + VTableFixups IMAGE_DATA_DIRECTORY <> + ExportAddressTableJumps IMAGE_DATA_DIRECTORY <> + ManagedNativeHeader IMAGE_DATA_DIRECTORY <> +IMAGE_COR20_HEADER ENDS + +RTL_SRWLOCK STRUCT + _Ptr DWORD ? +RTL_SRWLOCK ENDS + +RTL_CONDITION_VARIABLE STRUCT + _Ptr DWORD ? +RTL_CONDITION_VARIABLE ENDS + +ACTIVATION_CONTEXT_QUERY_INDEX STRUCT + ulAssemblyIndex DWORD ? + ulFileIndexInAssembly DWORD ? +ACTIVATION_CONTEXT_QUERY_INDEX ENDS + +ASSEMBLY_FILE_DETAILED_INFORMATION STRUCT + ulFlags DWORD ? + ulFilenameLength DWORD ? + ulPathLength DWORD ? + lpFileName DWORD ? + lpFilePath DWORD ? +ASSEMBLY_FILE_DETAILED_INFORMATION ENDS + +ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION STRUCT + ulFlags DWORD ? + ulEncodedAssemblyIdentityLength DWORD ? + ulManifestPathType DWORD ? + ulManifestPathLength DWORD ? + liManifestLastWriteTime LARGE_INTEGER <> + ulPolicyPathType DWORD ? + ulPolicyPathLength DWORD ? + liPolicyLastWriteTime LARGE_INTEGER <> + ulMetadataSatelliteRosterIndex DWORD ? + ulManifestVersionMajor DWORD ? + ulManifestVersionMinor DWORD ? + ulPolicyVersionMajor DWORD ? + ulPolicyVersionMinor DWORD ? + ulAssemblyDirectoryNameLength DWORD ? + lpAssemblyEncodedAssemblyIdentity DWORD ? + lpAssemblyManifestPath DWORD ? + lpAssemblyPolicyPath DWORD ? + lpAssemblyDirectoryName DWORD ? + ulFileCount DWORD ? +ACTIVATION_CONTEXT_ASSEMBLY_DETAILED_INFORMATION ENDS + +ACTIVATION_CONTEXT_DETAILED_INFORMATION STRUCT + dwFlags DWORD ? + ulFormatVersion DWORD ? + ulAssemblyCount DWORD ? + ulRootManifestPathType DWORD ? + ulRootManifestPathChars DWORD ? + ulRootConfigurationPathType DWORD ? + ulRootConfigurationPathChars DWORD ? + ulAppDirPathType DWORD ? + ulAppDirPathChars DWORD ? + lpRootManifestPath DWORD ? + lpRootConfigurationPath DWORD ? + lpAppDirPath DWORD ? +ACTIVATION_CONTEXT_DETAILED_INFORMATION ENDS + +TAPE_WMI_OPERATIONS STRUCT + Method DWORD ? + DataBufferSize DWORD ? + DataBuffer DWORD ? +TAPE_WMI_OPERATIONS ENDS + +RESOURCEMANAGER_BASIC_INFORMATION STRUCT + ResourceManagerId GUID <> + DescriptionLength DWORD ? + Description word 1 dup (?) +RESOURCEMANAGER_BASIC_INFORMATION ENDS + +RESOURCEMANAGER_COMPLETION_INFORMATION STRUCT + IoCompletionPortHandle DWORD ? + CompletionKey DWORD ? +RESOURCEMANAGER_COMPLETION_INFORMATION ENDS + +ENLISTMENT_BASIC_INFORMATION STRUCT + EnlistmentId GUID <> + TransactionId GUID <> + ResourceManagerId GUID <> +ENLISTMENT_BASIC_INFORMATION ENDS + +KTMOBJECT_CURSOR STRUCT + LastQuery GUID <> + ObjectIdCount DWORD ? + ObjectIds GUID 1 dup (<>) +KTMOBJECT_CURSOR ENDS + +;;;; end NTextra +;;;; lmpapi + +class_NULL equ 0 +class_SESSION equ 1 +class_SESSION_GROUP equ 2 +class_RSVP_HOP equ 3 +class_INTEGRITY equ 4 +class_TIME_VALUES equ 5 +class_ERROR_SPEC equ 6 +class_SCOPE equ 7 +class_STYLE equ 8 +class_FLOWSPEC equ 9 +class_IS_FLOWSPEC equ 9 +class_FILTER_SPEC equ 10 +class_SENDER_TEMPLATE equ 11 +class_SENDER_TSPEC equ 12 +class_ADSPEC equ 13 +class_POLICY_DATA equ 14 +class_CONFIRM equ 15 +class_MAX equ 15 +ctype_SESSION_ipv4 equ 1 +ctype_SESSION_ipv4GPI equ 3 +SESSFLG_E_Police equ 01h +ctype_RSVP_HOP_ipv4 equ 1 +Opt_Share_mask equ 00000018h +Opt_Distinct equ 00000008h +Opt_Shared equ 00000010h +Opt_SndSel_mask equ 00000007h +Opt_Wildcard equ 00000001h +Opt_Explicit equ 00000002h +ctype_STYLE equ 1 +ctype_FILTER_SPEC_ipv4 equ 1 +ctype_FILTER_SPEC_ipv4GPI equ 4 +ctype_SENDER_TEMPLATE_ipv4 equ 1 +ctype_SENDER_TEMPLATE_ipv4GPI equ 4 +ctype_SCOPE_list_ipv4 equ 1 +ctype_ERROR_SPEC_ipv4 equ 1 +ERROR_SPECF_InPlace equ 01h +ERROR_SPECF_NotGuilty equ 02h +ERR_FORWARD_OK equ 8000h +ERR_Usage_globl equ 00h +ERR_Usage_local equ 10h +ERR_Usage_serv equ 11h +ERR_global_mask equ 0FFFh +ctype_POLICY_DATA equ 1 +GENERAL_INFO equ 1 +GUARANTEED_SERV equ 2 +PREDICTIVE_SERV equ 3 +CONTROLLED_DELAY_SERV equ 4 +CONTROLLED_LOAD_SERV equ 5 +QUALITATIVE_SERV equ 6 +INTSERV_VERS_MASK equ 0F0h +INTSERV_VERSION0 equ 0 +ISSH_BREAK_BIT equ 80h +ISPH_FLG_INV equ 80h +ctype_SENDER_TSPEC equ 2 +ctype_FLOWSPEC_Intserv0 equ 2 +ctype_ADSPEC_INTSERV equ 2 +RSVP_PATH equ 1 +RSVP_RESV equ 2 +RSVP_PATH_ERR equ 3 +RSVP_RESV_ERR equ 4 +RSVP_PATH_TEAR equ 5 +RSVP_RESV_TEAR equ 6 +RSVP_Err_NONE equ 0 +RSVP_Erv_Nonev equ 0 +RSVP_Err_ADMISSION equ 1 +RSVP_Erv_Other equ 0 +RSVP_Erv_DelayBnd equ 1 +RSVP_Erv_Bandwidth equ 2 +RSVP_Erv_MTU equ 3 +RSVP_Erv_Flow_Rate equ 8001h +RSVP_Erv_Bucket_szie equ 8002h +RSVP_Erv_Peak_Rate equ 8003h +RSVP_Erv_Min_Policied_size equ 8004h +RSVP_Err_POLICY equ 2 +POLICY_ERRV_NO_MORE_INFO equ 1 +POLICY_ERRV_UNSUPPORTED_CREDENTIAL_TYPE equ 2 +POLICY_ERRV_INSUFFICIENT_PRIVILEGES equ 3 +POLICY_ERRV_EXPIRED_CREDENTIALS equ 4 +POLICY_ERRV_IDENTITY_CHANGED equ 5 +POLICY_ERRV_UNKNOWN equ 0 +POLICY_ERRV_GLOBAL_DEF_FLOW_COUNT equ 1 +POLICY_ERRV_GLOBAL_GRP_FLOW_COUNT equ 2 +POLICY_ERRV_GLOBAL_USER_FLOW_COUNT equ 3 +POLICY_ERRV_GLOBAL_UNAUTH_USER_FLOW_COUNT equ 4 +POLICY_ERRV_SUBNET_DEF_FLOW_COUNT equ 5 +POLICY_ERRV_SUBNET_GRP_FLOW_COUNT equ 6 +POLICY_ERRV_SUBNET_USER_FLOW_COUNT equ 7 +POLICY_ERRV_SUBNET_UNAUTH_USER_FLOW_COUNT equ 8 +POLICY_ERRV_GLOBAL_DEF_FLOW_DURATION equ 9 +POLICY_ERRV_GLOBAL_GRP_FLOW_DURATION equ 10 +POLICY_ERRV_GLOBAL_USER_FLOW_DURATION equ 11 +POLICY_ERRV_GLOBAL_UNAUTH_USER_FLOW_DURATION equ 12 +POLICY_ERRV_SUBNET_DEF_FLOW_DURATION equ 13 +POLICY_ERRV_SUBNET_GRP_FLOW_DURATION equ 14 +POLICY_ERRV_SUBNET_USER_FLOW_DURATION equ 15 +POLICY_ERRV_SUBNET_UNAUTH_USER_FLOW_DURATION equ 16 +POLICY_ERRV_GLOBAL_DEF_FLOW_RATE equ 17 +POLICY_ERRV_GLOBAL_GRP_FLOW_RATE equ 18 +POLICY_ERRV_GLOBAL_USER_FLOW_RATE equ 19 +POLICY_ERRV_GLOBAL_UNAUTH_USER_FLOW_RATE equ 20 +POLICY_ERRV_SUBNET_DEF_FLOW_RATE equ 21 +POLICY_ERRV_SUBNET_GRP_FLOW_RATE equ 22 +POLICY_ERRV_SUBNET_USER_FLOW_RATE equ 23 +POLICY_ERRV_SUBNET_UNAUTH_USER_FLOW_RATE equ 24 +POLICY_ERRV_GLOBAL_DEF_PEAK_RATE equ 25 +POLICY_ERRV_GLOBAL_GRP_PEAK_RATE equ 26 +POLICY_ERRV_GLOBAL_USER_PEAK_RATE equ 27 +POLICY_ERRV_GLOBAL_UNAUTH_USER_PEAK_RATE equ 28 +POLICY_ERRV_SUBNET_DEF_PEAK_RATE equ 29 +POLICY_ERRV_SUBNET_GRP_PEAK_RATE equ 30 +POLICY_ERRV_SUBNET_USER_PEAK_RATE equ 31 +POLICY_ERRV_SUBNET_UNAUTH_USER_PEAK_RATE equ 32 +POLICY_ERRV_GLOBAL_DEF_SUM_FLOW_RATE equ 33 +POLICY_ERRV_GLOBAL_GRP_SUM_FLOW_RATE equ 34 +POLICY_ERRV_GLOBAL_USER_SUM_FLOW_RATE equ 35 +POLICY_ERRV_GLOBAL_UNAUTH_USER_SUM_FLOW_RATE equ 36 +POLICY_ERRV_SUBNET_DEF_SUM_FLOW_RATE equ 37 +POLICY_ERRV_SUBNET_GRP_SUM_FLOW_RATE equ 38 +POLICY_ERRV_SUBNET_USER_SUM_FLOW_RATE equ 39 +POLICY_ERRV_SUBNET_UNAUTH_USER_SUM_FLOW_RATE equ 40 +POLICY_ERRV_GLOBAL_DEF_SUM_PEAK_RATE equ 41 +POLICY_ERRV_GLOBAL_GRP_SUM_PEAK_RATE equ 42 +POLICY_ERRV_GLOBAL_USER_SUM_PEAK_RATE equ 43 +POLICY_ERRV_GLOBAL_UNAUTH_USER_SUM_PEAK_RATE equ 44 +POLICY_ERRV_SUBNET_DEF_SUM_PEAK_RATE equ 45 +POLICY_ERRV_SUBNET_GRP_SUM_PEAK_RATE equ 46 +POLICY_ERRV_SUBNET_USER_SUM_PEAK_RATE equ 47 +POLICY_ERRV_SUBNET_UNAUTH_USER_SUM_PEAK_RATE equ 48 +POLICY_ERRV_UNKNOWN_USER equ 49 +POLICY_ERRV_NO_PRIVILEGES equ 50 +POLICY_ERRV_EXPIRED_USER_TOKEN equ 51 +POLICY_ERRV_NO_RESOURCES equ 52 +POLICY_ERRV_PRE_EMPTED equ 53 +POLICY_ERRV_USER_CHANGED equ 54 +POLICY_ERRV_NO_ACCEPTS equ 55 +POLICY_ERRV_NO_MEMORY equ 56 +POLICY_ERRV_CRAZY_FLOWSPEC equ 57 +RSVP_Err_NO_PATH equ 3 +RSVP_Err_NO_SENDER equ 4 +RSVP_Err_BAD_STYLE equ 5 +RSVP_Err_UNKNOWN_STYLE equ 6 +RSVP_Err_BAD_DSTPORT equ 7 +RSVP_Err_BAD_SNDPORT equ 8 +RSVP_Err_AMBIG_FILTER equ 9 +RSVP_Err_PREEMPTED equ 12 +RSVP_Err_UNKN_OBJ_CLASS equ 13 +RSVP_Err_UNKNOWN_CTYPE equ 14 +RSVP_Err_API_ERROR equ 20 +RSVP_Err_TC_ERROR equ 21 +RSVP_Erv_Conflict_Serv equ 01 +RSVP_Erv_No_Serv equ 02 +RSVP_Erv_Crazy_Flowspec equ 03 +RSVP_Erv_Crazy_Tspec equ 04 +RSVP_Err_TC_SYS_ERROR equ 22 +RSVP_Err_RSVP_SYS_ERROR equ 23 +RSVP_Erv_MEMORY equ 1 +RSVP_Erv_API equ 2 +LPM_PE_USER_IDENTITY equ 2 +LPM_PE_APP_IDENTITY equ 3 +ERROR_NO_MORE_INFO equ 1 +UNSUPPORTED_CREDENTIAL_TYPE equ 2 +INSUFFICIENT_PRIVILEGES equ 3 +EXPIRED_CREDENTIAL equ 4 +IDENTITY_CHANGED equ 5 +LPM_OK equ 0 +INV_LPM_HANDLE equ 1 +LPM_TIME_OUT equ 2 +INV_REQ_HANDLE equ 3 +DUP_RESULTS equ 4 +INV_RESULTS equ 5 +LPM_PE_ALL_TYPES equ 0 +LPM_API_VERSION_1 equ 1 +PCM_VERSION_1 equ 1 +LPV_RESERVED equ 0 +LPV_MIN_PRIORITY equ 1 +LPV_MAX_PRIORITY equ 0FF00h +LPV_DROP_MSG equ 0FFFDh +LPV_DONT_CARE equ 0FFFEh +LPV_REJECT equ 0FFFFh +FORCE_IMMEDIATE_REFRESH equ 1 +LPM_RESULT_READY equ 0 +LPM_RESULT_DEFER equ 1 +RCVD_PATH_TEAR equ 1 +RCVD_RESV_TEAR equ 2 +ADM_CTRL_FAILED equ 3 +STATE_TIMEOUT equ 4 +FLOW_DURATION equ 5 +RESOURCES_ALLOCATED equ 1 +RESOURCES_MODIFIED equ 2 + +;;;; end lmpapi + +;;;; mmreg + +_INC_MMREG equ 158 +MM_CREATIVE equ 2 +MM_MEDIAVISION equ 3 +MM_FUJITSU equ 4 +MM_PRAGMATRAX equ 5 +MM_CYRIX equ 6 +MM_PHILIPS_SPEECH_PROCESSING equ 7 +MM_NETXL equ 8 +MM_ZYXEL equ 9 +MM_BECUBED equ 10 +MM_AARDVARK equ 11 +MM_BINTEC equ 12 +MM_HEWLETT_PACKARD equ 13 +MM_ACULAB equ 14 +MM_FAITH equ 15 +MM_MITEL equ 16 +MM_QUANTUM3D equ 17 +MM_SNI equ 18 +MM_EMU equ 19 +MM_ARTISOFT equ 20 +MM_TURTLE_BEACH equ 21 +MM_IBM equ 22 +MM_VOCALTEC equ 23 +MM_ROLAND equ 24 +MM_DSP_SOLUTIONS equ 25 +MM_NEC equ 26 +MM_ATI equ 27 +MM_WANGLABS equ 28 +MM_TANDY equ 29 +MM_VOYETRA equ 30 +MM_ANTEX equ 31 +MM_ICL_PS equ 32 +MM_INTEL equ 33 +MM_GRAVIS equ 34 +MM_VAL equ 35 +MM_INTERACTIVE equ 36 +MM_YAMAHA equ 37 +MM_EVEREX equ 38 +MM_ECHO equ 39 +MM_SIERRA equ 40 +MM_CAT equ 41 +MM_APPS equ 42 +MM_DSP_GROUP equ 43 +MM_MELABS equ 44 +MM_COMPUTER_FRIENDS equ 45 +MM_ESS equ 46 +MM_AUDIOFILE equ 47 +MM_MOTOROLA equ 48 +MM_CANOPUS equ 49 +MM_EPSON equ 50 +MM_TRUEVISION equ 51 +MM_AZTECH equ 52 +MM_VIDEOLOGIC equ 53 +MM_SCALACS equ 54 +MM_KORG equ 55 +MM_APT equ 56 +MM_ICS equ 57 +MM_ITERATEDSYS equ 58 +MM_METHEUS equ 59 +MM_LOGITECH equ 60 +MM_WINNOV equ 61 +MM_NCR equ 62 +MM_EXAN equ 63 +MM_AST equ 64 +MM_WILLOWPOND equ 65 +MM_SONICFOUNDRY equ 66 +MM_VITEC equ 67 +MM_MOSCOM equ 68 +MM_SILICONSOFT equ 69 +MM_TERRATEC equ 70 +MM_MEDIASONIC equ 71 +MM_SANYO equ 72 +MM_SUPERMAC equ 73 +MM_AUDIOPT equ 74 +MM_NOGATECH equ 75 +MM_SPEECHCOMP equ 76 +MM_AHEAD equ 77 +MM_DOLBY equ 78 +MM_OKI equ 79 +MM_AURAVISION equ 80 +MM_OLIVETTI equ 81 +MM_IOMAGIC equ 82 +MM_MATSUSHITA equ 83 +MM_CONTROLRES equ 84 +MM_XEBEC equ 85 +MM_NEWMEDIA equ 86 +MM_NMS equ 87 +MM_LYRRUS equ 88 +MM_COMPUSIC equ 89 +MM_OPTI equ 90 +MM_ADLACC equ 91 +MM_COMPAQ equ 92 +MM_DIALOGIC equ 93 +MM_INSOFT equ 94 +MM_MPTUS equ 95 +MM_WEITEK equ 96 +MM_LERNOUT_AND_HAUSPIE equ 97 +MM_QCIAR equ 98 +MM_APPLE equ 99 +MM_DIGITAL equ 100 +MM_MOTU equ 101 +MM_WORKBIT equ 102 +MM_OSITECH equ 103 +MM_MIRO equ 104 +MM_CIRRUSLOGIC equ 105 +MM_ISOLUTION equ 106 +MM_HORIZONS equ 107 +MM_CONCEPTS equ 108 +MM_VTG equ 109 +MM_RADIUS equ 110 +MM_ROCKWELL equ 111 +MM_XYZ equ 112 +MM_OPCODE equ 113 +MM_VOXWARE equ 114 +MM_NORTHERN_TELECOM equ 115 +MM_APICOM equ 116 +MM_GRANDE equ 117 +MM_ADDX equ 118 +MM_WILDCAT equ 119 +MM_RHETOREX equ 120 +MM_BROOKTREE equ 121 +MM_ENSONIQ equ 125 +MM_FAST equ 126 +MM_NVIDIA equ 127 +MM_OKSORI equ 128 +MM_DIACOUSTICS equ 129 +MM_GULBRANSEN equ 130 +MM_KAY_ELEMETRICS equ 131 +MM_CRYSTAL equ 132 +MM_SPLASH_STUDIOS equ 133 +MM_QUARTERDECK equ 134 +MM_TDK equ 135 +MM_DIGITAL_AUDIO_LABS equ 136 +MM_SEERSYS equ 137 +MM_PICTURETEL equ 138 +MM_ATT_MICROELECTRONICS equ 139 +MM_OSPREY equ 140 +MM_MEDIATRIX equ 141 +MM_SOUNDESIGNS equ 142 +MM_ALDIGITAL equ 143 +MM_SPECTRUM_SIGNAL_PROCESSING equ 144 +MM_ECS equ 145 +MM_AMD equ 146 +MM_COREDYNAMICS equ 147 +MM_CANAM equ 148 +MM_SOFTSOUND equ 149 +MM_NORRIS equ 150 +MM_DDD equ 151 +MM_EUPHONICS equ 152 +MM_PRECEPT equ 153 +MM_CRYSTAL_NET equ 154 +MM_CHROMATIC equ 155 +MM_VOICEINFO equ 156 +MM_VIENNASYS equ 157 +MM_CONNECTIX equ 158 +MM_GADGETLABS equ 159 +MM_FRONTIER equ 160 +MM_VIONA equ 161 +MM_CASIO equ 162 +MM_DIAMONDMM equ 163 +MM_S3 equ 164 +MM_DVISION equ 165 +MM_NETSCAPE equ 166 +MM_SOUNDSPACE equ 167 +MM_VANKOEVERING equ 168 +MM_QTEAM equ 169 +MM_ZEFIRO equ 170 +MM_STUDER equ 171 +MM_FRAUNHOFER_IIS equ 172 +MM_QUICKNET equ 173 +MM_ALARIS equ 174 +MM_SICRESOURCE equ 175 +MM_NEOMAGIC equ 176 +MM_MERGING_TECHNOLOGIES equ 177 +MM_XIRLINK equ 178 +MM_COLORGRAPH equ 179 +MM_OTI equ 180 +MM_AUREAL equ 181 +MM_VIVO equ 182 +MM_SHARP equ 183 +MM_LUCENT equ 184 +MM_ATT equ 185 +MM_SUNCOM equ 186 +MM_SORVIS equ 187 +MM_INVISION equ 188 +MM_BERKOM equ 189 +MM_MARIAN equ 190 +MM_DPSINC equ 191 +MM_BCB equ 192 +MM_MOTIONPIXELS equ 193 +MM_QDESIGN equ 194 +MM_NMP equ 195 +MM_DATAFUSION equ 196 +MM_DUCK equ 197 +MM_FTR equ 198 +MM_BERCOS equ 199 +MM_ONLIVE equ 200 +MM_SIEMENS_SBC equ 201 +MM_TERALOGIC equ 202 +MM_PHONET equ 203 +MM_WINBOND equ 204 +MM_VIRTUALMUSIC equ 205 +MM_ENET equ 206 +MM_GUILLEMOT equ 207 +MM_EMAGIC equ 208 +MM_MWM equ 209 +MM_PACIFICRESEARCH equ 210 +MM_SIPROLAB equ 211 +MM_LYNX equ 212 +MM_SPECTRUM_PRODUCTIONS equ 213 +MM_DICTAPHONE equ 214 +MM_QUALCOMM equ 215 +MM_RZS equ 216 +MM_AUDIOSCIENCE equ 217 +MM_PINNACLE equ 218 +MM_EES equ 219 +MM_HAFTMANN equ 220 +MM_LUCID equ 221 +MM_HEADSPACE equ 222 +MM_UNISYS equ 223 +MM_LUMINOSITI equ 224 +MM_ACTIVEVOICE equ 225 +MM_DTS equ 226 +MM_DIGIGRAM equ 227 +MM_SOFTLAB_NSK equ 228 +MM_FORTEMEDIA equ 229 +MM_SONORUS equ 230 +MM_ARRAY equ 231 +MM_DATARAN equ 232 +MM_I_LINK equ 233 +MM_SELSIUS_SYSTEMS equ 234 +MM_ADMOS equ 235 +MM_LEXICON equ 236 +MM_SGI equ 237 +MM_IPI equ 238 +MM_ICE equ 239 +MM_VQST equ 240 +MM_ETEK equ 241 +MM_CS equ 242 +MM_ALESIS equ 243 +MM_INTERNET equ 244 +MM_SONY equ 245 +MM_HYPERACTIVE equ 246 +MM_UHER_INFORMATIC equ 247 +MM_SYDEC_NV equ 248 +MM_FLEXION equ 249 +MM_VIA equ 250 +MM_MICRONAS equ 251 +MM_ANALOGDEVICES equ 252 +MM_HP equ 253 +MM_MATROX_DIV equ 254 +MM_QUICKAUDIO equ 255 +MM_YOUCOM equ 256 +MM_RICHMOND equ 257 +MM_IODD equ 258 +MM_ICCC equ 259 +MM_3COM equ 260 +MM_MALDEN equ 261 +MM_3DFX equ 262 +MM_MINDMAKER equ 263 +MM_TELEKOL equ 264 +MM_ST_MICROELECTRONICS equ 265 +MM_ALGOVISION equ 266 +MM_UNMAPPED equ 0FFFFh +MM_PID_UNMAPPED equ MM_UNMAPPED +MM_PCSPEAKER_WAVEOUT equ 13 +MM_MSFT_WSS_WAVEIN equ 14 +MM_MSFT_WSS_WAVEOUT equ 15 +MM_MSFT_WSS_FMSYNTH_STEREO equ 16 +MM_MSFT_WSS_MIXER equ 17 +MM_MSFT_WSS_OEM_WAVEIN equ 18 +MM_MSFT_WSS_OEM_WAVEOUT equ 19 +MM_MSFT_WSS_OEM_FMSYNTH_STEREO equ 20 +MM_MSFT_WSS_AUX equ 21 +MM_MSFT_WSS_OEM_AUX equ 22 +MM_MSFT_GENERIC_WAVEIN equ 23 +MM_MSFT_GENERIC_WAVEOUT equ 24 +MM_MSFT_GENERIC_MIDIIN equ 25 +MM_MSFT_GENERIC_MIDIOUT equ 26 +MM_MSFT_GENERIC_MIDISYNTH equ 27 +MM_MSFT_GENERIC_AUX_LINE equ 28 +MM_MSFT_GENERIC_AUX_MIC equ 29 +MM_MSFT_GENERIC_AUX_CD equ 30 +MM_MSFT_WSS_OEM_MIXER equ 31 +MM_MSFT_MSACM equ 32 +MM_MSFT_ACM_MSADPCM equ 33 +MM_MSFT_ACM_IMAADPCM equ 34 +MM_MSFT_ACM_MSFILTER equ 35 +MM_MSFT_ACM_GSM610 equ 36 +MM_MSFT_ACM_G711 equ 37 +MM_MSFT_ACM_PCM equ 38 +MM_WSS_SB16_WAVEIN equ 39 +MM_WSS_SB16_WAVEOUT equ 40 +MM_WSS_SB16_MIDIIN equ 41 +MM_WSS_SB16_MIDIOUT equ 42 +MM_WSS_SB16_SYNTH equ 43 +MM_WSS_SB16_AUX_LINE equ 44 +MM_WSS_SB16_AUX_CD equ 45 +MM_WSS_SB16_MIXER equ 46 +MM_WSS_SBPRO_WAVEIN equ 47 +MM_WSS_SBPRO_WAVEOUT equ 48 +MM_WSS_SBPRO_MIDIIN equ 49 +MM_WSS_SBPRO_MIDIOUT equ 50 +MM_WSS_SBPRO_SYNTH equ 51 +MM_WSS_SBPRO_AUX_LINE equ 52 +MM_WSS_SBPRO_AUX_CD equ 53 +MM_WSS_SBPRO_MIXER equ 54 +MM_MSFT_WSS_NT_WAVEIN equ 55 +MM_MSFT_WSS_NT_WAVEOUT equ 56 +MM_MSFT_WSS_NT_FMSYNTH_STEREO equ 57 +MM_MSFT_WSS_NT_MIXER equ 58 +MM_MSFT_WSS_NT_AUX equ 59 +MM_MSFT_SB16_WAVEIN equ 60 +MM_MSFT_SB16_WAVEOUT equ 61 +MM_MSFT_SB16_MIDIIN equ 62 +MM_MSFT_SB16_MIDIOUT equ 63 +MM_MSFT_SB16_SYNTH equ 64 +MM_MSFT_SB16_AUX_LINE equ 65 +MM_MSFT_SB16_AUX_CD equ 66 +MM_MSFT_SB16_MIXER equ 67 +MM_MSFT_SBPRO_WAVEIN equ 68 +MM_MSFT_SBPRO_WAVEOUT equ 69 +MM_MSFT_SBPRO_MIDIIN equ 70 +MM_MSFT_SBPRO_MIDIOUT equ 71 +MM_MSFT_SBPRO_SYNTH equ 72 +MM_MSFT_SBPRO_AUX_LINE equ 73 +MM_MSFT_SBPRO_AUX_CD equ 74 +MM_MSFT_SBPRO_MIXER equ 75 +MM_MSFT_MSOPL_SYNTH equ 76 +MM_MSFT_VMDMS_LINE_WAVEIN equ 80 +MM_MSFT_VMDMS_LINE_WAVEOUT equ 81 +MM_MSFT_VMDMS_HANDSET_WAVEIN equ 82 +MM_MSFT_VMDMS_HANDSET_WAVEOUT equ 83 +MM_MSFT_VMDMW_LINE_WAVEIN equ 84 +MM_MSFT_VMDMW_LINE_WAVEOUT equ 85 +MM_MSFT_VMDMW_HANDSET_WAVEIN equ 86 +MM_MSFT_VMDMW_HANDSET_WAVEOUT equ 87 +MM_MSFT_VMDMW_MIXER equ 88 +MM_MSFT_VMDM_GAME_WAVEOUT equ 89 +MM_MSFT_VMDM_GAME_WAVEIN equ 90 +MM_MSFT_ACM_MSNAUDIO equ 91 +MM_MSFT_ACM_MSG723 equ 92 +MM_MSFT_ACM_MSRT24 equ 93 +MM_MSFT_WDMAUDIO_WAVEOUT equ 100 +MM_MSFT_WDMAUDIO_WAVEIN equ 101 +MM_MSFT_WDMAUDIO_MIDIOUT equ 102 +MM_MSFT_WDMAUDIO_MIDIIN equ 103 +MM_MSFT_WDMAUDIO_MIXER equ 104 +MM_MSFT_WDMAUDIO_AUX equ 105 +MM_CREATIVE_SB15_WAVEIN equ 1 +MM_CREATIVE_SB20_WAVEIN equ 2 +MM_CREATIVE_SBPRO_WAVEIN equ 3 +MM_CREATIVE_SBP16_WAVEIN equ 4 +MM_CREATIVE_PHNBLST_WAVEIN equ 5 +MM_CREATIVE_SB15_WAVEOUT equ 101 +MM_CREATIVE_SB20_WAVEOUT equ 102 +MM_CREATIVE_SBPRO_WAVEOUT equ 103 +MM_CREATIVE_SBP16_WAVEOUT equ 104 +MM_CREATIVE_PHNBLST_WAVEOUT equ 105 +MM_CREATIVE_MIDIOUT equ 201 +MM_CREATIVE_MIDIIN equ 202 +MM_CREATIVE_FMSYNTH_MONO equ 301 +MM_CREATIVE_FMSYNTH_STEREO equ 302 +MM_CREATIVE_MIDI_AWE32 equ 303 +MM_CREATIVE_AUX_CD equ 401 +MM_CREATIVE_AUX_LINE equ 402 +MM_CREATIVE_AUX_MIC equ 403 +MM_CREATIVE_AUX_MASTER equ 404 +MM_CREATIVE_AUX_PCSPK equ 405 +MM_CREATIVE_AUX_WAVE equ 406 +MM_CREATIVE_AUX_MIDI equ 407 +MM_CREATIVE_SBPRO_MIXER equ 408 +MM_CREATIVE_SB16_MIXER equ 409 +MM_MEDIAVISION_PROAUDIO equ 10h +MM_PROAUD_MIDIOUT equ MM_MEDIAVISION_PROAUDIO+1 +MM_PROAUD_MIDIIN equ MM_MEDIAVISION_PROAUDIO+2 +MM_PROAUD_SYNTH equ MM_MEDIAVISION_PROAUDIO+3 +MM_PROAUD_WAVEOUT equ MM_MEDIAVISION_PROAUDIO+4 +MM_PROAUD_WAVEIN equ MM_MEDIAVISION_PROAUDIO+5 +MM_PROAUD_MIXER equ MM_MEDIAVISION_PROAUDIO+6 +MM_PROAUD_AUX equ MM_MEDIAVISION_PROAUDIO+7 +MM_MEDIAVISION_THUNDER equ 20h +MM_THUNDER_SYNTH equ MM_MEDIAVISION_THUNDER+3 +MM_THUNDER_WAVEOUT equ MM_MEDIAVISION_THUNDER+4 +MM_THUNDER_WAVEIN equ MM_MEDIAVISION_THUNDER+5 +MM_THUNDER_AUX equ MM_MEDIAVISION_THUNDER+7 +MM_MEDIAVISION_TPORT equ 40h +MM_TPORT_WAVEOUT equ MM_MEDIAVISION_TPORT+1 +MM_TPORT_WAVEIN equ MM_MEDIAVISION_TPORT+2 +MM_TPORT_SYNTH equ MM_MEDIAVISION_TPORT+3 +MM_MEDIAVISION_PROAUDIO_PLUS equ 50h +MM_PROAUD_PLUS_MIDIOUT equ MM_MEDIAVISION_PROAUDIO_PLUS+1 +MM_PROAUD_PLUS_MIDIIN equ MM_MEDIAVISION_PROAUDIO_PLUS+2 +MM_PROAUD_PLUS_SYNTH equ MM_MEDIAVISION_PROAUDIO_PLUS+3 +MM_PROAUD_PLUS_WAVEOUT equ MM_MEDIAVISION_PROAUDIO_PLUS+4 +MM_PROAUD_PLUS_WAVEIN equ MM_MEDIAVISION_PROAUDIO_PLUS+5 +MM_PROAUD_PLUS_MIXER equ MM_MEDIAVISION_PROAUDIO_PLUS+6 +MM_PROAUD_PLUS_AUX equ MM_MEDIAVISION_PROAUDIO_PLUS+7 +MM_MEDIAVISION_PROAUDIO_16 equ 60h +MM_PROAUD_16_MIDIOUT equ MM_MEDIAVISION_PROAUDIO_16+1 +MM_PROAUD_16_MIDIIN equ MM_MEDIAVISION_PROAUDIO_16+2 +MM_PROAUD_16_SYNTH equ MM_MEDIAVISION_PROAUDIO_16+3 +MM_PROAUD_16_WAVEOUT equ MM_MEDIAVISION_PROAUDIO_16+4 +MM_PROAUD_16_WAVEIN equ MM_MEDIAVISION_PROAUDIO_16+5 +MM_PROAUD_16_MIXER equ MM_MEDIAVISION_PROAUDIO_16+6 +MM_PROAUD_16_AUX equ MM_MEDIAVISION_PROAUDIO_16+7 +MM_MEDIAVISION_PROSTUDIO_16 equ 60h +MM_STUDIO_16_MIDIOUT equ MM_MEDIAVISION_PROSTUDIO_16+1 +MM_STUDIO_16_MIDIIN equ MM_MEDIAVISION_PROSTUDIO_16+2 +MM_STUDIO_16_SYNTH equ MM_MEDIAVISION_PROSTUDIO_16+3 +MM_STUDIO_16_WAVEOUT equ MM_MEDIAVISION_PROSTUDIO_16+4 +MM_STUDIO_16_WAVEIN equ MM_MEDIAVISION_PROSTUDIO_16+5 +MM_STUDIO_16_MIXER equ MM_MEDIAVISION_PROSTUDIO_16+6 +MM_STUDIO_16_AUX equ MM_MEDIAVISION_PROSTUDIO_16+7 +MM_MEDIAVISION_CDPC equ 70h +MM_CDPC_MIDIOUT equ MM_MEDIAVISION_CDPC+1 +MM_CDPC_MIDIIN equ MM_MEDIAVISION_CDPC+2 +MM_CDPC_SYNTH equ MM_MEDIAVISION_CDPC+3 +MM_CDPC_WAVEOUT equ MM_MEDIAVISION_CDPC+4 +MM_CDPC_WAVEIN equ MM_MEDIAVISION_CDPC+5 +MM_CDPC_MIXER equ MM_MEDIAVISION_CDPC+6 +MM_CDPC_AUX equ MM_MEDIAVISION_CDPC+7 +MM_MEDIAVISION_OPUS1208 equ 80h +MM_OPUS401_MIDIOUT equ MM_MEDIAVISION_OPUS1208+1 +MM_OPUS401_MIDIIN equ MM_MEDIAVISION_OPUS1208+2 +MM_OPUS1208_SYNTH equ MM_MEDIAVISION_OPUS1208+3 +MM_OPUS1208_WAVEOUT equ MM_MEDIAVISION_OPUS1208+4 +MM_OPUS1208_WAVEIN equ MM_MEDIAVISION_OPUS1208+5 +MM_OPUS1208_MIXER equ MM_MEDIAVISION_OPUS1208+6 +MM_OPUS1208_AUX equ MM_MEDIAVISION_OPUS1208+7 +MM_MEDIAVISION_OPUS1216 equ 90h +MM_OPUS1216_MIDIOUT equ MM_MEDIAVISION_OPUS1216+1 +MM_OPUS1216_MIDIIN equ MM_MEDIAVISION_OPUS1216+2 +MM_OPUS1216_SYNTH equ MM_MEDIAVISION_OPUS1216+3 +MM_OPUS1216_WAVEOUT equ MM_MEDIAVISION_OPUS1216+4 +MM_OPUS1216_WAVEIN equ MM_MEDIAVISION_OPUS1216+5 +MM_OPUS1216_MIXER equ MM_MEDIAVISION_OPUS1216+6 +MM_OPUS1216_AUX equ MM_MEDIAVISION_OPUS1216+7 +MM_CYRIX_XASYNTH equ 1 +MM_CYRIX_XAMIDIIN equ 2 +MM_CYRIX_XAMIDIOUT equ 3 +MM_CYRIX_XAWAVEIN equ 4 +MM_CYRIX_XAWAVEOUT equ 5 +MM_CYRIX_XAAUX equ 6 +MM_CYRIX_XAMIXER equ 7 +MM_PHILIPS_ACM_LPCBB equ 1 +MM_NETXL_XLVIDEO equ 1 +MM_ZYXEL_ACM_ADPCM equ 1 +MM_AARDVARK_STUDIO12_WAVEOUT equ 1 +MM_AARDVARK_STUDIO12_WAVEIN equ 2 +MM_AARDVARK_STUDIO88_WAVEOUT equ 3 +MM_AARDVARK_STUDIO88_WAVEIN equ 4 +MM_BINTEC_TAPI_WAVE equ 1 +MM_HEWLETT_PACKARD_CU_CODEC equ 1 +MM_MITEL_TALKTO_LINE_WAVEOUT equ 100 +MM_MITEL_TALKTO_LINE_WAVEIN equ 101 +MM_MITEL_TALKTO_HANDSET_WAVEOUT equ 102 +MM_MITEL_TALKTO_HANDSET_WAVEIN equ 103 +MM_MITEL_TALKTO_BRIDGED_WAVEOUT equ 104 +MM_MITEL_TALKTO_BRIDGED_WAVEIN equ 105 +MM_MITEL_MPA_HANDSET_WAVEOUT equ 200 +MM_MITEL_MPA_HANDSET_WAVEIN equ 201 +MM_MITEL_MPA_HANDSFREE_WAVEOUT equ 202 +MM_MITEL_MPA_HANDSFREE_WAVEIN equ 203 +MM_MITEL_MPA_LINE1_WAVEOUT equ 204 +MM_MITEL_MPA_LINE1_WAVEIN equ 205 +MM_MITEL_MPA_LINE2_WAVEOUT equ 206 +MM_MITEL_MPA_LINE2_WAVEIN equ 207 +MM_MITEL_MEDIAPATH_WAVEOUT equ 300 +MM_MITEL_MEDIAPATH_WAVEIN equ 301 +MM_SNI_ACM_G721 equ 1 +MM_EMU_APSSYNTH equ 1 +MM_EMU_APSMIDIIN equ 2 +MM_EMU_APSMIDIOUT equ 3 +MM_EMU_APSWAVEIN equ 4 +MM_EMU_APSWAVEOUT equ 5 +MM_ARTISOFT_SBWAVEIN equ 1 +MM_ARTISOFT_SBWAVEOUT equ 2 +MM_TBS_TROPEZ_WAVEIN equ 37 +MM_TBS_TROPEZ_WAVEOUT equ 38 +MM_TBS_TROPEZ_AUX1 equ 39 +MM_TBS_TROPEZ_AUX2 equ 40 +MM_TBS_TROPEZ_LINE equ 41 +MM_MMOTION_WAVEAUX equ 1 +MM_MMOTION_WAVEOUT equ 2 +MM_MMOTION_WAVEIN equ 3 +MM_IBM_PCMCIA_WAVEIN equ 11 +MM_IBM_PCMCIA_WAVEOUT equ 12 +MM_IBM_PCMCIA_SYNTH equ 13 +MM_IBM_PCMCIA_MIDIIN equ 14 +MM_IBM_PCMCIA_MIDIOUT equ 15 +MM_IBM_PCMCIA_AUX equ 16 +MM_IBM_THINKPAD200 equ 17 +MM_IBM_MWAVE_WAVEIN equ 18 +MM_IBM_MWAVE_WAVEOUT equ 19 +MM_IBM_MWAVE_MIXER equ 20 +MM_IBM_MWAVE_MIDIIN equ 21 +MM_IBM_MWAVE_MIDIOUT equ 22 +MM_IBM_MWAVE_AUX equ 23 +MM_IBM_WC_MIDIOUT equ 30 +MM_IBM_WC_WAVEOUT equ 31 +MM_IBM_WC_MIXEROUT equ 33 +MM_VOCALTEC_WAVEOUT equ 1 +MM_VOCALTEC_WAVEIN equ 2 +MM_ROLAND_RAP10_MIDIOUT equ 10 +MM_ROLAND_RAP10_MIDIIN equ 11 +MM_ROLAND_RAP10_SYNTH equ 12 +MM_ROLAND_RAP10_WAVEOUT equ 13 +MM_ROLAND_RAP10_WAVEIN equ 14 +MM_ROLAND_MPU401_MIDIOUT equ 15 +MM_ROLAND_MPU401_MIDIIN equ 16 +MM_ROLAND_SMPU_MIDIOUTA equ 17 +MM_ROLAND_SMPU_MIDIOUTB equ 18 +MM_ROLAND_SMPU_MIDIINA equ 19 +MM_ROLAND_SMPU_MIDIINB equ 20 +MM_ROLAND_SC7_MIDIOUT equ 21 +MM_ROLAND_SC7_MIDIIN equ 22 +MM_ROLAND_SERIAL_MIDIOUT equ 23 +MM_ROLAND_SERIAL_MIDIIN equ 24 +MM_ROLAND_SCP_MIDIOUT equ 38 +MM_ROLAND_SCP_MIDIIN equ 39 +MM_ROLAND_SCP_WAVEOUT equ 40 +MM_ROLAND_SCP_WAVEIN equ 41 +MM_ROLAND_SCP_MIXER equ 42 +MM_ROLAND_SCP_AUX equ 48 +MM_DSP_SOLUTIONS_WAVEOUT equ 1 +MM_DSP_SOLUTIONS_WAVEIN equ 2 +MM_DSP_SOLUTIONS_SYNTH equ 3 +MM_DSP_SOLUTIONS_AUX equ 4 +MM_NEC_73_86_SYNTH equ 5 +MM_NEC_73_86_WAVEOUT equ 6 +MM_NEC_73_86_WAVEIN equ 7 +MM_NEC_26_SYNTH equ 9 +MM_NEC_MPU401_MIDIOUT equ 10 +MM_NEC_MPU401_MIDIIN equ 11 +MM_NEC_JOYSTICK equ 12 +MM_WANGLABS_WAVEIN1 equ 1 +MM_WANGLABS_WAVEOUT1 equ 2 +MM_TANDY_VISWAVEIN equ 1 +MM_TANDY_VISWAVEOUT equ 2 +MM_TANDY_VISBIOSSYNTH equ 3 +MM_TANDY_SENS_MMAWAVEIN equ 4 +MM_TANDY_SENS_MMAWAVEOUT equ 5 +MM_TANDY_SENS_MMAMIDIIN equ 6 +MM_TANDY_SENS_MMAMIDIOUT equ 7 +MM_TANDY_SENS_VISWAVEOUT equ 8 +MM_TANDY_PSSJWAVEIN equ 9 +MM_TANDY_PSSJWAVEOUT equ 10 +MM_ANTEX_SX12_WAVEIN equ 1 +MM_ANTEX_SX12_WAVEOUT equ 2 +MM_ANTEX_SX15_WAVEIN equ 3 +MM_ANTEX_SX15_WAVEOUT equ 4 +MM_ANTEX_VP625_WAVEIN equ 5 +MM_ANTEX_VP625_WAVEOUT equ 6 +MM_ANTEX_AUDIOPORT22_WAVEIN equ 7 +MM_ANTEX_AUDIOPORT22_WAVEOUT equ 8 +MM_ANTEX_AUDIOPORT22_FEEDTHRU equ 9 +MM_INTELOPD_WAVEIN equ 1 +MM_INTELOPD_WAVEOUT equ 101 +MM_INTELOPD_AUX equ 401 +MM_INTEL_NSPMODEMLINEIN equ 501 +MM_INTEL_NSPMODEMLINEOUT equ 502 +MM_VAL_MICROKEY_AP_WAVEIN equ 1 +MM_VAL_MICROKEY_AP_WAVEOUT equ 2 +MM_INTERACTIVE_WAVEIN equ 45h +MM_INTERACTIVE_WAVEOUT equ 45h +MM_YAMAHA_GSS_SYNTH equ 01h +MM_YAMAHA_GSS_WAVEOUT equ 02h +MM_YAMAHA_GSS_WAVEIN equ 03h +MM_YAMAHA_GSS_MIDIOUT equ 04h +MM_YAMAHA_GSS_MIDIIN equ 05h +MM_YAMAHA_GSS_AUX equ 06h +MM_YAMAHA_SERIAL_MIDIOUT equ 07h +MM_YAMAHA_SERIAL_MIDIIN equ 08h +MM_YAMAHA_OPL3SA_WAVEOUT equ 10h +MM_YAMAHA_OPL3SA_WAVEIN equ 11h +MM_YAMAHA_OPL3SA_FMSYNTH equ 12h +MM_YAMAHA_OPL3SA_YSYNTH equ 13h +MM_YAMAHA_OPL3SA_MIDIOUT equ 14h +MM_YAMAHA_OPL3SA_MIDIIN equ 15h +MM_YAMAHA_OPL3SA_MIXER equ 17h +MM_YAMAHA_OPL3SA_JOYSTICK equ 18h +MM_YAMAHA_YMF724LEG_MIDIOUT equ 19h +MM_YAMAHA_YMF724LEG_MIDIIN equ 1Ah +MM_YAMAHA_YMF724_WAVEOUT equ 1Bh +MM_YAMAHA_YMF724_WAVEIN equ 1Ch +MM_YAMAHA_YMF724_MIDIOUT equ 1Dh +MM_YAMAHA_YMF724_AUX equ 1Eh +MM_YAMAHA_YMF724_MIXER equ 1Fh +MM_YAMAHA_YMF724LEG_FMSYNTH equ 20h +MM_YAMAHA_YMF724LEG_MIXER equ 21h +MM_YAMAHA_SXG_MIDIOUT equ 22h +MM_YAMAHA_SXG_WAVEOUT equ 23h +MM_YAMAHA_SXG_MIXER equ 24h +MM_YAMAHA_ACXG_WAVEIN equ 25h +MM_YAMAHA_ACXG_WAVEOUT equ 26h +MM_YAMAHA_ACXG_MIDIOUT equ 27h +MM_YAMAHA_ACXG_MIXER equ 28h +MM_YAMAHA_ACXG_AUX equ 29h +MM_EVEREX_CARRIER equ 1 +MM_ECHO_SYNTH equ 1 +MM_ECHO_WAVEOUT equ 2 +MM_ECHO_WAVEIN equ 3 +MM_ECHO_MIDIOUT equ 4 +MM_ECHO_MIDIIN equ 5 +MM_ECHO_AUX equ 6 +MM_SIERRA_ARIA_MIDIOUT equ 14h +MM_SIERRA_ARIA_MIDIIN equ 15h +MM_SIERRA_ARIA_SYNTH equ 16h +MM_SIERRA_ARIA_WAVEOUT equ 17h +MM_SIERRA_ARIA_WAVEIN equ 18h +MM_SIERRA_ARIA_AUX equ 19h +MM_SIERRA_ARIA_AUX2 equ 20h +MM_SIERRA_QUARTET_WAVEIN equ 50h +MM_SIERRA_QUARTET_WAVEOUT equ 51h +MM_SIERRA_QUARTET_MIDIIN equ 52h +MM_SIERRA_QUARTET_MIDIOUT equ 53h +MM_SIERRA_QUARTET_SYNTH equ 54h +MM_SIERRA_QUARTET_AUX_CD equ 55h +MM_SIERRA_QUARTET_AUX_LINE equ 56h +MM_SIERRA_QUARTET_AUX_MODEM equ 57h +MM_SIERRA_QUARTET_MIXER equ 58h +MM_CAT_WAVEOUT equ 1 +MM_DSP_GROUP_TRUESPEECH equ 1 +MM_MELABS_MIDI2GO equ 1 +MM_ESS_AMWAVEOUT equ 01h +MM_ESS_AMWAVEIN equ 02h +MM_ESS_AMAUX equ 03h +MM_ESS_AMSYNTH equ 04h +MM_ESS_AMMIDIOUT equ 05h +MM_ESS_AMMIDIIN equ 06h +MM_ESS_MIXER equ 07h +MM_ESS_AUX_CD equ 08h +MM_ESS_MPU401_MIDIOUT equ 09h +MM_ESS_MPU401_MIDIIN equ 0Ah +MM_ESS_ES488_WAVEOUT equ 10h +MM_ESS_ES488_WAVEIN equ 11h +MM_ESS_ES488_MIXER equ 12h +MM_ESS_ES688_WAVEOUT equ 13h +MM_ESS_ES688_WAVEIN equ 14h +MM_ESS_ES688_MIXER equ 15h +MM_ESS_ES1488_WAVEOUT equ 16h +MM_ESS_ES1488_WAVEIN equ 17h +MM_ESS_ES1488_MIXER equ 18h +MM_ESS_ES1688_WAVEOUT equ 19h +MM_ESS_ES1688_WAVEIN equ 1Ah +MM_ESS_ES1688_MIXER equ 1Bh +MM_ESS_ES1788_WAVEOUT equ 1Ch +MM_ESS_ES1788_WAVEIN equ 1Dh +MM_ESS_ES1788_MIXER equ 1Eh +MM_ESS_ES1888_WAVEOUT equ 1Fh +MM_ESS_ES1888_WAVEIN equ 20h +MM_ESS_ES1888_MIXER equ 21h +MM_ESS_ES1868_WAVEOUT equ 22h +MM_ESS_ES1868_WAVEIN equ 23h +MM_ESS_ES1868_MIXER equ 24h +MM_ESS_ES1878_WAVEOUT equ 25h +MM_ESS_ES1878_WAVEIN equ 26h +MM_ESS_ES1878_MIXER equ 27h +MM_CANOPUS_ACM_DVREX equ 1 +MM_EPS_FMSND equ 1 +MM_TRUEVISION_WAVEIN1 equ 1 +MM_TRUEVISION_WAVEOUT1 equ 2 +MM_AZTECH_MIDIOUT equ 3 +MM_AZTECH_MIDIIN equ 4 +MM_AZTECH_WAVEIN equ 17 +MM_AZTECH_WAVEOUT equ 18 +MM_AZTECH_FMSYNTH equ 20 +MM_AZTECH_MIXER equ 21 +MM_AZTECH_PRO16_WAVEIN equ 33 +MM_AZTECH_PRO16_WAVEOUT equ 34 +MM_AZTECH_PRO16_FMSYNTH equ 38 +MM_AZTECH_DSP16_WAVEIN equ 65 +MM_AZTECH_DSP16_WAVEOUT equ 66 +MM_AZTECH_DSP16_FMSYNTH equ 68 +MM_AZTECH_DSP16_WAVESYNTH equ 70 +MM_AZTECH_NOVA16_WAVEIN equ 71 +MM_AZTECH_NOVA16_WAVEOUT equ 72 +MM_AZTECH_NOVA16_MIXER equ 73 +MM_AZTECH_WASH16_WAVEIN equ 74 +MM_AZTECH_WASH16_WAVEOUT equ 75 +MM_AZTECH_WASH16_MIXER equ 76 +MM_AZTECH_AUX_CD equ 401 +MM_AZTECH_AUX_LINE equ 402 +MM_AZTECH_AUX_MIC equ 403 +MM_AZTECH_AUX equ 404 +MM_VIDEOLOGIC_MSWAVEIN equ 1 +MM_VIDEOLOGIC_MSWAVEOUT equ 2 +MM_KORG_PCIF_MIDIOUT equ 1 +MM_KORG_PCIF_MIDIIN equ 2 +MM_KORG_1212IO_MSWAVEIN equ 3 +MM_KORG_1212IO_MSWAVEOUT equ 4 +MM_APT_ACE100CD equ 1 +MM_ICS_WAVEDECK_WAVEOUT equ 1 +MM_ICS_WAVEDECK_WAVEIN equ 2 +MM_ICS_WAVEDECK_MIXER equ 3 +MM_ICS_WAVEDECK_AUX equ 4 +MM_ICS_WAVEDECK_SYNTH equ 5 +MM_ICS_WAVEDEC_SB_WAVEOUT equ 6 +MM_ICS_WAVEDEC_SB_WAVEIN equ 7 +MM_ICS_WAVEDEC_SB_FM_MIDIOUT equ 8 +MM_ICS_WAVEDEC_SB_MPU401_MIDIOUT equ 9 +MM_ICS_WAVEDEC_SB_MPU401_MIDIIN equ 10 +MM_ICS_WAVEDEC_SB_MIXER equ 11 +MM_ICS_WAVEDEC_SB_AUX equ 12 +MM_ICS_2115_LITE_MIDIOUT equ 13 +MM_ICS_2120_LITE_MIDIOUT equ 14 +MM_ITERATEDSYS_FUFCODEC equ 1 +MM_METHEUS_ZIPPER equ 1 +MM_WINNOV_CAVIAR_WAVEIN equ 1 +MM_WINNOV_CAVIAR_WAVEOUT equ 2 +MM_WINNOV_CAVIAR_VIDC equ 3 +MM_WINNOV_CAVIAR_CHAMPAGNE equ 4 +MM_WINNOV_CAVIAR_YUV8 equ 5 +MM_NCR_BA_WAVEIN equ 1 +MM_NCR_BA_WAVEOUT equ 2 +MM_NCR_BA_SYNTH equ 3 +MM_NCR_BA_AUX equ 4 +MM_NCR_BA_MIXER equ 5 +MM_AST_MODEMWAVE_WAVEIN equ 13 +MM_AST_MODEMWAVE_WAVEOUT equ 14 +MM_WILLOWPOND_FMSYNTH_STEREO equ 20 +MM_WILLOWPOND_MPU401 equ 21 +MM_WILLOWPOND_SNDPORT_WAVEIN equ 100 +MM_WILLOWPOND_SNDPORT_WAVEOUT equ 101 +MM_WILLOWPOND_SNDPORT_MIXER equ 102 +MM_WILLOWPOND_SNDPORT_AUX equ 103 +MM_WILLOWPOND_PH_WAVEIN equ 104 +MM_WILLOWPOND_PH_WAVEOUT equ 105 +MM_WILLOWPOND_PH_MIXER equ 106 +MM_WILLOWPOND_PH_AUX equ 107 +MM_WILLOPOND_SNDCOMM_WAVEIN equ 108 +MM_WILLOWPOND_SNDCOMM_WAVEOUT equ 109 +MM_WILLOWPOND_SNDCOMM_MIXER equ 110 +MM_WILLOWPOND_SNDCOMM_AUX equ 111 +MM_WILLOWPOND_GENERIC_WAVEIN equ 112 +MM_WILLOWPOND_GENERIC_WAVEOUT equ 113 +MM_WILLOWPOND_GENERIC_MIXER equ 114 +MM_WILLOWPOND_GENERIC_AUX equ 115 +MM_VITEC_VMAKER equ 1 +MM_VITEC_VMPRO equ 2 +MM_MOSCOM_VPC2400_IN equ 1 +MM_MOSCOM_VPC2400_OUT equ 2 +MM_SILICONSOFT_SC1_WAVEIN equ 1 +MM_SILICONSOFT_SC1_WAVEOUT equ 2 +MM_SILICONSOFT_SC2_WAVEIN equ 3 +MM_SILICONSOFT_SC2_WAVEOUT equ 4 +MM_SILICONSOFT_SOUNDJR2_WAVEOUT equ 5 +MM_SILICONSOFT_SOUNDJR2PR_WAVEIN equ 6 +MM_SILICONSOFT_SOUNDJR2PR_WAVEOUT equ 7 +MM_SILICONSOFT_SOUNDJR3_WAVEOUT equ 8 +MM_TTEWS_WAVEIN equ 1 +MM_TTEWS_WAVEOUT equ 2 +MM_TTEWS_MIDIIN equ 3 +MM_TTEWS_MIDIOUT equ 4 +MM_TTEWS_MIDISYNTH equ 5 +MM_TTEWS_MIDIMONITOR equ 6 +MM_TTEWS_VMIDIIN equ 7 +MM_TTEWS_VMIDIOUT equ 8 +MM_TTEWS_AUX equ 9 +MM_TTEWS_MIXER equ 10 +MM_MEDIASONIC_ACM_G723 equ 1 +MM_MEDIASONIC_ICOM equ 2 +MM_ICOM_WAVEIN equ 3 +MM_ICOM_WAVEOUT equ 4 +MM_ICOM_MIXER equ 5 +MM_ICOM_AUX equ 6 +MM_ICOM_LINE equ 7 +MM_SANYO_ACM_LD_ADPCM equ 1 +MM_AHEAD_MULTISOUND equ 1 +MM_AHEAD_SOUNDBLASTER equ 2 +MM_AHEAD_PROAUDIO equ 3 +MM_AHEAD_GENERIC equ 4 +MM_OLIVETTI_WAVEIN equ 1 +MM_OLIVETTI_WAVEOUT equ 2 +MM_OLIVETTI_MIXER equ 3 +MM_OLIVETTI_AUX equ 4 +MM_OLIVETTI_MIDIIN equ 5 +MM_OLIVETTI_MIDIOUT equ 6 +MM_OLIVETTI_SYNTH equ 7 +MM_OLIVETTI_JOYSTICK equ 8 +MM_OLIVETTI_ACM_GSM equ 9 +MM_OLIVETTI_ACM_ADPCM equ 10 +MM_OLIVETTI_ACM_CELP equ 11 +MM_OLIVETTI_ACM_SBC equ 12 +MM_OLIVETTI_ACM_OPR equ 13 +MM_IOMAGIC_TEMPO_WAVEOUT equ 1 +MM_IOMAGIC_TEMPO_WAVEIN equ 2 +MM_IOMAGIC_TEMPO_SYNTH equ 3 +MM_IOMAGIC_TEMPO_MIDIOUT equ 4 +MM_IOMAGIC_TEMPO_MXDOUT equ 5 +MM_IOMAGIC_TEMPO_AUXOUT equ 6 +MM_MATSUSHITA_WAVEIN equ 1 +MM_MATSUSHITA_WAVEOUT equ 2 +MM_MATSUSHITA_FMSYNTH_STEREO equ 3 +MM_MATSUSHITA_MIXER equ 4 +MM_MATSUSHITA_AUX equ 5 +MM_NEWMEDIA_WAVJAMMER equ 1 +MM_LYRRUS_BRIDGE_GUITAR equ 1 +MM_OPTI_M16_FMSYNTH_STEREO equ 0001h +MM_OPTI_M16_MIDIIN equ 0002h +MM_OPTI_M16_MIDIOUT equ 0003h +MM_OPTI_M16_WAVEIN equ 0004h +MM_OPTI_M16_WAVEOUT equ 0005h +MM_OPTI_M16_MIXER equ 0006h +MM_OPTI_M16_AUX equ 0007h +MM_OPTI_P16_FMSYNTH_STEREO equ 0010h +MM_OPTI_P16_MIDIIN equ 0011h +MM_OPTI_P16_MIDIOUT equ 0012h +MM_OPTI_P16_WAVEIN equ 0013h +MM_OPTI_P16_WAVEOUT equ 0014h +MM_OPTI_P16_MIXER equ 0015h +MM_OPTI_P16_AUX equ 0016h +MM_OPTI_M32_WAVEIN equ 0020h +MM_OPTI_M32_WAVEOUT equ 0021h +MM_OPTI_M32_MIDIIN equ 0022h +MM_OPTI_M32_MIDIOUT equ 0023h +MM_OPTI_M32_SYNTH_STEREO equ 0024h +MM_OPTI_M32_MIXER equ 0025h +MM_OPTI_M32_AUX equ 0026h +MM_COMPAQ_BB_WAVEIN equ 1 +MM_COMPAQ_BB_WAVEOUT equ 2 +MM_COMPAQ_BB_WAVEAUX equ 3 +MM_MPTUS_SPWAVEOUT equ 1 +MM_LERNOUT_ANDHAUSPIE_LHCODECACM equ 1 +MM_DIGITAL_AV320_WAVEIN equ 1 +MM_DIGITAL_AV320_WAVEOUT equ 2 +MM_DIGITAL_ACM_G723 equ 3 +MM_DIGITAL_ICM_H263 equ 4 +MM_DIGITAL_ICM_H261 equ 5 +MM_MOTU_MTP_MIDIOUT_ALL equ 100 +MM_MOTU_MTP_MIDIIN_1 equ 101 +MM_MOTU_MTP_MIDIOUT_1 equ 101 +MM_MOTU_MTP_MIDIIN_2 equ 102 +MM_MOTU_MTP_MIDIOUT_2 equ 102 +MM_MOTU_MTP_MIDIIN_3 equ 103 +MM_MOTU_MTP_MIDIOUT_3 equ 103 +MM_MOTU_MTP_MIDIIN_4 equ 104 +MM_MOTU_MTP_MIDIOUT_4 equ 104 +MM_MOTU_MTP_MIDIIN_5 equ 105 +MM_MOTU_MTP_MIDIOUT_5 equ 105 +MM_MOTU_MTP_MIDIIN_6 equ 106 +MM_MOTU_MTP_MIDIOUT_6 equ 106 +MM_MOTU_MTP_MIDIIN_7 equ 107 +MM_MOTU_MTP_MIDIOUT_7 equ 107 +MM_MOTU_MTP_MIDIIN_8 equ 108 +MM_MOTU_MTP_MIDIOUT_8 equ 108 +MM_MOTU_MTPII_MIDIOUT_ALL equ 200 +MM_MOTU_MTPII_MIDIIN_SYNC equ 200 +MM_MOTU_MTPII_MIDIIN_1 equ 201 +MM_MOTU_MTPII_MIDIOUT_1 equ 201 +MM_MOTU_MTPII_MIDIIN_2 equ 202 +MM_MOTU_MTPII_MIDIOUT_2 equ 202 +MM_MOTU_MTPII_MIDIIN_3 equ 203 +MM_MOTU_MTPII_MIDIOUT_3 equ 203 +MM_MOTU_MTPII_MIDIIN_4 equ 204 +MM_MOTU_MTPII_MIDIOUT_4 equ 204 +MM_MOTU_MTPII_MIDIIN_5 equ 205 +MM_MOTU_MTPII_MIDIOUT_5 equ 205 +MM_MOTU_MTPII_MIDIIN_6 equ 206 +MM_MOTU_MTPII_MIDIOUT_6 equ 206 +MM_MOTU_MTPII_MIDIIN_7 equ 207 +MM_MOTU_MTPII_MIDIOUT_7 equ 207 +MM_MOTU_MTPII_MIDIIN_8 equ 208 +MM_MOTU_MTPII_MIDIOUT_8 equ 208 +MM_MOTU_MTPII_NET_MIDIIN_1 equ 209 +MM_MOTU_MTPII_NET_MIDIOUT_1 equ 209 +MM_MOTU_MTPII_NET_MIDIIN_2 equ 210 +MM_MOTU_MTPII_NET_MIDIOUT_2 equ 210 +MM_MOTU_MTPII_NET_MIDIIN_3 equ 211 +MM_MOTU_MTPII_NET_MIDIOUT_3 equ 211 +MM_MOTU_MTPII_NET_MIDIIN_4 equ 212 +MM_MOTU_MTPII_NET_MIDIOUT_4 equ 212 +MM_MOTU_MTPII_NET_MIDIIN_5 equ 213 +MM_MOTU_MTPII_NET_MIDIOUT_5 equ 213 +MM_MOTU_MTPII_NET_MIDIIN_6 equ 214 +MM_MOTU_MTPII_NET_MIDIOUT_6 equ 214 +MM_MOTU_MTPII_NET_MIDIIN_7 equ 215 +MM_MOTU_MTPII_NET_MIDIOUT_7 equ 215 +MM_MOTU_MTPII_NET_MIDIIN_8 equ 216 +MM_MOTU_MTPII_NET_MIDIOUT_8 equ 216 +MM_MOTU_MXP_MIDIIN_MIDIOUT_ALL equ 300 +MM_MOTU_MXP_MIDIIN_SYNC equ 300 +MM_MOTU_MXP_MIDIIN_MIDIIN_1 equ 301 +MM_MOTU_MXP_MIDIIN_MIDIOUT_1 equ 301 +MM_MOTU_MXP_MIDIIN_MIDIIN_2 equ 302 +MM_MOTU_MXP_MIDIIN_MIDIOUT_2 equ 302 +MM_MOTU_MXP_MIDIIN_MIDIIN_3 equ 303 +MM_MOTU_MXP_MIDIIN_MIDIOUT_3 equ 303 +MM_MOTU_MXP_MIDIIN_MIDIIN_4 equ 304 +MM_MOTU_MXP_MIDIIN_MIDIOUT_4 equ 304 +MM_MOTU_MXP_MIDIIN_MIDIIN_5 equ 305 +MM_MOTU_MXP_MIDIIN_MIDIOUT_5 equ 305 +MM_MOTU_MXP_MIDIIN_MIDIIN_6 equ 306 +MM_MOTU_MXP_MIDIIN_MIDIOUT_6 equ 306 +MM_MOTU_MXPMPU_MIDIOUT_ALL equ 400 +MM_MOTU_MXPMPU_MIDIIN_SYNC equ 400 +MM_MOTU_MXPMPU_MIDIIN_1 equ 401 +MM_MOTU_MXPMPU_MIDIOUT_1 equ 401 +MM_MOTU_MXPMPU_MIDIIN_2 equ 402 +MM_MOTU_MXPMPU_MIDIOUT_2 equ 402 +MM_MOTU_MXPMPU_MIDIIN_3 equ 403 +MM_MOTU_MXPMPU_MIDIOUT_3 equ 403 +MM_MOTU_MXPMPU_MIDIIN_4 equ 404 +MM_MOTU_MXPMPU_MIDIOUT_4 equ 404 +MM_MOTU_MXPMPU_MIDIIN_5 equ 405 +MM_MOTU_MXPMPU_MIDIOUT_5 equ 405 +MM_MOTU_MXPMPU_MIDIIN_6 equ 406 +MM_MOTU_MXPMPU_MIDIOUT_6 equ 406 +MM_MOTU_MXN_MIDIOUT_ALL equ 500 +MM_MOTU_MXN_MIDIIN_SYNC equ 500 +MM_MOTU_MXN_MIDIIN_1 equ 501 +MM_MOTU_MXN_MIDIOUT_1 equ 501 +MM_MOTU_MXN_MIDIIN_2 equ 502 +MM_MOTU_MXN_MIDIOUT_2 equ 502 +MM_MOTU_MXN_MIDIIN_3 equ 503 +MM_MOTU_MXN_MIDIOUT_3 equ 503 +MM_MOTU_MXN_MIDIIN_4 equ 504 +MM_MOTU_MXN_MIDIOUT_4 equ 504 +MM_MOTU_FLYER_MIDI_IN_SYNC equ 600 +MM_MOTU_FLYER_MIDI_IN_A equ 601 +MM_MOTU_FLYER_MIDI_OUT_A equ 601 +MM_MOTU_FLYER_MIDI_IN_B equ 602 +MM_MOTU_FLYER_MIDI_OUT_B equ 602 +MM_MOTU_PKX_MIDI_IN_SYNC equ 700 +MM_MOTU_PKX_MIDI_IN_A equ 701 +MM_MOTU_PKX_MIDI_OUT_A equ 701 +MM_MOTU_PKX_MIDI_IN_B equ 702 +MM_MOTU_PKX_MIDI_OUT_B equ 702 +MM_MOTU_DTX_MIDI_IN_SYNC equ 800 +MM_MOTU_DTX_MIDI_IN_A equ 801 +MM_MOTU_DTX_MIDI_OUT_A equ 801 +MM_MOTU_DTX_MIDI_IN_B equ 802 +MM_MOTU_DTX_MIDI_OUT_B equ 802 +MM_MOTU_MTPAV_MIDIOUT_ALL equ 900 +MM_MOTU_MTPAV_MIDIIN_SYNC equ 900 +MM_MOTU_MTPAV_MIDIIN_1 equ 901 +MM_MOTU_MTPAV_MIDIOUT_1 equ 901 +MM_MOTU_MTPAV_MIDIIN_2 equ 902 +MM_MOTU_MTPAV_MIDIOUT_2 equ 902 +MM_MOTU_MTPAV_MIDIIN_3 equ 903 +MM_MOTU_MTPAV_MIDIOUT_3 equ 903 +MM_MOTU_MTPAV_MIDIIN_4 equ 904 +MM_MOTU_MTPAV_MIDIOUT_4 equ 904 +MM_MOTU_MTPAV_MIDIIN_5 equ 905 +MM_MOTU_MTPAV_MIDIOUT_5 equ 905 +MM_MOTU_MTPAV_MIDIIN_6 equ 906 +MM_MOTU_MTPAV_MIDIOUT_6 equ 906 +MM_MOTU_MTPAV_MIDIIN_7 equ 907 +MM_MOTU_MTPAV_MIDIOUT_7 equ 907 +MM_MOTU_MTPAV_MIDIIN_8 equ 908 +MM_MOTU_MTPAV_MIDIOUT_8 equ 908 +MM_MOTU_MTPAV_NET_MIDIIN_1 equ 909 +MM_MOTU_MTPAV_NET_MIDIOUT_1 equ 909 +MM_MOTU_MTPAV_NET_MIDIIN_2 equ 910 +MM_MOTU_MTPAV_NET_MIDIOUT_2 equ 910 +MM_MOTU_MTPAV_NET_MIDIIN_3 equ 911 +MM_MOTU_MTPAV_NET_MIDIOUT_3 equ 911 +MM_MOTU_MTPAV_NET_MIDIIN_4 equ 912 +MM_MOTU_MTPAV_NET_MIDIOUT_4 equ 912 +MM_MOTU_MTPAV_NET_MIDIIN_5 equ 913 +MM_MOTU_MTPAV_NET_MIDIOUT_5 equ 913 +MM_MOTU_MTPAV_NET_MIDIIN_6 equ 914 +MM_MOTU_MTPAV_NET_MIDIOUT_6 equ 914 +MM_MOTU_MTPAV_NET_MIDIIN_7 equ 915 +MM_MOTU_MTPAV_NET_MIDIOUT_7 equ 915 +MM_MOTU_MTPAV_NET_MIDIIN_8 equ 916 +MM_MOTU_MTPAV_NET_MIDIOUT_8 equ 916 +MM_MOTU_MTPAV_MIDIIN_ADAT equ 917 +MM_MOTU_MTPAV_MIDIOUT_ADAT equ 917 +MM_MOTU_MXPXT_MIDIIN_SYNC equ 1000 +MM_MOTU_MXPXT_MIDIOUT_ALL equ 1000 +MM_MOTU_MXPXT_MIDIIN_1 equ 1001 +MM_MOTU_MXPXT_MIDIOUT_1 equ 1001 +MM_MOTU_MXPXT_MIDIOUT_2 equ 1002 +MM_MOTU_MXPXT_MIDIIN_2 equ 1002 +MM_MOTU_MXPXT_MIDIIN_3 equ 1003 +MM_MOTU_MXPXT_MIDIOUT_3 equ 1003 +MM_MOTU_MXPXT_MIDIIN_4 equ 1004 +MM_MOTU_MXPXT_MIDIOUT_4 equ 1004 +MM_MOTU_MXPXT_MIDIIN_5 equ 1005 +MM_MOTU_MXPXT_MIDIOUT_5 equ 1005 +MM_MOTU_MXPXT_MIDIOUT_6 equ 1006 +MM_MOTU_MXPXT_MIDIIN_6 equ 1006 +MM_MOTU_MXPXT_MIDIOUT_7 equ 1007 +MM_MOTU_MXPXT_MIDIIN_7 equ 1007 +MM_MOTU_MXPXT_MIDIOUT_8 equ 1008 +MM_MOTU_MXPXT_MIDIIN_8 equ 1008 +MM_WORKBIT_MIXER equ 1 +MM_WORKBIT_WAVEOUT equ 2 +MM_WORKBIT_WAVEIN equ 3 +MM_WORKBIT_MIDIIN equ 4 +MM_WORKBIT_MIDIOUT equ 5 +MM_WORKBIT_FMSYNTH equ 6 +MM_WORKBIT_AUX equ 7 +MM_WORKBIT_JOYSTICK equ 8 +MM_OSITECH_TRUMPCARD equ 1 +MM_MIRO_MOVIEPRO equ 1 +MM_MIRO_VIDEOD1 equ 2 +MM_MIRO_VIDEODC1TV equ 3 +MM_MIRO_VIDEOTD equ 4 +MM_MIRO_DC30_WAVEOUT equ 5 +MM_MIRO_DC30_WAVEIN equ 6 +MM_MIRO_DC30_MIX equ 7 +MM_ISOLUTION_PASCAL equ 1 +MM_VOICEMIXER equ 1 +ROCKWELL_WA1_WAVEIN equ 100 +ROCKWELL_WA1_WAVEOUT equ 101 +ROCKWELL_WA1_SYNTH equ 102 +ROCKWELL_WA1_MIXER equ 103 +ROCKWELL_WA1_MPU401_IN equ 104 +ROCKWELL_WA1_MPU401_OUT equ 105 +ROCKWELL_WA2_WAVEIN equ 200 +ROCKWELL_WA2_WAVEOUT equ 201 +ROCKWELL_WA2_SYNTH equ 202 +ROCKWELL_WA2_MIXER equ 203 +ROCKWELL_WA2_MPU401_IN equ 204 +ROCKWELL_WA2_MPU401_OUT equ 205 +MM_VOXWARE_CODEC equ 1 +MM_NORTEL_MPXAC_WAVEIN equ 1 +MM_NORTEL_MPXAC_WAVEOUT equ 2 +MM_ADDX_PCTV_DIGITALMIX equ 1 +MM_ADDX_PCTV_WAVEIN equ 2 +MM_ADDX_PCTV_WAVEOUT equ 3 +MM_ADDX_PCTV_MIXER equ 4 +MM_ADDX_PCTV_AUX_CD equ 5 +MM_ADDX_PCTV_AUX_LINE equ 6 +MM_WILDCAT_AUTOSCOREMIDIIN equ 1 +MM_RHETOREX_WAVEIN equ 1 +MM_RHETOREX_WAVEOUT equ 2 +MM_BTV_WAVEIN equ 1 +MM_BTV_WAVEOUT equ 2 +MM_BTV_MIDIIN equ 3 +MM_BTV_MIDIOUT equ 4 +MM_BTV_MIDISYNTH equ 5 +MM_BTV_AUX_LINE equ 6 +MM_BTV_AUX_MIC equ 7 +MM_BTV_AUX_CD equ 8 +MM_BTV_DIGITALIN equ 9 +MM_BTV_DIGITALOUT equ 10 +MM_BTV_MIDIWAVESTREAM equ 11 +MM_BTV_MIXER equ 12 +MM_ENSONIQ_SOUNDSCAPE equ 10h +MM_SOUNDSCAPE_WAVEOUT equ MM_ENSONIQ_SOUNDSCAPE+1 +MM_SOUNDSCAPE_WAVEOUT_AUX equ MM_ENSONIQ_SOUNDSCAPE+2 +MM_SOUNDSCAPE_WAVEIN equ MM_ENSONIQ_SOUNDSCAPE+3 +MM_SOUNDSCAPE_MIDIOUT equ MM_ENSONIQ_SOUNDSCAPE+4 +MM_SOUNDSCAPE_MIDIIN equ MM_ENSONIQ_SOUNDSCAPE+5 +MM_SOUNDSCAPE_SYNTH equ MM_ENSONIQ_SOUNDSCAPE+6 +MM_SOUNDSCAPE_MIXER equ MM_ENSONIQ_SOUNDSCAPE+7 +MM_SOUNDSCAPE_AUX equ MM_ENSONIQ_SOUNDSCAPE+8 +MM_NVIDIA_WAVEOUT equ 1 +MM_NVIDIA_WAVEIN equ 2 +MM_NVIDIA_MIDIOUT equ 3 +MM_NVIDIA_MIDIIN equ 4 +MM_NVIDIA_GAMEPORT equ 5 +MM_NVIDIA_MIXER equ 6 +MM_NVIDIA_AUX equ 7 +MM_OKSORI_BASE equ 0 +MM_OKSORI_OSR8_WAVEOUT equ MM_OKSORI_BASE+1 +MM_OKSORI_OSR8_WAVEIN equ MM_OKSORI_BASE+2 +MM_OKSORI_OSR16_WAVEOUT equ MM_OKSORI_BASE+3 +MM_OKSORI_OSR16_WAVEIN equ MM_OKSORI_BASE+4 +MM_OKSORI_FM_OPL4 equ MM_OKSORI_BASE+5 +MM_OKSORI_MIX_MASTER equ MM_OKSORI_BASE+6 +MM_OKSORI_MIX_WAVE equ MM_OKSORI_BASE+7 +MM_OKSORI_MIX_FM equ MM_OKSORI_BASE+8 +MM_OKSORI_MIX_LINE equ MM_OKSORI_BASE+9 +MM_OKSORI_MIX_CD equ MM_OKSORI_BASE+10 +MM_OKSORI_MIX_MIC equ MM_OKSORI_BASE+11 +MM_OKSORI_MIX_ECHO equ MM_OKSORI_BASE+12 +MM_OKSORI_MIX_AUX1 equ MM_OKSORI_BASE+13 +MM_OKSORI_MIX_LINE1 equ MM_OKSORI_BASE+14 +MM_OKSORI_EXT_MIC1 equ MM_OKSORI_BASE+15 +MM_OKSORI_EXT_MIC2 equ MM_OKSORI_BASE+16 +MM_OKSORI_MIDIOUT equ MM_OKSORI_BASE+17 +MM_OKSORI_MIDIIN equ MM_OKSORI_BASE+18 +MM_OKSORI_MPEG_CDVISION equ MM_OKSORI_BASE+19 +MM_DIACOUSTICS_DRUM_ACTION equ 1 +MM_KAY_ELEMETRICS_CSL equ 4300h +MM_KAY_ELEMETRICS_CSL_DAT equ 4308h +MM_KAY_ELEMETRICS_CSL_4CHANNEL equ 4309h +MM_CRYSTAL_CS4232_WAVEIN equ 1 +MM_CRYSTAL_CS4232_WAVEOUT equ 2 +MM_CRYSTAL_CS4232_WAVEMIXER equ 3 +MM_CRYSTAL_CS4232_WAVEAUX_AUX1 equ 4 +MM_CRYSTAL_CS4232_WAVEAUX_AUX2 equ 5 +MM_CRYSTAL_CS4232_WAVEAUX_LINE equ 6 +MM_CRYSTAL_CS4232_WAVEAUX_MONO equ 7 +MM_CRYSTAL_CS4232_WAVEAUX_MASTER equ 8 +MM_CRYSTAL_CS4232_MIDIIN equ 9 +MM_CRYSTAL_CS4232_MIDIOUT equ 10 +MM_CRYSTAL_CS4232_INPUTGAIN_AUX1 equ 13 +MM_CRYSTAL_CS4232_INPUTGAIN_LOOP equ 14 +MM_CRYSTAL_SOUND_FUSION_WAVEIN equ 21 +MM_CRYSTAL_SOUND_FUSION_WAVEOUT equ 22 +MM_CRYSTAL_SOUND_FUSION_MIXER equ 23 +MM_CRYSTAL_SOUND_FUSION_MIDIIN equ 24 +MM_CRYSTAL_SOUND_FUSION_MIDIOUT equ 25 +MM_CRYSTAL_SOUND_FUSION_JOYSTICK equ 26 +MM_QUARTERDECK_LHWAVEIN equ 0 +MM_QUARTERDECK_LHWAVEOUT equ 1 +MM_TDK_MW_MIDI_SYNTH equ 1 +MM_TDK_MW_MIDI_IN equ 2 +MM_TDK_MW_MIDI_OUT equ 3 +MM_TDK_MW_WAVE_IN equ 4 +MM_TDK_MW_WAVE_OUT equ 5 +MM_TDK_MW_AUX equ 6 +MM_TDK_MW_MIXER equ 10 +MM_TDK_MW_AUX_MASTER equ 100 +MM_TDK_MW_AUX_BASS equ 101 +MM_TDK_MW_AUX_TREBLE equ 102 +MM_TDK_MW_AUX_MIDI_VOL equ 103 +MM_TDK_MW_AUX_WAVE_VOL equ 104 +MM_TDK_MW_AUX_WAVE_RVB equ 105 +MM_TDK_MW_AUX_WAVE_CHR equ 106 +MM_TDK_MW_AUX_VOL equ 107 +MM_TDK_MW_AUX_RVB equ 108 +MM_TDK_MW_AUX_CHR equ 109 +MM_DIGITAL_AUDIO_LABS_TC equ 01h +MM_DIGITAL_AUDIO_LABS_DOC equ 02h +MM_DIGITAL_AUDIO_LABS_V8 equ 10h +MM_DIGITAL_AUDIO_LABS_CPRO equ 11h +MM_DIGITAL_AUDIO_LABS_VP equ 12h +MM_DIGITAL_AUDIO_LABS_CDLX equ 13h +MM_DIGITAL_AUDIO_LABS_CTDIF equ 14h +MM_SEERSYS_SEERSYNTH equ 1 +MM_SEERSYS_SEERWAVE equ 2 +MM_SEERSYS_SEERMIX equ 3 +MM_SEERSYS_WAVESYNTH equ 4 +MM_SEERSYS_WAVESYNTH_WG equ 5 +MM_SEERSYS_REALITY equ 6 +MM_OSPREY_1000WAVEIN equ 1 +MM_OSPREY_1000WAVEOUT equ 2 +MM_SOUNDESIGNS_WAVEIN equ 1 +MM_SOUNDESIGNS_WAVEOUT equ 2 +MM_SSP_SNDFESWAVEIN equ 1 +MM_SSP_SNDFESWAVEOUT equ 2 +MM_SSP_SNDFESMIDIIN equ 3 +MM_SSP_SNDFESMIDIOUT equ 4 +MM_SSP_SNDFESSYNTH equ 5 +MM_SSP_SNDFESMIX equ 6 +MM_SSP_SNDFESAUX equ 7 +MM_ECS_AADF_MIDI_IN equ 10 +MM_ECS_AADF_MIDI_OUT equ 11 +MM_ECS_AADF_WAVE2MIDI_IN equ 12 +MM_AMD_INTERWAVE_WAVEIN equ 1 +MM_AMD_INTERWAVE_WAVEOUT equ 2 +MM_AMD_INTERWAVE_SYNTH equ 3 +MM_AMD_INTERWAVE_MIXER1 equ 4 +MM_AMD_INTERWAVE_MIXER2 equ 5 +MM_AMD_INTERWAVE_JOYSTICK equ 6 +MM_AMD_INTERWAVE_EX_CD equ 7 +MM_AMD_INTERWAVE_MIDIIN equ 8 +MM_AMD_INTERWAVE_MIDIOUT equ 9 +MM_AMD_INTERWAVE_AUX1 equ 10 +MM_AMD_INTERWAVE_AUX2 equ 11 +MM_AMD_INTERWAVE_AUX_MIC equ 12 +MM_AMD_INTERWAVE_AUX_CD equ 13 +MM_AMD_INTERWAVE_MONO_IN equ 14 +MM_AMD_INTERWAVE_MONO_OUT equ 15 +MM_AMD_INTERWAVE_EX_TELEPHONY equ 16 +MM_AMD_INTERWAVE_WAVEOUT_BASE equ 17 +MM_AMD_INTERWAVE_WAVEOUT_TREBLE equ 18 +MM_AMD_INTERWAVE_STEREO_ENHANCED equ 19 +MM_COREDYNAMICS_DYNAMIXHR equ 1 +MM_COREDYNAMICS_DYNASONIX_SYNTH equ 2 +MM_COREDYNAMICS_DYNASONIX_MIDI_IN equ 3 +MM_COREDYNAMICS_DYNASONIX_MIDI_OUT equ 4 +MM_COREDYNAMICS_DYNASONIX_WAVE_IN equ 5 +MM_COREDYNAMICS_DYNASONIX_WAVE_OUT equ 6 +MM_COREDYNAMICS_DYNASONIX_AUDIO_IN equ 7 +MM_COREDYNAMICS_DYNASONIX_AUDIO_OUT equ 8 +MM_COREDYNAMICS_DYNAGRAFX_VGA equ 9 +MM_COREDYNAMICS_DYNAGRAFX_WAVE_IN equ 10 +MM_COREDYNAMICS_DYNAGRAFX_WAVE_OUT equ 11 +MM_CANAM_CBXWAVEOUT equ 1 +MM_CANAM_CBXWAVEIN equ 2 +MM_SOFTSOUND_CODEC equ 1 +MM_NORRIS_VOICELINK equ 1 +MM_DDD_MIDILINK_MIDIIN equ 1 +MM_DDD_MIDILINK_MIDIOUT equ 2 +MM_EUPHONICS_AUX_CD equ 1 +MM_EUPHONICS_AUX_LINE equ 2 +MM_EUPHONICS_AUX_MASTER equ 3 +MM_EUPHONICS_AUX_MIC equ 4 +MM_EUPHONICS_AUX_MIDI equ 5 +MM_EUPHONICS_AUX_WAVE equ 6 +MM_EUPHONICS_FMSYNTH_MONO equ 7 +MM_EUPHONICS_FMSYNTH_STEREO equ 8 +MM_EUPHONICS_MIDIIN equ 9 +MM_EUPHONICS_MIDIOUT equ 10 +MM_EUPHONICS_MIXER equ 11 +MM_EUPHONICS_WAVEIN equ 12 +MM_EUPHONICS_WAVEOUT equ 13 +MM_EUPHONICS_EUSYNTH equ 14 +CRYSTAL_NET_SFM_CODEC equ 1 +MM_CHROMATIC_M1 equ 0001h +MM_CHROMATIC_M1_WAVEIN equ 0002h +MM_CHROMATIC_M1_WAVEOUT equ 0003h +MM_CHROMATIC_M1_FMSYNTH equ 0004h +MM_CHROMATIC_M1_MIXER equ 0005h +MM_CHROMATIC_M1_AUX equ 0006h +MM_CHROMATIC_M1_AUX_CD equ 0007h +MM_CHROMATIC_M1_MIDIIN equ 0008h +MM_CHROMATIC_M1_MIDIOUT equ 0009h +MM_CHROMATIC_M1_WTSYNTH equ 0010h +MM_CHROMATIC_M1_MPEGWAVEIN equ 0011h +MM_CHROMATIC_M1_MPEGWAVEOUT equ 0012h +MM_CHROMATIC_M2 equ 0013h +MM_CHROMATIC_M2_WAVEIN equ 0014h +MM_CHROMATIC_M2_WAVEOUT equ 0015h +MM_CHROMATIC_M2_FMSYNTH equ 0016h +MM_CHROMATIC_M2_MIXER equ 0017h +MM_CHROMATIC_M2_AUX equ 0018h +MM_CHROMATIC_M2_AUX_CD equ 0019h +MM_CHROMATIC_M2_MIDIIN equ 0020h +MM_CHROMATIC_M2_MIDIOUT equ 0021h +MM_CHROMATIC_M2_WTSYNTH equ 0022h +MM_CHROMATIC_M2_MPEGWAVEIN equ 0023h +MM_CHROMATIC_M2_MPEGWAVEOUT equ 0024h +MM_VIENNASYS_TSP_WAVE_DRIVER equ 1 +MM_CONNECTIX_VIDEC_CODEC equ 1 +MM_GADGETLABS_WAVE44_WAVEIN equ 1 +MM_GADGETLABS_WAVE44_WAVEOUT equ 2 +MM_GADGETLABS_WAVE42_WAVEIN equ 3 +MM_GADGETLABS_WAVE42_WAVEOUT equ 4 +MM_GADGETLABS_WAVE4_MIDIIN equ 5 +MM_GADGETLABS_WAVE4_MIDIOUT equ 6 +MM_FRONTIER_WAVECENTER_MIDIIN equ 1 +MM_FRONTIER_WAVECENTER_MIDIOUT equ 2 +MM_FRONTIER_WAVECENTER_WAVEIN equ 3 +MM_FRONTIER_WAVECENTER_WAVEOUT equ 4 +MM_VIONA_QVINPCI_MIXER equ 1 +MM_VIONA_QVINPCI_WAVEIN equ 2 +MM_VIONAQVINPCI_WAVEOUT equ 3 +MM_VIONA_BUSTER_MIXER equ 4 +MM_VIONA_CINEMASTER_MIXER equ 5 +MM_VIONA_CONCERTO_MIXER equ 6 +MM_CASIO_WP150_MIDIOUT equ 1 +MM_CASIO_WP150_MIDIIN equ 2 +MM_CASIO_LSG_MIDIOUT equ 3 +MM_DIMD_PLATFORM equ 0 +MM_DIMD_DIRSOUND equ 1 +MM_DIMD_VIRTMPU equ 2 +MM_DIMD_VIRTSB equ 3 +MM_DIMD_VIRTJOY equ 4 +MM_DIMD_WAVEIN equ 5 +MM_DIMD_WAVEOUT equ 6 +MM_DIMD_MIDIIN equ 7 +MM_DIMD_MIDIOUT equ 8 +MM_DIMD_AUX_LINE equ 9 +MM_DIMD_MIXER equ 10 +MM_DIMD_WSS_WAVEIN equ 14 +MM_DIMD_WSS_WAVEOUT equ 15 +MM_DIMD_WSS_MIXER equ 17 +MM_DIMD_WSS_AUX equ 21 +MM_DIMD_WSS_SYNTH equ 76 +MM_S3_WAVEOUT equ 1 +MM_S3_WAVEIN equ 2 +MM_S3_MIDIOUT equ 3 +MM_S3_MIDIIN equ 4 +MM_S3_FMSYNTH equ 5 +MM_S3_MIXER equ 6 +MM_S3_AUX equ 7 +MM_VKC_MPU401_MIDIIN equ 0100h +MM_VKC_SERIAL_MIDIIN equ 0101h +MM_VKC_MPU401_MIDIOUT equ 0200h +MM_VKC_SERIAL_MIDIOUT equ 0201h +MM_ZEFIRO_ZA2 equ 2 +MM_FHGIIS_MPEGLAYER3 equ 10 +MM_QUICKNET_PJWAVEIN equ 1 +MM_QUICKNET_PJWAVEOUT equ 2 +MM_SICRESOURCE_SSO3D equ 2 +MM_SICRESOURCE_SSOW3DI equ 3 +MM_NEOMAGIC_SYNTH equ 1 +MM_NEOMAGIC_WAVEOUT equ 2 +MM_NEOMAGIC_WAVEIN equ 3 +MM_NEOMAGIC_MIDIOUT equ 4 +MM_NEOMAGIC_MIDIIN equ 5 +MM_NEOMAGIC_AUX equ 6 +MM_NEOMAGIC_MW3DX_WAVEOUT equ 10 +MM_NEOMAGIC_MW3DX_WAVEIN equ 11 +MM_NEOMAGIC_MW3DX_MIDIOUT equ 12 +MM_NEOMAGIC_MW3DX_MIDIIN equ 13 +MM_NEOMAGIC_MW3DX_FMSYNTH equ 14 +MM_NEOMAGIC_MW3DX_GMSYNTH equ 15 +MM_NEOMAGIC_MW3DX_MIXER equ 16 +MM_NEOMAGIC_MW3DX_AUX equ 17 +MM_NEOMAGIC_MWAVE_WAVEOUT equ 20 +MM_NEOMAGIC_MWAVE_WAVEIN equ 21 +MM_NEOMAGIC_MWAVE_MIDIOUT equ 22 +MM_NEOMAGIC_MWAVE_MIDIIN equ 23 +MM_NEOMAGIC_MWAVE_MIXER equ 24 +MM_NEOMAGIC_MWAVE_AUX equ 25 +MM_MERGING_MPEGL3 equ 1 +MM_XIRLINK_VISIONLINK equ 1 +MM_OTI_611WAVEIN equ 5 +MM_OTI_611WAVEOUT equ 6 +MM_OTI_611MIXER equ 7 +MM_OTI_611MIDIN equ 12h +MM_OTI_611MIDIOUT equ 13h +MM_AUREAL_AU8820 equ 16 +MM_AU8820_SYNTH equ 17 +MM_AU8820_WAVEOUT equ 18 +MM_AU8820_WAVEIN equ 19 +MM_AU8820_MIXER equ 20 +MM_AU8820_AUX equ 21 +MM_AU8820_MIDIOUT equ 22 +MM_AU8820_MIDIIN equ 23 +MM_AUREAL_AU8830 equ 32 +MM_AU8830_SYNTH equ 33 +MM_AU8830_WAVEOUT equ 34 +MM_AU8830_WAVEIN equ 35 +MM_AU8830_MIXER equ 36 +MM_AU8830_AUX equ 37 +MM_AU8830_MIDIOUT equ 38 +MM_AU8830_MIDIIN equ 39 +MM_VIVO_AUDIO_CODEC equ 1 +MM_SHARP_MDC_MIDI_SYNTH equ 1 +MM_SHARP_MDC_MIDI_IN equ 2 +MM_SHARP_MDC_MIDI_OUT equ 3 +MM_SHARP_MDC_WAVE_IN equ 4 +MM_SHARP_MDC_WAVE_OUT equ 5 +MM_SHARP_MDC_AUX equ 6 +MM_SHARP_MDC_MIXER equ 10 +MM_SHARP_MDC_AUX_MASTER equ 100 +MM_SHARP_MDC_AUX_BASS equ 101 +MM_SHARP_MDC_AUX_TREBLE equ 102 +MM_SHARP_MDC_AUX_MIDI_VOL equ 103 +MM_SHARP_MDC_AUX_WAVE_VOL equ 104 +MM_SHARP_MDC_AUX_WAVE_RVB equ 105 +MM_SHARP_MDC_AUX_WAVE_CHR equ 106 +MM_SHARP_MDC_AUX_VOL equ 107 +MM_SHARP_MDC_AUX_RVB equ 108 +MM_SHARP_MDC_AUX_CHR equ 109 +MM_LUCENT_ACM_G723 equ 0 +MM_ATT_G729A equ 1 +MM_MARIAN_ARC44WAVEIN equ 1 +MM_MARIAN_ARC44WAVEOUT equ 2 +MM_MARIAN_PRODIF24WAVEIN equ 3 +MM_MARIAN_PRODIF24WAVEOUT equ 4 +MM_MARIAN_ARC88WAVEIN equ 5 +MM_MARIAN_ARC88WAVEOUT equ 6 +MM_BCB_NETBOARD_10 equ 1 +MM_BCB_TT75_10 equ 2 +MM_MOTIONPIXELS_MVI2 equ 1 +MM_QDESIGN_ACM_MPEG equ 1 +MM_QDESIGN_ACM_QDESIGN_MUSIC equ 2 +MM_NMP_CCP_WAVEIN equ 1 +MM_NMP_CCP_WAVEOUT equ 2 +MM_NMP_ACM_AMR equ 10 +MM_DF_ACM_G726 equ 1 +MM_DF_ACM_GSM610 equ 2 +MM_BERCOS_WAVEIN equ 1 +MM_BERCOS_MIXER equ 2 +MM_BERCOS_WAVEOUT equ 3 +MM_ONLIVE_MPCODEC equ 1 +MM_PHONET_PP_WAVEOUT equ 1 +MM_PHONET_PP_WAVEIN equ 2 +MM_PHONET_PP_MIXER equ 3 +MM_FTR_ENCODER_WAVEIN equ 1 +MM_FTR_ACM equ 2 +MM_ENET_T2000_LINEIN equ 1 +MM_ENET_T2000_LINEOUT equ 2 +MM_ENET_T2000_HANDSETIN equ 3 +MM_ENET_T2000_HANDSETOUT equ 4 +MM_EMAGIC_UNITOR8 equ 1 +MM_SIPROLAB_ACELPNET equ 1 +MM_DICTAPHONE_G726 equ 1 +MM_RZS_ACM_TUBGSM equ 1 +MM_EES_PCMIDI14 equ 1 +MM_EES_PCMIDI14_IN equ 2 +MM_EES_PCMIDI14_OUT1 equ 3 +MM_EES_PCMIDI14_OUT2 equ 4 +MM_EES_PCMIDI14_OUT3 equ 5 +MM_EES_PCMIDI14_OUT4 equ 6 +MM_HAFTMANN_LPTDAC2 equ 1 +MM_LUCID_PCI24WAVEIN equ 1 +MM_LUCID_PCI24WAVEOUT equ 2 +MM_HEADSPACE_HAESYNTH equ 1 +MM_HEADSPACE_HAEWAVEOUT equ 2 +MM_HEADSPACE_HAEWAVEIN equ 3 +MM_HEADSPACE_HAEMIXER equ 4 +MM_UNISYS_ACM_NAP equ 1 +MM_LUMINOSITI_SCWAVEIN equ 1 +MM_LUMINOSITI_SCWAVEOUT equ 2 +MM_LUMINOSITI_SCWAVEMIX equ 3 +MM_ACTIVEVOICE_ACM_VOXADPCM equ 1 +MM_DTS_DS equ 1 +MM_SOFTLAB_NSK_FRW_WAVEIN equ 1 +MM_SOFTLAB_NSK_FRW_WAVEOUT equ 2 +MM_SOFTLAB_NSK_FRW_MIXER equ 3 +MM_SOFTLAB_NSK_FRW_AUX equ 4 +MM_FORTEMEDIA_WAVEIN equ 1 +MM_FORTEMEDIA_WAVEOUT equ 2 +MM_FORTEMEDIA_FMSYNC equ 3 +MM_FORTEMEDIA_MIXER equ 4 +MM_FORTEMEDIA_AUX equ 5 +MM_SONORUS_STUDIO equ 1 +MM_I_LINK_VOICE_CODER equ 1 +MM_SELSIUS_SYSTEMS_RTPWAVEOUT equ 1 +MM_SELSIUS_SYSTEMS_RTPWAVEIN equ 2 +MM_ADMOS_FM_SYNTH equ 1 +MM_ADMOS_QS3AMIDIOUT equ 2 +MM_ADMOS_QS3AMIDIIN equ 3 +MM_ADMOS_QS3AWAVEOUT equ 4 +MM_ADMOS_QS3AWAVEIN equ 5 +MM_LEXICON_STUDIO_WAVE_OUT equ 1 +MM_LEXICON_STUDIO_WAVE_IN equ 2 +MM_SGI_320_WAVEIN equ 1 +MM_SGI_320_WAVEOUT equ 2 +MM_SGI_320_MIXER equ 3 +MM_SGI_540_WAVEIN equ 4 +MM_SGI_540_WAVEOUT equ 5 +MM_SGI_540_MIXER equ 6 +MM_SGI_RAD_ADATMONO1_WAVEIN equ 7 +MM_SGI_RAD_ADATMONO2_WAVEIN equ 8 +MM_SGI_RAD_ADATMONO3_WAVEIN equ 9 +MM_SGI_RAD_ADATMONO4_WAVEIN equ 10 +MM_SGI_RAD_ADATMONO5_WAVEIN equ 11 +MM_SGI_RAD_ADATMONO6_WAVEIN equ 12 +MM_SGI_RAD_ADATMONO7_WAVEIN equ 13 +MM_SGI_RAD_ADATMONO8_WAVEIN equ 14 +MM_SGI_RAD_ADATSTEREO12_WAVEIN equ 15 +MM_SGI_RAD_ADATSTEREO34_WAVEIN equ 16 +MM_SGI_RAD_ADATSTEREO56_WAVEIN equ 17 +MM_SGI_RAD_ADATSTEREO78_WAVEIN equ 18 +MM_SGI_RAD_ADAT8CHAN_WAVEIN equ 19 +MM_SGI_RAD_ADATMONO1_WAVEOUT equ 20 +MM_SGI_RAD_ADATMONO2_WAVEOUT equ 21 +MM_SGI_RAD_ADATMONO3_WAVEOUT equ 22 +MM_SGI_RAD_ADATMONO4_WAVEOUT equ 23 +MM_SGI_RAD_ADATMONO5_WAVEOUT equ 24 +MM_SGI_RAD_ADATMONO6_WAVEOUT equ 25 +MM_SGI_RAD_ADATMONO7_WAVEOUT equ 26 +MM_SGI_RAD_ADATMONO8_WAVEOUT equ 27 +MM_SGI_RAD_ADATSTEREO12_WAVEOUT equ 28 +MM_SGI_RAD_ADATSTEREO32_WAVEOUT equ 29 +MM_SGI_RAD_ADATSTEREO56_WAVEOUT equ 30 +MM_SGI_RAD_ADATSTEREO78_WAVEOUT equ 31 +MM_SGI_RAD_ADAT8CHAN_WAVEOUT equ 32 +MM_SGI_RAD_AESMONO1_WAVEIN equ 33 +MM_SGI_RAD_AESMONO2_WAVEIN equ 34 +MM_SGI_RAD_AESSTEREO_WAVEIN equ 35 +MM_SGI_RAD_AESMONO1_WAVEOUT equ 36 +MM_SGI_RAD_AESMONO2_WAVEOUT equ 37 +MM_SGI_RAD_AESSTEREO_WAVEOUT equ 38 +MM_IPI_ACM_HSX equ 1 +MM_IPI_ACM_RPELP equ 2 +MM_IPI_WF_ASSS equ 3 +MM_IPI_AT_WAVEOUT equ 4 +MM_IPI_AT_WAVEIN equ 5 +MM_IPI_AT_MIXER equ 6 +MM_ICE_WAVEOUT equ 1 +MM_ICE_WAVEIN equ 2 +MM_ICE_MTWAVEOUT equ 3 +MM_ICE_MTWAVEIN equ 4 +MM_ICE_MIDIOUT1 equ 5 +MM_ICE_MIDIIN1 equ 6 +MM_ICE_MIDIOUT2 equ 7 +MM_ICE_MIDIIN2 equ 8 +MM_ICE_SYNTH equ 9 +MM_ICE_MIXER equ 10 +MM_ICE_AUX equ 11 +MM_VQST_VQC1 equ 1 +MM_VQST_VQC2 equ 2 +MM_ETEK_KWIKMIDI_MIDIIN equ 1 +MM_ETEK_KWIKMIDI_MIDIOUT equ 2 +MM_INTERNET_SSW_MIDIOUT equ 10 +MM_INTERNET_SSW_MIDIIN equ 11 +MM_INTERNET_SSW_WAVEOUT equ 12 +MM_INTERNET_SSW_WAVEIN equ 13 +MM_SONY_ACM_SCX equ 1 +MM_UH_ACM_ADPCM equ 1 +MM_SYDEC_NV_WAVEIN equ 1 +MM_SYDEC_NV_WAVEOUT equ 2 +MM_FLEXION_X300_WAVEIN equ 1 +MM_FLEXION_X300_WAVEOUT equ 2 +MM_VIA_WAVEOUT equ 1 +MM_VIA_WAVEIN equ 2 +MM_VIA_MIXER equ 3 +MM_VIA_AUX equ 4 +MM_VIA_MPU401_MIDIOUT equ 5 +MM_VIA_MPU401_MIDIIN equ 6 +MM_VIA_SWFM_SYNTH equ 7 +MM_VIA_WDM_WAVEOUT equ 8 +MM_VIA_WDM_WAVEIN equ 9 +MM_VIA_WDM_MIXER equ 10 +MM_VIA_WDM_MPU401_MIDIOUT equ 11 +MM_VIA_WDM_MPU401_MIDIIN equ 12 +MM_MICRONAS_SC4 equ 1 +MM_MICRONAS_CLP833 equ 2 +MM_HP_WAVEOUT equ 1 +MM_HP_WAVEIN equ 2 +MM_QUICKAUDIO_MINIMIDI equ 1 +MM_QUICKAUDIO_MAXIMIDI equ 2 +MM_ICCC_UNA3_WAVEIN equ 1 +MM_ICCC_UNA3_WAVEOUT equ 2 +MM_ICCC_UNA3_AUX equ 3 +MM_ICCC_UNA3_MIXER equ 4 +MM_3COM_CB_MIXER equ 1 +MM_3COM_CB_WAVEIN equ 2 +MM_3COM_CB_WAVEOUT equ 3 +MM_MINDMAKER_GC_WAVEIN equ 1 +MM_MINDMAKER_GC_WAVEOUT equ 2 +MM_MINDMAKER_GC_MIXER equ 3 +MM_TELEKOL_WAVEOUT equ 1 +MM_TELEKOL_WAVEIN equ 2 +MM_ALGOVISION_VB80WAVEOUT equ 1 +MM_ALGOVISION_VB80WAVEIN equ 2 +MM_ALGOVISION_VB80MIXER equ 3 +MM_ALGOVISION_VB80AUX equ 4 +MM_ALGOVISION_VB80AUX2 equ 5 +WAVE_FORMAT_UNKNOWN equ 0000h +WAVE_FORMAT_ADPCM equ 0002h +WAVE_FORMAT_IEEE_FLOAT equ 0003h +WAVE_FORMAT_VSELP equ 0004h +WAVE_FORMAT_IBM_CVSD equ 0005h +WAVE_FORMAT_ALAW equ 0006h +WAVE_FORMAT_MULAW equ 0007h +WAVE_FORMAT_DTS equ 0008h +WAVE_FORMAT_DRM equ 0009h +WAVE_FORMAT_WMAVOICE9 equ 000Ah +WAVE_FORMAT_WMAVOICE10 equ 000Bh +WAVE_FORMAT_OKI_ADPCM equ 0010h +WAVE_FORMAT_DVI_ADPCM equ 0011h +WAVE_FORMAT_IMA_ADPCM equ WAVE_FORMAT_DVI_ADPCM +WAVE_FORMAT_MEDIASPACE_ADPCM equ 0012h +WAVE_FORMAT_SIERRA_ADPCM equ 0013h +WAVE_FORMAT_G723_ADPCM equ 0014h +WAVE_FORMAT_DIGISTD equ 0015h +WAVE_FORMAT_DIGIFIX equ 0016h +WAVE_FORMAT_DIALOGIC_OKI_ADPCM equ 0017h +WAVE_FORMAT_MEDIAVISION_ADPCM equ 0018h +WAVE_FORMAT_CU_CODEC equ 0019h +WAVE_FORMAT_YAMAHA_ADPCM equ 0020h +WAVE_FORMAT_SONARC equ 0021h +WAVE_FORMAT_DSPGROUP_TRUESPEECH equ 0022h +WAVE_FORMAT_ECHOSC1 equ 0023h +WAVE_FORMAT_AUDIOFILE_AF36 equ 0024h +WAVE_FORMAT_APTX equ 0025h +WAVE_FORMAT_AUDIOFILE_AF10 equ 0026h +WAVE_FORMAT_PROSODY_1612 equ 0027h +WAVE_FORMAT_LRC equ 0028h +WAVE_FORMAT_DOLBY_AC2 equ 0030h +WAVE_FORMAT_GSM610 equ 0031h +WAVE_FORMAT_MSNAUDIO equ 0032h +WAVE_FORMAT_ANTEX_ADPCME equ 0033h +WAVE_FORMAT_CONTROL_RES_VQLPC equ 0034h +WAVE_FORMAT_DIGIREAL equ 0035h +WAVE_FORMAT_DIGIADPCM equ 0036h +WAVE_FORMAT_CONTROL_RES_CR10 equ 0037h +WAVE_FORMAT_NMS_VBXADPCM equ 0038h +WAVE_FORMAT_CS_IMAADPCM equ 0039h +WAVE_FORMAT_ECHOSC3 equ 003Ah +WAVE_FORMAT_ROCKWELL_ADPCM equ 003Bh +WAVE_FORMAT_ROCKWELL_DIGITALK equ 003Ch +WAVE_FORMAT_XEBEC equ 003Dh +WAVE_FORMAT_G721_ADPCM equ 0040h +WAVE_FORMAT_G728_CELP equ 0041h +WAVE_FORMAT_MSG723 equ 0042h +WAVE_FORMAT_MPEG equ 0050h +WAVE_FORMAT_RT24 equ 0052h +WAVE_FORMAT_PAC equ 0053h +WAVE_FORMAT_MPEGLAYER3 equ 0055h +WAVE_FORMAT_LUCENT_G723 equ 0059h +WAVE_FORMAT_CIRRUS equ 0060h +WAVE_FORMAT_ESPCM equ 0061h +WAVE_FORMAT_VOXWARE equ 0062h +WAVE_FORMAT_CANOPUS_ATRAC equ 0063h +WAVE_FORMAT_G726_ADPCM equ 0064h +WAVE_FORMAT_G722_ADPCM equ 0065h +WAVE_FORMAT_DSAT_DISPLAY equ 0067h +WAVE_FORMAT_VOXWARE_BYTE_ALIGNED equ 0069h +WAVE_FORMAT_VOXWARE_AC8 equ 0070h +WAVE_FORMAT_VOXWARE_AC10 equ 0071h +WAVE_FORMAT_VOXWARE_AC16 equ 0072h +WAVE_FORMAT_VOXWARE_AC20 equ 0073h +WAVE_FORMAT_VOXWARE_RT24 equ 0074h +WAVE_FORMAT_VOXWARE_RT29 equ 0075h +WAVE_FORMAT_VOXWARE_RT29HW equ 0076h +WAVE_FORMAT_VOXWARE_VR12 equ 0077h +WAVE_FORMAT_VOXWARE_VR18 equ 0078h +WAVE_FORMAT_VOXWARE_TQ40 equ 0079h +WAVE_FORMAT_SOFTSOUND equ 0080h +WAVE_FORMAT_VOXWARE_TQ60 equ 0081h +WAVE_FORMAT_MSRT24 equ 0082h +WAVE_FORMAT_G729A equ 0083h +WAVE_FORMAT_MVI_MVI2 equ 0084h +WAVE_FORMAT_DF_G726 equ 0085h +WAVE_FORMAT_DF_GSM610 equ 0086h +WAVE_FORMAT_ISIAUDIO equ 0088h +WAVE_FORMAT_ONLIVE equ 0089h +WAVE_FORMAT_SBC24 equ 0091h +WAVE_FORMAT_DOLBY_AC3_SPDIF equ 0092h +WAVE_FORMAT_MEDIASONIC_G723 equ 0093h +WAVE_FORMAT_PROSODY_8KBPS equ 0094h +WAVE_FORMAT_ZYXEL_ADPCM equ 0097h +WAVE_FORMAT_PHILIPS_LPCBB equ 0098h +WAVE_FORMAT_PACKED equ 0099h +WAVE_FORMAT_MALDEN_PHONYTALK equ 00A0h +WAVE_FORMAT_RHETOREX_ADPCM equ 0100h +WAVE_FORMAT_IRAT equ 0101h +WAVE_FORMAT_VIVO_G723 equ 0111h +WAVE_FORMAT_VIVO_SIREN equ 0112h +WAVE_FORMAT_DIGITAL_G723 equ 0123h +WAVE_FORMAT_SANYO_LD_ADPCM equ 0125h +WAVE_FORMAT_SIPROLAB_ACEPLNET equ 0130h +WAVE_FORMAT_SIPROLAB_ACELP4800 equ 0131h +WAVE_FORMAT_SIPROLAB_ACELP8V3 equ 0132h +WAVE_FORMAT_SIPROLAB_G729 equ 0133h +WAVE_FORMAT_SIPROLAB_G729A equ 0134h +WAVE_FORMAT_SIPROLAB_KELVIN equ 0135h +WAVE_FORMAT_G726ADPCM equ 0140h +WAVE_FORMAT_QUALCOMM_PUREVOICE equ 0150h +WAVE_FORMAT_QUALCOMM_HALFRATE equ 0151h +WAVE_FORMAT_TUBGSM equ 0155h +WAVE_FORMAT_MSAUDIO1 equ 0160h +WAVE_FORMAT_WMAUDIO2 equ 0161h +WAVE_FORMAT_WMAUDIO3 equ 0162h +WAVE_FORMAT_WMAUDIO_LOSSLESS equ 0163h +WAVE_FORMAT_WMASPDIF equ 0164h +WAVE_FORMAT_UNISYS_NAP_ADPCM equ 0170h +WAVE_FORMAT_UNISYS_NAP_ULAW equ 0171h +WAVE_FORMAT_UNISYS_NAP_ALAW equ 0172h +WAVE_FORMAT_UNISYS_NAP_16K equ 0173h +WAVE_FORMAT_CREATIVE_ADPCM equ 0200h +WAVE_FORMAT_CREATIVE_FASTSPEECH8 equ 0202h +WAVE_FORMAT_CREATIVE_FASTSPEECH10 equ 0203h +WAVE_FORMAT_UHER_ADPCM equ 0210h +WAVE_FORMAT_QUARTERDECK equ 0220h +WAVE_FORMAT_ILINK_VC equ 0230h +WAVE_FORMAT_RAW_SPORT equ 0240h +WAVE_FORMAT_ESST_AC3 equ 0241h +WAVE_FORMAT_GENERIC_PASSTHRU equ 0249h +WAVE_FORMAT_IPI_HSX equ 0250h +WAVE_FORMAT_IPI_RPELP equ 0251h +WAVE_FORMAT_CS2 equ 0260h +WAVE_FORMAT_SONY_SCX equ 0270h +WAVE_FORMAT_FM_TOWNS_SND equ 0300h +WAVE_FORMAT_BTV_DIGITAL equ 0400h +WAVE_FORMAT_QDESIGN_MUSIC equ 0450h +WAVE_FORMAT_VME_VMPCM equ 0680h +WAVE_FORMAT_TPC equ 0681h +WAVE_FORMAT_OLIGSM equ 1000h +WAVE_FORMAT_OLIADPCM equ 1001h +WAVE_FORMAT_OLICELP equ 1002h +WAVE_FORMAT_OLISBC equ 1003h +WAVE_FORMAT_OLIOPR equ 1004h +WAVE_FORMAT_LH_CODEC equ 1100h +WAVE_FORMAT_NORRIS equ 1400h +WAVE_FORMAT_SOUNDSPACE_MUSICOMPRESS equ 1500h +WAVE_FORMAT_MPEG_ADTS_AAC equ 1600h +WAVE_FORMAT_MPEG_RAW_AAC equ 1601h +WAVE_FORMAT_NOKIA_MPEG_ADTS_AAC equ 1608h +WAVE_FORMAT_NOKIA_MPEG_RAW_AAC equ 1609h +WAVE_FORMAT_VODAFONE_MPEG_ADTS_AAC equ 160Ah +WAVE_FORMAT_VODAFONE_MPEG_RAW_AAC equ 160Bh +WAVE_FORMAT_DVM equ 2000h +WAVE_FORMAT_EXTENSIBLE equ 0FFFEh +WAVE_FORMAT_DEVELOPMENT equ 0FFFFh +SPEAKER_FRONT_LEFT equ 1h +SPEAKER_FRONT_RIGHT equ 2h +SPEAKER_FRONT_CENTER equ 4h +SPEAKER_LOW_FREQUENCY equ 8h +SPEAKER_BACK_LEFT equ 10h +SPEAKER_BACK_RIGHT equ 20h +SPEAKER_FRONT_LEFT_OF_CENTER equ 40h +SPEAKER_FRONT_RIGHT_OF_CENTER equ 80h +SPEAKER_BACK_CENTER equ 100h +SPEAKER_SIDE_LEFT equ 200h +SPEAKER_SIDE_RIGHT equ 400h +SPEAKER_TOP_CENTER equ 800h +SPEAKER_TOP_FRONT_LEFT equ 1000h +SPEAKER_TOP_FRONT_CENTER equ 2000h +SPEAKER_TOP_FRONT_RIGHT equ 4000h +SPEAKER_TOP_BACK_LEFT equ 8000h +SPEAKER_TOP_BACK_CENTER equ 10000h +SPEAKER_TOP_BACK_RIGHT equ 20000h +SPEAKER_RESERVED equ 7FFC0000h +SPEAKER_ALL equ 80000000h +ACM_MPEG_LAYER1 equ 0001h +ACM_MPEG_LAYER2 equ 0002h +ACM_MPEG_LAYER3 equ 0004h +ACM_MPEG_STEREO equ 0001h +ACM_MPEG_JOINTSTEREO equ 0002h +ACM_MPEG_DUALCHANNEL equ 0004h +ACM_MPEG_SINGLECHANNEL equ 0008h +ACM_MPEG_PRIVATEBIT equ 0001h +ACM_MPEG_COPYRIGHT equ 0002h +ACM_MPEG_ORIGINALHOME equ 0004h +ACM_MPEG_PROTECTIONBIT equ 0008h +ACM_MPEG_ID_MPEG1 equ 0010h +MPEGLAYER3_WFX_EXTRA_BYTES equ 12 +MPEGLAYER3_ID_UNKNOWN equ 0 +MPEGLAYER3_ID_MPEG equ 1 +MPEGLAYER3_ID_CONSTANTFRAMESIZE equ 2 +MPEGLAYER3_FLAG_PADDING_ISO equ 00000000h +MPEGLAYER3_FLAG_PADDING_ON equ 00000001h +MPEGLAYER3_FLAG_PADDING_OFF equ 00000002h +MM_MSFT_ACM_WMAUDIO equ 39 +WMAUDIO_BITS_PER_SAMPLE equ 16 +WMAUDIO_MAX_CHANNELS equ 2 +MM_MSFT_ACM_MSAUDIO1 equ 39 +MSAUDIO1_BITS_PER_SAMPLE equ WMAUDIO_BITS_PER_SAMPLE +MSAUDIO1_MAX_CHANNELS equ WMAUDIO_MAX_CHANNELS +MM_MSFT_ACM_WMAUDIO2 equ 101 +WMAUDIO2_BITS_PER_SAMPLE equ WMAUDIO_BITS_PER_SAMPLE +WMAUDIO2_MAX_CHANNELS equ WMAUDIO_MAX_CHANNELS +WAVE_FILTER_UNKNOWN equ 0000h +WAVE_FILTER_DEVELOPMENT equ 0FFFFh +WAVE_FILTER_VOLUME equ 0001h +WAVE_FILTER_ECHO equ 0002h +JPEG_PROCESS_BASELINE equ 0 +AVIIF_CONTROLFRAME equ 00000200h +JIFMK_SOF0 equ 0FFC0h +JIFMK_SOF1 equ 0FFC1h +JIFMK_SOF2 equ 0FFC2h +JIFMK_SOF3 equ 0FFC3h +JIFMK_SOF5 equ 0FFC5h +JIFMK_SOF6 equ 0FFC6h +JIFMK_SOF7 equ 0FFC7h +JIFMK_JPG equ 0FFC8h +JIFMK_SOF9 equ 0FFC9h +JIFMK_SOF10 equ 0FFCAh +JIFMK_SOF11 equ 0FFCBh +JIFMK_SOF13 equ 0FFCDh +JIFMK_SOF14 equ 0FFCEh +JIFMK_SOF15 equ 0FFCFh +JIFMK_DHT equ 0FFC4h +JIFMK_DAC equ 0FFCCh +JIFMK_RST0 equ 0FFD0h +JIFMK_RST1 equ 0FFD1h +JIFMK_RST2 equ 0FFD2h +JIFMK_RST3 equ 0FFD3h +JIFMK_RST4 equ 0FFD4h +JIFMK_RST5 equ 0FFD5h +JIFMK_RST6 equ 0FFD6h +JIFMK_RST7 equ 0FFD7h +JIFMK_SOI equ 0FFD8h +JIFMK_EOI equ 0FFD9h +JIFMK_SOS equ 0FFDAh +JIFMK_DQT equ 0FFDBh +JIFMK_DNL equ 0FFDCh +JIFMK_DRI equ 0FFDDh +JIFMK_DHP equ 0FFDEh +JIFMK_EXP equ 0FFDFh +JIFMK_APP0 equ 0FFE0h +JIFMK_APP1 equ 0FFE1h +JIFMK_APP2 equ 0FFE2h +JIFMK_APP3 equ 0FFE3h +JIFMK_APP4 equ 0FFE4h +JIFMK_APP5 equ 0FFE5h +JIFMK_APP6 equ 0FFE6h +JIFMK_APP7 equ 0FFE7h +JIFMK_JPG0 equ 0FFF0h +JIFMK_JPG1 equ 0FFF1h +JIFMK_JPG2 equ 0FFF2h +JIFMK_JPG3 equ 0FFF3h +JIFMK_JPG4 equ 0FFF4h +JIFMK_JPG5 equ 0FFF5h +JIFMK_JPG6 equ 0FFF6h +JIFMK_JPG7 equ 0FFF7h +JIFMK_JPG8 equ 0FFF8h +JIFMK_JPG9 equ 0FFF9h +JIFMK_JPG10 equ 0FFFAh +JIFMK_JPG11 equ 0FFFBh +JIFMK_JPG12 equ 0FFFCh +JIFMK_JPG13 equ 0FFFDh +JIFMK_COM equ 0FFFEh +JIFMK_TEM equ 0FF01h +JIFMK_RES equ 0FF02h +JIFMK_00 equ 0FF00h +JIFMK_FF equ 0FFFFh +JPEG_Y equ 1 +JPEG_YCbCr equ 2 +JPEG_RGB equ 3 +MIXERCONTROL_CONTROLTYPE_SRS_MTS equ MIXERCONTROL_CONTROLTYPE_BOOLEAN + 6 +MIXERCONTROL_CONTROLTYPE_SRS_ONOFF equ MIXERCONTROL_CONTROLTYPE_BOOLEAN + 7 +MIXERCONTROL_CONTROLTYPE_SRS_SYNTHSELECT equ MIXERCONTROL_CONTROLTYPE_BOOLEAN + 8 + + ; Structures from MMSystem.h + +WAVEOUTCAPS2A STRUCT + wMid WORD ? + wPid WORD ? + vDriverVersion MMVERSION ? + szPname BYTE MAXPNAMELEN dup (?) + dwFormats DWORD ? + wChannels WORD ? + wReserved1 WORD ? + dwSupport DWORD ? + ManufacturerGuid GUID <> + ProductGuid GUID <> + NameGuid GUID <> +WAVEOUTCAPS2A ENDS + +WAVEOUTCAPS2W STRUCT + wMid WORD ? + wPid WORD ? + vDriverVersion MMVERSION ? + szPname WORD MAXPNAMELEN dup (?) + dwFormats DWORD ? + wChannels WORD ? + wReserved1 WORD ? + dwSupport DWORD ? + ManufacturerGuid GUID <> + ProductGuid GUID <> + NameGuid GUID <> +WAVEOUTCAPS2W ENDS + +WAVEINCAPS2A STRUCT + wMid WORD ? + wPid WORD ? + vDriverVersion MMVERSION ? + szPname BYTE MAXPNAMELEN dup (?) + dwFormats DWORD ? + wChannels WORD ? + wReserved1 WORD ? + ManufacturerGuid GUID <> + ProductGuid GUID <> + NameGuid GUID <> +WAVEINCAPS2A ENDS + +WAVEINCAPS2W STRUCT + wMid WORD ? + wPid WORD ? + vDriverVersion MMVERSION ? + szPname WORD MAXPNAMELEN dup (?) + dwFormats DWORD ? + wChannels WORD ? + wReserved1 WORD ? + ManufacturerGuid GUID <> + ProductGuid GUID <> + NameGuid GUID <> +WAVEINCAPS2W ENDS + +MIDIOUTCAPS2W STRUCT + wMid WORD ? + wPid WORD ? + vDriverVersion MMVERSION ? + szPname WORD MAXPNAMELEN dup (?) + wTechnology WORD ? + wVoices WORD ? + wNotes WORD ? + wChannelMask WORD ? + dwSupport DWORD ? + ManufacturerGuid GUID <> + ProductGuid GUID <> + NameGuid GUID <> +MIDIOUTCAPS2W ENDS + +MIDIINCAPS2A STRUCT + wMid WORD ? + wPid WORD ? + vDriverVersion MMVERSION ? + szPname BYTE MAXPNAMELEN dup (?) + dwSupport DWORD ? + ManufacturerGuid GUID <> + ProductGuid GUID <> + NameGuid GUID <> +MIDIINCAPS2A ENDS + +MIDIINCAPS2W STRUCT + wMid WORD ? + wPid WORD ? + vDriverVersion MMVERSION ? + szPname WORD MAXPNAMELEN dup (?) + dwSupport DWORD ? + ManufacturerGuid GUID <> + ProductGuid GUID <> + NameGuid GUID <> +MIDIINCAPS2W ENDS + +AUXCAPS2A STRUCT + wMid WORD ? + wPid WORD ? + vDriverVersion MMVERSION ? + szPname BYTE MAXPNAMELEN dup (?) + wTechnology WORD ? + wReserved1 WORD ? + dwSupport DWORD ? + ManufacturerGuid GUID <> + ProductGuid GUID <> + NameGuid GUID <> +AUXCAPS2A ENDS + +AUXCAPS2W STRUCT + wMid WORD ? + wPid WORD ? + vDriverVersion MMVERSION ? + szPname WORD MAXPNAMELEN dup (?) + wTechnology WORD ? + wReserved1 WORD ? + dwSupport DWORD ? + ManufacturerGuid GUID <> + ProductGuid GUID <> + NameGuid GUID <> +AUXCAPS2W ENDS + +MIXERCAPS2A STRUCT + wMid WORD ? + wPid WORD ? + vDriverVersion MMVERSION ? + szPname BYTE MAXPNAMELEN dup (?) + fdwSupport DWORD ? + cDestinations DWORD ? + ManufacturerGuid GUID <> + ProductGuid GUID <> + NameGuid GUID <> +MIXERCAPS2A ENDS + +MIXERCAPS2W STRUCT + wMid WORD ? + wPid WORD ? + vDriverVersion MMVERSION ? + szPname WORD MAXPNAMELEN dup (?) + fdwSupport DWORD ? + cDestinations DWORD ? + ManufacturerGuid GUID <> + ProductGuid GUID <> + NameGuid GUID <> +MIXERCAPS2W ENDS + +JOYCAPS2A STRUCT + wMid WORD ? + wPid WORD ? + szPname BYTE MAXPNAMELEN dup (?) + wXmin DWORD ? + wXmax DWORD ? + wYmin DWORD ? + wYmax DWORD ? + wZmin DWORD ? + wZmax DWORD ? + wNumButtons DWORD ? + wPeriodMin DWORD ? + wPeriodMax DWORD ? + wRmin DWORD ? + wRmax DWORD ? + wUmin DWORD ? + wUmax DWORD ? + wVmin DWORD ? + wVmax DWORD ? + wCaps DWORD ? + wMaxAxes DWORD ? + wNumAxes DWORD ? + wMaxButtons DWORD ? + szRegKey BYTE MAXPNAMELEN dup (?) + szOEMVxD BYTE MAX_JOYSTICKOEMVXDNAME dup (?) + ManufacturerGuid GUID <> + ProductGuid GUID <> + NameGuid GUID <> +JOYCAPS2A ENDS + +JOYCAPS2W STRUCT + wMid WORD ? + wPid WORD ? + szPname WORD MAXPNAMELEN dup (?) + wXmin DWORD ? + wXmax DWORD ? + wYmin DWORD ? + wYmax DWORD ? + wZmin DWORD ? + wZmax DWORD ? + wNumButtons DWORD ? + wPeriodMin DWORD ? + wPeriodMax DWORD ? + wRmin DWORD ? + wRmax DWORD ? + wUmin DWORD ? + wUmax DWORD ? + wVmin DWORD ? + wVmax DWORD ? + wCaps DWORD ? + wMaxAxes DWORD ? + wNumAxes DWORD ? + wMaxButtons DWORD ? + szRegKey WORD MAXPNAMELEN dup (?) + szOEMVxD WORD MAX_JOYSTICKOEMVXDNAME dup (?) + ManufacturerGuid GUID <> + ProductGuid GUID <> + NameGuid GUID <> +JOYCAPS2W ENDS + +MCI_OPEN_PARMSA STRUCT + dwCallback DWORD ? + wDeviceID DWORD ? + lpstrDeviceType DWORD ? + lpstrElementName DWORD ? + lpstrAlias DWORD ? +MCI_OPEN_PARMSA ENDS + +MCI_OPEN_PARMSW STRUCT + dwCallback DWORD ? + wDeviceID DWORD ? + lpstrDeviceType DWORD ? + lpstrElementName DWORD ? + lpstrAlias DWORD ? +MCI_OPEN_PARMSW ENDS + +MCI_ANIM_WINDOW_PARMSA STRUCT + dwCallback DWORD ? + hWnd DWORD ? + nCmdShow DWORD ? + lpstrText DWORD ? +MCI_ANIM_WINDOW_PARMSA ENDS + +MCI_ANIM_WINDOW_PARMSW STRUCT + dwCallback DWORD ? + hWnd DWORD ? + nCmdShow DWORD ? + lpstrText DWORD ? +MCI_ANIM_WINDOW_PARMSW ENDS + +;;;; end mmreg + +;;;; vistalater + + _WIN32_WINNT_NT4 equ 0400h + _WIN32_WINNT_WIN2K equ 0500h + _WIN32_WINNT_WINXP equ 0501h + _WIN32_WINNT_WS03 equ 0502h + _WIN32_WINNT_LONGHORN equ 0600h + _WIN32_IE_IE20 equ 0200h + _WIN32_IE_IE30 equ 0300h + _WIN32_IE_IE302 equ 0302h + _WIN32_IE_IE40 equ 0400h + _WIN32_IE_IE401 equ 0401h + _WIN32_IE_IE50 equ 0500h + _WIN32_IE_IE501 equ 0501h + _WIN32_IE_IE55 equ 0550h + _WIN32_IE_IE60 equ 0600h + _WIN32_IE_IE60SP1 equ 0601h + _WIN32_IE_IE60SP2 equ 0603h + _WIN32_IE_IE70 equ 0700h + _WIN32_IE_NT4 equ 0200h + _WIN32_IE_NT4SP1 equ 0200h + _WIN32_IE_NT4SP2 equ 0200h + _WIN32_IE_NT4SP3 equ 0302h + _WIN32_IE_NT4SP4 equ 0401h + _WIN32_IE_NT4SP5 equ 0401h + _WIN32_IE_NT4SP6 equ 0500h + _WIN32_IE_WIN98 equ 0401h + _WIN32_IE_WIN98SE equ 0500h + _WIN32_IE_WINME equ 0550h + _WIN32_IE_WIN2K equ 0501h + _WIN32_IE_WIN2KSP1 equ 0501h + _WIN32_IE_WIN2KSP2 equ 0501h + _WIN32_IE_WIN2KSP3 equ 0501h + _WIN32_IE_WIN2KSP4 equ 0501h + _WIN32_IE_XP equ 0600h + _WIN32_IE_XPSP1 equ 0601h + _WIN32_IE_XPSP2 equ 0603h + _WIN32_IE_WS03 equ 0602h + _WIN32_IE_WS03SP1 equ 0603h + _WIN32_IE_LONGHORN equ 0700h + NTDDI_WIN2K equ 05000000h + NTDDI_WIN2KSP1 equ 05000100h + NTDDI_WIN2KSP2 equ 05000200h + NTDDI_WIN2KSP3 equ 05000300h + NTDDI_WIN2KSP4 equ 05000400h + NTDDI_WINXP equ 05010000h + NTDDI_WINXPSP1 equ 05010100h + NTDDI_WINXPSP2 equ 05010200h + NTDDI_WS03 equ 05020000h + NTDDI_WS03SP1 equ 05020100h + NTDDI_LONGHORN equ 06000000h + _WIN32_WINNT equ 0600h + WINVER equ 0600h + _WIN32_IE equ 0500h + _WIN32_WINDOWS equ 0410h + _CRTIMP equ + STRICT equ 1 + RESTORE_LAST_ERROR_NAME_A TEXTEQU <"RestoreLastError"> + RESTORE_LAST_ERROR_NAME_W TEXTEQU + RESTORE_LAST_ERROR_NAME TEXTEQU <"RestoreLastError"> + FILE_SKIP_COMPLETION_PORT_ON_SUCCESS equ 1h + FILE_SKIP_SET_EVENT_ON_HANDLE equ 2h + EFSRPC_SECURE_ONLY equ 8 + GET_SYSTEM_WOW64_DIRECTORY_NAME_A_A TEXTEQU <"GetSystemWow64DirectoryA"> + GET_SYSTEM_WOW64_DIRECTORY_NAME_A_W TEXTEQU + GET_SYSTEM_WOW64_DIRECTORY_NAME_A_T TEXTEQU <"GetSystemWow64DirectoryA"> + GET_SYSTEM_WOW64_DIRECTORY_NAME_W_A TEXTEQU <"GetSystemWow64DirectoryW"> + GET_SYSTEM_WOW64_DIRECTORY_NAME_W_W TEXTEQU + GET_SYSTEM_WOW64_DIRECTORY_NAME_W_T TEXTEQU <"GetSystemWow64DirectoryW"> + GET_SYSTEM_WOW64_DIRECTORY_NAME_T_A TEXTEQU <"GetSystemWow64DirectoryW"> + GET_SYSTEM_WOW64_DIRECTORY_NAME_T_W TEXTEQU + GET_SYSTEM_WOW64_DIRECTORY_NAME_T_T TEXTEQU <"GetSystemWow64DirectoryW"> + PRIVATE_NAMESPACE_FLAG_DESTROY equ 00000001h + VALID_SYMBOLIC_LINK_FLAGS equ 1h + GDI_OBJ_LAST equ 14 + CLIP_DFA_DISABLE equ 4 shl 4 + DMPAPER_114h equ 16 + DMPAPER_111h equ 45 + RT_MESSAGETABLE equ 11 + HIGH_SURROGATE_START equ 0D800h + HIGH_SURROGATE_END equ 0DBFFh + LOW_SURROGATE_START equ 0DC00h + LOW_SURROGATE_END equ 0DFFFh + MB_ERR_INVALID_CHARS equ 00000008h + WC_ERR_INVALID_CHARS equ 00000080h + WC_NO_BEST_FIT_CHARS equ 00000400h + C1_DEFINED equ 0200h + C3_KATAKANA equ 0010h + C3_HIRAGANA equ 0020h + C3_HALFWIDTH equ 0040h + C3_FULLWIDTH equ 0080h + C3_IDEOGRAPH equ 0100h + C3_KASHIDA equ 0200h + C3_LEXICAL equ 0400h + C3_HIGHSURROGATE equ 0800h + C3_LOWSURROGATE equ 1000h + C3_ALPHA equ 8000h + LINGUISTIC_IGNORECASE equ 00000010h + LINGUISTIC_IGNOREDIACRITIC equ 00000020h + NORM_LINGUISTIC_CASING equ 08000000h + MAP_EXPAND_LIGATURES equ 00002000h + LCMAP_HIRAGANA equ 00100000h + LCMAP_KATAKANA equ 00200000h + LCMAP_HALFWIDTH equ 00400000h + LCMAP_FULLWIDTH equ 00800000h + LCMAP_LINGUISTIC_CASING equ 01000000h + LCMAP_SIMPLIFIED_CHINESE equ 02000000h + LCMAP_TRADITIONAL_CHINESE equ 04000000h + FIND_STARTSWITH equ 00100000h + FIND_ENDSWITH equ 00200000h + FIND_FROMSTART equ 00400000h + FIND_FROMEND equ 00800000h + LGRPID_INSTALLED equ 00000001h + LGRPID_SUPPORTED equ 00000002h + LCID_INSTALLED equ 00000001h + LCID_SUPPORTED equ 00000002h + LCID_ALTERNATE_SORTS equ 00000004h + LOCALE_ALL equ 0 + LOCALE_WINDOWS equ 00000001h + LOCALE_SUPPLEMENTAL equ 00000002h + LOCALE_ALTERNATE_SORTS equ 00000004h + LOCALE_REPLACEMENT equ 00000008h + CP_INSTALLED equ 00000001h + CP_SUPPORTED equ 00000002h + CSTR_LESS_THAN equ 1 + CSTR_EQUAL equ 2 + CSTR_GREATER_THAN equ 3 + CP_MACCP equ 2 + CP_THREAD_ACP equ 3 + CP_SYMBOL equ 42 + CP_UTF7 equ 65000 + CTRY_ALBANIA equ 355 + CTRY_ALGERIA equ 213 + CTRY_ARGENTINA equ 54 + CTRY_ARMENIA equ 374 + CTRY_AZERBAIJAN equ 994 + CTRY_BAHRAIN equ 973 + CTRY_BELARUS equ 375 + CTRY_BELIZE equ 501 + CTRY_BOLIVIA equ 591 + CTRY_BRUNEI_DARUSSALAM equ 673 + CTRY_BULGARIA equ 359 + CTRY_CARIBBEAN equ 1 + CTRY_CHILE equ 56 + CTRY_COLOMBIA equ 57 + CTRY_COSTA_RICA equ 506 + CTRY_CROATIA equ 385 + CTRY_CZECH equ 420 + CTRY_DOMINICAN_REPUBLIC equ 1 + CTRY_ECUADOR equ 593 + CTRY_EGYPT equ 20 + CTRY_EL_SALVADOR equ 503 + CTRY_ESTONIA equ 372 + CTRY_FAEROE_ISLANDS equ 298 + CTRY_GEORGIA equ 995 + CTRY_GREECE equ 30 + CTRY_GUATEMALA equ 502 + CTRY_HONDURAS equ 504 + CTRY_HONG_KONG equ 852 + CTRY_HUNGARY equ 36 + CTRY_INDIA equ 91 + CTRY_INDONESIA equ 62 + CTRY_IRAN equ 981 + CTRY_IRAQ equ 964 + CTRY_ISRAEL equ 972 + CTRY_JAMAICA equ 1 + CTRY_JORDAN equ 962 + CTRY_KAZAKSTAN equ 7 + CTRY_KENYA equ 254 + CTRY_KUWAIT equ 965 + CTRY_KYRGYZSTAN equ 996 + CTRY_LATVIA equ 371 + CTRY_LEBANON equ 961 + CTRY_LIBYA equ 218 + CTRY_LIECHTENSTEIN equ 41 + CTRY_LITHUANIA equ 370 + CTRY_LUXEMBOURG equ 352 + CTRY_MACAU equ 853 + CTRY_MACEDONIA equ 389 + CTRY_MALAYSIA equ 60 + CTRY_MALDIVES equ 960 + CTRY_MONACO equ 33 + CTRY_MONGOLIA equ 976 + CTRY_MOROCCO equ 212 + CTRY_NICARAGUA equ 505 + CTRY_OMAN equ 968 + CTRY_PAKISTAN equ 92 + CTRY_PANAMA equ 507 + CTRY_PARAGUAY equ 595 + CTRY_PERU equ 51 + CTRY_PHILIPPINES equ 63 + CTRY_POLAND equ 48 + CTRY_PUERTO_RICO equ 1 + CTRY_QATAR equ 974 + CTRY_ROMANIA equ 40 + CTRY_RUSSIA equ 7 + CTRY_SAUDI_ARABIA equ 966 + CTRY_SERBIA equ 381 + CTRY_SINGAPORE equ 65 + CTRY_SLOVAK equ 421 + CTRY_SLOVENIA equ 386 + CTRY_SOUTH_AFRICA equ 27 + CTRY_SYRIA equ 963 + CTRY_TATARSTAN equ 7 + CTRY_THAILAND equ 66 + CTRY_TRINIDAD_Y_TOBAGO equ 1 + CTRY_TUNISIA equ 216 + CTRY_TURKEY equ 90 + CTRY_UAE equ 971 + CTRY_UKRAINE equ 380 + CTRY_URUGUAY equ 598 + CTRY_UZBEKISTAN equ 7 + CTRY_VENEZUELA equ 58 + CTRY_VIET_NAM equ 84 + CTRY_YEMEN equ 967 + CTRY_ZIMBABWE equ 263 + LOCALE_USE_CP_ACP equ 40000000h + LOCALE_RETURN_NUMBER equ 20000000h + LOCALE_IGEOID equ 0000005Bh + LOCALE_IDEFAULTANSICODEPAGE equ 00001004h + LOCALE_IDEFAULTMACCODEPAGE equ 00001011h + LOCALE_INEGNUMBER equ 00001010h + LOCALE_ITIMEMARKPOSN equ 00001005h + LOCALE_ICALENDARTYPE equ 00001009h + LOCALE_IOPTIONALCALENDAR equ 0000100Bh + LOCALE_IFIRSTDAYOFWEEK equ 0000100Ch + LOCALE_IFIRSTWEEKOFYEAR equ 0000100Dh + LOCALE_SMONTHNAME13 equ 0000100Eh + LOCALE_FONTSIGNATURE equ 00000058h + LOCALE_SISO639LANGNAME equ 00000059h + LOCALE_SISO3166CTRYNAME equ 0000005Ah + LOCALE_IDEFAULTEBCDICCODEPAGE equ 00001012h + LOCALE_IPAPERSIZE equ 0000100Ah + LOCALE_SENGCURRNAME equ 00001007h + LOCALE_SNATIVECURRNAME equ 00001008h + LOCALE_SYEARMONTH equ 00001006h + LOCALE_SSORTNAME equ 00001013h + LOCALE_IDIGITSUBSTITUTION equ 00001014h + LOCALE_SNAME equ 0000005Ch + LOCALE_SDURATION equ 0000005Dh + LOCALE_SKEYBOARDSTOINSTALL equ 0000005Eh + LOCALE_SSHORTESTDAYNAME1 equ 00000060h + LOCALE_SSHORTESTDAYNAME2 equ 00000061h + LOCALE_SSHORTESTDAYNAME3 equ 00000062h + LOCALE_SSHORTESTDAYNAME4 equ 00000063h + LOCALE_SSHORTESTDAYNAME5 equ 00000064h + LOCALE_SSHORTESTDAYNAME6 equ 00000065h + LOCALE_SSHORTESTDAYNAME7 equ 00000066h + LOCALE_SISO639LANGNAME2 equ 00000067h + LOCALE_SISO3166CTRYNAME2 equ 00000068h + LOCALE_SNAN equ 00000069h + LOCALE_SPOSINFINITY equ 0000006Ah + LOCALE_SNEGINFINITY equ 0000006Bh + LOCALE_SSCRIPTS equ 0000006Ch + LOCALE_SPARENT equ 0000006Dh + LOCALE_SCONSOLEFALLBACKNAME equ 0000006Eh + LOCALE_SLANGDISPLAYNAME equ 0000006Fh + DATE_USE_ALT_CALENDAR equ 00000004h + DATE_YEARMONTH equ 00000008h + DATE_LTRREADING equ 00000010h + DATE_RTLREADING equ 00000020h + CAL_NOUSEROVERRIDE equ 80000000h + CAL_USE_CP_ACP equ 40000000h + CAL_RETURN_NUMBER equ 20000000h + CAL_SYEARMONTH equ 0000002Fh + CAL_ITWODIGITYEARMAX equ 00000030h + CAL_SSHORTESTDAYNAME1 equ 00000031h + CAL_SSHORTESTDAYNAME2 equ 00000032h + CAL_SSHORTESTDAYNAME3 equ 00000033h + CAL_SSHORTESTDAYNAME4 equ 00000034h + CAL_SSHORTESTDAYNAME5 equ 00000035h + CAL_SSHORTESTDAYNAME6 equ 00000036h + CAL_SSHORTESTDAYNAME7 equ 00000037h + CAL_HIJRI equ 6 + CAL_THAI equ 7 + CAL_HEBREW equ 8 + CAL_GREGORIAN_ME_FRENCH equ 9 + CAL_GREGORIAN_ARABIC equ 10 + CAL_GREGORIAN_XLIT_ENGLISH equ 11 + CAL_GREGORIAN_XLIT_FRENCH equ 12 + CAL_UMALQURA equ 23 + LGRPID_WESTERN_EUROPE equ 0001h + LGRPID_CENTRAL_EUROPE equ 0002h + LGRPID_BALTIC equ 0003h + LGRPID_GREEK equ 0004h + LGRPID_CYRILLIC equ 0005h + LGRPID_TURKIC equ 0006h + LGRPID_TURKISH equ 0006h + LGRPID_JAPANESE equ 0007h + LGRPID_KOREAN equ 0008h + LGRPID_TRADITIONAL_CHINESE equ 0009h + LGRPID_SIMPLIFIED_CHINESE equ 000Ah + LGRPID_THAI equ 000Bh + LGRPID_HEBREW equ 000Ch + LGRPID_ARABIC equ 000Dh + LGRPID_VIETNAMESE equ 000Eh + LGRPID_INDIC equ 000Fh + LGRPID_GEORGIAN equ 0010h + LGRPID_ARMENIAN equ 0011h + MUI_LANGUAGE_ID equ 4h + MUI_LANGUAGE_NAME equ 8h + MUI_MERGE_SYSTEM_FALLBACK equ 10h + MUI_MERGE_USER_FALLBACK equ 20h + MUI_THREAD_LANGUAGES equ 40h + MUI_CONSOLE_FILTER equ 100h + MUI_COMPLEX_SCRIPT_FILTER equ 200h + MUI_RESET_FILTERS equ 001h + MUI_USER_PREFERRED_UI_LANGUAGES equ 10h + MUI_USE_INSTALLED_LANGUAGES equ 20h + MUI_USE_SEARCH_ALL_LANGUAGES equ 40h + MUI_LANG_NEUTRAL_PE_FILE equ 100h + MUI_NON_LANG_NEUTRAL_FILE equ 200h + MUI_MACHINE_LANGUAGE_SETTINGS equ 400h + MUI_BYPASS_SESSION_BEHAVIOR equ 80h + MUI_FILETYPE_NOT_LANGUAGE_NEUTRAL equ 001h + MUI_FILETYPE_LANGUAGE_NEUTRAL_MAIN equ 002h + MUI_FILETYPE_LANGUAGE_NEUTRAL_MUI equ 004h + MUI_QUERY_TYPE equ 001h + MUI_QUERY_CHECKSUM equ 002h + MUI_QUERY_LANGUAGE_NAME equ 004h + MUI_QUERY_RESOURCE_TYPES equ 008h + MUI_FILEINFO_VERSION equ 001h + MUI_SXS_FALLBACK equ 00010000h + MUI_FULL_LANGUAGE equ 01h + MUI_PARTIAL_LANGUAGE equ 02h + MUI_LIP_LANGUAGE equ 04h + MUI_LANGUAGE_INSTALLED equ 20h + MUI_LANGUAGE_LICENSED equ 40h + MUI_PUBLIC_LANGUAGE_TYPE_FLAGS_MASK equ 67h + GEOID_NOT_AVAILABLE equ -1 + IDN_ALLOW_UNASSIGNED equ 01h + IDN_USE_STD3_ASCII_RULES equ 02h + VS_ALLOW_LATIN equ 0001h + GSS_ALLOW_INHERITED_COMMON equ 0001h + LOCALE_NAME_USER_DEFAULT equ NULL + LOCALE_NAME_INVARIANT TEXTEQU + LOCALE_NAME_SYSTEM_DEFAULT TEXTEQU + VS_FILE_INFO equ 16 + VOS_WINCE equ 00050000h + VFT2_DRV_VERSIONED_PRINTER equ 0000000Ch + VIF_CANNOTLOADLZ32 equ 00080000h + VIF_CANNOTLOADCABINET equ 00100000h + FILE_VER_GET_LOCALISED equ 01h + FILE_VER_GET_NEUTRAL equ 02h + RRF_RT_REG_NONE equ 00000001h + RRF_RT_REG_SZ equ 00000002h + RRF_RT_REG_EXPAND_SZ equ 00000004h + RRF_RT_REG_BINARY equ 00000008h + RRF_RT_REG_DWORD equ 00000010h + RRF_RT_REG_MULTI_SZ equ 00000020h + RRF_RT_REG_QWORD equ 00000040h + RRF_RT_ANY equ 0000FFFFh + RRF_NOEXPAND equ 10000000h + RRF_ZEROONFAILURE equ 20000000h + REG_PROCESS_APPKEY equ 00000001h + REG_MUI_STRING_TRUNCATE equ 00000001h + REG_SECURE_CONNECTION equ 1 + PROVIDER_KEEPS_VALUE_LENGTH equ 1h + MAX_SHUTDOWN_TIMEOUT equ 10*365*24*60*60 + SHUTDOWN_FORCE_OTHERS equ 00000001h + SHUTDOWN_FORCE_SELF equ 00000002h + SHUTDOWN_RESTART equ 00000004h + SHUTDOWN_POWEROFF equ 00000008h + SHUTDOWN_NOREBOOT equ 00000010h + SHUTDOWN_GRACE_OVERRIDE equ 00000020h + SHUTDOWN_INSTALL_UPDATES equ 00000040h + SHUTDOWN_RESTARTAPPS equ 00000080h + WNNC_NET_MSNET equ 00010000h + WNNC_NET_LANMAN equ 00020000h + WNNC_NET_NETWARE equ 00030000h + WNNC_NET_VINES equ 00040000h + WNNC_NET_10NET equ 00050000h + WNNC_NET_LOCUS equ 00060000h + WNNC_NET_SUN_PC_NFS equ 00070000h + WNNC_NET_LANSTEP equ 00080000h + WNNC_NET_9TILES equ 00090000h + WNNC_NET_LANTASTIC equ 000A0000h + WNNC_NET_AS400 equ 000B0000h + WNNC_NET_FTP_NFS equ 000C0000h + WNNC_NET_PATHWORKS equ 000D0000h + WNNC_NET_LIFENET equ 000E0000h + WNNC_NET_POWERLAN equ 000F0000h + WNNC_NET_BWNFS equ 00100000h + WNNC_NET_COGENT equ 00110000h + WNNC_NET_FARALLON equ 00120000h + WNNC_NET_APPLETALK equ 00130000h + WNNC_NET_INTERGRAPH equ 00140000h + WNNC_NET_SYMFONET equ 00150000h + WNNC_NET_CLEARCASE equ 00160000h + WNNC_NET_FRONTIER equ 00170000h + WNNC_NET_BMC equ 00180000h + WNNC_NET_DCE equ 00190000h + WNNC_NET_AVID equ 001A0000h + WNNC_NET_DOCUSPACE equ 001B0000h + WNNC_NET_MANGOSOFT equ 001C0000h + WNNC_NET_SERNET equ 001D0000h + WNNC_NET_RIVERFRONT1 equ 001E0000h + WNNC_NET_RIVERFRONT2 equ 001F0000h + WNNC_NET_DECORB equ 00200000h + WNNC_NET_PROTSTOR equ 00210000h + WNNC_NET_FJ_REDIR equ 00220000h + WNNC_NET_DISTINCT equ 00230000h + WNNC_NET_TWINS equ 00240000h + WNNC_NET_RDR2SAMPLE equ 00250000h + WNNC_NET_CSC equ 00260000h + WNNC_NET_3IN1 equ 00270000h + WNNC_NET_EXTENDNET equ 00290000h + WNNC_NET_STAC equ 002A0000h + WNNC_NET_FOXBAT equ 002B0000h + WNNC_NET_YAHOO equ 002C0000h + WNNC_NET_EXIFS equ 002D0000h + WNNC_NET_DAV equ 002E0000h + WNNC_NET_KNOWARE equ 002F0000h + WNNC_NET_OBJECT_DIRE equ 00300000h + WNNC_NET_MASFAX equ 00310000h + WNNC_NET_HOB_NFS equ 00320000h + WNNC_NET_SHIVA equ 00330000h + WNNC_NET_IBMAL equ 00340000h + WNNC_NET_LOCK equ 00350000h + WNNC_NET_TERMSRV equ 00360000h + WNNC_NET_SRT equ 00370000h + WNNC_NET_QUINCY equ 00380000h + WNNC_NET_OPENAFS equ 00390000h + WNNC_NET_AVID1 equ 003A0000h + WNNC_NET_DFS equ 003B0000h + WNNC_NET_KWNP equ 003C0000h + WNNC_NET_ZENWORKS equ 003D0000h + WNNC_NET_DRIVEONWEB equ 003E0000h + WNNC_NET_VMWARE equ 003F0000h + WNNC_NET_RSFX equ 00400000h + WNNC_NET_MFILES equ 00410000h + WNNC_NET_MS_NFS equ 00420000h + WNNC_NET_GOOGLE equ 00430000h + WNNC_CRED_MANAGER equ 0FFFF0000h + RESOURCETYPE_RESERVED equ 00000008h + RESOURCEUSAGE_NOLOCALDEVICE equ 00000004h + RESOURCEUSAGE_SIBLING equ 00000008h + RESOURCEUSAGE_ATTACHED equ 00000010h + RESOURCEDISPLAYTYPE_NETWORK equ 00000006h + RESOURCEDISPLAYTYPE_ROOT equ 00000007h + RESOURCEDISPLAYTYPE_SHAREADMIN equ 00000008h + RESOURCEDISPLAYTYPE_DIRECTORY equ 00000009h + RESOURCEDISPLAYTYPE_TREE equ 0000000Ah + RESOURCEDISPLAYTYPE_NDSCONTAINER equ 0000000Bh + NETPROPERTY_PERSISTENT equ 1 + CONNECT_UPDATE_RECENT equ 00000002h + CONNECT_TEMPORARY equ 00000004h + CONNECT_INTERACTIVE equ 00000008h + CONNECT_PROMPT equ 00000010h + CONNECT_NEED_DRIVE equ 00000020h + CONNECT_REFCOUNT equ 00000040h + CONNECT_REDIRECT equ 00000080h + CONNECT_LOCALDRIVE equ 00000100h + CONNECT_CURRENT_MEDIA equ 00000200h + CONNECT_DEFERRED equ 00000400h + CONNECT_RESERVED equ 0FF000000h + CONNECT_COMMANDLINE equ 00000800h + CONNECT_CMD_SAVECRED equ 00001000h + CONNECT_CRED_RESET equ 00002000h + CONNDLG_RO_PATH equ 00000001h + CONNDLG_CONN_POINT equ 00000002h + CONNDLG_USE_MRU equ 00000004h + CONNDLG_HIDE_BOX equ 00000008h + CONNDLG_PERSIST equ 00000010h + CONNDLG_NOT_PERSIST equ 00000020h + DISC_UPDATE_PROFILE equ 00000001h + DISC_NO_FORCE equ 00000040h + UNIVERSAL_NAME_INFO_LEVEL equ 00000001h + REMOTE_NAME_INFO_LEVEL equ 00000002h + WNFMT_MULTILINE equ 01h + WNFMT_ABBREVIATED equ 02h + WNFMT_INENUM equ 10h + WNFMT_CONNECTION equ 20h + NETINFO_DLL16 equ 00000001h + NETINFO_DISKRED equ 00000004h + NETINFO_PRINTERRED equ 00000008h + WNCON_FORNETCARD equ 00000001h + WNCON_NOTROUTED equ 00000002h + WNCON_SLOWLINK equ 00000004h + WNCON_DYNAMIC equ 00000008h + EXPENTRY equ CALLBACK + MSGF_DDEMGR equ 8001h + CP_WINNEUTRAL equ 1200 + SZDDESYS_TOPIC TEXTEQU + SZDDESYS_ITEM_TOPICS TEXTEQU + SZDDESYS_ITEM_SYSITEMS TEXTEQU + SZDDESYS_ITEM_RTNMSG TEXTEQU + SZDDESYS_ITEM_STATUS TEXTEQU + SZDDESYS_ITEM_FORMATS TEXTEQU + SZDDESYS_ITEM_HELP TEXTEQU + SZDDE_ITEM_ITEMLIST TEXTEQU + ctl1 equ 04A0h + MW_BIG_FILEOPENORD equ 10000 + MW_BIG_MULTIFILEOPENORD equ 10001 + FILEOPENORDMOTIF equ 10003 + PRINTDLGORDMOTIF equ 10004 + FINDDLGORDMOTIF equ 10005 + RUNDLGORD equ 1545 + PAGESETUPDLGORD equ 1546 + NEWFILEOPENORD equ 1547 + PRINTDLGEXORD equ 1549 + PAGESETUPDLGORDMOTIF equ 1550 + COLORMGMTDLGORD equ 1551 + NEWFILEOPENV2ORD equ 1552 + NEWFILEOPENV3ORD equ 1553 + LZERROR_GLOBALLOC equ -5 + SND_SENTRY equ 00080000h + SND_SYSTEM equ 00200000h + ALL_TRANSPORTS TEXTEQU <"M\0\0\0"> + MS_NBF TEXTEQU <"MNBF"> + WC_NETADDRESS TEXTEQU + PERF_COUNTER_PRECISION equ 00070000h + MAX_PERF_OBJECTS_IN_QUERY_FUNCTION equ 64 + WINPERF_LOG_NONE equ 0 + WINPERF_LOG_USER equ 1 + WINPERF_LOG_DEBUG equ 2 + WINPERF_LOG_VERBOSE equ 3 + IP_OPTIONS equ 1 + IP_MULTICAST_IF equ 2 + IP_MULTICAST_TTL equ 3 + IP_MULTICAST_LOOP equ 4 + IP_ADD_MEMBERSHIP equ 5 + IP_DROP_MEMBERSHIP equ 6 + IP_TTL equ 7 + IP_TOS equ 8 + IP_DONTFRAGMENT equ 9 + IP_DEFAULT_MULTICAST_TTL equ 1 + IP_DEFAULT_MULTICAST_LOOP equ 1 + IP_MAX_MEMBERSHIPS equ 20 + SO_CONNDATA equ 7000h + SO_CONNOPT equ 7001h + SO_DISCDATA equ 7002h + SO_DISCOPT equ 7003h + SO_CONNDATALEN equ 7004h + SO_CONNOPTLEN equ 7005h + SO_DISCDATALEN equ 7006h + SO_DISCOPTLEN equ 7007h + SO_OPENTYPE equ 7008h + SO_SYNCHRONOUS_ALERT equ 10h + SO_SYNCHRONOUS_NONALERT equ 20h + SO_MAXDG equ 7009h + SO_MAXPATHDG equ 700Ah + SO_UPDATE_ACCEPT_CONTEXT equ 700Bh + SO_CONNECT_TIME equ 700Ch + TCP_BSDURGENT equ 7000h + h_errno equ WSAGetLastError + TF_DISCONNECT equ 01h + TF_REUSE_SOCKET equ 02h + TF_WRITE_BEHIND equ 04h + ALG_SID_ECDSA equ 3 + ALG_SID_ECDH equ 5 + ALG_SID_ECMQV equ 1 + SIGNATURE_RESOURCE_NUMBER equ 29Ah + CRYPT_DEFAULT_CONTAINER_OPTIONAL equ 00000080h + CRYPT_FORCE_KEY_PROTECTION_HIGH equ 00008000h + KEYSTATEBLOB equ 0Ch + PP_USER_CERTSTORE equ 42 + PP_SMARTCARD_READER equ 43 + PP_SMARTCARD_GUID equ 45 + PP_ROOT_CERTSTORE equ 46 + PP_PIN_PROMPT_STRING equ 44 + PROV_STT_MER equ 7 + PROV_STT_ACQ equ 8 + PROV_STT_BRND equ 9 + PROV_STT_ROOT equ 10 + PROV_STT_ISS equ 11 + EXPO_OFFLOAD_REG_VALUE TEXTEQU <"ExpoOffload"> + EXPO_OFFLOAD_FUNC_NAME TEXTEQU <"OffloadModExpo"> + szKEY_CRYPTOAPI_PRIVATE_KEY_OPTIONS TEXTEQU <"Software\\Policies\\Microsoft\\Cryptography"> + szFORCE_KEY_PROTECTION TEXTEQU <"ForceKeyProtection"> + szKEY_CACHE_ENABLED TEXTEQU <"CachePrivateKeys"> + szKEY_CACHE_SECONDS TEXTEQU <"PrivateKeyLifetimeSeconds"> + szPRIV_KEY_CACHE_MAX_ITEMS TEXTEQU <"PrivKeyCacheMaxItems"> + cPRIV_KEY_CACHE_MAX_ITEMS_DEFAULT equ 20 + szPRIV_KEY_CACHE_PURGE_INTERVAL_SECONDS TEXTEQU <"PrivKeyCachePurgeIntervalSeconds"> + cPRIV_KEY_CACHE_PURGE_INTERVAL_SECONDS_DEFAULT equ 86400 + CRYPTLIMIT_USING_PCT equ 0001h + CRYPTLIMIT_USING_SGC equ 0002h + szOID_RSA TEXTEQU <"1.2.840.113549"> + szOID_PKCS TEXTEQU <"1.2.840.113549.1"> + szOID_RSA_HASH TEXTEQU <"1.2.840.113549.2"> + szOID_RSA_ENCRYPT TEXTEQU <"1.2.840.113549.3"> + szOID_PKCS_1 TEXTEQU <"1.2.840.113549.1.1"> + szOID_PKCS_2 TEXTEQU <"1.2.840.113549.1.2"> + szOID_PKCS_3 TEXTEQU <"1.2.840.113549.1.3"> + szOID_PKCS_4 TEXTEQU <"1.2.840.113549.1.4"> + szOID_PKCS_5 TEXTEQU <"1.2.840.113549.1.5"> + szOID_PKCS_6 TEXTEQU <"1.2.840.113549.1.6"> + szOID_PKCS_7 TEXTEQU <"1.2.840.113549.1.7"> + szOID_PKCS_8 TEXTEQU <"1.2.840.113549.1.8"> + szOID_PKCS_9 TEXTEQU <"1.2.840.113549.1.9"> + szOID_PKCS_10 TEXTEQU <"1.2.840.113549.1.10"> + szOID_PKCS_12 TEXTEQU <"1.2.840.113549.1.12"> + szOID_RSA_RSA TEXTEQU <"1.2.840.113549.1.1.1"> + szOID_RSA_MD2RSA TEXTEQU <"1.2.840.113549.1.1.2"> + szOID_RSA_MD4RSA TEXTEQU <"1.2.840.113549.1.1.3"> + szOID_RSA_MD5RSA TEXTEQU <"1.2.840.113549.1.1.4"> + szOID_RSA_SHA1RSA TEXTEQU <"1.2.840.113549.1.1.5"> + szOID_RSA_SETOAEP_RSA TEXTEQU <"1.2.840.113549.1.1.6"> + szOID_RSAES_OAEP TEXTEQU <"1.2.840.113549.1.1.7"> + szOID_RSA_MGF1 TEXTEQU <"1.2.840.113549.1.1.8"> + szOID_RSA_PSPECIFIED TEXTEQU <"1.2.840.113549.1.1.9"> + szOID_RSA_SSA_PSS TEXTEQU <"1.2.840.113549.1.1.10"> + szOID_RSA_SHA256RSA TEXTEQU <"1.2.840.113549.1.1.11"> + szOID_RSA_SHA384RSA TEXTEQU <"1.2.840.113549.1.1.12"> + szOID_RSA_SHA512RSA TEXTEQU <"1.2.840.113549.1.1.13"> + szOID_RSA_DH TEXTEQU <"1.2.840.113549.1.3.1"> + szOID_RSA_data TEXTEQU <"1.2.840.113549.1.7.1"> + szOID_RSA_signedData TEXTEQU <"1.2.840.113549.1.7.2"> + szOID_RSA_envelopedData TEXTEQU <"1.2.840.113549.1.7.3"> + szOID_RSA_signEnvData TEXTEQU <"1.2.840.113549.1.7.4"> + szOID_RSA_digestedData TEXTEQU <"1.2.840.113549.1.7.5"> + szOID_RSA_hashedData TEXTEQU <"1.2.840.113549.1.7.5"> + szOID_RSA_encryptedData TEXTEQU <"1.2.840.113549.1.7.6"> + szOID_RSA_emailAddr TEXTEQU <"1.2.840.113549.1.9.1"> + szOID_RSA_unstructName TEXTEQU <"1.2.840.113549.1.9.2"> + szOID_RSA_contentType TEXTEQU <"1.2.840.113549.1.9.3"> + szOID_RSA_messageDigest TEXTEQU <"1.2.840.113549.1.9.4"> + szOID_RSA_signingTime TEXTEQU <"1.2.840.113549.1.9.5"> + szOID_RSA_counterSign TEXTEQU <"1.2.840.113549.1.9.6"> + szOID_RSA_challengePwd TEXTEQU <"1.2.840.113549.1.9.7"> + szOID_RSA_unstructAddr TEXTEQU <"1.2.840.113549.1.9.8"> + szOID_RSA_extCertAttrs TEXTEQU <"1.2.840.113549.1.9.9"> + szOID_RSA_certExtensions TEXTEQU <"1.2.840.113549.1.9.14"> + szOID_RSA_SMIMECapabilities TEXTEQU <"1.2.840.113549.1.9.15"> + szOID_RSA_preferSignedData TEXTEQU <"1.2.840.113549.1.9.15.1"> + szOID_RSA_SMIMEalg TEXTEQU <"1.2.840.113549.1.9.16.3"> + szOID_RSA_SMIMEalgESDH TEXTEQU <"1.2.840.113549.1.9.16.3.5"> + szOID_RSA_SMIMEalgCMS3DESwrap TEXTEQU <"1.2.840.113549.1.9.16.3.6"> + szOID_RSA_SMIMEalgCMSRC2wrap TEXTEQU <"1.2.840.113549.1.9.16.3.7"> + szOID_RSA_MD2 TEXTEQU <"1.2.840.113549.2.2"> + szOID_RSA_MD4 TEXTEQU <"1.2.840.113549.2.4"> + szOID_RSA_MD5 TEXTEQU <"1.2.840.113549.2.5"> + szOID_RSA_RC2CBC TEXTEQU <"1.2.840.113549.3.2"> + szOID_RSA_RC4 TEXTEQU <"1.2.840.113549.3.4"> + szOID_RSA_DES_EDE3_CBC TEXTEQU <"1.2.840.113549.3.7"> + szOID_RSA_RC5_CBCPad TEXTEQU <"1.2.840.113549.3.9"> + szOID_ANSI_X942 TEXTEQU <"1.2.840.10046"> + szOID_ANSI_X942_DH TEXTEQU <"1.2.840.10046.2.1"> + szOID_X957 TEXTEQU <"1.2.840.10040"> + szOID_X957_DSA TEXTEQU <"1.2.840.10040.4.1"> + szOID_X957_SHA1DSA TEXTEQU <"1.2.840.10040.4.3"> + szOID_ECC_PUBLIC_KEY TEXTEQU <"1.2.840.10045.2.1"> + szOID_ECC_CURVE_P256 TEXTEQU <"1.2.840.10045.3.1.7"> + szOID_ECC_CURVE_P384 TEXTEQU <"1.3.132.0.34"> + szOID_ECC_CURVE_P521 TEXTEQU <"1.3.132.0.35"> + szOID_ECDSA_SHA1 TEXTEQU <"1.2.840.10045.4.1"> + szOID_ECDSA_SPECIFIED TEXTEQU <"1.2.840.10045.4.3"> + szOID_ECDSA_SHA256 TEXTEQU <"1.2.840.10045.4.3.2"> + szOID_ECDSA_SHA384 TEXTEQU <"1.2.840.10045.4.3.3"> + szOID_ECDSA_SHA512 TEXTEQU <"1.2.840.10045.4.3.4"> + szOID_NIST_AES128_CBC TEXTEQU <"2.16.840.1.101.3.4.1.2"> + szOID_NIST_AES192_CBC TEXTEQU <"2.16.840.1.101.3.4.1.22"> + szOID_NIST_AES256_CBC TEXTEQU <"2.16.840.1.101.3.4.1.42"> + szOID_NIST_AES128_WRAP TEXTEQU <"2.16.840.1.101.3.4.1.5"> + szOID_NIST_AES192_WRAP TEXTEQU <"2.16.840.1.101.3.4.1.25"> + szOID_NIST_AES256_WRAP TEXTEQU <"2.16.840.1.101.3.4.1.45"> + szOID_DH_SINGLE_PASS_STDDH_SHA1_KDF TEXTEQU <"1.3.133.16.840.63.0.2"> + szOID_DS TEXTEQU <"2.5"> + szOID_DSALG TEXTEQU <"2.5.8"> + szOID_DSALG_CRPT TEXTEQU <"2.5.8.1"> + szOID_DSALG_HASH TEXTEQU <"2.5.8.2"> + szOID_DSALG_SIGN TEXTEQU <"2.5.8.3"> + szOID_DSALG_RSA TEXTEQU <"2.5.8.1.1"> + szOID_OIW TEXTEQU <"1.3.14"> + szOID_OIWSEC TEXTEQU <"1.3.14.3.2"> + szOID_OIWSEC_md4RSA TEXTEQU <"1.3.14.3.2.2"> + szOID_OIWSEC_md5RSA TEXTEQU <"1.3.14.3.2.3"> + szOID_OIWSEC_md4RSA2 TEXTEQU <"1.3.14.3.2.4"> + szOID_OIWSEC_desECB TEXTEQU <"1.3.14.3.2.6"> + szOID_OIWSEC_desCBC TEXTEQU <"1.3.14.3.2.7"> + szOID_OIWSEC_desOFB TEXTEQU <"1.3.14.3.2.8"> + szOID_OIWSEC_desCFB TEXTEQU <"1.3.14.3.2.9"> + szOID_OIWSEC_desMAC TEXTEQU <"1.3.14.3.2.10"> + szOID_OIWSEC_rsaSign TEXTEQU <"1.3.14.3.2.11"> + szOID_OIWSEC_dsa TEXTEQU <"1.3.14.3.2.12"> + szOID_OIWSEC_shaDSA TEXTEQU <"1.3.14.3.2.13"> + szOID_OIWSEC_mdc2RSA TEXTEQU <"1.3.14.3.2.14"> + szOID_OIWSEC_shaRSA TEXTEQU <"1.3.14.3.2.15"> + szOID_OIWSEC_dhCommMod TEXTEQU <"1.3.14.3.2.16"> + szOID_OIWSEC_desEDE TEXTEQU <"1.3.14.3.2.17"> + szOID_OIWSEC_sha TEXTEQU <"1.3.14.3.2.18"> + szOID_OIWSEC_mdc2 TEXTEQU <"1.3.14.3.2.19"> + szOID_OIWSEC_dsaComm TEXTEQU <"1.3.14.3.2.20"> + szOID_OIWSEC_dsaCommSHA TEXTEQU <"1.3.14.3.2.21"> + szOID_OIWSEC_rsaXchg TEXTEQU <"1.3.14.3.2.22"> + szOID_OIWSEC_keyHashSeal TEXTEQU <"1.3.14.3.2.23"> + szOID_OIWSEC_md2RSASign TEXTEQU <"1.3.14.3.2.24"> + szOID_OIWSEC_md5RSASign TEXTEQU <"1.3.14.3.2.25"> + szOID_OIWSEC_sha1 TEXTEQU <"1.3.14.3.2.26"> + szOID_OIWSEC_dsaSHA1 TEXTEQU <"1.3.14.3.2.27"> + szOID_OIWSEC_dsaCommSHA1 TEXTEQU <"1.3.14.3.2.28"> + szOID_OIWSEC_sha1RSASign TEXTEQU <"1.3.14.3.2.29"> + szOID_OIWDIR TEXTEQU <"1.3.14.7.2"> + szOID_OIWDIR_CRPT TEXTEQU <"1.3.14.7.2.1"> + szOID_OIWDIR_HASH TEXTEQU <"1.3.14.7.2.2"> + szOID_OIWDIR_SIGN TEXTEQU <"1.3.14.7.2.3"> + szOID_OIWDIR_md2 TEXTEQU <"1.3.14.7.2.2.1"> + szOID_OIWDIR_md2RSA TEXTEQU <"1.3.14.7.2.3.1"> + szOID_INFOSEC TEXTEQU <"2.16.840.1.101.2.1"> + szOID_INFOSEC_sdnsSignature TEXTEQU <"2.16.840.1.101.2.1.1.1"> + szOID_INFOSEC_mosaicSignature TEXTEQU <"2.16.840.1.101.2.1.1.2"> + szOID_INFOSEC_sdnsConfidentiality TEXTEQU <"2.16.840.1.101.2.1.1.3"> + szOID_INFOSEC_mosaicConfidentiality TEXTEQU <"2.16.840.1.101.2.1.1.4"> + szOID_INFOSEC_sdnsIntegrity TEXTEQU <"2.16.840.1.101.2.1.1.5"> + szOID_INFOSEC_mosaicIntegrity TEXTEQU <"2.16.840.1.101.2.1.1.6"> + szOID_INFOSEC_sdnsTokenProtection TEXTEQU <"2.16.840.1.101.2.1.1.7"> + szOID_INFOSEC_mosaicTokenProtection TEXTEQU <"2.16.840.1.101.2.1.1.8"> + szOID_INFOSEC_sdnsKeyManagement TEXTEQU <"2.16.840.1.101.2.1.1.9"> + szOID_INFOSEC_mosaicKeyManagement TEXTEQU <"2.16.840.1.101.2.1.1.10"> + szOID_INFOSEC_sdnsKMandSig TEXTEQU <"2.16.840.1.101.2.1.1.11"> + szOID_INFOSEC_mosaicKMandSig TEXTEQU <"2.16.840.1.101.2.1.1.12"> + szOID_INFOSEC_SuiteASignature TEXTEQU <"2.16.840.1.101.2.1.1.13"> + szOID_INFOSEC_SuiteAConfidentiality TEXTEQU <"2.16.840.1.101.2.1.1.14"> + szOID_INFOSEC_SuiteAIntegrity TEXTEQU <"2.16.840.1.101.2.1.1.15"> + szOID_INFOSEC_SuiteATokenProtection TEXTEQU <"2.16.840.1.101.2.1.1.16"> + szOID_INFOSEC_SuiteAKeyManagement TEXTEQU <"2.16.840.1.101.2.1.1.17"> + szOID_INFOSEC_SuiteAKMandSig TEXTEQU <"2.16.840.1.101.2.1.1.18"> + szOID_INFOSEC_mosaicUpdatedSig TEXTEQU <"2.16.840.1.101.2.1.1.19"> + szOID_INFOSEC_mosaicKMandUpdSig TEXTEQU <"2.16.840.1.101.2.1.1.20"> + szOID_INFOSEC_mosaicUpdatedInteg TEXTEQU <"2.16.840.1.101.2.1.1.21"> + szOID_NIST_sha256 TEXTEQU <"2.16.840.1.101.3.4.2.1"> + szOID_NIST_sha384 TEXTEQU <"2.16.840.1.101.3.4.2.2"> + szOID_NIST_sha512 TEXTEQU <"2.16.840.1.101.3.4.2.3"> + szOID_COMMON_NAME TEXTEQU <"2.5.4.3"> + szOID_SUR_NAME TEXTEQU <"2.5.4.4"> + szOID_DEVICE_SERIAL_NUMBER TEXTEQU <"2.5.4.5"> + szOID_COUNTRY_NAME TEXTEQU <"2.5.4.6"> + szOID_LOCALITY_NAME TEXTEQU <"2.5.4.7"> + szOID_STATE_OR_PROVINCE_NAME TEXTEQU <"2.5.4.8"> + szOID_STREET_ADDRESS TEXTEQU <"2.5.4.9"> + szOID_ORGANIZATION_NAME TEXTEQU <"2.5.4.10"> + szOID_ORGANIZATIONAL_UNIT_NAME TEXTEQU <"2.5.4.11"> + szOID_TITLE TEXTEQU <"2.5.4.12"> + szOID_DESCRIPTION TEXTEQU <"2.5.4.13"> + szOID_SEARCH_GUIDE TEXTEQU <"2.5.4.14"> + szOID_BUSINESS_CATEGORY TEXTEQU <"2.5.4.15"> + szOID_POSTAL_ADDRESS TEXTEQU <"2.5.4.16"> + szOID_POSTAL_CODE TEXTEQU <"2.5.4.17"> + szOID_POST_OFFICE_BOX TEXTEQU <"2.5.4.18"> + szOID_PHYSICAL_DELIVERY_OFFICE_NAME TEXTEQU <"2.5.4.19"> + szOID_TELEPHONE_NUMBER TEXTEQU <"2.5.4.20"> + szOID_TELEX_NUMBER TEXTEQU <"2.5.4.21"> + szOID_TELETEXT_TERMINAL_IDENTIFIER TEXTEQU <"2.5.4.22"> + szOID_FACSIMILE_TELEPHONE_NUMBER TEXTEQU <"2.5.4.23"> + szOID_X21_ADDRESS TEXTEQU <"2.5.4.24"> + szOID_INTERNATIONAL_ISDN_NUMBER TEXTEQU <"2.5.4.25"> + szOID_REGISTERED_ADDRESS TEXTEQU <"2.5.4.26"> + szOID_DESTINATION_INDICATOR TEXTEQU <"2.5.4.27"> + szOID_PREFERRED_DELIVERY_METHOD TEXTEQU <"2.5.4.28"> + szOID_PRESENTATION_ADDRESS TEXTEQU <"2.5.4.29"> + szOID_SUPPORTED_APPLICATION_CONTEXT TEXTEQU <"2.5.4.30"> + szOID_MEMBER TEXTEQU <"2.5.4.31"> + szOID_OWNER TEXTEQU <"2.5.4.32"> + szOID_ROLE_OCCUPANT TEXTEQU <"2.5.4.33"> + szOID_SEE_ALSO TEXTEQU <"2.5.4.34"> + szOID_USER_PASSWORD TEXTEQU <"2.5.4.35"> + szOID_USER_CERTIFICATE TEXTEQU <"2.5.4.36"> + szOID_CA_CERTIFICATE TEXTEQU <"2.5.4.37"> + szOID_AUTHORITY_REVOCATION_LIST TEXTEQU <"2.5.4.38"> + szOID_CERTIFICATE_REVOCATION_LIST TEXTEQU <"2.5.4.39"> + szOID_CROSS_CERTIFICATE_PAIR TEXTEQU <"2.5.4.40"> + szOID_GIVEN_NAME TEXTEQU <"2.5.4.42"> + szOID_INITIALS TEXTEQU <"2.5.4.43"> + szOID_DN_QUALIFIER TEXTEQU <"2.5.4.46"> + szOID_DOMAIN_COMPONENT TEXTEQU <"0.9.2342.19200300.100.1.25"> + szOID_PKCS_12_FRIENDLY_NAME_ATTR TEXTEQU <"1.2.840.113549.1.9.20"> + szOID_PKCS_12_LOCAL_KEY_ID TEXTEQU <"1.2.840.113549.1.9.21"> + szOID_PKCS_12_KEY_PROVIDER_NAME_ATTR TEXTEQU <"1.3.6.1.4.1.311.17.1"> + szOID_LOCAL_MACHINE_KEYSET TEXTEQU <"1.3.6.1.4.1.311.17.2"> + szOID_PKCS_12_EXTENDED_ATTRIBUTES TEXTEQU <"1.3.6.1.4.1.311.17.3"> + szOID_KEYID_RDN TEXTEQU <"1.3.6.1.4.1.311.10.7.1"> + CERT_RDN_FORCE_UTF8_UNICODE_FLAG equ 10000000h + CERT_RSA_PUBLIC_KEY_OBJID TEXTEQU <"1.2.840.113549.1.1.1"> + CERT_DEFAULT_OID_PUBLIC_KEY_SIGN TEXTEQU <"1.2.840.113549.1.1.1"> + CERT_DEFAULT_OID_PUBLIC_KEY_XCHG TEXTEQU <"1.2.840.113549.1.1.1"> + CRYPT_UNICODE_NAME_ENCODE_ENABLE_T61_UNICODE_FLAG equ 80000000h + CRYPT_UNICODE_NAME_ENCODE_ENABLE_UTF8_UNICODE_FLAG equ 20000000h + CRYPT_UNICODE_NAME_ENCODE_FORCE_UTF8_UNICODE_FLAG equ 10000000h + CRYPT_UNICODE_NAME_ENCODE_DISABLE_CHECK_TYPE_FLAG equ 40000000h + CRYPT_UNICODE_NAME_DECODE_DISABLE_IE4_UTF8_FLAG equ 01000000h + szOID_AUTHORITY_KEY_IDENTIFIER TEXTEQU <"2.5.29.1"> + szOID_KEY_ATTRIBUTES TEXTEQU <"2.5.29.2"> + szOID_CERT_POLICIES_95 TEXTEQU <"2.5.29.3"> + szOID_KEY_USAGE_RESTRICTION TEXTEQU <"2.5.29.4"> + szOID_SUBJECT_ALT_NAME TEXTEQU <"2.5.29.7"> + szOID_ISSUER_ALT_NAME TEXTEQU <"2.5.29.8"> + szOID_KEY_USAGE TEXTEQU <"2.5.29.15"> + szOID_PRIVATEKEY_USAGE_PERIOD TEXTEQU <"2.5.29.16"> + szOID_CERT_POLICIES TEXTEQU <"2.5.29.32"> + szOID_ANY_CERT_POLICY TEXTEQU <"2.5.29.32.0"> + szOID_INHIBIT_ANY_POLICY TEXTEQU <"2.5.29.54"> + szOID_AUTHORITY_KEY_IDENTIFIER2 TEXTEQU <"2.5.29.35"> + szOID_SUBJECT_KEY_IDENTIFIER TEXTEQU <"2.5.29.14"> + szOID_SUBJECT_ALT_NAME2 TEXTEQU <"2.5.29.17"> + szOID_ISSUER_ALT_NAME2 TEXTEQU <"2.5.29.18"> + szOID_CRL_REASON_CODE TEXTEQU <"2.5.29.21"> + szOID_REASON_CODE_HOLD TEXTEQU <"2.5.29.23"> + szOID_CRL_DIST_POINTS TEXTEQU <"2.5.29.31"> + szOID_ENHANCED_KEY_USAGE TEXTEQU <"2.5.29.37"> + szOID_ANY_ENHANCED_KEY_USAGE TEXTEQU <"2.5.29.37.0"> + szOID_CRL_NUMBER TEXTEQU <"2.5.29.20"> + szOID_DELTA_CRL_INDICATOR TEXTEQU <"2.5.29.27"> + szOID_ISSUING_DIST_POINT TEXTEQU <"2.5.29.28"> + szOID_FRESHEST_CRL TEXTEQU <"2.5.29.46"> + szOID_POLICY_MAPPINGS TEXTEQU <"2.5.29.33"> + szOID_LEGACY_POLICY_MAPPINGS TEXTEQU <"2.5.29.5"> + szOID_RENEWAL_CERTIFICATE TEXTEQU <"1.3.6.1.4.1.311.13.1"> + szOID_ENROLLMENT_NAME_VALUE_PAIR TEXTEQU <"1.3.6.1.4.1.311.13.2.1"> + szOID_ENROLLMENT_CSP_PROVIDER TEXTEQU <"1.3.6.1.4.1.311.13.2.2"> + szOID_OS_VERSION TEXTEQU <"1.3.6.1.4.1.311.13.2.3"> + szOID_ENROLLMENT_AGENT TEXTEQU <"1.3.6.1.4.1.311.20.2.1"> + szOID_PKIX TEXTEQU <"1.3.6.1.5.5.7"> + szOID_PKIX_PE TEXTEQU <"1.3.6.1.5.5.7.1"> + szOID_AUTHORITY_INFO_ACCESS TEXTEQU <"1.3.6.1.5.5.7.1.1"> + szOID_SUBJECT_INFO_ACCESS TEXTEQU <"1.3.6.1.5.5.7.1.11"> + szOID_BIOMETRIC_EXT TEXTEQU <"1.3.6.1.5.5.7.1.2"> + szOID_QC_STATEMENTS_EXT TEXTEQU <"1.3.6.1.5.5.7.1.3"> + szOID_LOGOTYPE_EXT TEXTEQU <"1.3.6.1.5.5.7.1.12"> + szOID_CERT_EXTENSIONS TEXTEQU <"1.3.6.1.4.1.311.2.1.14"> + szOID_NEXT_UPDATE_LOCATION TEXTEQU <"1.3.6.1.4.1.311.10.2"> + szOID_REMOVE_CERTIFICATE TEXTEQU <"1.3.6.1.4.1.311.10.8.1"> + szOID_CROSS_CERT_DIST_POINTS TEXTEQU <"1.3.6.1.4.1.311.10.9.1"> + szOID_CTL TEXTEQU <"1.3.6.1.4.1.311.10.1"> + szOID_SORTED_CTL TEXTEQU <"1.3.6.1.4.1.311.10.1.1"> + szOID_SERIALIZED TEXTEQU <"1.3.6.1.4.1.311.10.3.3.1"> + szOID_NT_PRINCIPAL_NAME TEXTEQU <"1.3.6.1.4.1.311.20.2.3"> + szOID_PRODUCT_UPDATE TEXTEQU <"1.3.6.1.4.1.311.31.1"> + szOID_ANY_APPLICATION_POLICY TEXTEQU <"1.3.6.1.4.1.311.10.12.1"> + szOID_AUTO_ENROLL_CTL_USAGE TEXTEQU <"1.3.6.1.4.1.311.20.1"> + szOID_ENROLL_CERTTYPE_EXTENSION TEXTEQU <"1.3.6.1.4.1.311.20.2"> + szOID_CERT_MANIFOLD TEXTEQU <"1.3.6.1.4.1.311.20.3"> + szOID_CERTSRV_CA_VERSION TEXTEQU <"1.3.6.1.4.1.311.21.1"> + szOID_CERTSRV_PREVIOUS_CERT_HASH TEXTEQU <"1.3.6.1.4.1.311.21.2"> + szOID_CRL_VIRTUAL_BASE TEXTEQU <"1.3.6.1.4.1.311.21.3"> + szOID_CRL_NEXT_PUBLISH TEXTEQU <"1.3.6.1.4.1.311.21.4"> + szOID_KP_CA_EXCHANGE TEXTEQU <"1.3.6.1.4.1.311.21.5"> + szOID_KP_KEY_RECOVERY_AGENT TEXTEQU <"1.3.6.1.4.1.311.21.6"> + szOID_CERTIFICATE_TEMPLATE TEXTEQU <"1.3.6.1.4.1.311.21.7"> + szOID_ENTERPRISE_OID_ROOT TEXTEQU <"1.3.6.1.4.1.311.21.8"> + szOID_RDN_DUMMY_SIGNER TEXTEQU <"1.3.6.1.4.1.311.21.9"> + szOID_APPLICATION_CERT_POLICIES TEXTEQU <"1.3.6.1.4.1.311.21.10"> + szOID_APPLICATION_POLICY_MAPPINGS TEXTEQU <"1.3.6.1.4.1.311.21.11"> + szOID_ARCHIVED_KEY_ATTR TEXTEQU <"1.3.6.1.4.1.311.21.13"> + szOID_CRL_SELF_CDP TEXTEQU <"1.3.6.1.4.1.311.21.14"> + szOID_REQUIRE_CERT_CHAIN_POLICY TEXTEQU <"1.3.6.1.4.1.311.21.15"> + szOID_ARCHIVED_KEY_CERT_HASH TEXTEQU <"1.3.6.1.4.1.311.21.16"> + szOID_ISSUED_CERT_HASH TEXTEQU <"1.3.6.1.4.1.311.21.17"> + szOID_DS_EMAIL_REPLICATION TEXTEQU <"1.3.6.1.4.1.311.21.19"> + szOID_REQUEST_CLIENT_INFO TEXTEQU <"1.3.6.1.4.1.311.21.20"> + szOID_ENCRYPTED_KEY_HASH TEXTEQU <"1.3.6.1.4.1.311.21.21"> + szOID_CERTSRV_CROSSCA_VERSION TEXTEQU <"1.3.6.1.4.1.311.21.22"> + szOID_NTDS_REPLICATION TEXTEQU <"1.3.6.1.4.1.311.25.1"> + szOID_SUBJECT_DIR_ATTRS TEXTEQU <"2.5.29.9"> + szOID_PKIX_KP TEXTEQU <"1.3.6.1.5.5.7.3"> + szOID_PKIX_KP_SERVER_AUTH TEXTEQU <"1.3.6.1.5.5.7.3.1"> + szOID_PKIX_KP_CLIENT_AUTH TEXTEQU <"1.3.6.1.5.5.7.3.2"> + szOID_PKIX_KP_CODE_SIGNING TEXTEQU <"1.3.6.1.5.5.7.3.3"> + szOID_PKIX_KP_EMAIL_PROTECTION TEXTEQU <"1.3.6.1.5.5.7.3.4"> + szOID_PKIX_KP_IPSEC_END_SYSTEM TEXTEQU <"1.3.6.1.5.5.7.3.5"> + szOID_PKIX_KP_IPSEC_TUNNEL TEXTEQU <"1.3.6.1.5.5.7.3.6"> + szOID_PKIX_KP_IPSEC_USER TEXTEQU <"1.3.6.1.5.5.7.3.7"> + szOID_PKIX_KP_TIMESTAMP_SIGNING TEXTEQU <"1.3.6.1.5.5.7.3.8"> + szOID_PKIX_KP_OCSP_SIGNING TEXTEQU <"1.3.6.1.5.5.7.3.9"> + szOID_PKIX_OCSP_NOCHECK TEXTEQU <"1.3.6.1.5.5.7.48.1.5"> + szOID_PKIX_OCSP_NONCE TEXTEQU <"1.3.6.1.5.5.7.48.1.2"> + szOID_IPSEC_KP_IKE_INTERMEDIATE TEXTEQU <"1.3.6.1.5.5.8.2.2"> + szOID_PKINIT_KP_KDC TEXTEQU <"1.3.6.1.5.2.3.5"> + szOID_KP_CTL_USAGE_SIGNING TEXTEQU <"1.3.6.1.4.1.311.10.3.1"> + szOID_KP_TIME_STAMP_SIGNING TEXTEQU <"1.3.6.1.4.1.311.10.3.2"> + szOID_SERVER_GATED_CRYPTO TEXTEQU <"1.3.6.1.4.1.311.10.3.3"> + szOID_SGC_NETSCAPE TEXTEQU <"2.16.840.1.113730.4.1"> + szOID_KP_EFS TEXTEQU <"1.3.6.1.4.1.311.10.3.4"> + szOID_EFS_RECOVERY TEXTEQU <"1.3.6.1.4.1.311.10.3.4.1"> + szOID_WHQL_CRYPTO TEXTEQU <"1.3.6.1.4.1.311.10.3.5"> + szOID_NT5_CRYPTO TEXTEQU <"1.3.6.1.4.1.311.10.3.6"> + szOID_OEM_WHQL_CRYPTO TEXTEQU <"1.3.6.1.4.1.311.10.3.7"> + szOID_EMBEDDED_NT_CRYPTO TEXTEQU <"1.3.6.1.4.1.311.10.3.8"> + szOID_ROOT_LIST_SIGNER TEXTEQU <"1.3.6.1.4.1.311.10.3.9"> + szOID_KP_QUALIFIED_SUBORDINATION TEXTEQU <"1.3.6.1.4.1.311.10.3.10"> + szOID_KP_KEY_RECOVERY TEXTEQU <"1.3.6.1.4.1.311.10.3.11"> + szOID_KP_DOCUMENT_SIGNING TEXTEQU <"1.3.6.1.4.1.311.10.3.12"> + szOID_KP_LIFETIME_SIGNING TEXTEQU <"1.3.6.1.4.1.311.10.3.13"> + szOID_KP_MOBILE_DEVICE_SOFTWARE TEXTEQU <"1.3.6.1.4.1.311.10.3.14"> + szOID_KP_SMART_DISPLAY TEXTEQU <"1.3.6.1.4.1.311.10.3.15"> + szOID_KP_CSP_SIGNATURE TEXTEQU <"1.3.6.1.4.1.311.10.3.16"> + szOID_DRM TEXTEQU <"1.3.6.1.4.1.311.10.5.1"> + szOID_DRM_INDIVIDUALIZATION TEXTEQU <"1.3.6.1.4.1.311.10.5.2"> + szOID_LICENSES TEXTEQU <"1.3.6.1.4.1.311.10.6.1"> + szOID_LICENSE_SERVER TEXTEQU <"1.3.6.1.4.1.311.10.6.2"> + szOID_KP_SMARTCARD_LOGON TEXTEQU <"1.3.6.1.4.1.311.20.2.2"> + szOID_KP_KERNEL_MODE_CODE_SIGNING TEXTEQU <"1.3.6.1.4.1.311.61.1.1"> + szOID_YESNO_TRUST_ATTR TEXTEQU <"1.3.6.1.4.1.311.10.4.1"> + szOID_PKIX_POLICY_QUALIFIER_CPS TEXTEQU <"1.3.6.1.5.5.7.2.1"> + szOID_PKIX_POLICY_QUALIFIER_USERNOTICE TEXTEQU <"1.3.6.1.5.5.7.2.2"> + szOID_ROOT_PROGRAM_FLAGS TEXTEQU <"1.3.6.1.4.1.311.60.1.1"> + szOID_CERT_POLICIES_95_QUALIFIER1 TEXTEQU <"2.16.840.1.113733.1.7.1.1"> + szOID_PKIX_ACC_DESCR TEXTEQU <"1.3.6.1.5.5.7.48"> + szOID_PKIX_OCSP TEXTEQU <"1.3.6.1.5.5.7.48.1"> + szOID_PKIX_CA_ISSUERS TEXTEQU <"1.3.6.1.5.5.7.48.2"> + szOID_PKIX_TIME_STAMPING TEXTEQU <"1.3.6.1.5.5.7.48.3"> + szOID_PKIX_CA_REPOSITORY TEXTEQU <"1.3.6.1.5.5.7.48.5"> + CRYPT_ECC_CMS_SHARED_INFO_SUPPPUBINFO_BYTE_LENGTH equ 4 + szOID_QC_EU_COMPLIANCE TEXTEQU <"0.4.0.1862.1.1"> + szOID_QC_SSCD TEXTEQU <"0.4.0.1862.1.4"> + PKCS_RSA_SSA_PSS_TRAILER_FIELD_BC equ 1 + szOID_VERISIGN_PRIVATE_6_9 TEXTEQU <"2.16.840.1.113733.1.6.9"> + szOID_VERISIGN_ONSITE_JURISDICTION_HASH TEXTEQU <"2.16.840.1.113733.1.6.11"> + szOID_VERISIGN_BITSTRING_6_13 TEXTEQU <"2.16.840.1.113733.1.6.13"> + szOID_VERISIGN_ISS_STRONG_CRYPTO TEXTEQU <"2.16.840.1.113733.1.8.1"> + szOID_NETSCAPE TEXTEQU <"2.16.840.1.113730"> + szOID_NETSCAPE_CERT_EXTENSION TEXTEQU <"2.16.840.1.113730.1"> + szOID_NETSCAPE_CERT_TYPE TEXTEQU <"2.16.840.1.113730.1.1"> + szOID_NETSCAPE_BASE_URL TEXTEQU <"2.16.840.1.113730.1.2"> + szOID_NETSCAPE_REVOCATION_URL TEXTEQU <"2.16.840.1.113730.1.3"> + szOID_NETSCAPE_CA_REVOCATION_URL TEXTEQU <"2.16.840.1.113730.1.4"> + szOID_NETSCAPE_CERT_RENEWAL_URL TEXTEQU <"2.16.840.1.113730.1.7"> + szOID_NETSCAPE_CA_POLICY_URL TEXTEQU <"2.16.840.1.113730.1.8"> + szOID_NETSCAPE_SSL_SERVER_NAME TEXTEQU <"2.16.840.1.113730.1.12"> + szOID_NETSCAPE_COMMENT TEXTEQU <"2.16.840.1.113730.1.13"> + szOID_NETSCAPE_DATA_TYPE TEXTEQU <"2.16.840.1.113730.2"> + szOID_NETSCAPE_CERT_SEQUENCE TEXTEQU <"2.16.840.1.113730.2.5"> + szOID_CT_PKI_DATA TEXTEQU <"1.3.6.1.5.5.7.12.2"> + szOID_CT_PKI_RESPONSE TEXTEQU <"1.3.6.1.5.5.7.12.3"> + szOID_PKIX_NO_SIGNATURE TEXTEQU <"1.3.6.1.5.5.7.6.2"> + szOID_CMC TEXTEQU <"1.3.6.1.5.5.7.7"> + szOID_CMC_STATUS_INFO TEXTEQU <"1.3.6.1.5.5.7.7.1"> + szOID_CMC_IDENTIFICATION TEXTEQU <"1.3.6.1.5.5.7.7.2"> + szOID_CMC_IDENTITY_PROOF TEXTEQU <"1.3.6.1.5.5.7.7.3"> + szOID_CMC_DATA_RETURN TEXTEQU <"1.3.6.1.5.5.7.7.4"> + szOID_CMC_TRANSACTION_ID TEXTEQU <"1.3.6.1.5.5.7.7.5"> + szOID_CMC_SENDER_NONCE TEXTEQU <"1.3.6.1.5.5.7.7.6"> + szOID_CMC_RECIPIENT_NONCE TEXTEQU <"1.3.6.1.5.5.7.7.7"> + szOID_CMC_ADD_EXTENSIONS TEXTEQU <"1.3.6.1.5.5.7.7.8"> + szOID_CMC_ENCRYPTED_POP TEXTEQU <"1.3.6.1.5.5.7.7.9"> + szOID_CMC_DECRYPTED_POP TEXTEQU <"1.3.6.1.5.5.7.7.10"> + szOID_CMC_LRA_POP_WITNESS TEXTEQU <"1.3.6.1.5.5.7.7.11"> + szOID_CMC_GET_CERT TEXTEQU <"1.3.6.1.5.5.7.7.15"> + szOID_CMC_GET_CRL TEXTEQU <"1.3.6.1.5.5.7.7.16"> + szOID_CMC_REVOKE_REQUEST TEXTEQU <"1.3.6.1.5.5.7.7.17"> + szOID_CMC_REG_INFO TEXTEQU <"1.3.6.1.5.5.7.7.18"> + szOID_CMC_RESPONSE_INFO TEXTEQU <"1.3.6.1.5.5.7.7.19"> + szOID_CMC_QUERY_PENDING TEXTEQU <"1.3.6.1.5.5.7.7.21"> + szOID_CMC_ID_POP_LINK_RANDOM TEXTEQU <"1.3.6.1.5.5.7.7.22"> + szOID_CMC_ID_POP_LINK_WITNESS TEXTEQU <"1.3.6.1.5.5.7.7.23"> + szOID_CMC_ID_CONFIRM_CERT_ACCEPTANCE TEXTEQU <"1.3.6.1.5.5.7.7.24"> + szOID_CMC_ADD_ATTRIBUTES TEXTEQU <"1.3.6.1.4.1.311.10.10.1"> + CERT_LOGOTYPE_GRAY_SCALE_IMAGE_INFO_CHOICE equ 1 + CERT_LOGOTYPE_COLOR_IMAGE_INFO_CHOICE equ 2 + CERT_LOGOTYPE_NO_IMAGE_RESOLUTION_CHOICE equ 0 + CERT_LOGOTYPE_BITS_IMAGE_RESOLUTION_CHOICE equ 1 + CERT_LOGOTYPE_TABLE_SIZE_IMAGE_RESOLUTION_CHOICE equ 2 + CERT_LOGOTYPE_DIRECT_INFO_CHOICE equ 1 + CERT_LOGOTYPE_INDIRECT_INFO_CHOICE equ 2 + szOID_LOYALTY_OTHER_LOGOTYPE TEXTEQU <"1.3.6.1.5.5.7.20.1"> + szOID_BACKGROUND_OTHER_LOGOTYPE TEXTEQU <"1.3.6.1.5.5.7.20.2"> + CERT_BIOMETRIC_PREDEFINED_DATA_CHOICE equ 1 + CERT_BIOMETRIC_OID_DATA_CHOICE equ 2 + CERT_BIOMETRIC_PICTURE_TYPE equ 0 + CERT_BIOMETRIC_SIGNATURE_TYPE equ 1 + OCSP_REQUEST_V1 equ 0 + OCSP_SUCCESSFUL_RESPONSE equ 0 + OCSP_MALFORMED_REQUEST_RESPONSE equ 1 + OCSP_INTERNAL_ERROR_RESPONSE equ 2 + OCSP_TRY_LATER_RESPONSE equ 3 + OCSP_SIG_REQUIRED_RESPONSE equ 5 + OCSP_UNAUTHORIZED_RESPONSE equ 6 + szOID_PKIX_OCSP_BASIC_SIGNED_RESPONSE TEXTEQU <"1.3.6.1.5.5.7.48.1.1"> + OCSP_BASIC_GOOD_CERT_STATUS equ 0 + OCSP_BASIC_REVOKED_CERT_STATUS equ 1 + OCSP_BASIC_UNKNOWN_CERT_STATUS equ 2 + OCSP_BASIC_RESPONSE_V1 equ 0 + OCSP_BASIC_BY_NAME_RESPONDER_ID equ 1 + OCSP_BASIC_BY_KEY_RESPONDER_ID equ 2 + CRYPT_OID_ENCODE_OBJECT_FUNC TEXTEQU <"CryptDllEncodeObject"> + CRYPT_OID_DECODE_OBJECT_FUNC TEXTEQU <"CryptDllDecodeObject"> + CRYPT_OID_ENCODE_OBJECT_EX_FUNC TEXTEQU <"CryptDllEncodeObjectEx"> + CRYPT_OID_DECODE_OBJECT_EX_FUNC TEXTEQU <"CryptDllDecodeObjectEx"> + CRYPT_OID_CREATE_COM_OBJECT_FUNC TEXTEQU <"CryptDllCreateCOMObject"> + CRYPT_OID_VERIFY_REVOCATION_FUNC TEXTEQU <"CertDllVerifyRevocation"> + CRYPT_OID_VERIFY_CTL_USAGE_FUNC TEXTEQU <"CertDllVerifyCTLUsage"> + CRYPT_OID_FORMAT_OBJECT_FUNC TEXTEQU <"CryptDllFormatObject"> + CRYPT_OID_FIND_OID_INFO_FUNC TEXTEQU <"CryptDllFindOIDInfo"> + CRYPT_OID_FIND_LOCALIZED_NAME_FUNC TEXTEQU <"CryptDllFindLocalizedName"> + CRYPT_OID_REGPATH TEXTEQU <"Software\\Microsoft\\Cryptography\\OID"> + CRYPT_OID_REG_DLL_VALUE_NAME TEXTEQU + CRYPT_OID_REG_FUNC_NAME_VALUE_NAME TEXTEQU + CRYPT_OID_REG_FUNC_NAME_VALUE_NAME_A TEXTEQU <"FuncName"> + CRYPT_OID_REG_FLAGS_VALUE_NAME TEXTEQU + CRYPT_DEFAULT_OID TEXTEQU <"DEFAULT"> + CALG_OID_INFO_CNG_ONLY equ 0FFFFFFFFh + CALG_OID_INFO_PARAMETERS equ 0FFFFFFFEh + CRYPT_OID_INFO_HASH_PARAMETERS_ALGORITHM TEXTEQU + CRYPT_OID_INFO_ECC_PARAMETERS_ALGORITHM TEXTEQU + CRYPT_OID_INFO_MGF1_PARAMETERS_ALGORITHM TEXTEQU + CRYPT_OID_INFO_NO_SIGN_ALGORITHM TEXTEQU + CRYPT_OID_INFO_OAEP_PARAMETERS_ALGORITHM TEXTEQU + CRYPT_OID_INFO_ECC_WRAP_PARAMETERS_ALGORITHM TEXTEQU + CRYPT_OID_PUBKEY_SIGN_ONLY_FLAG equ 80000000h + CRYPT_OID_PUBKEY_ENCRYPT_ONLY_FLAG equ 40000000h + CRYPT_OID_INFO_CNG_ALGID_KEY equ 5 + CRYPT_OID_INFO_CNG_SIGN_KEY equ 6 + CRYPT_OID_INFO_OID_KEY_FLAGS_MASK equ 0FFFF0000h + CRYPT_OID_INFO_PUBKEY_SIGN_KEY_FLAG equ 80000000h + CRYPT_OID_INFO_PUBKEY_ENCRYPT_KEY_FLAG equ 40000000h + CRYPT_OID_DISABLE_SEARCH_DS_FLAG equ 80000000h + CRYPT_OID_INFO_OID_GROUP_BIT_LEN_MASK equ 0FFF0000h + CRYPT_OID_INFO_OID_GROUP_BIT_LEN_SHIFT equ 16 + CRYPT_LOCALIZED_NAME_OID TEXTEQU <"LocalizedNames"> + szOID_PKCS_7_DATA TEXTEQU <"1.2.840.113549.1.7.1"> + szOID_PKCS_7_SIGNED TEXTEQU <"1.2.840.113549.1.7.2"> + szOID_PKCS_7_ENVELOPED TEXTEQU <"1.2.840.113549.1.7.3"> + szOID_PKCS_7_SIGNEDANDENVELOPED TEXTEQU <"1.2.840.113549.1.7.4"> + szOID_PKCS_7_DIGESTED TEXTEQU <"1.2.840.113549.1.7.5"> + szOID_PKCS_7_ENCRYPTED TEXTEQU <"1.2.840.113549.1.7.6"> + szOID_PKCS_9_CONTENT_TYPE TEXTEQU <"1.2.840.113549.1.9.3"> + szOID_PKCS_9_MESSAGE_DIGEST TEXTEQU <"1.2.840.113549.1.9.4"> + CMSG_ALL_FLAGS equ 0 + CMSG_OID_GEN_ENCRYPT_KEY_FUNC TEXTEQU <"CryptMsgDllGenEncryptKey"> + CMSG_OID_EXPORT_ENCRYPT_KEY_FUNC TEXTEQU <"CryptMsgDllExportEncryptKey"> + CMSG_OID_IMPORT_ENCRYPT_KEY_FUNC TEXTEQU <"CryptMsgDllImportEncryptKey"> + CMSG_CONTENT_ENCRYPT_FREE_OBJID_FLAG equ 00000002h + CMSG_OID_GEN_CONTENT_ENCRYPT_KEY_FUNC TEXTEQU <"CryptMsgDllGenContentEncryptKey"> + CMSG_OID_CAPI1_GEN_CONTENT_ENCRYPT_KEY_FUNC TEXTEQU <"CryptMsgDllGenContentEncryptKey"> + CMSG_OID_CNG_GEN_CONTENT_ENCRYPT_KEY_FUNC TEXTEQU <"CryptMsgDllCNGGenContentEncryptKey"> + CMSG_KEY_TRANS_ENCRYPT_FREE_OBJID_FLAG equ 00000002h + CMSG_OID_EXPORT_KEY_TRANS_FUNC TEXTEQU <"CryptMsgDllExportKeyTrans"> + CMSG_OID_CAPI1_EXPORT_KEY_TRANS_FUNC TEXTEQU <"CryptMsgDllExportKeyTrans"> + CMSG_OID_CNG_EXPORT_KEY_TRANS_FUNC TEXTEQU <"CryptMsgDllCNGExportKeyTrans"> + CMSG_KEY_AGREE_ENCRYPT_FREE_OBJID_FLAG equ 00000020h + CMSG_OID_EXPORT_KEY_AGREE_FUNC TEXTEQU <"CryptMsgDllExportKeyAgree"> + CMSG_OID_CAPI1_EXPORT_KEY_AGREE_FUNC TEXTEQU <"CryptMsgDllExportKeyAgree"> + CMSG_OID_CNG_EXPORT_KEY_AGREE_FUNC TEXTEQU <"CryptMsgDllCNGExportKeyAgree"> + CMSG_MAIL_LIST_ENCRYPT_FREE_OBJID_FLAG equ 00000002h + CMSG_OID_EXPORT_MAIL_LIST_FUNC TEXTEQU <"CryptMsgDllExportMailList"> + CMSG_OID_CAPI1_EXPORT_MAIL_LIST_FUNC TEXTEQU <"CryptMsgDllExportMailList"> + CMSG_OID_IMPORT_KEY_TRANS_FUNC TEXTEQU <"CryptMsgDllImportKeyTrans"> + CMSG_OID_CAPI1_IMPORT_KEY_TRANS_FUNC TEXTEQU <"CryptMsgDllImportKeyTrans"> + CMSG_OID_IMPORT_KEY_AGREE_FUNC TEXTEQU <"CryptMsgDllImportKeyAgree"> + CMSG_OID_CAPI1_IMPORT_KEY_AGREE_FUNC TEXTEQU <"CryptMsgDllImportKeyAgree"> + CMSG_OID_IMPORT_MAIL_LIST_FUNC TEXTEQU <"CryptMsgDllImportMailList"> + CMSG_OID_CAPI1_IMPORT_MAIL_LIST_FUNC TEXTEQU <"CryptMsgDllImportMailList"> + CMSG_OID_CNG_IMPORT_KEY_TRANS_FUNC TEXTEQU <"CryptMsgDllCNGImportKeyTrans"> + CMSG_OID_CNG_IMPORT_KEY_AGREE_FUNC TEXTEQU <"CryptMsgDllCNGImportKeyAgree"> + CMSG_OID_CNG_IMPORT_CONTENT_ENCRYPT_KEY_FUNC TEXTEQU <"CryptMsgDllCNGImportContentEncryptKey"> + CERT_AUTHORITY_INFO_ACCESS_PROP_ID equ 68 + CERT_BACKED_UP_PROP_ID equ 69 + CERT_OCSP_RESPONSE_PROP_ID equ 70 + CERT_REQUEST_ORIGINATOR_PROP_ID equ 71 + CERT_SOURCE_LOCATION_PROP_ID equ 72 + CERT_SOURCE_URL_PROP_ID equ 73 + CERT_NEW_KEY_PROP_ID equ 74 + CERT_OCSP_CACHE_PREFIX_PROP_ID equ 75 + CERT_SMART_CARD_ROOT_INFO_PROP_ID equ 76 + CERT_NO_AUTO_EXPIRE_CHECK_PROP_ID equ 77 + CERT_NCRYPT_KEY_HANDLE_PROP_ID equ 78 + CERT_HCRYPTPROV_OR_NCRYPT_KEY_HANDLE_PROP_ID equ 79 + CERT_SUBJECT_INFO_ACCESS_PROP_ID equ 80 + CERT_CA_OCSP_AUTHORITY_INFO_ACCESS_PROP_ID equ 81 + CERT_CA_DISABLE_CRL_PROP_ID equ 82 + CERT_ROOT_PROGRAM_CERT_POLICIES_PROP_ID equ 83 + szOID_CERT_PROP_ID_PREFIX TEXTEQU <"1.3.6.1.4.1.311.10.11."> + szOID_CERT_KEY_IDENTIFIER_PROP_ID TEXTEQU <"1.3.6.1.4.1.311.10.11.20"> + szOID_CERT_ISSUER_SERIAL_NUMBER_MD5_HASH_PROP_ID TEXTEQU <"1.3.6.1.4.1.311.10.11.28"> + szOID_CERT_SUBJECT_NAME_MD5_HASH_PROP_ID TEXTEQU <"1.3.6.1.4.1.311.10.11.29"> + szOID_CERT_MD5_HASH_PROP_ID TEXTEQU <"1.3.6.1.4.1.311.10.11.4"> + CERT_ACCESS_STATE_GP_SYSTEM_STORE_FLAG equ 8h + CERT_NCRYPT_KEY_SPEC equ 0FFFFFFFFh + sz_CERT_STORE_PROV_MEMORY TEXTEQU <"Memory"> + sz_CERT_STORE_PROV_FILENAME_W TEXTEQU <"File"> + sz_CERT_STORE_PROV_FILENAME TEXTEQU <"File"> + sz_CERT_STORE_PROV_SYSTEM_W TEXTEQU <"System"> + sz_CERT_STORE_PROV_SYSTEM TEXTEQU <"System"> + sz_CERT_STORE_PROV_PKCS7 TEXTEQU <"PKCS7"> + sz_CERT_STORE_PROV_PKCS12 TEXTEQU <"PKCS12"> + sz_CERT_STORE_PROV_SERIALIZED TEXTEQU <"Serialized"> + sz_CERT_STORE_PROV_COLLECTION TEXTEQU <"Collection"> + sz_CERT_STORE_PROV_SYSTEM_REGISTRY_W TEXTEQU <"SystemRegistry"> + sz_CERT_STORE_PROV_SYSTEM_REGISTRY TEXTEQU <"SystemRegistry"> + sz_CERT_STORE_PROV_PHYSICAL_W TEXTEQU <"Physical"> + sz_CERT_STORE_PROV_PHYSICAL TEXTEQU <"Physical"> + sz_CERT_STORE_PROV_SMART_CARD_W TEXTEQU <"SmartCard"> + sz_CERT_STORE_PROV_SMART_CARD TEXTEQU <"SmartCard"> + sz_CERT_STORE_PROV_LDAP_W TEXTEQU <"Ldap"> + sz_CERT_STORE_PROV_LDAP TEXTEQU <"Ldap"> + CERT_GROUP_POLICY_SYSTEM_STORE_REGPATH TEXTEQU + CERT_EFSBLOB_VALUE_NAME TEXTEQU + CERT_PROT_ROOT_FLAGS_VALUE_NAME TEXTEQU + CERT_PROT_ROOT_DISABLE_PEER_TRUST equ 10000h + CERT_PROT_ROOT_PEER_USAGES_VALUE_NAME TEXTEQU + CERT_PROT_ROOT_PEER_USAGES_VALUE_NAME_A TEXTEQU <"PeerUsages"> + CERT_LOCAL_MACHINE_SYSTEM_STORE_REGPATH TEXTEQU + CERT_TRUST_PUB_AUTHENTICODE_FLAGS_VALUE_NAME TEXTEQU + CERT_OCM_SUBCOMPONENTS_ROOT_AUTO_UPDATE_VALUE_NAME TEXTEQU + CERT_DISABLE_ROOT_AUTO_UPDATE_VALUE_NAME TEXTEQU + CERT_AUTH_ROOT_AUTO_UPDATE_ROOT_DIR_URL_VALUE_NAME TEXTEQU + CERT_AUTH_ROOT_AUTO_UPDATE_SYNC_DELTA_TIME_VALUE_NAME TEXTEQU + CERT_AUTH_ROOT_AUTO_UPDATE_FLAGS_VALUE_NAME TEXTEQU + CERT_AUTH_ROOT_CTL_FILENAME TEXTEQU + CERT_AUTH_ROOT_CTL_FILENAME_A TEXTEQU <"authroot.stl"> + CERT_AUTH_ROOT_CAB_FILENAME TEXTEQU + CERT_AUTH_ROOT_SEQ_FILENAME TEXTEQU + CERT_AUTH_ROOT_CERT_EXT TEXTEQU + CERT_IE_DIRTY_FLAGS_REGPATH TEXTEQU + CRYPT_OID_OPEN_STORE_PROV_FUNC TEXTEQU <"CertDllOpenStoreProv"> + CERT_STORE_PROV_GP_SYSTEM_STORE_FLAG equ 20h + CERT_STORE_SAVE_AS_PKCS12 equ 3 + CERT_COMPARE_SUBJECT_INFO_ACCESS equ 19 + CERT_FIND_EXT_ONLY_CTL_USAGE_FLAG equ 2h + CERT_FIND_PROP_ONLY_CTL_USAGE_FLAG equ 4h + CERT_PHYSICAL_STORE_DEFAULT_NAME TEXTEQU + CERT_PHYSICAL_STORE_GROUP_POLICY_NAME TEXTEQU + CERT_PHYSICAL_STORE_LOCAL_MACHINE_NAME TEXTEQU + CERT_PHYSICAL_STORE_DS_USER_CERTIFICATE_NAME TEXTEQU + CERT_PHYSICAL_STORE_LOCAL_MACHINE_GROUP_POLICY_NAME TEXTEQU + CERT_PHYSICAL_STORE_ENTERPRISE_NAME TEXTEQU + CERT_PHYSICAL_STORE_AUTH_ROOT_NAME TEXTEQU + CERT_PHYSICAL_STORE_SMART_CARD_NAME TEXTEQU + CRYPT_OID_OPEN_SYSTEM_STORE_PROV_FUNC TEXTEQU <"CertDllOpenSystemStoreProv"> + CRYPT_OID_REGISTER_SYSTEM_STORE_FUNC TEXTEQU <"CertDllRegisterSystemStore"> + CRYPT_OID_UNREGISTER_SYSTEM_STORE_FUNC TEXTEQU <"CertDllUnregisterSystemStore"> + CRYPT_OID_ENUM_SYSTEM_STORE_FUNC TEXTEQU <"CertDllEnumSystemStore"> + CRYPT_OID_REGISTER_PHYSICAL_STORE_FUNC TEXTEQU <"CertDllRegisterPhysicalStore"> + CRYPT_OID_UNREGISTER_PHYSICAL_STORE_FUNC TEXTEQU <"CertDllUnregisterPhysicalStore"> + CRYPT_OID_ENUM_PHYSICAL_STORE_FUNC TEXTEQU <"CertDllEnumPhysicalStore"> + CRYPT_OID_SYSTEM_STORE_LOCATION_VALUE_NAME TEXTEQU + CERT_VERIFY_REV_SERVER_OCSP_FLAG equ 00000008h + CRYPT_VERIFY_CERT_SIGN_SUBJECT_OCSP_BASIC_SIGNED_RESPONSE equ 4 + CRYPT_OID_EXTRACT_ENCODED_SIGNATURE_PARAMETERS_FUNC TEXTEQU <"CryptDllExtractEncodedSignatureParameters"> + CRYPT_OID_SIGN_AND_ENCODE_HASH_FUNC TEXTEQU <"CryptDllSignAndEncodeHash"> + CRYPT_OID_VERIFY_ENCODED_SIGNATURE_FUNC TEXTEQU <"CryptDllVerifyEncodedSignature"> + CRYPT_OID_EXPORT_PUBLIC_KEY_INFO_FUNC TEXTEQU <"CryptDllExportPublicKeyInfoEx"> + CRYPT_OID_EXPORT_PUBLIC_KEY_INFO_EX2_FUNC TEXTEQU <"CryptDllExportPublicKeyInfoEx2"> + CRYPT_OID_IMPORT_PUBLIC_KEY_INFO_FUNC TEXTEQU <"CryptDllImportPublicKeyInfoEx"> + CRYPT_OID_IMPORT_PUBLIC_KEY_INFO_EX2_FUNC TEXTEQU <"CryptDllImportPublicKeyInfoEx2"> + CRYPT_ACQUIRE_NO_HEALING equ 00000008h + CRYPT_ACQUIRE_NCRYPT_KEY_FLAGS_MASK equ 00070000h + CRYPT_ACQUIRE_ALLOW_NCRYPT_KEY_FLAG equ 00010000h + CRYPT_ACQUIRE_PREFER_NCRYPT_KEY_FLAG equ 00020000h + CRYPT_ACQUIRE_ONLY_NCRYPT_KEY_FLAG equ 00040000h + CRYPT_OID_IMPORT_PRIVATE_KEY_INFO_FUNC TEXTEQU <"CryptDllImportPrivateKeyInfoEx"> + CRYPT_OID_EXPORT_PRIVATE_KEY_INFO_FUNC TEXTEQU <"CryptDllExportPrivateKeyInfoEx"> + CERT_XML_NAME_STR equ 4 + CERT_NAME_STR_FORWARD_FLAG equ 01000000h + CERT_NAME_STR_FORCE_UTF8_DIR_STR_FLAG equ 00080000h + CERT_NAME_STR_DISABLE_UTF8_DIR_STR_FLAG equ 00100000h + CERT_QUERY_CONTENT_PFX_AND_LOAD equ 14 + CREDENTIAL_OID_PASSWORD_CREDENTIALS equ CREDENTIAL_OID_PASSWORD_CREDENTIALS_W + SCHEME_OID_RETRIEVE_ENCODED_OBJECT_FUNC TEXTEQU <"SchemeDllRetrieveEncodedObject"> + SCHEME_OID_RETRIEVE_ENCODED_OBJECTW_FUNC TEXTEQU <"SchemeDllRetrieveEncodedObjectW"> + CONTEXT_OID_CREATE_OBJECT_CONTEXT_FUNC TEXTEQU <"ContextDllCreateObjectContext"> + CRYPT_HTTP_POST_RETRIEVAL equ 00100000h + CRYPT_PROXY_CACHE_RETRIEVAL equ 00200000h + CRYPT_NOT_MODIFIED_RETRIEVAL equ 00400000h + CRYPT_OCSP_ONLY_RETRIEVAL equ 01000000h + CRYPTNET_URL_CACHE_PRE_FETCH_NONE equ 0 + CRYPTNET_URL_CACHE_PRE_FETCH_BLOB equ 1 + CRYPTNET_URL_CACHE_PRE_FETCH_CRL equ 2 + CRYPTNET_URL_CACHE_PRE_FETCH_OCSP equ 3 + CRYPTNET_URL_CACHE_PRE_FETCH_AUTOROOT_CAB equ 5 + CRYPTNET_URL_CACHE_DEFAULT_FLUSH equ 0 + CRYPTNET_URL_CACHE_DISABLE_FLUSH equ 0FFFFFFFFh + CRYPTNET_URL_CACHE_RESPONSE_NONE equ 0 + CRYPTNET_URL_CACHE_RESPONSE_HTTP equ 1 + CRYPTNET_URL_CACHE_RESPONSE_VALIDATED equ 8000h + URL_OID_GET_OBJECT_URL_FUNC TEXTEQU <"UrlDllGetObjectUrl"> + TIME_VALID_OID_GET_OBJECT_FUNC TEXTEQU <"TimeValidDllGetObject"> + TIME_VALID_OID_FLUSH_OBJECT_FUNC TEXTEQU <"TimeValidDllFlushObject"> + CERT_CHAIN_CACHE_RESYNC_FILETIME_VALUE_NAME TEXTEQU + CERT_CHAIN_DISABLE_UNSUPPORTED_CRITICAL_EXTENSIONS_VALUE_NAME TEXTEQU + CERT_CHAIN_MAX_AIA_URL_COUNT_IN_CERT_VALUE_NAME TEXTEQU + CERT_CHAIN_MAX_AIA_URL_RETRIEVAL_COUNT_PER_CHAIN_VALUE_NAME TEXTEQU + CERT_CHAIN_MAX_AIA_URL_RETRIEVAL_BYTE_COUNT_VALUE_NAME TEXTEQU + CERT_CHAIN_MAX_AIA_URL_RETRIEVAL_CERT_COUNT_VALUE_NAME TEXTEQU + CERT_CHAIN_OCSP_VALIDITY_SECONDS_VALUE_NAME TEXTEQU + CERT_SRV_OCSP_RESP_MIN_VALIDITY_SECONDS_VALUE_NAME TEXTEQU + CERT_SRV_OCSP_RESP_URL_RETRIEVAL_TIMEOUT_MILLISECONDS_VALUE_NAME TEXTEQU + CERT_SRV_OCSP_RESP_MAX_BEFORE_NEXT_UPDATE_SECONDS_VALUE_NAME TEXTEQU + CERT_SRV_OCSP_RESP_MIN_BEFORE_NEXT_UPDATE_SECONDS_VALUE_NAME TEXTEQU + CERT_SRV_OCSP_RESP_MIN_AFTER_NEXT_UPDATE_SECONDS_VALUE_NAME TEXTEQU + CRYPTNET_MAX_CACHED_OCSP_PER_CRL_COUNT_VALUE_NAME TEXTEQU + CRYPTNET_MAX_CACHED_OCSP_PER_CRL_COUNT_DEFAULT equ 500 + CRYPTNET_OCSP_AFTER_CRL_DISABLE equ 0FFFFFFFFh + CRYPTNET_URL_CACHE_DEFAULT_FLUSH_EXEMPT_SECONDS_VALUE_NAME TEXTEQU + CRYPTNET_PRE_FETCH_MIN_MAX_AGE_SECONDS_VALUE_NAME TEXTEQU + CRYPTNET_PRE_FETCH_MAX_MAX_AGE_SECONDS_VALUE_NAME TEXTEQU + CRYPTNET_PRE_FETCH_AFTER_PUBLISH_PRE_FETCH_DIVISOR_VALUE_NAME TEXTEQU + CRYPTNET_PRE_FETCH_AFTER_PUBLISH_PRE_FETCH_DIVISOR_DEFAULT equ 10 + CRYPTNET_PRE_FETCH_BEFORE_NEXT_UPDATE_PRE_FETCH_DIVISOR_VALUE_NAME TEXTEQU + CRYPTNET_PRE_FETCH_BEFORE_NEXT_UPDATE_PRE_FETCH_DIVISOR_DEFAULT equ 20 + CRYPTNET_PRE_FETCH_MIN_BEFORE_NEXT_UPDATE_PRE_FETCH_PERIOD_SECONDS_VALUE_NAME TEXTEQU + CRYPTNET_PRE_FETCH_VALIDITY_PERIOD_AFTER_NEXT_UPDATE_PRE_FETCH_DIVISOR_VALUE_NAME TEXTEQU + CRYPTNET_PRE_FETCH_VALIDITY_PERIOD_AFTER_NEXT_UPDATE_PRE_FETCH_DIVISOR_DEFAULT equ 10 + CRYPTNET_PRE_FETCH_MAX_AFTER_NEXT_UPDATE_PRE_FETCH_PERIOD_SECONDS_VALUE_NAME TEXTEQU + CRYPTNET_PRE_FETCH_MIN_AFTER_NEXT_UPDATE_PRE_FETCH_PERIOD_SECONDS_VALUE_NAME TEXTEQU + CRYPTNET_PRE_FETCH_AFTER_CURRENT_TIME_PRE_FETCH_PERIOD_SECONDS_VALUE_NAME TEXTEQU + CRYPTNET_PRE_FETCH_TRIGGER_PERIOD_SECONDS_VALUE_NAME TEXTEQU + CRYPTNET_PRE_FETCH_TRIGGER_DISABLE equ 0FFFFFFFFh + CRYPTNET_PRE_FETCH_SCAN_AFTER_TRIGGER_DELAY_SECONDS_VALUE_NAME TEXTEQU + CRYPTNET_PRE_FETCH_SCAN_AFTER_TRIGGER_DELAY_SECONDS_DEFAULT equ 30 + CRYPTNET_PRE_FETCH_RETRIEVAL_TIMEOUT_SECONDS_VALUE_NAME TEXTEQU + CERT_CHAIN_URL_RETRIEVAL_TIMEOUT_MILLISECONDS_VALUE_NAME TEXTEQU + CERT_CHAIN_REV_ACCUMULATIVE_URL_RETRIEVAL_TIMEOUT_MILLISECONDS_VALUE_NAME TEXTEQU + CRYPTNET_CACHED_OCSP_SWITCH_TO_CRL_COUNT_VALUE_NAME TEXTEQU + CRYPTNET_CACHED_OCSP_SWITCH_TO_CRL_COUNT_DEFAULT equ 50 + CRYPTNET_CRL_BEFORE_OCSP_ENABLE equ 0FFFFFFFFh + CERT_CHAIN_DISABLE_AIA_URL_RETRIEVAL_VALUE_NAME TEXTEQU + CERT_CHAIN_OPTIONS_VALUE_NAME TEXTEQU + CERT_CHAIN_OPTION_DISABLE_AIA_URL_RETRIEVAL equ 2h + CERT_CHAIN_CROSS_CERT_DOWNLOAD_INTERVAL_HOURS_VALUE_NAME TEXTEQU + CERT_CHAIN_CRL_VALIDITY_EXT_PERIOD_HOURS_VALUE_NAME TEXTEQU + CERT_CHAIN_CRL_VALIDITY_EXT_PERIOD_HOURS_DEFAULT equ 12 + CERT_TRUST_IS_EXPLICIT_DISTRUST equ 04000000h + CERT_TRUST_HAS_NOT_SUPPORTED_CRITICAL_EXT equ 08000000h + CERT_TRUST_IS_PEER_TRUSTED equ 00000800h + CERT_TRUST_HAS_CRL_VALIDITY_EXTENDED equ 00001000h + CERT_CHAIN_ENABLE_PEER_TRUST equ 00000400h + CERT_CHAIN_DISABLE_MY_PEER_TRUST equ 00000800h + CERT_CHAIN_POLICY_IGNORE_NOT_SUPPORTED_CRITICAL_EXT_FLAG equ 00002000h + CERT_CHAIN_POLICY_IGNORE_PEER_TRUST_FLAG equ 00001000h + CRYPT_OID_VERIFY_CERTIFICATE_CHAIN_POLICY_FUNC TEXTEQU <"CertDllVerifyCertificateChainPolicy"> + CRYPT_STRING_HEXRAW equ 0000000Ch + CRYPT_STRING_NOCRLF equ 40000000h + szOID_PKCS_12_PbeIds TEXTEQU <"1.2.840.113549.1.12.1"> + szOID_PKCS_12_pbeWithSHA1And128BitRC4 TEXTEQU <"1.2.840.113549.1.12.1.1"> + szOID_PKCS_12_pbeWithSHA1And40BitRC4 TEXTEQU <"1.2.840.113549.1.12.1.2"> + szOID_PKCS_12_pbeWithSHA1And3KeyTripleDES TEXTEQU <"1.2.840.113549.1.12.1.3"> + szOID_PKCS_12_pbeWithSHA1And2KeyTripleDES TEXTEQU <"1.2.840.113549.1.12.1.4"> + szOID_PKCS_12_pbeWithSHA1And128BitRC2 TEXTEQU <"1.2.840.113549.1.12.1.5"> + szOID_PKCS_12_pbeWithSHA1And40BitRC2 TEXTEQU <"1.2.840.113549.1.12.1.6"> + PKCS12_PREFER_CNG_KSP equ 00000100h + PKCS12_ALWAYS_CNG_KSP equ 00000200h + PKCS12_ALLOW_OVERWRITE_KEY equ 00004000h + PKCS12_NO_PERSIST_KEY equ 00008000h + PKCS12_INCLUDE_EXTENDED_PROPERTIES equ 0010h + WINEFS_SETUSERKEY_SET_CAPABILITIES equ 00000001h + WINEFS_SETUSERKEY_BLOCK_CACHE_FLUSH equ 00000002h + MAX_SID_SIZE equ 256 + EFS_METADATA_ADD_USER equ 00000001h + EFS_METADATA_REMOVE_USER equ 00000002h + EFS_METADATA_REPLACE_USER equ 00000004h + EFS_METADATA_GENERAL_OP equ 00000008h + SCARD_AUTOALLOCATE equ -1 + SCARD_SCOPE_USER equ 0 + SCARD_SCOPE_TERMINAL equ 1 + SCARD_SCOPE_SYSTEM equ 2 + SCARD_ALL_READERS TEXTEQU <"SCard$AllReaders\000"> + SCARD_DEFAULT_READERS TEXTEQU <"SCard$DefaultReaders\000"> + SCARD_LOCAL_READERS TEXTEQU <"SCard$LocalReaders\000"> + SCARD_SYSTEM_READERS TEXTEQU <"SCard$SystemReaders\000"> + SCARD_PROVIDER_PRIMARY equ 1 + SCARD_PROVIDER_CSP equ 2 + SCARD_PROVIDER_KSP equ 3 + SCARD_STATE_UNAWARE equ 00000000h + SCARD_STATE_IGNORE equ 00000001h + SCARD_STATE_CHANGED equ 00000002h + SCARD_STATE_UNKNOWN equ 00000004h + SCARD_STATE_UNAVAILABLE equ 00000008h + SCARD_STATE_EMPTY equ 00000010h + SCARD_STATE_PRESENT equ 00000020h + SCARD_STATE_ATRMATCH equ 00000040h + SCARD_STATE_EXCLUSIVE equ 00000080h + SCARD_STATE_INUSE equ 00000100h + SCARD_STATE_MUTE equ 00000200h + SCARD_STATE_UNPOWERED equ 00000400h + SCARD_SHARE_EXCLUSIVE equ 1 + SCARD_SHARE_SHARED equ 2 + SCARD_SHARE_DIRECT equ 3 + SCARD_LEAVE_CARD equ 0 + SCARD_RESET_CARD equ 1 + SCARD_UNPOWER_CARD equ 2 + SCARD_EJECT_CARD equ 3 + SC_DLG_MINIMAL_UI equ 01h + SC_DLG_NO_UI equ 02h + SC_DLG_FORCE_UI equ 04h + SCERR_NOCARDNAME equ 4000h + SCERR_NOGUIDS equ 8000h + BIDI_ACTION_ENUM_SCHEMA TEXTEQU + BIDI_ACTION_GET TEXTEQU + BIDI_ACTION_SET TEXTEQU + BIDI_ACTION_GET_ALL TEXTEQU + SPLREG_DEFAULT_SPOOL_DIRECTORY TEXTEQU <"DefaultSpoolDirectory"> + SPLREG_PORT_THREAD_PRIORITY_DEFAULT TEXTEQU <"PortThreadPriorityDefault"> + SPLREG_PORT_THREAD_PRIORITY TEXTEQU <"PortThreadPriority"> + SPLREG_SCHEDULER_THREAD_PRIORITY_DEFAULT TEXTEQU <"SchedulerThreadPriorityDefault"> + SPLREG_SCHEDULER_THREAD_PRIORITY TEXTEQU <"SchedulerThreadPriority"> + SPLREG_BEEP_ENABLED TEXTEQU <"BeepEnabled"> + SPLREG_NET_POPUP TEXTEQU <"NetPopup"> + SPLREG_RETRY_POPUP TEXTEQU <"RetryPopup"> + SPLREG_NET_POPUP_TO_COMPUTER TEXTEQU <"NetPopupToComputer"> + SPLREG_EVENT_LOG TEXTEQU <"EventLog"> + SPLREG_MAJOR_VERSION TEXTEQU <"MajorVersion"> + SPLREG_MINOR_VERSION TEXTEQU <"MinorVersion"> + SPLREG_ARCHITECTURE TEXTEQU <"Architecture"> + SPLREG_OS_VERSION TEXTEQU <"OSVersion"> + SPLREG_OS_VERSIONEX TEXTEQU <"OSVersionEx"> + SPLREG_DS_PRESENT TEXTEQU <"DsPresent"> + SPLREG_DS_PRESENT_FOR_USER TEXTEQU <"DsPresentForUser"> + SPLREG_REMOTE_FAX TEXTEQU <"RemoteFax"> + SPLREG_RESTART_JOB_ON_POOL_ERROR TEXTEQU <"RestartJobOnPoolError"> + SPLREG_RESTART_JOB_ON_POOL_ENABLED TEXTEQU <"RestartJobOnPoolEnabled"> + SPLREG_DNS_MACHINE_NAME TEXTEQU <"DNSMachineName"> + SPLREG_ALLOW_USER_MANAGEFORMS TEXTEQU <"AllowUserManageForms"> + SPLREG_WEBSHAREMGMT TEXTEQU <"WebShareMgmt"> + SPLDS_SPOOLER_KEY TEXTEQU <"DsSpooler"> + SPLDS_DRIVER_KEY TEXTEQU <"DsDriver"> + SPLDS_USER_KEY TEXTEQU <"DsUser"> + SPLDS_ASSET_NUMBER TEXTEQU <"assetNumber"> + SPLDS_BYTES_PER_MINUTE TEXTEQU <"bytesPerMinute"> + SPLDS_DESCRIPTION TEXTEQU <"description"> + SPLDS_DRIVER_NAME TEXTEQU <"driverName"> + SPLDS_DRIVER_VERSION TEXTEQU <"driverVersion"> + SPLDS_LOCATION TEXTEQU <"location"> + SPLDS_PORT_NAME TEXTEQU <"portName"> + SPLDS_PRINT_ATTRIBUTES TEXTEQU <"printAttributes"> + SPLDS_PRINT_BIN_NAMES TEXTEQU <"printBinNames"> + SPLDS_PRINT_COLLATE TEXTEQU <"printCollate"> + SPLDS_PRINT_COLOR TEXTEQU <"printColor"> + SPLDS_PRINT_DUPLEX_SUPPORTED TEXTEQU <"printDuplexSupported"> + SPLDS_PRINT_END_TIME TEXTEQU <"printEndTime"> + SPLDS_PRINTER_CLASS TEXTEQU <"printQueue"> + SPLDS_PRINTER_NAME TEXTEQU <"printerName"> + SPLDS_PRINT_KEEP_PRINTED_JOBS TEXTEQU <"printKeepPrintedJobs"> + SPLDS_PRINT_LANGUAGE TEXTEQU <"printLanguage"> + SPLDS_PRINT_MAC_ADDRESS TEXTEQU <"printMACAddress"> + SPLDS_PRINT_MAX_X_EXTENT TEXTEQU <"printMaxXExtent"> + SPLDS_PRINT_MAX_Y_EXTENT TEXTEQU <"printMaxYExtent"> + SPLDS_PRINT_MAX_RESOLUTION_SUPPORTED TEXTEQU <"printMaxResolutionSupported"> + SPLDS_PRINT_MEDIA_READY TEXTEQU <"printMediaReady"> + SPLDS_PRINT_MEDIA_SUPPORTED TEXTEQU <"printMediaSupported"> + SPLDS_PRINT_MEMORY TEXTEQU <"printMemory"> + SPLDS_PRINT_MIN_X_EXTENT TEXTEQU <"printMinXExtent"> + SPLDS_PRINT_MIN_Y_EXTENT TEXTEQU <"printMinYExtent"> + SPLDS_PRINT_NETWORK_ADDRESS TEXTEQU <"printNetworkAddress"> + SPLDS_PRINT_NOTIFY TEXTEQU <"printNotify"> + SPLDS_PRINT_NUMBER_UP TEXTEQU <"printNumberUp"> + SPLDS_PRINT_ORIENTATIONS_SUPPORTED TEXTEQU <"printOrientationsSupported"> + SPLDS_PRINT_OWNER TEXTEQU <"printOwner"> + SPLDS_PRINT_PAGES_PER_MINUTE TEXTEQU <"printPagesPerMinute"> + SPLDS_PRINT_RATE TEXTEQU <"printRate"> + SPLDS_PRINT_RATE_UNIT TEXTEQU <"printRateUnit"> + SPLDS_PRINT_SEPARATOR_FILE TEXTEQU <"printSeparatorFile"> + SPLDS_PRINT_SHARE_NAME TEXTEQU <"printShareName"> + SPLDS_PRINT_SPOOLING TEXTEQU <"printSpooling"> + SPLDS_PRINT_STAPLING_SUPPORTED TEXTEQU <"printStaplingSupported"> + SPLDS_PRINT_START_TIME TEXTEQU <"printStartTime"> + SPLDS_PRINT_STATUS TEXTEQU <"printStatus"> + SPLDS_PRIORITY TEXTEQU <"priority"> + SPLDS_SERVER_NAME TEXTEQU <"serverName"> + SPLDS_SHORT_SERVER_NAME TEXTEQU <"shortServerName"> + SPLDS_UNC_NAME TEXTEQU <"uNCName"> + SPLDS_URL TEXTEQU <"url"> + SPLDS_FLAGS TEXTEQU <"flags"> + SPLDS_VERSION_NUMBER TEXTEQU <"versionNumber"> + SPLDS_PRINTER_NAME_ALIASES TEXTEQU <"printerNameAliases"> + SPLDS_PRINTER_LOCATIONS TEXTEQU <"printerLocations"> + SPLDS_PRINTER_MODEL TEXTEQU <"printerModel"> + OLE_LPCSTR equ const + OT_LINK equ 1 + OT_EMBEDDED equ 2 + OT_STATIC equ 3 + OLEVERB_PRIMARY equ 0 + OF_SET equ 0001h + OF_GET equ 0002h + OF_HANDLER equ 0004h + WIN32 equ 100 + OLEIVERB_PRIMARY equ 0 + OLEIVERB_SHOW equ -1 + OLEIVERB_OPEN equ -2 + OLEIVERB_HIDE equ -3 + OLEIVERB_UIACTIVATE equ -4 + OLEIVERB_INPLACEACTIVATE equ -5 + OLEIVERB_DISCARDUNDOSTATE equ -6 + EMBDHLP_INPROC_HANDLER equ 0000h + EMBDHLP_INPROC_SERVER equ 0001h + EMBDHLP_CREATENOW equ 00000000h + EMBDHLP_DELAYCREATE equ 00010000h + OLECREATE_LEAVERUNNING equ 00000001h + CF_SCRIPTSONLY equ 00000400h + LBSELCHSTRINGA TEXTEQU <"commdlg_LBSelChangedNotify"> + SHAREVISTRINGA TEXTEQU <"commdlg_ShareViolation"> + FILEOKSTRINGA TEXTEQU <"commdlg_FileNameOK"> + COLOROKSTRINGA TEXTEQU <"commdlg_ColorOK"> + SETRGBSTRINGA TEXTEQU <"commdlg_SetRGBColor"> + HELPMSGSTRINGA TEXTEQU <"commdlg_help"> + FINDMSGSTRINGA TEXTEQU <"commdlg_FindReplace"> + LBSELCHSTRINGW TEXTEQU + SHAREVISTRINGW TEXTEQU + FILEOKSTRINGW TEXTEQU + COLOROKSTRINGW TEXTEQU + SETRGBSTRINGW TEXTEQU + HELPMSGSTRINGW TEXTEQU + FINDMSGSTRINGW TEXTEQU + _STRALIGN_USE_SECURE_CRT equ 0 + SERVICES_ACTIVE_DATABASEW TEXTEQU + SERVICES_FAILED_DATABASEW TEXTEQU + SERVICES_ACTIVE_DATABASEA TEXTEQU <"ServicesActive"> + SERVICES_FAILED_DATABASEA TEXTEQU <"ServicesFailed"> + SC_GROUP_IDENTIFIERW TEXTEQU + SC_GROUP_IDENTIFIERA TEXTEQU <'+'> + SERVICE_CONTROL_PARAMCHANGE equ 00000006h + SERVICE_CONTROL_NETBINDADD equ 00000007h + SERVICE_CONTROL_NETBINDREMOVE equ 00000008h + SERVICE_CONTROL_NETBINDENABLE equ 00000009h + SERVICE_CONTROL_NETBINDDISABLE equ 0000000Ah + SERVICE_CONTROL_DEVICEEVENT equ 0000000Bh + SERVICE_CONTROL_HARDWAREPROFILECHANGE equ 0000000Ch + SERVICE_CONTROL_POWEREVENT equ 0000000Dh + SERVICE_CONTROL_SESSIONCHANGE equ 0000000Eh + SERVICE_CONTROL_PRESHUTDOWN equ 0000000Fh + SERVICE_ACCEPT_PARAMCHANGE equ 00000008h + SERVICE_ACCEPT_NETBINDCHANGE equ 00000010h + SERVICE_ACCEPT_HARDWAREPROFILECHANGE equ 00000020h + SERVICE_ACCEPT_POWEREVENT equ 00000040h + SERVICE_ACCEPT_SESSIONCHANGE equ 00000080h + SERVICE_ACCEPT_PRESHUTDOWN equ 00000100h + SERVICE_RUNS_IN_SYSTEM_PROCESS equ 00000001h + SERVICE_CONFIG_DESCRIPTION equ 1 + SERVICE_CONFIG_FAILURE_ACTIONS equ 2 + SERVICE_CONFIG_DELAYED_AUTO_START_INFO equ 3 + SERVICE_CONFIG_FAILURE_ACTIONS_FLAG equ 4 + SERVICE_CONFIG_SERVICE_SID_INFO equ 5 + SERVICE_CONFIG_REQUIRED_PRIVILEGES_INFO equ 6 + SERVICE_CONFIG_PRESHUTDOWN_INFO equ 7 + SERVICE_NOTIFY_STATUS_CHANGE_1 equ 1 + SERVICE_NOTIFY_STATUS_CHANGE_2 equ 2 + SERVICE_NOTIFY_STATUS_CHANGE equ 2 + SERVICE_NOTIFY_STOPPED equ 00000001h + SERVICE_NOTIFY_START_PENDING equ 00000002h + SERVICE_NOTIFY_STOP_PENDING equ 00000004h + SERVICE_NOTIFY_RUNNING equ 00000008h + SERVICE_NOTIFY_CONTINUE_PENDING equ 00000010h + SERVICE_NOTIFY_PAUSE_PENDING equ 00000020h + SERVICE_NOTIFY_PAUSED equ 00000040h + SERVICE_NOTIFY_CREATED equ 00000080h + SERVICE_NOTIFY_DELETED equ 00000100h + SERVICE_NOTIFY_DELETE_PENDING equ 00000200h + SERVICE_STOP_REASON_FLAG_MIN equ 00000000h + SERVICE_STOP_REASON_FLAG_UNPLANNED equ 10000000h + SERVICE_STOP_REASON_FLAG_CUSTOM equ 20000000h + SERVICE_STOP_REASON_FLAG_PLANNED equ 40000000h + SERVICE_STOP_REASON_FLAG_MAX equ 80000000h + SERVICE_STOP_REASON_MAJOR_MIN equ 00000000h + SERVICE_STOP_REASON_MAJOR_OTHER equ 00010000h + SERVICE_STOP_REASON_MAJOR_HARDWARE equ 00020000h + SERVICE_STOP_REASON_MAJOR_OPERATINGSYSTEM equ 00030000h + SERVICE_STOP_REASON_MAJOR_SOFTWARE equ 00040000h + SERVICE_STOP_REASON_MAJOR_APPLICATION equ 00050000h + SERVICE_STOP_REASON_MAJOR_NONE equ 00060000h + SERVICE_STOP_REASON_MAJOR_MAX equ 00070000h + SERVICE_STOP_REASON_MAJOR_MIN_CUSTOM equ 00400000h + SERVICE_STOP_REASON_MAJOR_MAX_CUSTOM equ 00FF0000h + SERVICE_STOP_REASON_MINOR_MIN equ 00000000h + SERVICE_STOP_REASON_MINOR_OTHER equ 00000001h + SERVICE_STOP_REASON_MINOR_MAINTENANCE equ 00000002h + SERVICE_STOP_REASON_MINOR_INSTALLATION equ 00000003h + SERVICE_STOP_REASON_MINOR_UPGRADE equ 00000004h + SERVICE_STOP_REASON_MINOR_RECONFIG equ 00000005h + SERVICE_STOP_REASON_MINOR_HUNG equ 00000006h + SERVICE_STOP_REASON_MINOR_UNSTABLE equ 00000007h + SERVICE_STOP_REASON_MINOR_DISK equ 00000008h + SERVICE_STOP_REASON_MINOR_NETWORKCARD equ 00000009h + SERVICE_STOP_REASON_MINOR_ENVIRONMENT equ 0000000Ah + SERVICE_STOP_REASON_MINOR_HARDWARE_DRIVER equ 0000000Bh + SERVICE_STOP_REASON_MINOR_OTHERDRIVER equ 0000000Ch + SERVICE_STOP_REASON_MINOR_SERVICEPACK equ 0000000Dh + SERVICE_STOP_REASON_MINOR_SOFTWARE_UPDATE equ 0000000Eh + SERVICE_STOP_REASON_MINOR_SECURITYFIX equ 0000000Fh + SERVICE_STOP_REASON_MINOR_SECURITY equ 00000010h + SERVICE_STOP_REASON_MINOR_NETWORK_CONNECTIVITY equ 00000011h + SERVICE_STOP_REASON_MINOR_WMI equ 00000012h + SERVICE_STOP_REASON_MINOR_SERVICEPACK_UNINSTALL equ 00000013h + SERVICE_STOP_REASON_MINOR_SOFTWARE_UPDATE_UNINSTALL equ 00000014h + SERVICE_STOP_REASON_MINOR_SECURITYFIX_UNINSTALL equ 00000015h + SERVICE_STOP_REASON_MINOR_MMC equ 00000016h + SERVICE_STOP_REASON_MINOR_NONE equ 00000017h + SERVICE_STOP_REASON_MINOR_MAX equ 00000018h + SERVICE_STOP_REASON_MINOR_MIN_CUSTOM equ 00000100h + SERVICE_STOP_REASON_MINOR_MAX_CUSTOM equ 0000FFFFh + SERVICE_CONTROL_STATUS_REASON_INFO equ 1 + SERVICE_SID_TYPE_NONE equ 00000000h + SERVICE_SID_TYPE_UNRESTRICTED equ 00000001h + MDM_DIAGNOSTICS equ 00000800h + MDM_MASK_BEARERMODE equ 0000F000h + MDM_SHIFT_BEARERMODE equ 12 + MDM_MASK_PROTOCOLID equ 000F0000h + MDM_SHIFT_PROTOCOLID equ 16 + MDM_MASK_PROTOCOLDATA equ 0FF00000h + MDM_SHIFT_PROTOCOLDATA equ 20 + MDM_MASK_PROTOCOLINFO equ MDM_MASK_PROTOCOLID or MDM_MASK_PROTOCOLDATA + MDM_SHIFT_PROTOCOLINFO equ 16 + MDM_MASK_EXTENDEDINFO equ MDM_MASK_BEARERMODE or MDM_MASK_PROTOCOLINFO + MDM_SHIFT_EXTENDEDINFO equ 12 + MDM_BEARERMODE_ANALOG equ 0h + MDM_BEARERMODE_ISDN equ 1h + MDM_BEARERMODE_GSM equ 2h + MDM_PROTOCOLID_DEFAULT equ 0h + MDM_PROTOCOLID_HDLCPPP equ 1h + MDM_PROTOCOLID_V128 equ 2h + MDM_PROTOCOLID_X75 equ 3h + MDM_PROTOCOLID_V110 equ 4h + MDM_PROTOCOLID_V120 equ 5h + MDM_PROTOCOLID_AUTO equ 6h + MDM_PROTOCOLID_ANALOG equ 7h + MDM_PROTOCOLID_GPRS equ 8h + MDM_PROTOCOLID_PIAFS equ 9h + MDM_SHIFT_HDLCPPP_SPEED equ 0h + MDM_MASK_HDLCPPP_SPEED equ 7h + MDM_HDLCPPP_SPEED_DEFAULT equ 0h + MDM_HDLCPPP_SPEED_64K equ 1h + MDM_HDLCPPP_SPEED_56K equ 2h + MDM_SHIFT_HDLCPPP_AUTH equ 3h + MDM_MASK_HDLCPPP_AUTH equ 7h shl 3 + MDM_HDLCPPP_AUTH_DEFAULT equ 0h + MDM_HDLCPPP_AUTH_NONE equ 1h + MDM_HDLCPPP_AUTH_PAP equ 2h + MDM_HDLCPPP_AUTH_CHAP equ 3h + MDM_HDLCPPP_AUTH_MSCHAP equ 4h + MDM_SHIFT_HDLCPPP_ML equ 6h + MDM_MASK_HDLCPPP_ML equ 3h shl 6 + MDM_HDLCPPP_ML_DEFAULT equ 0h + MDM_HDLCPPP_ML_NONE equ 1h + MDM_HDLCPPP_ML_2 equ 2h + MDM_SHIFT_V120_SPEED equ 0h + MDM_MASK_V120_SPEED equ 7h + MDM_V120_SPEED_DEFAULT equ 0h + MDM_V120_SPEED_64K equ 1h + MDM_V120_SPEED_56K equ 2h + MDM_SHIFT_V120_ML equ 6h + MDM_MASK_V120_ML equ 3h shl 6 + MDM_V120_ML_DEFAULT equ 0h + MDM_V120_ML_NONE equ 1h + MDM_V120_ML_2 equ 2h + MDM_SHIFT_X75_DATA equ 0h + MDM_MASK_X75_DATA equ 7h + MDM_X75_DATA_DEFAULT equ 0h + MDM_X75_DATA_64K equ 1h + MDM_X75_DATA_128K equ 2h + MDM_X75_DATA_T_70 equ 3h + MDM_X75_DATA_BTX equ 4h + MDM_SHIFT_V110_SPEED equ 0h + MDM_MASK_V110_SPEED equ 0Fh + MDM_V110_SPEED_DEFAULT equ 0h + MDM_V110_SPEED_1DOT2K equ 1h + MDM_V110_SPEED_2DOT4K equ 2h + MDM_V110_SPEED_4DOT8K equ 3h + MDM_V110_SPEED_9DOT6K equ 4h + MDM_V110_SPEED_12DOT0K equ 5h + MDM_V110_SPEED_14DOT4K equ 6h + MDM_V110_SPEED_19DOT2K equ 7h + MDM_V110_SPEED_28DOT8K equ 8h + MDM_V110_SPEED_38DOT4K equ 9h + MDM_V110_SPEED_57DOT6K equ 0Ah + MDM_SHIFT_AUTO_SPEED equ 0h + MDM_MASK_AUTO_SPEED equ 7h + MDM_AUTO_SPEED_DEFAULT equ 0h + MDM_SHIFT_AUTO_ML equ 6h + MDM_MASK_AUTO_ML equ 3h shl 6 + MDM_AUTO_ML_DEFAULT equ 0h + MDM_AUTO_ML_NONE equ 1h + MDM_AUTO_ML_2 equ 2h + MDM_ANALOG_RLP_ON equ 0h + MDM_ANALOG_RLP_OFF equ 1h + MDM_ANALOG_V34 equ 2h + MDM_PIAFS_INCOMING equ 0 + MDM_PIAFS_OUTGOING equ 1 + IMEMENUITEM_STRING_SIZE equ 80 + NI_IMEMENUSELECTED equ 0018h + MOD_LEFT equ 8000h + MOD_RIGHT equ 4000h + MOD_ON_KEYUP equ 0800h + MOD_IGNORE_ALL_MODIFIER equ 0400h + IME_HOTKEY_PRIVATE_FIRST equ 200h + IME_ITHOTKEY_RECONVERTSTRING equ 203h + IME_HOTKEY_PRIVATE_LAST equ 21Fh + IMEVER_0310 equ 0003000Ah + IMEVER_0400 equ 00040000h + IME_PROP_COMPLETE_ON_UNSELECT equ 00100000h + SCS_CAP_SETRECONVERTSTRING equ 00000004h + IGP_GETIMEVERSION equ -4 + SCS_SETRECONVERTSTRING equ 00010000h + SCS_QUERYRECONVERTSTRING equ 00020000h + ATTR_FIXEDCONVERTED equ 05h + IME_CMODE_HANGUL equ 0001h + IME_CMODE_FIXED equ 0800h + IME_CMODE_RESERVED equ 0F0000000h + IME_SMODE_CONVERSATION equ 0010h + IME_SMODE_RESERVED equ 0000F000h + IMR_COMPOSITIONWINDOW equ 0001h + IMR_CANDIDATEWINDOW equ 0002h + IMR_COMPOSITIONFONT equ 0003h + IMR_RECONVERTSTRING equ 0004h + IMR_CONFIRMRECONVERTSTRING equ 0005h + IMR_QUERYCHARPOSITION equ 0006h + IMR_DOCUMENTFEED equ 0007h + IME_ESC_AUTOMATA equ 1009h + IME_ESC_PRIVATE_HOTKEY equ 100Ah + IME_ESC_GETHELPFILENAME equ 100Bh + IACE_CHILDREN equ 0001h + IACE_DEFAULT equ 0010h + IACE_IGNORENOCONTEXT equ 0020h + IGIMIF_RIGHTMENU equ 0001h + IGIMII_CMODE equ 0001h + IGIMII_SMODE equ 0002h + IGIMII_CONFIGURE equ 0004h + IGIMII_TOOLS equ 0008h + IGIMII_HELP equ 0010h + IGIMII_OTHER equ 0020h + IGIMII_INPUTTOOLS equ 0040h + IMFT_RADIOCHECK equ 00001h + IMFT_SEPARATOR equ 00002h + IMFT_SUBMENU equ 00004h + IMFS_GRAYED equ 00000003h + IMFS_DISABLED equ 00000003h + IMFS_CHECKED equ 00000008h + IMFS_HILITE equ 00000080h + IMFS_ENABLED equ 00000000h + IMFS_UNCHECKED equ 00000000h + IMFS_UNHILITE equ 00000000h + IMFS_DEFAULT equ 00001000h + +;;;; end vistalater + + +;;;; vc2010 + +_WIN32_WINNT_WIN6 equ 0600h +_WIN32_WINNT_VISTA equ 0600h +_WIN32_WINNT_WS08 equ 0600h +_WIN32_WINNT_WIN7 equ 0601h +_WIN32_IE_IE80 equ 0800h +_WIN32_IE_WIN6 equ _WIN32_IE_IE70 +_WIN32_IE_WIN7 equ _WIN32_IE_IE80 +NTDDI_WINXPSP3 equ 05010300h +NTDDI_WINXPSP4 equ 05010400h +NTDDI_WS03SP2 equ 05020200h +NTDDI_WS03SP3 equ 05020300h +NTDDI_WS03SP4 equ 05020400h +NTDDI_WIN6 equ 06000000h +NTDDI_WIN6SP1 equ 06000100h +NTDDI_WIN6SP2 equ 06000200h +NTDDI_WIN6SP3 equ 06000300h +NTDDI_WIN6SP4 equ 06000400h +NTDDI_VISTA equ NTDDI_WIN6 +NTDDI_VISTASP1 equ NTDDI_WIN6SP1 +NTDDI_VISTASP2 equ NTDDI_WIN6SP2 +NTDDI_VISTASP3 equ NTDDI_WIN6SP3 +NTDDI_VISTASP4 equ NTDDI_WIN6SP4 +NTDDI_WS08 equ NTDDI_WIN6SP1 +NTDDI_WS08SP2 equ NTDDI_WIN6SP2 +NTDDI_WS08SP3 equ NTDDI_WIN6SP3 +NTDDI_WS08SP4 equ NTDDI_WIN6SP4 +NTDDI_WIN7 equ 06010000h +PSAPI_VERSION equ 1 +NTDDI_VERSION equ 06010000h +_USE_DECLSPECS_FOR_SAL equ 0 +_USE_ATTRIBUTES_FOR_SAL equ 0 +_CRT_PACKING equ 8 +__STDC_SECURE_LIB__ equ 200411 +__STDC_WANT_SECURE_LIB__ equ 1 +_SECURECRT_FILL_BUFFER_PATTERN equ 0FEh +_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES equ 0 +_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT equ 0 +_CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES equ 1 +_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_MEMORY equ 0 +_CRT_SECURE_CPP_OVERLOAD_SECURE_NAMES_MEMORY equ 0 +_ARGMAX equ 100 +_UPPER equ 1h +_LOWER equ 2h +_DIGIT equ 4h +_SPACE equ 8h +_PUNCT equ 10h +_CONTROL equ 20h +_BLANK equ 40h +_HEX equ 80h +_LEADBYTE equ 8000h +_ALPHA equ 0100h +DUMMYUNIONNAME6 equ u6 +DUMMYUNIONNAME7 equ u7 +DUMMYUNIONNAME8 equ u8 +DUMMYUNIONNAME9 equ u9 +DUMMYSTRUCTNAME equ s +DUMMYSTRUCTNAME2 equ s2 +DUMMYSTRUCTNAME3 equ s3 +DUMMYSTRUCTNAME4 equ s4 +DUMMYSTRUCTNAME5 equ s5 +DISPATCH_LEVEL equ 2 +APC_LEVEL equ 1 +PASSIVE_LEVEL equ 0 +ALL_PROCESSOR_GROUPS equ 0FFFFh +VER_SUITE_WH_SERVER equ 00008000h +PRODUCT_HOME_PREMIUM_N equ 0000001Ah +PRODUCT_ENTERPRISE_N equ 0000001Bh +PRODUCT_ULTIMATE_N equ 0000001Ch +PRODUCT_WEB_SERVER_CORE equ 0000001Dh +PRODUCT_MEDIUMBUSINESS_SERVER_MANAGEMENT equ 0000001Eh +PRODUCT_MEDIUMBUSINESS_SERVER_SECURITY equ 0000001Fh +PRODUCT_MEDIUMBUSINESS_SERVER_MESSAGING equ 00000020h +PRODUCT_SERVER_FOUNDATION equ 00000021h +PRODUCT_HOME_PREMIUM_SERVER equ 00000022h +PRODUCT_SERVER_FOR_SMALLBUSINESS_V equ 00000023h +PRODUCT_STANDARD_SERVER_V equ 00000024h +PRODUCT_DATACENTER_SERVER_V equ 00000025h +PRODUCT_ENTERPRISE_SERVER_V equ 00000026h +PRODUCT_DATACENTER_SERVER_CORE_V equ 00000027h +PRODUCT_STANDARD_SERVER_CORE_V equ 00000028h +PRODUCT_ENTERPRISE_SERVER_CORE_V equ 00000029h +PRODUCT_HYPERV equ 0000002Ah +PRODUCT_STORAGE_EXPRESS_SERVER_CORE equ 0000002Bh +PRODUCT_STORAGE_STANDARD_SERVER_CORE equ 0000002Ch +PRODUCT_STORAGE_WORKGROUP_SERVER_CORE equ 0000002Dh +PRODUCT_STORAGE_ENTERPRISE_SERVER_CORE equ 0000002Eh +PRODUCT_STARTER_N equ 0000002Fh +PRODUCT_PROFESSIONAL equ 00000030h +PRODUCT_PROFESSIONAL_N equ 00000031h +PRODUCT_SB_SOLUTION_SERVER equ 00000032h +PRODUCT_SERVER_FOR_SB_SOLUTIONS equ 00000033h +PRODUCT_STANDARD_SERVER_SOLUTIONS equ 00000034h +PRODUCT_STANDARD_SERVER_SOLUTIONS_CORE equ 00000035h +PRODUCT_SB_SOLUTION_SERVER_EM equ 00000036h +PRODUCT_SERVER_FOR_SB_SOLUTIONS_EM equ 00000037h +PRODUCT_SOLUTION_EMBEDDEDSERVER equ 00000038h +PRODUCT_SOLUTION_EMBEDDEDSERVER_CORE equ 00000039h +PRODUCT_SMALLBUSINESS_SERVER_PREMIUM_CORE equ 0000003Fh +PRODUCT_ESSENTIALBUSINESS_SERVER_MGMT equ 0000003Bh +PRODUCT_ESSENTIALBUSINESS_SERVER_ADDL equ 0000003Ch +PRODUCT_ESSENTIALBUSINESS_SERVER_MGMTSVC equ 0000003Dh +PRODUCT_ESSENTIALBUSINESS_SERVER_ADDLSVC equ 0000003Eh +PRODUCT_CLUSTER_SERVER_V equ 00000040h +PRODUCT_EMBEDDED equ 00000041h +PRODUCT_STARTER_E equ 00000042h +PRODUCT_HOME_BASIC_E equ 00000043h +PRODUCT_HOME_PREMIUM_E equ 00000044h +PRODUCT_PROFESSIONAL_E equ 00000045h +PRODUCT_ENTERPRISE_E equ 00000046h +PRODUCT_ULTIMATE_E equ 00000047h +LANG_SCOTTISH_GAELIC equ 91h +SUBLANG_SCOTTISH_GAELIC equ 01h +SUBLANG_SERBIAN_MONTENEGRO_LATIN equ 0Bh +SUBLANG_SERBIAN_MONTENEGRO_CYRILLIC equ 0Ch +SUBLANG_SERBIAN_SERBIA_LATIN equ 09h +SUBLANG_SERBIAN_SERBIA_CYRILLIC equ 0Ah +SORT_CHINESE_RADICALSTROKE equ 4h +XSAVE_ALIGN equ 64 +SECURITY_LOCAL_LOGON_RID equ 00000001h +SECURITY_CRED_TYPE_BASE_RID equ 00000041h +SECURITY_CRED_TYPE_RID_COUNT equ 2 +SECURITY_CRED_TYPE_THIS_ORG_CERT_RID equ 00000001h +SECURITY_MIN_BASE_RID equ 00000050h +SECURITY_APPPOOL_ID_BASE_RID equ 00000052h +SECURITY_APPPOOL_ID_RID_COUNT equ 6 +SECURITY_VIRTUALSERVER_ID_BASE_RID equ 00000053h +SECURITY_VIRTUALSERVER_ID_RID_COUNT equ 6 +SECURITY_USERMODEDRIVERHOST_ID_BASE_RID equ 00000054h +SECURITY_USERMODEDRIVERHOST_ID_RID_COUNT equ 6 +SECURITY_CLOUD_INFRASTRUCTURE_SERVICES_ID_BASE_RID equ 00000055h +SECURITY_CLOUD_INFRASTRUCTURE_SERVICES_ID_RID_COUNT equ 6 +SECURITY_WMIHOST_ID_BASE_RID equ 00000056h +SECURITY_WMIHOST_ID_RID_COUNT equ 6 +SECURITY_TASK_ID_BASE_RID equ 00000057h +SECURITY_NFS_ID_BASE_RID equ 00000058h +SECURITY_COM_ID_BASE_RID equ 00000059h +SECURITY_VIRTUALACCOUNT_ID_RID_COUNT equ 6 +SECURITY_MAX_BASE_RID equ 0000006Fh +SECURITY_WINDOWSMOBILE_ID_BASE_RID equ 00000070h +DOMAIN_GROUP_RID_ENTERPRISE_READONLY_DOMAIN_CONTROLLERS equ 000001F2h +DOMAIN_ALIAS_RID_CERTSVC_DCOM_ACCESS_GROUP equ 0000023Eh +ACCESS_REASON_TYPE_MASK equ 0FFFF0000h +ACCESS_REASON_DATA_MASK equ 0000FFFFh +SE_SECURITY_DESCRIPTOR_FLAG_NO_OWNER_ACE equ 00000001h +SE_SECURITY_DESCRIPTOR_FLAG_NO_LABEL_ACE equ 00000002h +SE_SECURITY_DESCRIPTOR_VALID_FLAGS equ 00000003h +MAXIMUM_PROC_PER_GROUP equ 32 +MAX_HW_COUNTERS equ 16 +THREAD_PROFILING_FLAG_DISPATCH equ 00000001h +JOB_OBJECT_LIMIT_SUBSET_AFFINITY equ 00004000h +PF_XSAVE_ENABLED equ 17 +XSTATE_LEGACY_FLOATING_POINT equ 0 +XSTATE_LEGACY_SSE equ 1 +XSTATE_GSSE equ 2 +MAXIMUM_XSTATE_FEATURES equ 64 +FILE_SUPPORTS_HARD_LINKS equ 00400000h +FILE_SUPPORTS_EXTENDED_ATTRIBUTES equ 00800000h +FILE_SUPPORTS_OPEN_BY_FILE_ID equ 01000000h +FILE_SUPPORTS_USN_JOURNAL equ 02000000h +IO_REPARSE_TAG_HSM2 equ 80000006h +IO_REPARSE_TAG_WIM equ 80000008h +IO_REPARSE_TAG_CSV equ 80000009h +PROCESSOR_PERF_BOOST_POLICY_DISABLED equ 0 +PROCESSOR_PERF_BOOST_POLICY_MAX equ 100 +CORE_PARKING_POLICY_CHANGE_IDEAL equ 0 +CORE_PARKING_POLICY_CHANGE_SINGLE equ 1 +CORE_PARKING_POLICY_CHANGE_ROCKET equ 2 +CORE_PARKING_POLICY_CHANGE_MAX equ CORE_PARKING_POLICY_CHANGE_ROCKET +POWER_DEVICE_IDLE_POLICY_PERFORMANCE equ 0 +POWER_DEVICE_IDLE_POLICY_CONSERVATIVE equ 1 +DIAGNOSTIC_REASON_VERSION equ 0 +DIAGNOSTIC_REASON_SIMPLE_STRING equ 00000001h +DIAGNOSTIC_REASON_DETAILED_STRING equ 00000002h +DIAGNOSTIC_REASON_NOT_SPECIFIED equ 80000000h +DIAGNOSTIC_REASON_INVALID_FLAGS equ 80000003h +POWER_REQUEST_CONTEXT_VERSION equ 0 +POWER_REQUEST_CONTEXT_SIMPLE_STRING equ 00000001h +POWER_REQUEST_CONTEXT_DETAILED_STRING equ 00000002h +PowerRequestMaximum equ 3 +PROC_IDLE_BUCKET_COUNT_EX equ 16 +PPM_FIRMWARE_ACPI1C2 equ 00000001h +PPM_FIRMWARE_ACPI1C3 equ 00000002h +PPM_FIRMWARE_ACPI1TSTATES equ 00000004h +PPM_FIRMWARE_CST equ 00000008h +PPM_FIRMWARE_CSD equ 00000010h +PPM_FIRMWARE_PCT equ 00000020h +PPM_FIRMWARE_PSS equ 00000040h +PPM_FIRMWARE_XPSS equ 00000080h +PPM_FIRMWARE_PPC equ 00000100h +PPM_FIRMWARE_PSD equ 00000200h +PPM_FIRMWARE_PTC equ 00000400h +PPM_FIRMWARE_TSS equ 00000800h +PPM_FIRMWARE_TPC equ 00001000h +PPM_FIRMWARE_TSD equ 00002000h +PPM_FIRMWARE_PCCH equ 00004000h +PPM_FIRMWARE_PCCP equ 00008000h +POWER_ACTION_PSEUDO_TRANSITION equ 08000000h +POWER_USER_NOTIFY_FORCED_SHUTDOWN equ 00000020h +_NLSCMPERROR equ 2147483647 +RTL_UMS_VERSION equ 0100h +MAX_SUPPORTED_OS_NUM equ 4 +INVALID_OS_COUNT equ 0FFFFh +PERFORMANCE_DATA_VERSION equ 1 +READ_THREAD_PROFILING_FLAG_DISPATCHING equ 00000001h +READ_THREAD_PROFILING_FLAG_HARDWARE_COUNTERS equ 00000002h +REG_BOOT_HIVE equ 00000400h +CM_SERVICE_NETWORK_BOOT_LOAD equ 00000001h +CM_SERVICE_VIRTUAL_DISK_BOOT_LOAD equ 00000002h +CM_SERVICE_USB_DISK_BOOT_LOAD equ 00000004h +TRANSACTION_MANAGER_VOLATILE equ 00000001h +TRANSACTION_MANAGER_COMMIT_DEFAULT equ 00000000h +TRANSACTION_MANAGER_COMMIT_SYSTEM_VOLUME equ 00000002h +TRANSACTION_MANAGER_COMMIT_SYSTEM_HIVES equ 00000004h +TRANSACTION_MANAGER_COMMIT_LOWEST equ 00000008h +TRANSACTION_MANAGER_CORRUPT_FOR_RECOVERY equ 00000010h +TRANSACTION_MANAGER_CORRUPT_FOR_PROGRESS equ 00000020h +TRANSACTION_MANAGER_MAXIMUM_OPTION equ 0000003Fh +TRANSACTION_DO_NOT_PROMOTE equ 00000001h +TRANSACTION_MAXIMUM_OPTION equ 00000001h +RESOURCE_MANAGER_VOLATILE equ 00000001h +RESOURCE_MANAGER_COMMUNICATION equ 00000002h +RESOURCE_MANAGER_MAXIMUM_OPTION equ 00000003h +CRM_PROTOCOL_EXPLICIT_MARSHAL_ONLY equ 00000001h +CRM_PROTOCOL_DYNAMIC_MARSHAL_INFO equ 00000002h +CRM_PROTOCOL_MAXIMUM_OPTION equ 00000003h +ENLISTMENT_SUPERIOR equ 00000001h +ENLISTMENT_MAXIMUM_OPTION equ 00000001h +TRANSACTION_NOTIFY_MASK equ 3FFFFFFFh +TRANSACTION_NOTIFY_PREPREPARE equ 00000001h +TRANSACTION_NOTIFY_PREPARE equ 00000002h +TRANSACTION_NOTIFY_COMMIT equ 00000004h +TRANSACTION_NOTIFY_ROLLBACK equ 00000008h +TRANSACTION_NOTIFY_PREPREPARE_COMPLETE equ 00000010h +TRANSACTION_NOTIFY_PREPARE_COMPLETE equ 00000020h +TRANSACTION_NOTIFY_COMMIT_COMPLETE equ 00000040h +TRANSACTION_NOTIFY_ROLLBACK_COMPLETE equ 00000080h +TRANSACTION_NOTIFY_RECOVER equ 00000100h +TRANSACTION_NOTIFY_SINGLE_PHASE_COMMIT equ 00000200h +TRANSACTION_NOTIFY_DELEGATE_COMMIT equ 00000400h +TRANSACTION_NOTIFY_RECOVER_QUERY equ 00000800h +TRANSACTION_NOTIFY_ENLIST_PREPREPARE equ 00001000h +TRANSACTION_NOTIFY_LAST_RECOVER equ 00002000h +TRANSACTION_NOTIFY_INDOUBT equ 00004000h +TRANSACTION_NOTIFY_PROPAGATE_PULL equ 00008000h +TRANSACTION_NOTIFY_PROPAGATE_PUSH equ 00010000h +TRANSACTION_NOTIFY_MARSHAL equ 00020000h +TRANSACTION_NOTIFY_ENLIST_MASK equ 00040000h +TRANSACTION_NOTIFY_RM_DISCONNECTED equ 01000000h +TRANSACTION_NOTIFY_TM_ONLINE equ 02000000h +TRANSACTION_NOTIFY_COMMIT_REQUEST equ 04000000h +TRANSACTION_NOTIFY_PROMOTE equ 08000000h +TRANSACTION_NOTIFY_PROMOTE_NEW equ 10000000h +TRANSACTION_NOTIFY_REQUEST_OUTCOME equ 20000000h +TRANSACTION_NOTIFY_COMMIT_FINALIZE equ 40000000h +TRANSACTION_NOTIFICATION_TM_ONLINE_FLAG_IS_CLUSTERED equ 1h +KTM_MARSHAL_BLOB_VERSION_MAJOR equ 1 +KTM_MARSHAL_BLOB_VERSION_MINOR equ 1 +MAX_TRANSACTION_DESCRIPTION_LENGTH equ 64 +MAX_RESOURCEMANAGER_DESCRIPTION_LENGTH equ 64 +TRANSACTION_RIGHT_RESERVED1 equ 0040h +ACTIVATION_CONTEXT_SECTION_COMPATIBILITY_INFO equ 11 +__SAL_H_FULL_VER equ 140050727 +__SPECSTRINGS_STRICT_LEVEL equ 1 +GetCurrentTime equ GetTickCount +COPY_FILE_NO_BUFFERING equ 00001000h +REPLACEFILE_IGNORE_ACL_ERRORS equ 00000004h +FAIL_FAST_GENERATE_EXCEPTION_ADDRESS equ 1h +FAIL_FAST_NO_HARD_ERROR_DLG equ 2h +INHERIT_PARENT_AFFINITY equ 00010000h +PROCESS_AFFINITY_ENABLE_AUTO_UPDATE equ 00000001h +PROCESS_DEP_ENABLE equ 00000001h +PROCESS_DEP_DISABLE_ATL_THUNK_EMULATION equ 00000002h +FILE_CACHE_MAX_HARD_ENABLE equ 00000001h +FILE_CACHE_MAX_HARD_DISABLE equ 00000002h +FILE_CACHE_MIN_HARD_ENABLE equ 00000004h +FILE_CACHE_MIN_HARD_DISABLE equ 00000008h +STARTF_TITLEISLINKNAME equ 00000800h +STARTF_TITLEISAPPID equ 00001000h +STARTF_PREVENTPINNING equ 00002000h +LOAD_LIBRARY_REQUIRE_SIGNED_TARGET equ 00000080h +PROCESS_CREATION_MITIGATION_POLICY_DEP_ENABLE equ 01h +PROCESS_CREATION_MITIGATION_POLICY_DEP_ATL_THUNK_ENABLE equ 02h +PROCESS_CREATION_MITIGATION_POLICY_SEHOP_ENABLE equ 04h +RESOURCE_ENUM_VALIDATE equ 0008h +RESOURCE_ENUM_MODULE_EXACT equ 0010h +BASE_SEARCH_PATH_ENABLE_SAFE_SEARCHMODE equ 1h +BASE_SEARCH_PATH_DISABLE_SAFE_SEARCHMODE equ 10000h +BASE_SEARCH_PATH_PERMANENT equ 8000h +BASE_SEARCH_PATH_INVALID_FLAGS equ 18001h +FIND_FIRST_EX_LARGE_FETCH equ 00000002h +LOGON32_PROVIDER_VIRTUAL equ 4 +FACILITY_XPS equ 82 +FACILITY_USERMODE_VOLMGR equ 56 +FACILITY_USERMODE_VIRTUALIZATION equ 55 +FACILITY_USERMODE_VHD equ 58 +FACILITY_UI equ 42 +FACILITY_SDIAG equ 60 +FACILITY_RAS equ 83 +FACILITY_OPC equ 81 +FACILITY_WEBSERVICES equ 61 +FACILITY_MBN equ 84 +FACILITY_BCD equ 57 +ERROR_INCOMPATIBLE_WITH_GLOBAL_SHORT_NAME_REGISTRY_SETTING equ 304 +ERROR_SHORT_NAMES_NOT_ENABLED_ON_VOLUME equ 305 +ERROR_SECURITY_STREAM_IS_INCONSISTENT equ 306 +ERROR_INVALID_LOCK_RANGE equ 307 +ERROR_IMAGE_SUBSYSTEM_NOT_PRESENT equ 308 +ERROR_NOTIFICATION_GUID_ALREADY_DEFINED equ 309 +ERROR_OPLOCK_SWITCHED_TO_NEW_HANDLE equ 800 +ERROR_CANNOT_GRANT_REQUESTED_OPLOCK equ 801 +ERROR_CANNOT_BREAK_OPLOCK equ 802 +ERROR_OPLOCK_HANDLE_CLOSED equ 803 +ERROR_NO_ACE_CONDITION equ 804 +ERROR_INVALID_ACE_CONDITION equ 805 +ERROR_APP_HANG equ 1298 +ERROR_NO_NVRAM_RESOURCES equ 1470 +ERROR_FAIL_FAST_EXCEPTION equ 1653 +RPC_S_COOKIE_AUTH_FAILED equ 1833 +PEERDIST_ERROR_CONTENTINFO_VERSION_UNSUPPORTED equ 4050 +PEERDIST_ERROR_CANNOT_PARSE_CONTENTINFO equ 4051 +PEERDIST_ERROR_MISSING_DATA equ 4052 +PEERDIST_ERROR_NO_MORE equ 4053 +PEERDIST_ERROR_NOT_INITIALIZED equ 4054 +PEERDIST_ERROR_ALREADY_INITIALIZED equ 4055 +PEERDIST_ERROR_SHUTDOWN_IN_PROGRESS equ 4056 +PEERDIST_ERROR_INVALIDATED equ 4057 +PEERDIST_ERROR_ALREADY_EXISTS equ 4058 +PEERDIST_ERROR_OPERATION_NOTFOUND equ 4059 +PEERDIST_ERROR_ALREADY_COMPLETED equ 4060 +PEERDIST_ERROR_OUT_OF_BOUNDS equ 4061 +PEERDIST_ERROR_VERSION_UNSUPPORTED equ 4062 +PEERDIST_ERROR_INVALID_CONFIGURATION equ 4063 +PEERDIST_ERROR_NOT_LICENSED equ 4064 +PEERDIST_ERROR_SERVICE_UNAVAILABLE equ 4065 +ERROR_CLUSTER_MAX_NODES_IN_CLUSTER equ 5934 +ERROR_CLUSTER_TOO_MANY_NODES equ 5935 +ERROR_CLUSTER_OBJECT_ALREADY_USED equ 5936 +ERROR_NONCORE_GROUPS_FOUND equ 5937 +ERROR_FILE_SHARE_RESOURCE_CONFLICT equ 5938 +ERROR_CLUSTER_EVICT_INVALID_REQUEST equ 5939 +ERROR_CLUSTER_SINGLETON_RESOURCE equ 5940 +ERROR_CLUSTER_GROUP_SINGLETON_RESOURCE equ 5941 +ERROR_CLUSTER_RESOURCE_PROVIDER_FAILED equ 5942 +ERROR_CLUSTER_RESOURCE_CONFIGURATION_ERROR equ 5943 +ERROR_CLUSTER_GROUP_BUSY equ 5944 +ERROR_CLUSTER_NOT_SHARED_VOLUME equ 5945 +ERROR_CLUSTER_INVALID_SECURITY_DESCRIPTOR equ 5946 +ERROR_CLUSTER_SHARED_VOLUMES_IN_USE equ 5947 +ERROR_CLUSTER_USE_SHARED_VOLUMES_API equ 5948 +ERROR_CLUSTER_BACKUP_IN_PROGRESS equ 5949 +ERROR_NON_CSV_PATH equ 5950 +ERROR_CSV_VOLUME_NOT_LOCAL equ 5951 +ERROR_CLUSTER_WATCHDOG_TERMINATING equ 5952 +ERROR_ENCRYPTION_POLICY_DENIES_OPERATION equ 6022 +ERROR_TRANSACTIONMANAGER_IDENTITY_MISMATCH equ 6727 +ERROR_RM_CANNOT_BE_FROZEN_FOR_SNAPSHOT equ 6728 +ERROR_TRANSACTION_MUST_WRITETHROUGH equ 6729 +ERROR_TRANSACTION_NO_SUPERIOR equ 6730 +ERROR_HEURISTIC_DAMAGE_POSSIBLE equ 6731 +ERROR_EXPIRED_HANDLE equ 6854 +ERROR_TRANSACTION_NOT_ENLISTED equ 6855 +ERROR_TS_VIDEO_SUBSYSTEM_ERROR equ 7070 +ERROR_DS_DRA_CORRUPT_UTD_VECTOR equ 8629 +ERROR_DS_DRA_SECRETS_DENIED equ 8630 +ERROR_DS_RESERVED_MAPI_ID equ 8631 +ERROR_DS_MAPI_ID_NOT_AVAILABLE equ 8632 +ERROR_DS_DRA_MISSING_KRBTGT_SECRET equ 8633 +ERROR_DS_DOMAIN_NAME_EXISTS_IN_FOREST equ 8634 +ERROR_DS_FLAT_NAME_EXISTS_IN_FOREST equ 8635 +ERROR_INVALID_USER_PRINCIPAL_NAME equ 8636 +ERROR_DS_OID_MAPPED_GROUP_CANT_HAVE_MEMBERS equ 8637 +ERROR_DS_OID_NOT_FOUND equ 8638 +ERROR_DS_DRA_RECYCLED_TARGET equ 8639 +DNS_ERROR_DELEGATION_REQUIRED equ 9571 +DNS_ERROR_INVALID_POLICY_TABLE equ 9572 +WSA_SECURE_HOST_NOT_FOUND equ 11032 +WSA_IPSEC_NAME_POLICY_ERROR equ 11033 +ERROR_IPSEC_IKE_SIMULTANEOUS_REKEY equ 13821 +ERROR_IPSEC_IKE_CRITICAL_PAYLOAD_NOT_RECOGNIZED equ 13823 +ERROR_IPSEC_IKE_INVALID_MAJOR_VERSION equ 13880 +ERROR_IPSEC_IKE_KILL_DUMMY_NAP_TUNNEL equ 13898 +ERROR_IPSEC_IKE_INNER_IP_ASSIGNMENT_FAILURE equ 13899 +ERROR_IPSEC_IKE_REQUIRE_CP_PAYLOAD_MISSING equ 13900 +ERROR_IPSEC_KEY_MODULE_IMPERSONATION_NEGOTIATION_PENDING equ 13901 +ERROR_IPSEC_IKE_COEXISTENCE_SUPPRESS equ 13902 +ERROR_IPSEC_IKE_RATELIMIT_DROP equ 13903 +ERROR_IPSEC_IKE_PEER_DOESNT_SUPPORT_MOBIKE equ 13904 +ERROR_IPSEC_IKE_AUTHORIZATION_FAILURE equ 13905 +ERROR_IPSEC_IKE_STRONG_CRED_AUTHORIZATION_FAILURE equ 13906 +ERROR_IPSEC_IKE_AUTHORIZATION_FAILURE_WITH_OPTIONAL_RETRY equ 13907 +ERROR_IPSEC_IKE_STRONG_CRED_AUTHORIZATION_AND_CERTMAP_FAILURE equ 13908 +ERROR_IPSEC_IKE_NEG_STATUS_EXTENDED_END equ 13909 +ERROR_IPSEC_AUTH_FIREWALL_DROP equ 13917 +ERROR_IPSEC_THROTTLE_DROP equ 13918 +ERROR_IPSEC_DOSP_BLOCK equ 13925 +ERROR_IPSEC_DOSP_RECEIVED_MULTICAST equ 13926 +ERROR_IPSEC_DOSP_INVALID_PACKET equ 13927 +ERROR_IPSEC_DOSP_STATE_LOOKUP_FAILED equ 13928 +ERROR_IPSEC_DOSP_MAX_ENTRIES equ 13929 +ERROR_IPSEC_DOSP_KEYMOD_NOT_ALLOWED equ 13930 +ERROR_IPSEC_DOSP_NOT_INSTALLED equ 13931 +ERROR_IPSEC_DOSP_MAX_PER_IP_RATELIMIT_QUEUES equ 13932 +ERROR_HASH_NOT_SUPPORTED equ 15300 +ERROR_HASH_NOT_PRESENT equ 15301 +REMOTE_PROTOCOL_INFO_FLAG_LOOPBACK equ 00000001h +REMOTE_PROTOCOL_INFO_FLAG_OFFLINE equ 00000002h +MICROSOFT_WINBASE_H_DEFINE_INTERLOCKED_CPLUSPLUS_OVERLOADS equ 0 +PSINJECT_DLFONT equ 0DDDDDDDDh +DISPLAYCONFIG_MAXPATH equ 1024 +DISPLAYCONFIG_PATH_MODE_IDX_INVALID equ 0FFFFFFFFh +DISPLAYCONFIG_SOURCE_IN_USE equ 00000001h +DISPLAYCONFIG_TARGET_IN_USE equ 00000001h +DISPLAYCONFIG_TARGET_FORCIBLE equ 00000002h +DISPLAYCONFIG_TARGET_FORCED_AVAILABILITY_BOOT equ 00000004h +DISPLAYCONFIG_TARGET_FORCED_AVAILABILITY_PATH equ 00000008h +DISPLAYCONFIG_TARGET_FORCED_AVAILABILITY_SYSTEM equ 00000010h +DISPLAYCONFIG_PATH_ACTIVE equ 00000001h +QDC_ALL_PATHS equ 00000001h +QDC_ONLY_ACTIVE_PATHS equ 00000002h +QDC_DATABASE_CURRENT equ 00000004h +SDC_TOPOLOGY_INTERNAL equ 00000001h +SDC_TOPOLOGY_CLONE equ 00000002h +SDC_TOPOLOGY_EXTEND equ 00000004h +SDC_TOPOLOGY_EXTERNAL equ 00000008h +SDC_TOPOLOGY_SUPPLIED equ 00000010h +SDC_USE_SUPPLIED_DISPLAY_CONFIG equ 00000020h +SDC_VALIDATE equ 00000040h +SDC_APPLY equ 00000080h +SDC_NO_OPTIMIZATION equ 00000100h +SDC_SAVE_TO_DATABASE equ 00000200h +SDC_ALLOW_CHANGES equ 00000400h +SDC_PATH_PERSIST_IF_REQUIRED equ 00000800h +SDC_FORCE_MODE_ENUMERATION equ 00001000h +SDC_ALLOW_PATH_ORDER_CHANGES equ 00002000h +WM_GESTURE equ 0119h +WM_GESTURENOTIFY equ 011Ah +WM_TOUCH equ 0240h +WM_DWMSENDICONICTHUMBNAIL equ 0323h +WM_DWMSENDICONICLIVEPREVIEWBITMAP equ 0326h +MOD_NOREPEAT equ 4000h +WDA_NONE equ 00000000h +WDA_MONITOR equ 00000001h +TOUCHEVENTF_MOVE equ 0001h +TOUCHEVENTF_DOWN equ 0002h +TOUCHEVENTF_UP equ 0004h +TOUCHEVENTF_INRANGE equ 0008h +TOUCHEVENTF_PRIMARY equ 0010h +TOUCHEVENTF_NOCOALESCE equ 0020h +TOUCHEVENTF_PEN equ 0040h +TOUCHEVENTF_PALM equ 0080h +TOUCHINPUTMASKF_TIMEFROMSYSTEM equ 0001h +TOUCHINPUTMASKF_EXTRAINFO equ 0002h +TOUCHINPUTMASKF_CONTACTAREA equ 0004h +TWF_FINETOUCH equ 00000001h +TWF_WANTPALM equ 00000002h +SM_DIGITIZER equ 94 +SM_MAXIMUMTOUCHES equ 95 +TPM_WORKAREA equ 10000h +GR_GDIOBJECTS_PEAK equ 2 +GR_USEROBJECTS_PEAK equ 4 +GR_GLOBAL equ -2 +SPI_GETHUNGAPPTIMEOUT equ 0078h +SPI_SETHUNGAPPTIMEOUT equ 0079h +SPI_GETWAITTOKILLTIMEOUT equ 007Ah +SPI_SETWAITTOKILLTIMEOUT equ 007Bh +SPI_GETWAITTOKILLSERVICETIMEOUT equ 007Ch +SPI_SETWAITTOKILLSERVICETIMEOUT equ 007Dh +SPI_GETMOUSEDOCKTHRESHOLD equ 007Eh +SPI_SETMOUSEDOCKTHRESHOLD equ 007Fh +SPI_GETPENDOCKTHRESHOLD equ 0080h +SPI_SETPENDOCKTHRESHOLD equ 0081h +SPI_GETWINARRANGING equ 0082h +SPI_SETWINARRANGING equ 0083h +SPI_GETMOUSEDRAGOUTTHRESHOLD equ 0084h +SPI_SETMOUSEDRAGOUTTHRESHOLD equ 0085h +SPI_GETPENDRAGOUTTHRESHOLD equ 0086h +SPI_SETPENDRAGOUTTHRESHOLD equ 0087h +SPI_GETMOUSESIDEMOVETHRESHOLD equ 0088h +SPI_SETMOUSESIDEMOVETHRESHOLD equ 0089h +SPI_GETPENSIDEMOVETHRESHOLD equ 008Ah +SPI_SETPENSIDEMOVETHRESHOLD equ 008Bh +SPI_GETDRAGFROMMAXIMIZE equ 008Ch +SPI_SETDRAGFROMMAXIMIZE equ 008Dh +SPI_GETSNAPSIZING equ 008Eh +SPI_SETSNAPSIZING equ 008Fh +SPI_GETDOCKMOVING equ 0090h +SPI_SETDOCKMOVING equ 0091h +CDS_RESET_EX equ 20000000h +VP_COMMAND_GET equ 0001h +VP_COMMAND_SET equ 0002h +VP_FLAGS_TV_MODE equ 0001h +VP_FLAGS_TV_STANDARD equ 0002h +VP_FLAGS_FLICKER equ 0004h +VP_FLAGS_OVERSCAN equ 0008h +VP_FLAGS_MAX_UNSCALED equ 0010h +VP_FLAGS_POSITION equ 0020h +VP_FLAGS_BRIGHTNESS equ 0040h +VP_FLAGS_CONTRAST equ 0080h +VP_FLAGS_COPYPROTECT equ 0100h +VP_MODE_WIN_GRAPHICS equ 0001h +VP_MODE_TV_PLAYBACK equ 0002h +VP_TV_STANDARD_NTSC_M equ 0001h +VP_TV_STANDARD_NTSC_M_J equ 0002h +VP_TV_STANDARD_PAL_B equ 0004h +VP_TV_STANDARD_PAL_D equ 0008h +VP_TV_STANDARD_PAL_H equ 0010h +VP_TV_STANDARD_PAL_I equ 0020h +VP_TV_STANDARD_PAL_M equ 0040h +VP_TV_STANDARD_PAL_N equ 0080h +VP_TV_STANDARD_SECAM_B equ 0100h +VP_TV_STANDARD_SECAM_D equ 0200h +VP_TV_STANDARD_SECAM_G equ 0400h +VP_TV_STANDARD_SECAM_H equ 0800h +VP_TV_STANDARD_SECAM_K equ 1000h +VP_TV_STANDARD_SECAM_K1 equ 2000h +VP_TV_STANDARD_SECAM_L equ 4000h +VP_TV_STANDARD_WIN_VGA equ 8000h +VP_TV_STANDARD_NTSC_433 equ 00010000h +VP_TV_STANDARD_PAL_G equ 00020000h +VP_TV_STANDARD_PAL_60 equ 00040000h +VP_TV_STANDARD_SECAM_L1 equ 00080000h +VP_CP_TYPE_APS_TRIGGER equ 0001h +VP_CP_TYPE_MACROVISION equ 0002h +VP_CP_CMD_ACTIVATE equ 0001h +VP_CP_CMD_DEACTIVATE equ 0002h +VP_CP_CMD_CHANGE equ 0004h +EVENT_SYSTEM_END equ 00FFh +EVENT_OEM_DEFINED_START equ 0101h +EVENT_OEM_DEFINED_END equ 01FFh +EVENT_UIA_EVENTID_START equ 4E00h +EVENT_UIA_EVENTID_END equ 4EFFh +EVENT_UIA_PROPID_START equ 7500h +EVENT_UIA_PROPID_END equ 75FFh +EVENT_CONSOLE_END equ 40FFh +EVENT_SYSTEM_ARRANGMENTPREVIEW equ 8016h +EVENT_OBJECT_END equ 80FFh +EVENT_AIA_START equ 0A000h +EVENT_AIA_END equ 0AFFFh +MSGFLTINFO_NONE equ 0 +MSGFLTINFO_ALREADYALLOWED_FORWND equ 1 +MSGFLTINFO_ALREADYDISALLOWED_FORWND equ 2 +MSGFLTINFO_ALLOWED_HIGHER equ 3 +MSGFLT_RESET equ 0 +MSGFLT_ALLOW equ 1 +MSGFLT_DISALLOW equ 2 +GF_BEGIN equ 00000001h +GF_INERTIA equ 00000002h +GF_END equ 00000004h +GID_BEGIN equ 1 +GID_END equ 2 +GID_ZOOM equ 3 +GID_PAN equ 4 +GID_ROTATE equ 5 +GID_TWOFINGERTAP equ 6 +GID_PRESSANDTAP equ 7 +GID_ROLLOVER equ GID_PRESSANDTAP +GC_ALLGESTURES equ 00000001h +GC_ZOOM equ 00000001h +GC_PAN equ 00000001h +GC_PAN_WITH_SINGLE_FINGER_VERTICALLY equ 00000002h +GC_PAN_WITH_SINGLE_FINGER_HORIZONTALLY equ 00000004h +GC_PAN_WITH_GUTTER equ 00000008h +GC_PAN_WITH_INERTIA equ 00000010h +GC_ROTATE equ 00000001h +GC_TWOFINGERTAP equ 00000001h +GC_PRESSANDTAP equ 00000001h +GC_ROLLOVER equ GC_PRESSANDTAP +GESTURECONFIGMAXCOUNT equ 256 +GCF_INCLUDE_ANCESTORS equ 00000001h +NID_INTEGRATED_TOUCH equ 00000001h +NID_EXTERNAL_TOUCH equ 00000002h +NID_INTEGRATED_PEN equ 00000004h +NID_EXTERNAL_PEN equ 00000008h +NID_MULTI_INPUT equ 00000040h +NID_READY equ 00000080h +LCMAP_TITLECASE equ 00000300h +LOCALE_NEUTRALDATA equ 00000010h +LOCALE_SPECIFICDATA equ 00000020h +SORT_DIGITSASNUMBERS equ 00000008h +LOCALE_RETURN_GENITIVE_NAMES equ 10000000h +LOCALE_ALLOW_NEUTRAL_NAMES equ 08000000h +LOCALE_SLOCALIZEDDISPLAYNAME equ 00000002h +LOCALE_SENGLISHDISPLAYNAME equ 00000072h +LOCALE_SNATIVEDISPLAYNAME equ 00000073h +LOCALE_SLOCALIZEDLANGUAGENAME equ 0000006Fh +LOCALE_SENGLISHLANGUAGENAME equ 00001001h +LOCALE_SNATIVELANGUAGENAME equ 00000004h +LOCALE_SLOCALIZEDCOUNTRYNAME equ 00000006h +LOCALE_SENGLISHCOUNTRYNAME equ 00001002h +LOCALE_SNATIVECOUNTRYNAME equ 00000008h +LOCALE_IREADINGLAYOUT equ 00000070h +LOCALE_INEUTRAL equ 00000071h +LOCALE_INEGATIVEPERCENT equ 00000074h +LOCALE_IPOSITIVEPERCENT equ 00000075h +LOCALE_SPERCENT equ 00000076h +LOCALE_SPERMILLE equ 00000077h +LOCALE_SMONTHDAY equ 00000078h +LOCALE_SSHORTTIME equ 00000079h +LOCALE_SOPENTYPELANGUAGETAG equ 0000007Ah +LOCALE_SSORTLOCALE equ 0000007Bh +DATE_AUTOLAYOUT equ 00000040h +CAL_RETURN_GENITIVE_NAMES equ LOCALE_RETURN_GENITIVE_NAMES +CAL_SMONTHDAY equ 00000038h +CAL_SABBREVERASTRING equ 00000039h +MUI_CALLBACK_ALL_FLAGS equ MUI_CALLBACK_FLAG_UPGRADED_INSTALLATION +FILE_VER_GET_PREFETCHED equ 04h +REASON_SWINSTALL equ SHTDN_REASON_MAJOR_SOFTWAREorSHTDN_REASON_MINOR_INSTALLATION +REASON_HWINSTALL equ SHTDN_REASON_MAJOR_HARDWAREorSHTDN_REASON_MINOR_INSTALLATION +REASON_SERVICEHANG equ SHTDN_REASON_MAJOR_SOFTWAREorSHTDN_REASON_MINOR_HUNG +REASON_UNSTABLE equ SHTDN_REASON_MAJOR_SYSTEMorSHTDN_REASON_MINOR_UNSTABLE +REASON_SWHWRECONF equ SHTDN_REASON_MAJOR_SOFTWAREorSHTDN_REASON_MINOR_RECONFIG +REASON_OTHER equ SHTDN_REASON_MAJOR_OTHERorSHTDN_REASON_MINOR_OTHER +REASON_UNKNOWN equ SHTDN_REASON_UNKNOWN +REASON_LEGACY_API equ SHTDN_REASON_LEGACY_API +REASON_PLANNED_FLAG equ SHTDN_REASON_FLAG_PLANNED +SHUTDOWN_SKIP_SVC_PRESHUTDOWN equ 00000100h +WNNC_NET_SMB equ 00020000h +NEWFORMATDLGWITHLINK equ 1591 +IDC_MANAGE_LINK equ 1592 +SND_RING equ 00100000h +WAVE_MAPPED_DEFAULT_COMMUNICATION_DEVICE equ 0010h +ADDRESS_TAG_BIT equ 80000000h +_JBLEN equ 16 +RPC_C_BINDING_INFINITE_TIMEOUT equ 10 +RPC_C_BINDING_MIN_TIMEOUT equ 0 +RPC_C_BINDING_DEFAULT_TIMEOUT equ 5 +RPC_C_BINDING_MAX_TIMEOUT equ 9 +RPC_C_CANCEL_INFINITE_TIMEOUT equ -1 +RPC_C_LISTEN_MAX_CALLS_DEFAULT equ 1234 +RPC_C_PROTSEQ_MAX_REQS_DEFAULT equ 10 +RPC_C_BIND_TO_ALL_NICS equ 1 +RPC_C_USE_INTERNET_PORT equ 1h +RPC_C_USE_INTRANET_PORT equ 2h +RPC_C_DONT_FAIL equ 4h +RPC_C_RPCHTTP_USE_LOAD_BALANCE equ 8h +RPC_C_MQ_TEMPORARY equ 0000h +RPC_C_MQ_PERMANENT equ 0001h +RPC_C_MQ_CLEAR_ON_OPEN equ 0002h +RPC_C_MQ_USE_EXISTING_SECURITY equ 0004h +RPC_C_MQ_AUTHN_LEVEL_NONE equ 0000h +RPC_C_MQ_AUTHN_LEVEL_PKT_INTEGRITY equ 0008h +RPC_C_MQ_AUTHN_LEVEL_PKT_PRIVACY equ 0010h +RPC_C_MQ_EXPRESS equ 0 +RPC_C_MQ_RECOVERABLE equ 1 +RPC_C_MQ_JOURNAL_NONE equ 0 +RPC_C_MQ_JOURNAL_DEADLETTER equ 1 +RPC_C_MQ_JOURNAL_ALWAYS equ 2 +RPC_C_OPT_MQ_DELIVERY equ 1 +RPC_C_OPT_MQ_PRIORITY equ 2 +RPC_C_OPT_MQ_JOURNAL equ 3 +RPC_C_OPT_MQ_ACKNOWLEDGE equ 4 +RPC_C_OPT_MQ_AUTHN_SERVICE equ 5 +RPC_C_OPT_MQ_AUTHN_LEVEL equ 6 +RPC_C_OPT_MQ_TIME_TO_REACH_QUEUE equ 7 +RPC_C_OPT_MQ_TIME_TO_BE_RECEIVED equ 8 +RPC_C_OPT_BINDING_NONCAUSAL equ 9 +RPC_C_OPT_SECURITY_CALLBACK equ 10 +RPC_C_OPT_UNIQUE_BINDING equ 11 +RPC_C_OPT_MAX_OPTIONS equ 12 +RPC_C_OPT_CALL_TIMEOUT equ 12 +RPC_C_OPT_DONT_LINGER equ 13 +RPC_C_OPT_TRANS_SEND_BUFFER_SIZE equ 5 +RPC_C_OPT_TRUST_PEER equ 14 +RPC_C_OPT_ASYNC_BLOCK equ 15 +RPC_C_OPT_OPTIMIZE_TIME equ 16 +RPC_C_FULL_CERT_CHAIN equ 0001h +RPC_MGR_EPV equ void +RPC_C_STATS_CALLS_IN equ 0 +RPC_C_STATS_CALLS_OUT equ 1 +RPC_C_STATS_PKTS_IN equ 2 +RPC_C_STATS_PKTS_OUT equ 3 +RPC_C_AUTHN_LEVEL_DEFAULT equ 0 +RPC_C_AUTHN_LEVEL_NONE equ 1 +RPC_C_AUTHN_LEVEL_CONNECT equ 2 +RPC_C_AUTHN_LEVEL_CALL equ 3 +RPC_C_AUTHN_LEVEL_PKT equ 4 +RPC_C_AUTHN_LEVEL_PKT_INTEGRITY equ 5 +RPC_C_AUTHN_LEVEL_PKT_PRIVACY equ 6 +RPC_C_IMP_LEVEL_DEFAULT equ 0 +RPC_C_IMP_LEVEL_ANONYMOUS equ 1 +RPC_C_IMP_LEVEL_IDENTIFY equ 2 +RPC_C_IMP_LEVEL_IMPERSONATE equ 3 +RPC_C_IMP_LEVEL_DELEGATE equ 4 +RPC_C_QOS_IDENTITY_STATIC equ 0 +RPC_C_QOS_IDENTITY_DYNAMIC equ 1 +RPC_C_QOS_CAPABILITIES_DEFAULT equ 0h +RPC_C_QOS_CAPABILITIES_MUTUAL_AUTH equ 1h +RPC_C_QOS_CAPABILITIES_MAKE_FULLSIC equ 2h +RPC_C_QOS_CAPABILITIES_ANY_AUTHORITY equ 4h +RPC_C_QOS_CAPABILITIES_IGNORE_DELEGATE_FAILURE equ 8h +RPC_C_QOS_CAPABILITIES_LOCAL_MA_HINT equ 10h +RPC_C_QOS_CAPABILITIES_SCHANNEL_FULL_AUTH_IDENTITY equ 20h +RPC_C_AUTHN_NONE equ 0 +RPC_C_AUTHN_DCE_PRIVATE equ 1 +RPC_C_AUTHN_DCE_PUBLIC equ 2 +RPC_C_AUTHN_DEC_PUBLIC equ 4 +RPC_C_AUTHN_GSS_NEGOTIATE equ 9 +RPC_C_AUTHN_WINNT equ 10 +RPC_C_AUTHN_GSS_SCHANNEL equ 14 +RPC_C_AUTHN_GSS_KERBEROS equ 16 +RPC_C_AUTHN_DPA equ 17 +RPC_C_AUTHN_MSN equ 18 +RPC_C_AUTHN_DIGEST equ 21 +RPC_C_AUTHN_KERNEL equ 20 +RPC_C_AUTHN_NEGO_EXTENDER equ 30 +RPC_C_AUTHN_PKU2U equ 31 +RPC_C_AUTHN_MQ equ 100 +RPC_C_AUTHN_DEFAULT equ 0FFFFFFFFh +RPC_C_SECURITY_QOS_VERSION equ 1 +RPC_C_SECURITY_QOS_VERSION_1 equ 1 +SEC_WINNT_AUTH_IDENTITY_ANSI equ 1h +SEC_WINNT_AUTH_IDENTITY_UNICODE equ 2h +RPC_C_SECURITY_QOS_VERSION_2 equ 2 +RPC_C_AUTHN_INFO_TYPE_HTTP equ 1 +RPC_C_HTTP_AUTHN_TARGET_SERVER equ 1 +RPC_C_HTTP_AUTHN_TARGET_PROXY equ 2 +RPC_C_HTTP_AUTHN_SCHEME_BASIC equ 00000001h +RPC_C_HTTP_AUTHN_SCHEME_NTLM equ 00000002h +RPC_C_HTTP_AUTHN_SCHEME_PASSPORT equ 00000004h +RPC_C_HTTP_AUTHN_SCHEME_DIGEST equ 00000008h +RPC_C_HTTP_AUTHN_SCHEME_NEGOTIATE equ 00000010h +RPC_C_HTTP_AUTHN_SCHEME_CERT equ 00010000h +RPC_C_HTTP_FLAG_USE_SSL equ 1 +RPC_C_HTTP_FLAG_USE_FIRST_AUTH_SCHEME equ 2 +RPC_C_HTTP_FLAG_IGNORE_CERT_CN_INVALID equ 8 +RPC_C_HTTP_FLAG_ENABLE_CERT_REVOCATION_CHECK equ 16 +RPC_C_SECURITY_QOS_VERSION_3 equ 3 +RPC_C_SECURITY_QOS_VERSION_4 equ 4 +RPC_PROTSEQ_TCP equ 1h +RPC_PROTSEQ_NMP equ 2h +RPC_PROTSEQ_LRPC equ 3h +RPC_PROTSEQ_HTTP equ 4h +RPC_BHT_OBJECT_UUID_VALID equ 1h +RPC_BHO_NONCAUSAL equ 1h +RPC_BHO_DONTLINGER equ 2h +RPC_BHO_EXCLUSIVE_AND_GUARANTEED equ 4h +RPC_C_AUTHZ_NONE equ 0 +RPC_C_AUTHZ_NAME equ 1 +RPC_C_AUTHZ_DCE equ 2 +RPC_C_AUTHZ_DEFAULT equ 0FFFFFFFFh +DCE_C_ERROR_STRING_LEN equ 256 +RPC_C_EP_ALL_ELTS equ 0 +RPC_C_EP_MATCH_BY_IF equ 1 +RPC_C_EP_MATCH_BY_OBJ equ 2 +RPC_C_EP_MATCH_BY_BOTH equ 3 +RPC_C_VERS_ALL equ 1 +RPC_C_VERS_COMPATIBLE equ 2 +RPC_C_VERS_EXACT equ 3 +RPC_C_VERS_MAJOR_ONLY equ 4 +RPC_C_VERS_UPTO equ 5 +RPC_C_MGMT_INQ_IF_IDS equ 0 +RPC_C_MGMT_INQ_PRINC_NAME equ 1 +RPC_C_MGMT_INQ_STATS equ 2 +RPC_C_MGMT_IS_SERVER_LISTEN equ 3 +RPC_C_MGMT_STOP_SERVER_LISTEN equ 4 +RPC_C_PARM_MAX_PACKET_LENGTH equ 1 +RPC_C_PARM_BUFFER_LENGTH equ 2 +RPC_IF_AUTOLISTEN equ 0001h +RPC_IF_OLE equ 0002h +RPC_IF_ALLOW_UNKNOWN_AUTHORITY equ 0004h +RPC_IF_ALLOW_SECURE_ONLY equ 0008h +RPC_IF_ALLOW_CALLBACKS_WITH_NO_AUTH equ 0010h +RPC_IF_ALLOW_LOCAL_ONLY equ 0020h +RPC_IF_SEC_NO_CACHE equ 0040h +RPC_IF_SEC_CACHE_PER_PROC equ 0080h +RPC_IF_ASYNC_CALLBACK equ 0100h +RPC_FW_IF_FLAG_DCOM equ 0001h +RPC_CONTEXT_HANDLE_DEFAULT_FLAGS equ 00000000h +RPC_CONTEXT_HANDLE_FLAGS equ 30000000h +RPC_CONTEXT_HANDLE_SERIALIZE equ 10000000h +RPC_CONTEXT_HANDLE_DONT_SERIALIZE equ 20000000h +RPC_TYPE_STRICT_CONTEXT_HANDLE equ 40000000h +RPC_NCA_FLAGS_DEFAULT equ 00000000h +RPC_NCA_FLAGS_IDEMPOTENT equ 00000001h +RPC_NCA_FLAGS_BROADCAST equ 00000002h +RPC_NCA_FLAGS_MAYBE equ 00000004h +RPCFLG_HAS_GUARANTEE equ 00000010h +RPC_BUFFER_COMPLETE equ 00001000h +RPC_BUFFER_PARTIAL equ 00002000h +RPC_BUFFER_EXTRA equ 00004000h +RPC_BUFFER_ASYNC equ 00008000h +RPC_BUFFER_NONOTIFY equ 00010000h +RPCFLG_MESSAGE equ 01000000h +RPCFLG_AUTO_COMPLETE equ 08000000h +RPCFLG_LOCAL_CALL equ 10000000h +RPCFLG_INPUT_SYNCHRONOUS equ 20000000h +RPCFLG_ASYNCHRONOUS equ 40000000h +RPCFLG_NON_NDR equ 80000000h +RPCFLG_HAS_MULTI_SYNTAXES equ 02000000h +RPCFLG_HAS_CALLBACK equ 04000000h +RPCFLG_ACCESSIBILITY_BIT1 equ 00100000h +RPCFLG_ACCESSIBILITY_BIT2 equ 00200000h +RPCFLG_ACCESS_LOCAL equ 00400000h +NDR_CUSTOM_OR_DEFAULT_ALLOCATOR equ 10000000h +NDR_DEFAULT_ALLOCATOR equ 20000000h +RPC_FLAGS_VALID_BIT equ 00008000h +NT351_INTERFACE_SIZE equ 40h +RPC_INTERFACE_HAS_PIPES equ 0001h +TRANSPORT_TYPE_CN equ 01h +TRANSPORT_TYPE_DG equ 02h +TRANSPORT_TYPE_LPC equ 04h +TRANSPORT_TYPE_WMSG equ 08h +RPC_P_ADDR_FORMAT_TCP_IPV4 equ 1 +RPC_P_ADDR_FORMAT_TCP_IPV6 equ 2 +RPC_C_OPT_SESSION_ID equ 6 +RPC_C_OPT_COOKIE_AUTH equ 7 +RPC_C_OPT_RESOURCE_TYPE_UUID equ 8 +RPC_PROXY_CONNECTION_TYPE_IN_PROXY equ 0 +RPC_PROXY_CONNECTION_TYPE_OUT_PROXY equ 1 +RPC_C_NS_SYNTAX_DEFAULT equ 0 +RPC_C_NS_SYNTAX_DCE equ 3 +RPC_C_PROFILE_DEFAULT_ELT equ 0 +RPC_C_PROFILE_ALL_ELT equ 1 +RPC_C_PROFILE_ALL_ELTS equ RPC_C_PROFILE_ALL_ELT +RPC_C_PROFILE_MATCH_BY_IF equ 2 +RPC_C_PROFILE_MATCH_BY_MBR equ 3 +RPC_C_PROFILE_MATCH_BY_BOTH equ 4 +RPC_C_NS_DEFAULT_EXP_AGE equ -1 +RPC_S_OK equ ERROR_SUCCESS +RPC_S_INVALID_ARG equ ERROR_INVALID_PARAMETER +RPC_S_OUT_OF_MEMORY equ ERROR_OUTOFMEMORY +RPC_S_OUT_OF_THREADS equ ERROR_MAX_THRDS_REACHED +RPC_S_INVALID_LEVEL equ ERROR_INVALID_PARAMETER +RPC_S_BUFFER_TOO_SMALL equ ERROR_INSUFFICIENT_BUFFER +RPC_S_INVALID_SECURITY_DESC equ ERROR_INVALID_SECURITY_DESCR +RPC_S_ACCESS_DENIED equ ERROR_ACCESS_DENIED +RPC_S_SERVER_OUT_OF_MEMORY equ ERROR_NOT_ENOUGH_SERVER_MEMORY +RPC_S_ASYNC_CALL_PENDING equ ERROR_IO_PENDING +RPC_S_UNKNOWN_PRINCIPAL equ ERROR_NONE_MAPPED +RPC_S_TIMEOUT equ ERROR_TIMEOUT +RPC_S_NOT_ENOUGH_QUOTA equ ERROR_NOT_ENOUGH_QUOTA +RPC_X_NO_MEMORY equ RPC_S_OUT_OF_MEMORY +RPC_X_INVALID_BOUND equ RPC_S_INVALID_BOUND +RPC_X_INVALID_TAG equ RPC_S_INVALID_TAG +RPC_X_ENUM_VALUE_TOO_LARGE equ RPC_X_ENUM_VALUE_OUT_OF_RANGE +RPC_X_SS_CONTEXT_MISMATCH equ ERROR_INVALID_HANDLE +RPC_X_INVALID_BUFFER equ ERROR_INVALID_USER_BUFFER +RPC_X_PIPE_APP_MEMORY equ ERROR_OUTOFMEMORY +RPC_X_INVALID_PIPE_OPERATION equ RPC_X_WRONG_PIPE_ORDER +RPC_C_NOTIFY_ON_SEND_COMPLETE equ 1h +MaxNumberOfEEInfoParams equ 4 +RPC_EEINFO_VERSION equ 1 +EEInfoPreviousRecordsMissing equ 1 +EEInfoNextRecordsMissing equ 2 +EEInfoUseFileTime equ 4 +EEInfoGCCOM equ 11 +EEInfoGCFRS equ 12 +RPC_CALL_ATTRIBUTES_VERSION equ 2 +RPC_QUERY_SERVER_PRINCIPAL_NAME equ 02h +RPC_QUERY_CLIENT_PRINCIPAL_NAME equ 04h +RPC_QUERY_CALL_LOCAL_ADDRESS equ 08h +RPC_QUERY_CLIENT_PID equ 10h +RPC_QUERY_IS_CLIENT_LOCAL equ 20h +RPC_QUERY_NO_AUTH_REQUIRED equ 40h +RPC_CALL_STATUS_CANCELLED equ 01h +RPC_CALL_STATUS_DISCONNECTED equ 02h +RPC_DE_USE_CURRENT_EEINFO equ 1 +SEE_MASK_DEFAULT equ 00000000h +NIIF_RESPECT_QUIET_TIME equ 00000080h +SHGNLI_USEURLEXT equ 000000020h +KP_PIN_ID equ 43 +KP_PIN_INFO equ 44 +PP_SECURE_KEYEXCHANGE_PIN equ 47 +PP_SECURE_SIGNATURE_PIN equ 48 +BCRYPT_OBJECT_ALIGNMENT equ 16 +KDF_HASH_ALGORITHM equ 0h +KDF_SECRET_PREPEND equ 1h +KDF_SECRET_APPEND equ 2h +KDF_HMAC_KEY equ 3h +KDF_TLS_PRF_LABEL equ 4h +KDF_TLS_PRF_SEED equ 5h +KDF_SECRET_HANDLE equ 6h +KDF_TLS_PRF_PROTOCOL equ 7h +KDF_ALGORITHMID equ 8h +KDF_PARTYUINFO equ 9h +KDF_PARTYVINFO equ 0Ah +KDF_SUPPPUBINFO equ 0Bh +KDF_SUPPPRIVINFO equ 0Ch +KDF_USE_SECRET_AS_HMAC_KEY_FLAG equ 1h +BCRYPT_AUTHENTICATED_CIPHER_MODE_INFO_VERSION equ 1 +BCRYPT_AUTH_MODE_CHAIN_CALLS_FLAG equ 00000001h +BCRYPT_AUTH_MODE_IN_PROGRESS_FLAG equ 00000002h +BCRYPT_SUPPORTED_PAD_ROUTER equ 00000001h +BCRYPT_SUPPORTED_PAD_PKCS1_ENC equ 00000002h +BCRYPT_SUPPORTED_PAD_PKCS1_SIG equ 00000004h +BCRYPT_SUPPORTED_PAD_OAEP equ 00000008h +BCRYPT_SUPPORTED_PAD_PSS equ 00000010h +BCRYPT_PROV_DISPATCH equ 00000001h +BCRYPT_BLOCK_PADDING equ 00000001h +BCRYPT_PAD_NONE equ 00000001h +BCRYPT_PAD_PKCS1 equ 00000002h +BCRYPT_PAD_OAEP equ 00000004h +BCRYPT_PAD_PSS equ 00000008h +BCRYPTBUFFER_VERSION equ 0 +BCRYPT_RSAPUBLIC_MAGIC equ 31415352h +BCRYPT_RSAPRIVATE_MAGIC equ 32415352h +BCRYPT_RSAFULLPRIVATE_MAGIC equ 33415352h +BCRYPT_ECDH_PUBLIC_P256_MAGIC equ 314B4345h +BCRYPT_ECDH_PRIVATE_P256_MAGIC equ 324B4345h +BCRYPT_ECDH_PUBLIC_P384_MAGIC equ 334B4345h +BCRYPT_ECDH_PRIVATE_P384_MAGIC equ 344B4345h +BCRYPT_ECDH_PUBLIC_P521_MAGIC equ 354B4345h +BCRYPT_ECDH_PRIVATE_P521_MAGIC equ 364B4345h +BCRYPT_ECDSA_PUBLIC_P256_MAGIC equ 31534345h +BCRYPT_ECDSA_PRIVATE_P256_MAGIC equ 32534345h +BCRYPT_ECDSA_PUBLIC_P384_MAGIC equ 33534345h +BCRYPT_ECDSA_PRIVATE_P384_MAGIC equ 34534345h +BCRYPT_ECDSA_PUBLIC_P521_MAGIC equ 35534345h +BCRYPT_ECDSA_PRIVATE_P521_MAGIC equ 36534345h +BCRYPT_DH_PUBLIC_MAGIC equ 42504844h +BCRYPT_DH_PRIVATE_MAGIC equ 56504844h +BCRYPT_DH_PARAMETERS_MAGIC equ 4D504844h +BCRYPT_DSA_PUBLIC_MAGIC equ 42505344h +BCRYPT_DSA_PRIVATE_MAGIC equ 56505344h +BCRYPT_KEY_DATA_BLOB_MAGIC equ 4D42444Bh +BCRYPT_KEY_DATA_BLOB_VERSION1 equ 1h +BCRYPT_DSA_PARAMETERS_MAGIC equ 4D505344h +BCRYPT_CIPHER_INTERFACE equ 00000001h +BCRYPT_HASH_INTERFACE equ 00000002h +BCRYPT_ASYMMETRIC_ENCRYPTION_INTERFACE equ 00000003h +BCRYPT_SECRET_AGREEMENT_INTERFACE equ 00000004h +BCRYPT_SIGNATURE_INTERFACE equ 00000005h +BCRYPT_RNG_INTERFACE equ 00000006h +BCRYPT_ALG_HANDLE_HMAC_FLAG equ 00000008h +BCRYPT_CIPHER_OPERATION equ 00000001h +BCRYPT_HASH_OPERATION equ 00000002h +BCRYPT_ASYMMETRIC_ENCRYPTION_OPERATION equ 00000004h +BCRYPT_SECRET_AGREEMENT_OPERATION equ 00000008h +BCRYPT_SIGNATURE_OPERATION equ 00000010h +BCRYPT_RNG_OPERATION equ 00000020h +BCRYPT_PUBLIC_KEY_FLAG equ 00000001h +BCRYPT_PRIVATE_KEY_FLAG equ 00000002h +BCRYPT_NO_KEY_VALIDATION equ 00000008h +BCRYPT_RNG_USE_ENTROPY_IN_BUFFER equ 00000001h +BCRYPT_USE_SYSTEM_PREFERRED_RNG equ 00000002h +CRYPT_MIN_DEPENDENCIES equ 00000001h +CRYPT_PROCESS_ISOLATE equ 00010000h +CRYPT_UM equ 00000001h +CRYPT_KM equ 00000002h +CRYPT_MM equ 00000003h +CRYPT_ANY equ 00000004h +CRYPT_OVERWRITE equ 00000001h +CRYPT_LOCAL equ 00000001h +CRYPT_DOMAIN equ 00000002h +CRYPT_EXCLUSIVE equ 00000001h +CRYPT_OVERRIDE equ 00010000h +CRYPT_ALL_FUNCTIONS equ 00000001h +CRYPT_ALL_PROVIDERS equ 00000002h +CRYPT_PRIORITY_TOP equ 00000000h +CRYPT_PRIORITY_BOTTOM equ 0FFFFFFFFh +NCRYPT_KEY_STORAGE_INTERFACE equ 00010001h +NCRYPT_SCHANNEL_INTERFACE equ 00010002h +NCRYPT_SCHANNEL_SIGNATURE_INTERFACE equ 00010003h +NCRYPTBUFFER_VERSION equ 0 +NCRYPTBUFFER_EMPTY equ 0 +NCRYPTBUFFER_DATA equ 1 +NCRYPTBUFFER_SSL_CLIENT_RANDOM equ 20 +NCRYPTBUFFER_SSL_SERVER_RANDOM equ 21 +NCRYPTBUFFER_SSL_HIGHEST_VERSION equ 22 +NCRYPTBUFFER_SSL_CLEAR_KEY equ 23 +NCRYPTBUFFER_SSL_KEY_ARG_DATA equ 24 +NCRYPTBUFFER_PKCS_OID equ 40 +NCRYPTBUFFER_PKCS_ALG_OID equ 41 +NCRYPTBUFFER_PKCS_ALG_PARAM equ 42 +NCRYPTBUFFER_PKCS_ALG_ID equ 43 +NCRYPTBUFFER_PKCS_ATTRS equ 44 +NCRYPTBUFFER_PKCS_KEY_NAME equ 45 +NCRYPTBUFFER_PKCS_SECRET equ 46 +NCRYPTBUFFER_CERT_BLOB equ 47 +NCRYPT_MACHINE_KEY_FLAG equ 00000020h +NCRYPT_SILENT_FLAG equ 00000040h +NCRYPT_OVERWRITE_KEY_FLAG equ 00000080h +NCRYPT_WRITE_KEY_TO_LEGACY_STORE_FLAG equ 00000200h +NCRYPT_DO_NOT_FINALIZE_FLAG equ 00000400h +NCRYPT_PERSIST_ONLY_FLAG equ 40000000h +NCRYPT_PERSIST_FLAG equ 80000000h +NCRYPT_REGISTER_NOTIFY_FLAG equ 00000001h +NCRYPT_UNREGISTER_NOTIFY_FLAG equ 00000002h +NCRYPT_MAX_PROPERTY_NAME equ 64 +NCRYPT_MAX_PROPERTY_DATA equ 100000h +NCRYPT_ALLOW_EXPORT_FLAG equ 00000001h +NCRYPT_ALLOW_PLAINTEXT_EXPORT_FLAG equ 00000002h +NCRYPT_ALLOW_ARCHIVING_FLAG equ 00000004h +NCRYPT_ALLOW_PLAINTEXT_ARCHIVING_FLAG equ 00000008h +NCRYPT_IMPL_HARDWARE_FLAG equ 00000001h +NCRYPT_IMPL_SOFTWARE_FLAG equ 00000002h +NCRYPT_IMPL_REMOVABLE_FLAG equ 00000008h +NCRYPT_IMPL_HARDWARE_RNG_FLAG equ 00000010h +NCRYPT_ALLOW_DECRYPT_FLAG equ 00000001h +NCRYPT_ALLOW_SIGNING_FLAG equ 00000002h +NCRYPT_ALLOW_KEY_AGREEMENT_FLAG equ 00000004h +NCRYPT_ALLOW_ALL_USAGES equ 00FFFFFFh +NCRYPT_UI_PROTECT_KEY_FLAG equ 00000001h +NCRYPT_UI_FORCE_HIGH_PROTECTION_FLAG equ 00000002h +NCRYPT_EXPORT_LEGACY_FLAG equ 00000800h +CERT_RDN_ENABLE_PUNYCODE_FLAG equ 02000000h +CERT_BUNDLE_CERTIFICATE equ 0 +CERT_BUNDLE_CRL equ 1 +CRYPT_ENCODE_ENABLE_PUNYCODE_FLAG equ 20000h +CRYPT_DECODE_ENABLE_PUNYCODE_FLAG equ 02000000h +CERT_ROOT_PROGRAM_FLAG_ORG equ 80h +CERT_ROOT_PROGRAM_FLAG_LSC equ 40h +CERT_ROOT_PROGRAM_FLAG_SUBJECT_LOGO equ 20h +CERT_ROOT_PROGRAM_FLAG_OU equ 10h +CERT_ROOT_PROGRAM_FLAG_ADDRESS equ 08h +CRYPT_KDF_OID_GROUP_ID equ 10 +CRYPT_OID_PREFER_CNG_ALGID_FLAG equ 40000000h +CERT_ROOT_PROGRAM_NAME_CONSTRAINTS_PROP_ID equ 84 +CERT_SUBJECT_OCSP_AUTHORITY_INFO_ACCESS_PROP_ID equ 85 +CERT_SUBJECT_DISABLE_CRL_PROP_ID equ 86 +CERT_CEP_PROP_ID equ 87 +CERT_SIGN_HASH_CNG_ALG_PROP_ID equ 89 +CERT_SCARD_PIN_ID_PROP_ID equ 90 +CERT_SCARD_PIN_INFO_PROP_ID equ 91 +CERT_NAME_STR_ENABLE_PUNYCODE_FLAG equ 00200000h +CERT_CHAIN_MAX_URL_RETRIEVAL_BYTE_COUNT_DEFAULT equ 100*1024*1024 +CERT_CHAIN_OPTION_ENABLE_SIA_URL_RETRIEVAL equ 4h +CERT_TRUST_IS_FROM_EXCLUSIVE_TRUST_STORE equ 00002000h +CERT_CHAIN_REVOCATION_CHECK_OCSP_CERT equ 04000000h +CRYPT_STRING_HASHDATA equ 10000000h +CRYPT_STRING_STRICT equ 20000000h +CERT_SELECT_MAX_PARA equ 500 +CERT_SELECT_BY_ENHKEY_USAGE equ 1 +CERT_SELECT_BY_KEY_USAGE equ 2 +CERT_SELECT_BY_POLICY_OID equ 3 +CERT_SELECT_BY_PROV_NAME equ 4 +CERT_SELECT_BY_EXTENSION equ 5 +CERT_SELECT_BY_SUBJECT_HOST_NAME equ 6 +CERT_SELECT_BY_ISSUER_ATTR equ 7 +CERT_SELECT_BY_SUBJECT_ATTR equ 8 +CERT_SELECT_BY_ISSUER_NAME equ 9 +CERT_SELECT_BY_PUBLIC_KEY equ 10 +CERT_SELECT_BY_TLS_SIGNATURES equ 11 +CERT_SELECT_LAST equ CERT_SELECT_BY_TLS_SIGNATURES +CERT_SELECT_ALLOW_EXPIRED equ 00000001h +CERT_SELECT_TRUSTED_ROOT equ 00000002h +CERT_SELECT_DISALLOW_SELFSIGNED equ 00000004h +CERT_SELECT_HAS_PRIVATE_KEY equ 00000008h +CERT_SELECT_HAS_KEY_FOR_SIGNATURE equ 00000010h +CERT_SELECT_HAS_KEY_FOR_KEY_EXCHANGE equ 00000020h +CERT_SELECT_HARDWARE_ONLY equ 00000040h +CERT_SELECT_ALLOW_DUPLICATES equ 00000080h +TIMESTAMP_VERSION equ 1 +TIMESTAMP_STATUS_GRANTED equ 0 +TIMESTAMP_STATUS_GRANTED_WITH_MODS equ 1 +TIMESTAMP_STATUS_REJECTED equ 2 +TIMESTAMP_STATUS_WAITING equ 3 +TIMESTAMP_STATUS_REVOCATION_WARNING equ 4 +TIMESTAMP_STATUS_REVOKED equ 5 +TIMESTAMP_FAILURE_BAD_ALG equ 0 +TIMESTAMP_FAILURE_BAD_REQUEST equ 2 +TIMESTAMP_FAILURE_BAD_FORMAT equ 5 +TIMESTAMP_FAILURE_TIME_NOT_AVAILABLE equ 14 +TIMESTAMP_FAILURE_POLICY_NOT_SUPPORTED equ 15 +TIMESTAMP_FAILURE_EXTENSION_NOT_SUPPORTED equ 16 +TIMESTAMP_FAILURE_INFO_NOT_AVAILABLE equ 17 +TIMESTAMP_FAILURE_SYSTEM_FAILURE equ 25 +TIMESTAMP_DONT_HASH_DATA equ 00000001h +TIMESTAMP_VERIFY_CONTEXT_SIGNATURE equ 00000020h +TIMESTAMP_NO_AUTH_RETRIEVAL equ 00020000h +__REQUIRED_RPCSAL_H_VERSION__ equ 100 +__RPCNDR_H_VERSION__ equ 500 +__RPCSAL_H_VERSION__ equ 100 +TARGET_IS_NT61_OR_LATER equ 1 +TARGET_IS_NT60_OR_LATER equ 1 +TARGET_IS_NT51_OR_LATER equ 1 +TARGET_IS_NT50_OR_LATER equ 1 +TARGET_IS_NT40_OR_LATER equ 1 +TARGET_IS_NT351_OR_WIN95_OR_LATER equ 1 +cbNDRContext equ 20 +USER_CALL_IS_ASYNC equ 0100h +USER_CALL_NEW_CORRELATION_DESC equ 0200h +USER_MARSHAL_FC_BYTE equ 1 +USER_MARSHAL_FC_CHAR equ 2 +USER_MARSHAL_FC_SMALL equ 3 +USER_MARSHAL_FC_USMALL equ 4 +USER_MARSHAL_FC_WCHAR equ 5 +USER_MARSHAL_FC_SHORT equ 6 +USER_MARSHAL_FC_USHORT equ 7 +USER_MARSHAL_FC_LONG equ 8 +USER_MARSHAL_FC_ULONG equ 9 +USER_MARSHAL_FC_FLOAT equ 10 +USER_MARSHAL_FC_HYPER equ 11 +USER_MARSHAL_FC_DOUBLE equ 12 +ROTREGFLAGS_ALLOWANYCLIENT equ 1h +APPIDREGFLAGS_ACTIVATE_IUSERVER_INDESKTOP equ 1h +APPIDREGFLAGS_SECURE_SERVER_PROCESS_SD_AND_BIND equ 2h +APPIDREGFLAGS_ISSUE_ACTIVATION_RPC_AT_IDENTIFY equ 4h +DCOMSCM_ACTIVATION_USE_ALL_AUTHNSERVICES equ 1h +DCOMSCM_ACTIVATION_DISALLOW_UNSECURE_CALL equ 2h +DCOMSCM_RESOLVE_USE_ALL_AUTHNSERVICES equ 4h +DCOMSCM_RESOLVE_DISALLOW_UNSECURE_CALL equ 8h +DCOMSCM_PING_USE_MID_AUTHNSERVICE equ 10h +DCOMSCM_PING_DISALLOW_UNSECURE_CALL equ 20h +WDT_INPROC64_CALL equ 50746457h +FILE_DEVICE_FIPS equ 0000003Ah +FILE_DEVICE_INFINIBAND equ 0000003Bh +FILE_DEVICE_VMBUS equ 0000003Eh +FILE_DEVICE_CRYPT_PROVIDER equ 0000003Fh +FILE_DEVICE_WPD equ 00000040h +FILE_DEVICE_BLUETOOTH equ 00000041h +FILE_DEVICE_MT_COMPOSITE equ 00000042h +FILE_DEVICE_MT_TRANSPORT equ 00000043h +FILE_DEVICE_BIOMETRIC equ 00000044h +FILE_DEVICE_PMI equ 00000045h +DeviceDsmActionFlag_NonDestructive equ 80000000h +DeviceDsmAction_None equ 0 +DeviceDsmAction_Trim equ 1 +DEVICE_DSM_FLAG_ENTIRE_DATA_SET_RANGE equ 00000001h +DEVICE_DSM_NOTIFY_FLAG_BEGIN equ 00000001h +DEVICE_DSM_NOTIFY_FLAG_END equ 00000002h +IOCTL_STORAGE_BC_VERSION equ 1 +STORAGE_PRIORITY_HINT_SUPPORTED equ 0001h +PARTITION_OS2BOOTMGR equ 0Ah +GPT_ATTRIBUTE_PLATFORM_REQUIRED equ 0000000000000001h +GPT_BASIC_DATA_ATTRIBUTE_NO_DRIVE_LETTER equ 8000000000000000h +GPT_BASIC_DATA_ATTRIBUTE_HIDDEN equ 4000000000000000h +GPT_BASIC_DATA_ATTRIBUTE_SHADOW_COPY equ 2000000000000000h +GPT_BASIC_DATA_ATTRIBUTE_READ_ONLY equ 1000000000000000h +SMART_OFFLINE_ROUTINE_OFFLINE equ 0 +SMART_SHORT_SELFTEST_OFFLINE equ 1 +SMART_EXTENDED_SELFTEST_OFFLINE equ 2 +SMART_ABORT_OFFLINE_SELFTEST equ 127 +SMART_SHORT_SELFTEST_CAPTIVE equ 129 +SMART_EXTENDED_SELFTEST_CAPTIVE equ 130 +SMART_LOG_SECTOR_SIZE equ 512 +SMART_READ_LOG equ 0D5h +SMART_WRITE_LOG equ 0D6h +ELEMENT_STATUS_PRODUCT_DATA equ 00000040h +CSV_INVALID_DEVICE_NUMBER equ 0FFFFFFFFh +USN_REASON_TRANSACTED_CHANGE equ 00400000h +MARK_HANDLE_PROTECT_CLUSTERS equ 00000001h +MARK_HANDLE_TXF_SYSTEM_LOG equ 00000004h +MARK_HANDLE_NOT_TXF_SYSTEM_LOG equ 00000008h +MARK_HANDLE_REALTIME equ 00000020h +MARK_HANDLE_NOT_REALTIME equ 00000040h +NO_8DOT3_NAME_PRESENT equ 00000001h +REMOVED_8DOT3_NAME equ 00000002h +PERSISTENT_VOLUME_STATE_SHORT_NAME_CREATION_DISABLED equ 00000001h +VOLUME_SESSION_OPEN equ 00000004h +FILE_PREFETCH_TYPE_FOR_CREATE equ 1h +FILE_PREFETCH_TYPE_FOR_DIRENUM equ 2h +FILE_PREFETCH_TYPE_FOR_CREATE_EX equ 3h +FILE_PREFETCH_TYPE_FOR_DIRENUM_EX equ 4h +FILE_PREFETCH_TYPE_MAX equ 4h +FILESYSTEM_STATISTICS_TYPE_EXFAT equ 3 +SET_REPAIR_ENABLED equ 00000001h +SET_REPAIR_VOLUME_BITMAP_SCAN equ 00000002h +SET_REPAIR_DELETE_CROSSLINK equ 00000004h +SET_REPAIR_WARN_ABOUT_DATA_LOSS equ 00000008h +SET_REPAIR_DISABLED_AND_BUGCHECK_ON_CORRUPT equ 00000010h +SET_REPAIR_VALID_MASK equ 0000001Fh +TXFS_RM_FLAG_LOGGING_MODE equ 00000001h +TXFS_RM_FLAG_RENAME_RM equ 00000002h +TXFS_RM_FLAG_LOG_CONTAINER_COUNT_MAX equ 00000004h +TXFS_RM_FLAG_LOG_CONTAINER_COUNT_MIN equ 00000008h +TXFS_RM_FLAG_LOG_GROWTH_INCREMENT_NUM_CONTAINERS equ 00000010h +TXFS_RM_FLAG_LOG_GROWTH_INCREMENT_PERCENT equ 00000020h +TXFS_RM_FLAG_LOG_AUTO_SHRINK_PERCENTAGE equ 00000040h +TXFS_RM_FLAG_LOG_NO_CONTAINER_COUNT_MAX equ 00000080h +TXFS_RM_FLAG_LOG_NO_CONTAINER_COUNT_MIN equ 00000100h +TXFS_RM_FLAG_GROW_LOG equ 00000400h +TXFS_RM_FLAG_SHRINK_LOG equ 00000800h +TXFS_RM_FLAG_ENFORCE_MINIMUM_SIZE equ 00001000h +TXFS_RM_FLAG_PRESERVE_CHANGES equ 00002000h +TXFS_RM_FLAG_RESET_RM_AT_NEXT_START equ 00004000h +TXFS_RM_FLAG_DO_NOT_RESET_RM_AT_NEXT_START equ 00008000h +TXFS_RM_FLAG_PREFER_CONSISTENCY equ 00010000h +TXFS_RM_FLAG_PREFER_AVAILABILITY equ 00020000h +TXFS_LOGGING_MODE_SIMPLE equ 0001h +TXFS_LOGGING_MODE_FULL equ 0002h +TXFS_TRANSACTION_STATE_NONE equ 00h +TXFS_TRANSACTION_STATE_ACTIVE equ 01h +TXFS_TRANSACTION_STATE_PREPARED equ 02h +TXFS_TRANSACTION_STATE_NOTACTIVE equ 03h +TXFS_RM_STATE_NOT_STARTED equ 0 +TXFS_RM_STATE_STARTING equ 1 +TXFS_RM_STATE_ACTIVE equ 2 +TXFS_RM_STATE_SHUTTING_DOWN equ 3 +TXFS_ROLLFORWARD_REDO_FLAG_USE_LAST_REDO_LSN equ 01h +TXFS_ROLLFORWARD_REDO_FLAG_USE_LAST_VIRTUAL_CLOCK equ 02h +TXFS_START_RM_FLAG_LOG_CONTAINER_COUNT_MAX equ 00000001h +TXFS_START_RM_FLAG_LOG_CONTAINER_COUNT_MIN equ 00000002h +TXFS_START_RM_FLAG_LOG_CONTAINER_SIZE equ 00000004h +TXFS_START_RM_FLAG_LOG_GROWTH_INCREMENT_NUM_CONTAINERS equ 00000008h +TXFS_START_RM_FLAG_LOG_GROWTH_INCREMENT_PERCENT equ 00000010h +TXFS_START_RM_FLAG_LOG_AUTO_SHRINK_PERCENTAGE equ 00000020h +TXFS_START_RM_FLAG_LOG_NO_CONTAINER_COUNT_MAX equ 00000040h +TXFS_START_RM_FLAG_LOG_NO_CONTAINER_COUNT_MIN equ 00000080h +TXFS_START_RM_FLAG_RECOVER_BEST_EFFORT equ 00000200h +TXFS_START_RM_FLAG_LOGGING_MODE equ 00000400h +TXFS_START_RM_FLAG_PRESERVE_CHANGES equ 00000800h +TXFS_START_RM_FLAG_PREFER_CONSISTENCY equ 00001000h +TXFS_START_RM_FLAG_PREFER_AVAILABILITY equ 00002000h +TXFS_LIST_TRANSACTION_LOCKED_FILES_ENTRY_FLAG_CREATED equ 00000001h +TXFS_LIST_TRANSACTION_LOCKED_FILES_ENTRY_FLAG_DELETED equ 00000002h +TXFS_TRANSACTED_VERSION_NONTRANSACTED equ 0FFFFFFFEh +TXFS_TRANSACTED_VERSION_UNCOMMITTED equ 0FFFFFFFFh +TXFS_SAVEPOINT_SET equ 00000001h +TXFS_SAVEPOINT_ROLLBACK equ 00000002h +TXFS_SAVEPOINT_CLEAR equ 00000004h +TXFS_SAVEPOINT_CLEAR_ALL equ 00000010h +OPLOCK_LEVEL_CACHE_READ equ 00000001h +OPLOCK_LEVEL_CACHE_HANDLE equ 00000002h +OPLOCK_LEVEL_CACHE_WRITE equ 00000004h +REQUEST_OPLOCK_INPUT_FLAG_REQUEST equ 00000001h +REQUEST_OPLOCK_INPUT_FLAG_ACK equ 00000002h +REQUEST_OPLOCK_INPUT_FLAG_COMPLETE_ACK_ON_CLOSE equ 00000004h +REQUEST_OPLOCK_CURRENT_VERSION equ 1 +REQUEST_OPLOCK_OUTPUT_FLAG_ACK_REQUIRED equ 00000001h +REQUEST_OPLOCK_OUTPUT_FLAG_MODES_PROVIDED equ 00000002h +SD_GLOBAL_CHANGE_TYPE_MACHINE_SID equ 1 +ENCRYPTED_DATA_INFO_SPARSE_FILE equ 1 +LOOKUP_STREAM_FROM_CLUSTER_ENTRY_FLAG_PAGE_FILE equ 00000001h +LOOKUP_STREAM_FROM_CLUSTER_ENTRY_FLAG_DENY_DEFRAG_SET equ 00000002h +LOOKUP_STREAM_FROM_CLUSTER_ENTRY_FLAG_FS_SYSTEM_FILE equ 00000004h +LOOKUP_STREAM_FROM_CLUSTER_ENTRY_FLAG_TXF_SYSTEM_FILE equ 00000008h +LOOKUP_STREAM_FROM_CLUSTER_ENTRY_ATTRIBUTE_MASK equ 0FF000000h +LOOKUP_STREAM_FROM_CLUSTER_ENTRY_ATTRIBUTE_DATA equ 01000000h +LOOKUP_STREAM_FROM_CLUSTER_ENTRY_ATTRIBUTE_INDEX equ 02000000h +LOOKUP_STREAM_FROM_CLUSTER_ENTRY_ATTRIBUTE_SYSTEM equ 03000000h +FILE_TYPE_NOTIFICATION_FLAG_USAGE_BEGIN equ 00000001h +FILE_TYPE_NOTIFICATION_FLAG_USAGE_END equ 00000002h +IOCTL_VOLUME_BASE equ 00000056h +SCARD_ATR_LENGTH equ 33 +SCARD_PROTOCOL_UNDEFINED equ 00000000h +SCARD_PROTOCOL_T0 equ 00000001h +SCARD_PROTOCOL_T1 equ 00000002h +SCARD_PROTOCOL_RAW equ 00010000h +SCARD_PROTOCOL_DEFAULT equ 80000000h +SCARD_PROTOCOL_OPTIMAL equ 00000000h +SCARD_POWER_DOWN equ 0 +SCARD_COLD_RESET equ 1 +SCARD_WARM_RESET equ 2 +MAXIMUM_ATTR_STRING_LENGTH equ 32 +MAXIMUM_SMARTCARD_READERS equ 10 +SCARD_CLASS_VENDOR_INFO equ 1 +SCARD_CLASS_COMMUNICATIONS equ 2 +SCARD_CLASS_PROTOCOL equ 3 +SCARD_CLASS_POWER_MGMT equ 4 +SCARD_CLASS_SECURITY equ 5 +SCARD_CLASS_MECHANICAL equ 6 +SCARD_CLASS_VENDOR_DEFINED equ 7 +SCARD_CLASS_IFD_PROTOCOL equ 8 +SCARD_CLASS_ICC_STATE equ 9 +SCARD_CLASS_PERF equ 7FFEh +SCARD_CLASS_SYSTEM equ 7FFFh +SCARD_T0_HEADER_LENGTH equ 7 +SCARD_T0_CMD_LENGTH equ 5 +SCARD_T1_PROLOGUE_LENGTH equ 3 +SCARD_T1_EPILOGUE_LENGTH equ 2 +SCARD_T1_MAX_IFS equ 254 +SCARD_UNKNOWN equ 0 +SCARD_ABSENT equ 1 +SCARD_PRESENT equ 2 +SCARD_SWALLOWED equ 3 +SCARD_POWERED equ 4 +SCARD_NEGOTIABLE equ 5 +SCARD_SPECIFIC equ 6 +SCARD_READER_SWALLOWS equ 00000001h +SCARD_READER_EJECTS equ 00000002h +SCARD_READER_CONFISCATES equ 00000004h +SCARD_READER_TYPE_SERIAL equ 01h +SCARD_READER_TYPE_PARALELL equ 02h +SCARD_READER_TYPE_KEYBOARD equ 04h +SCARD_READER_TYPE_SCSI equ 08h +SCARD_READER_TYPE_IDE equ 10h +SCARD_READER_TYPE_USB equ 20h +SCARD_READER_TYPE_PCMCIA equ 40h +SCARD_READER_TYPE_VENDOR equ 0F0h +FACILITY_SYSTEM equ 0h +SCARD_E_PIN_CACHE_EXPIRED equ 80100032h +SCARD_E_NO_PIN_CACHE equ 80100033h +SCARD_E_READ_ONLY_CARD equ 80100034h +PSP_USEHICON equ 00000002h +PSP_USEFUSIONCONTEXT equ 00004000h +PSPCB_ADDREF equ 0 +PSH_USEHICON equ 00000002h +PSH_WIZARD97 equ 00002000h +PSH_WIZARD_LITE equ 00400000h +PSH_NOCONTEXTHELP equ 02000000h +PSH_AEROWIZARD equ 00004000h +PSH_RESIZABLE equ 04000000h +PSH_HEADERBITMAP equ 08000000h +PSH_NOMARGIN equ 10000000h +PSCB_BUTTONPRESSED equ 3 +PSN_TRANSLATEACCELERATOR equ PSN_FIRST-12 +PSN_QUERYINITIALFOCUS equ PSN_FIRST-13 +PSNRET_MESSAGEHANDLED equ 3 +PSWIZBF_ELEVATIONREQUIRED equ 00000001h +PSWIZB_CANCEL equ 00000010h +PSWIZB_SHOW equ 0 +PSWIZB_RESTORE equ 1 +PRINTER_ATTRIBUTE_TS_GENERIC_DRIVER equ 00200000h +PRINTER_DRIVER_SANDBOX_ENABLED equ 00000004h +SERVER_NOTIFY_TYPE equ 02h +SERVER_NOTIFY_FIELD_PRINT_DRIVER_ISOLATION_GROUP equ 00h +PRINTER_CHANGE_SERVER equ 08000000h +CF_INACTIVEFONTS equ 02000000h +SYMBOL_FONTTYPE equ 80000h +CHAR_BIT equ 8 +SCHAR_MIN equ -128 +SCHAR_MAX equ 127 +UCHAR_MAX equ 0FFh +CHAR_MIN equ SCHAR_MIN +CHAR_MAX equ SCHAR_MAX +MB_LEN_MAX equ 5 +SHRT_MIN equ -32768 +SHRT_MAX equ 32767 +USHRT_MAX equ 0FFFFh +INT_MAX equ 2147483647 +UINT_MAX equ 0FFFFFFFFh +LONG_MAX equ 2147483647 +ULONG_MAX equ 0FFFFFFFFh +LLONG_MAX equ 9223372036854775807i64 +ULLONG_MAX equ 0FFFFFFFFFFFFFFFFh +_I8_MAX equ 127i8 +_UI8_MAX equ 0FFh +_I16_MAX equ 32767i16 +_UI16_MAX equ 0FFFFh +_I32_MAX equ 2147483647i32 +_UI32_MAX equ 0FFFFFFFFh +_I64_MAX equ 9223372036854775807i64 +_UI64_MAX equ 0FFFFFFFFFFFFFFFFh +SIZE_MAX equ UINT_MAX +RSIZE_MAX equ SIZE_MAX +_POSIX_ARG_MAX equ 4096 +_POSIX_CHILD_MAX equ 6 +_POSIX_LINK_MAX equ 8 +_POSIX_MAX_CANON equ 255 +_POSIX_MAX_INPUT equ 255 +_POSIX_NAME_MAX equ 14 +_POSIX_NGROUPS_MAX equ 0 +_POSIX_OPEN_MAX equ 16 +_POSIX_PATH_MAX equ 255 +_POSIX_PIPE_BUF equ 512 +_POSIX_SSIZE_MAX equ 32767 +_POSIX_STREAM_MAX equ 8 +_POSIX_TZNAME_MAX equ 3 +ARG_MAX equ 14500 +LINK_MAX equ 1024 +MAX_CANON equ _POSIX_MAX_CANON +MAX_INPUT equ _POSIX_MAX_INPUT +NAME_MAX equ 255 +NGROUPS_MAX equ 16 +OPEN_MAX equ 32 +PATH_MAX equ 512 +PIPE_BUF equ _POSIX_PIPE_BUF +SSIZE_MAX equ _POSIX_SSIZE_MAX +STREAM_MAX equ 20 +TZNAME_MAX equ 10 +EXIT_SUCCESS equ 0 +EXIT_FAILURE equ 1 +RAND_MAX equ 7FFFh +_MAX_PATH equ 260 +_MAX_DRIVE equ 3 +_MAX_DIR equ 256 +_MAX_FNAME equ 256 +_MAX_EXT equ 256 +_OUT_TO_DEFAULT equ 0 +_OUT_TO_STDERR equ 1 +_OUT_TO_MSGBOX equ 2 +_REPORT_ERRMODE equ 3 +_WRITE_ABORT_MSG equ 1h +_CALL_REPORTFAULT equ 2h +_MAX_ENV equ 32767 +STGM_NOSCRATCH equ 00100000h +STGM_NOSNAPSHOT equ 00200000h +STGM_DIRECT_SWMR equ 00400000h +ASYNC_MODE_COMPATIBILITY equ 00000001h +ASYNC_MODE_DEFAULT equ 00000000h +STGTY_REPEAT equ 00000100h +STG_TOEND equ 0FFFFFFFFh +STG_LAYOUT_SEQUENTIAL equ 00000000h +STG_LAYOUT_INTERLEAVED equ 00000001h +STGFMT_STORAGE equ 0 +STGFMT_NATIVE equ 1 +STGFMT_FILE equ 3 +STGFMT_ANY equ 4 +STGFMT_DOCFILE equ 5 +STGFMT_DOCUMENT equ 0 +COM_RIGHTS_EXECUTE equ 1 +COM_RIGHTS_EXECUTE_LOCAL equ 2 +COM_RIGHTS_EXECUTE_REMOTE equ 4 +COM_RIGHTS_ACTIVATE_LOCAL equ 8 +COM_RIGHTS_ACTIVATE_REMOTE equ 16 +STGOPTIONS_VERSION equ 1 +FMFD_SERVERMIME equ 00000008h +UAS_EXACTLEGACY equ 00001000h +URLACTION_ACTIVEX_OVERRIDE_DOMAINLIST equ 0000120Bh +URLACTION_SCRIPT_XSSFILTER equ 00001409h +URLACTION_SHELL_REMOTEQUERY equ 0000180Eh +URLACTION_SHELL_PREVIEW equ 0000180Fh +URLACTION_DOTNET_USERCONTROLS equ 00002005h +URLACTION_FEATURE_DATA_BINDING equ 00002106h +URLACTION_INPRIVATE_BLOCKING equ 00002700h +PROPSETFLAG_DEFAULT equ 0 +PROPSETFLAG_NONSIMPLE equ 1 +PROPSETFLAG_ANSI equ 2 +PROPSETFLAG_UNBUFFERED equ 4 +PROPSETFLAG_CASE_SENSITIVE equ 8 +PROPSET_BEHAVIOR_CASE_SENSITIVE equ 1 +PID_DICTIONARY equ 0 +PID_CODEPAGE equ 1h +PID_FIRST_USABLE equ 2h +PID_FIRST_NAME_DEFAULT equ 0FFFh +PID_LOCALE equ 80000000h +PID_MODIFY_TIME equ 80000001h +PID_SECURITY equ 80000002h +PID_BEHAVIOR equ 80000003h +PID_ILLEGAL equ 0FFFFFFFFh +PID_MIN_READONLY equ 80000000h +PID_MAX_READONLY equ 0BFFFFFFFh +PIDDI_THUMBNAIL equ 00000002h +PIDSI_TITLE equ 00000002h +PIDSI_SUBJECT equ 00000003h +PIDSI_AUTHOR equ 00000004h +PIDSI_KEYWORDS equ 00000005h +PIDSI_COMMENTS equ 00000006h +PIDSI_TEMPLATE equ 00000007h +PIDSI_LASTAUTHOR equ 00000008h +PIDSI_REVNUMBER equ 00000009h +PIDSI_EDITTIME equ 0000000Ah +PIDSI_LASTPRINTED equ 0000000Bh +PIDSI_CREATE_DTM equ 0000000Ch +PIDSI_LASTSAVE_DTM equ 0000000Dh +PIDSI_PAGECOUNT equ 0000000Eh +PIDSI_WORDCOUNT equ 0000000Fh +PIDSI_CHARCOUNT equ 00000010h +PIDSI_THUMBNAIL equ 00000011h +PIDSI_APPNAME equ 00000012h +PIDSI_DOC_SECURITY equ 00000013h +PIDDSI_CATEGORY equ 00000002h +PIDDSI_PRESFORMAT equ 00000003h +PIDDSI_BYTECOUNT equ 00000004h +PIDDSI_LINECOUNT equ 00000005h +PIDDSI_PARCOUNT equ 00000006h +PIDDSI_SLIDECOUNT equ 00000007h +PIDDSI_NOTECOUNT equ 00000008h +PIDDSI_HIDDENCOUNT equ 00000009h +PIDDSI_MMCLIPCOUNT equ 0000000Ah +PIDDSI_SCALE equ 0000000Bh +PIDDSI_HEADINGPAIR equ 0000000Ch +PIDDSI_DOCPARTS equ 0000000Dh +PIDDSI_MANAGER equ 0000000Eh +PIDDSI_COMPANY equ 0000000Fh +PIDDSI_LINKSDIRTY equ 00000010h +PIDMSI_EDITOR equ 00000002h +PIDMSI_SUPPLIER equ 00000003h +PIDMSI_SOURCE equ 00000004h +PIDMSI_SEQUENCE_NO equ 00000005h +PIDMSI_PROJECT equ 00000006h +PIDMSI_STATUS equ 00000007h +PIDMSI_OWNER equ 00000008h +PIDMSI_RATING equ 00000009h +PIDMSI_PRODUCTION equ 0000000Ah +PIDMSI_COPYRIGHT equ 0000000Bh +PRSPEC_INVALID equ 0FFFFFFFFh +PRSPEC_LPWSTR equ 0 +PRSPEC_PROPID equ 1 +PROPSETHDR_OSVERSION_UNKNOWN equ 0FFFFFFFFh +CCH_MAX_PROPSTG_NAME equ 31 +STDOLE_MAJORVERNUM equ 1h +STDOLE_MINORVERNUM equ 0h +STDOLE_LCID equ 0000h +STDOLE2_MAJORVERNUM equ 2h +STDOLE2_MINORVERNUM equ 0h +STDOLE2_LCID equ 0000h +FADF_AUTO equ 1h +FADF_STATIC equ 2h +FADF_EMBEDDED equ 4h +FADF_FIXEDSIZE equ 10h +FADF_RECORD equ 20h +FADF_HAVEIID equ 40h +FADF_HAVEVARTYPE equ 80h +FADF_BSTR equ 100h +FADF_UNKNOWN equ 200h +FADF_DISPATCH equ 400h +FADF_VARIANT equ 800h +FADF_RESERVED equ 0F008h +PARAMFLAG_NONE equ 0 +PARAMFLAG_FIN equ 1h +PARAMFLAG_FOUT equ 2h +PARAMFLAG_FLCID equ 4h +PARAMFLAG_FRETVAL equ 8h +PARAMFLAG_FOPT equ 10h +PARAMFLAG_FHASDEFAULT equ 20h +PARAMFLAG_FHASCUSTDATA equ 40h +IMPLTYPEFLAG_FDEFAULT equ 1h +IMPLTYPEFLAG_FSOURCE equ 2h +IMPLTYPEFLAG_FRESTRICTED equ 4h +IMPLTYPEFLAG_FDEFAULTVTABLE equ 8h +DISPID_UNKNOWN equ -1 +DISPID_VALUE equ 0 +DISPID_PROPERTYPUT equ -3 +DISPID_NEWENUM equ -4 +DISPID_EVALUATE equ -5 +DISPID_CONSTRUCTOR equ -6 +DISPID_DESTRUCTOR equ -7 +DISPID_COLLECT equ -8 +VARIANT_NOVALUEPROP equ 01h +VARIANT_ALPHABOOL equ 02h +VARIANT_NOUSEROVERRIDE equ 04h +VARIANT_CALENDAR_HIJRI equ 08h +VARIANT_LOCALBOOL equ 10h +VARIANT_CALENDAR_THAI equ 20h +VARIANT_CALENDAR_GREGORIAN equ 40h +VARIANT_USE_NLS equ 80h +VAR_TIMEVALUEONLY equ 00000001h +VAR_DATEVALUEONLY equ 00000002h +VAR_VALIDDATE equ 00000004h +VAR_CALENDAR_HIJRI equ 00000008h +VAR_LOCALBOOL equ 00000010h +VAR_FORMAT_NOSUBSTITUTE equ 00000020h +VAR_FOURDIGITYEARS equ 00000040h +LOCALE_USE_NLS equ 10000000h +VAR_CALENDAR_THAI equ 00000080h +VAR_CALENDAR_GREGORIAN equ 00000100h +VTDATEGRE_MAX equ 2958465 +VTDATEGRE_MIN equ -657434 +NUMPRS_LEADING_WHITE equ 0001h +NUMPRS_TRAILING_WHITE equ 0002h +NUMPRS_LEADING_PLUS equ 0004h +NUMPRS_TRAILING_PLUS equ 0008h +NUMPRS_LEADING_MINUS equ 0010h +NUMPRS_TRAILING_MINUS equ 0020h +NUMPRS_HEX_OCT equ 0040h +NUMPRS_PARENS equ 0080h +NUMPRS_DECIMAL equ 0100h +NUMPRS_THOUSANDS equ 0200h +NUMPRS_CURRENCY equ 0400h +NUMPRS_EXPONENT equ 0800h +NUMPRS_USE_ALL equ 1000h +NUMPRS_STD equ 1FFFh +NUMPRS_NEG equ 10000h +NUMPRS_INEXACT equ 20000h +VARCMP_LT equ 0 +VARCMP_EQ equ 1 +VARCMP_GT equ 2 +VARCMP_NULL equ 3 +ID_DEFAULTINST equ -2 +DISPATCH_METHOD equ 1h +DISPATCH_PROPERTYGET equ 2h +DISPATCH_PROPERTYPUT equ 4h +DISPATCH_PROPERTYPUTREF equ 8h +LOAD_TLB_AS_32BIT equ 20h +LOAD_TLB_AS_64BIT equ 40h +ACTIVEOBJECT_STRONG equ 0h +ACTIVEOBJECT_WEAK equ 1h +UPDFCACHE_NODATACACHE equ 1h +UPDFCACHE_ONSAVECACHE equ 2h +UPDFCACHE_ONSTOPCACHE equ 4h +UPDFCACHE_NORMALCACHE equ 8h +UPDFCACHE_IFBLANK equ 10h +UPDFCACHE_ONLYIFBLANK equ 80000000h +MK_ALT equ 20h +DROPEFFECT_NONE equ 0 +DROPEFFECT_SCROLL equ 80000000h +DD_DEFSCROLLINSET equ 11 +DD_DEFSCROLLDELAY equ 50 +DD_DEFSCROLLINTERVAL equ 50 +DD_DEFDRAGDELAY equ 200 +DD_DEFDRAGMINDIST equ 2 +SERVICE_CONTROL_TIMECHANGE equ 00000010h +SERVICE_CONTROL_TRIGGEREVENT equ 00000020h +SERVICE_ACCEPT_TIMECHANGE equ 00000200h +SERVICE_ACCEPT_TRIGGEREVENT equ 00000400h +SERVICE_CONFIG_TRIGGER_INFO equ 8 +SERVICE_CONFIG_PREFERRED_NODE equ 9 +SERVICE_TRIGGER_TYPE_DEVICE_INTERFACE_ARRIVAL equ 1 +SERVICE_TRIGGER_TYPE_IP_ADDRESS_AVAILABILITY equ 2 +SERVICE_TRIGGER_TYPE_DOMAIN_JOIN equ 3 +SERVICE_TRIGGER_TYPE_FIREWALL_PORT_EVENT equ 4 +SERVICE_TRIGGER_TYPE_GROUP_POLICY equ 5 +SERVICE_TRIGGER_TYPE_CUSTOM equ 20 +SERVICE_TRIGGER_DATA_TYPE_BINARY equ 1 +SERVICE_TRIGGER_DATA_TYPE_STRING equ 2 +SERVICE_TRIGGER_ACTION_SERVICE_START equ 1 +SERVICE_TRIGGER_ACTION_SERVICE_STOP equ 2 + +;;;; end vc2010 + +ELSE +echo ------------------------------------------- +echo WARNING Duplicate include file winextra.inc +echo ------------------------------------------- +ENDIF + +``` + +`packer.cpp`: + +```cpp +#include "packer.h" +#include "aPLib\lib\coff\aplib.h" + +namespace petoy { + +Packer::Packer() + : _imageBase(NULL), _imageSize(0), _extendBase(NULL), _extendSize(0) + , _dosHeader(NULL), _ntHeaders(NULL), _secHeaders(NULL) +{ +} + +Packer::~Packer() +{ +} + +EC Packer::load(const std::string &filename) +{ + EC err = SUCCESS; + int i; + size_t fileSize; + size_t extendOffset; + FILE *f; + IMAGE_DOS_HEADER dosHdr; + IMAGE_NT_HEADERS ntHdr; + PIMAGE_SECTION_HEADER secPos; + size_t fileAlign; + size_t secAlign; + + f = fopen(filename.c_str(), "rb"); + if (!f) + return ERR_FILE_OPEN; + + fileSize = getLenOfFile(f); + + fseek(f, 0, SEEK_SET); + err = freadFixed(f, &dosHdr, sizeof(dosHdr)); + if (SUCCESS != err) + goto out; + + if (IMAGE_DOS_SIGNATURE != dosHdr.e_magic) { // DOS magic + err = ERR_NOT_PE; + goto out; + } + + fseek(f, dosHdr.e_lfanew, SEEK_SET); + err = freadFixed(f, &ntHdr, sizeof(ntHdr)); + if (SUCCESS != err) + goto out; + + if (IMAGE_NT_SIGNATURE != ntHdr.Signature) { // PE signature + err = ERR_NOT_PE; + goto out; + } + + // + // Load image + // + + fileAlign = ntHdr.OptionalHeader.FileAlignment; + secAlign = ntHdr.OptionalHeader.SectionAlignment; + _imageSize = alignSize(ntHdr.OptionalHeader.SizeOfImage, secAlign); + _imageBase = new char[_imageSize]; + if (!_imageBase) { + err = ERR_NO_MEM; + goto out; + } + memset(_imageBase, 0, _imageSize); + + fseek(f, 0, SEEK_SET); + err = freadFixed(f, _imageBase, ntHdr.OptionalHeader.SizeOfHeaders); + + _dosHeader = (PIMAGE_DOS_HEADER)_imageBase; + _ntHeaders = (PIMAGE_NT_HEADERS)(_imageBase + dosHdr.e_lfanew); + _secHeaders = (PIMAGE_SECTION_HEADER)((char *)_ntHeaders + + sizeof(ntHdr.Signature) + sizeof(ntHdr.FileHeader) + ntHdr.FileHeader.SizeOfOptionalHeader); + + // 各区块数据 + for (i = 0, secPos = _secHeaders; i < ntHdr.FileHeader.NumberOfSections; i++, secPos++) { + fseek(f, secPos->PointerToRawData, SEEK_SET); + err = freadFixed(f, _imageBase + secPos->VirtualAddress, secPos->SizeOfRawData); + if (SUCCESS != err) + goto out; + } + + secPos--; // 最后一个区块 + + // 修正SizeOfImage可能存在的对齐问题 + _ntHeaders->OptionalHeader.SizeOfImage = secPos->VirtualAddress + secPos->Misc.VirtualSize; + + // 额外数据 + extendOffset = secPos->PointerToRawData + secPos->SizeOfRawData; + _extendSize = fileSize - extendOffset; + if (_extendSize > 0) { + _extendBase = new char[_extendSize]; + if (!_extendBase) { + err = ERR_NO_MEM; + goto out; + } + memset(_extendBase, 0, _extendSize); + + fseek(f, extendOffset, SEEK_SET); + err = freadFixed(f, _extendBase, _extendSize); + if (SUCCESS != err) + goto out; + } + + fclose(f); + return SUCCESS; + +out: + if (f) fclose(f); + if (_imageSize > 0 ) {_imageSize = 0; delete []_imageBase;} + if (_extendSize > 0) { _extendSize = 0; delete []_extendBase; } + return err; +} + +EC Packer::pack(const std::string &savename) +{ + EC err = SUCCESS; + int i; + FILE *f; + PIMAGE_DATA_DIRECTORY importDir, boundDir, iatDir, baseRelocDir; + PIMAGE_SECTION_HEADER secPos, shellHdr; + PIMAGE_IMPORT_DESCRIPTOR shellImportHdr; + std::vector toyBlockList; + bool isDll = false, isExe = false; + + int packedSecIndex = 0; + + // 可能已经被压缩 + if (1 == _ntHeaders->FileHeader.NumberOfSections || + _ntHeaders->OptionalHeader.AddressOfEntryPoint >= _secHeaders[1].VirtualAddress) + return ERR_PACKED; + + // 不是EXE或者DLL + if (_ntHeaders->FileHeader.Characteristics & IMAGE_FILE_EXECUTABLE_IMAGE) + isExe = true; + else if (_ntHeaders->FileHeader.Characteristics & IMAGE_FILE_EXECUTABLE_IMAGE) + isDll = true; + else + return ERR_NOT_EXE_OR_DLL; + + f = fopen(savename.c_str(), "wb"); + if (!f) + return ERR_FILE_OPEN; + + // 清除绑定输入 + boundDir = &(_ntHeaders->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT]); + if (boundDir->VirtualAddress) { + memset(RvaPtr(boundDir->VirtualAddress), 0, boundDir->Size); + boundDir->VirtualAddress = boundDir->Size = 0; + } + printf("Remove bound import data done!\n"); + + // 处理输入表 + importDir = &(_ntHeaders->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_IMPORT]); + if (importDir->VirtualAddress) { + packImport(); + memset(RvaPtr(importDir->VirtualAddress), 0, importDir->Size); + importDir->VirtualAddress = importDir->Size = 0; // 后面会重新填充 + } + printf("Pack import table done!\n"); + + // 清除IAT + iatDir = &(_ntHeaders->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_IAT]); + if (iatDir->VirtualAddress) { + memset(RvaPtr(iatDir->VirtualAddress), 0, iatDir->Size); + iatDir->VirtualAddress = iatDir->Size = 0; + } + printf("Remove IAT done!\n"); + + // 处理基值重定位表 + baseRelocDir = &(_ntHeaders->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_BASERELOC]); + if (baseRelocDir->VirtualAddress) { + packBaseReloc(); + memset(RvaPtr(baseRelocDir->VirtualAddress), 0, baseRelocDir->Size); + baseRelocDir->VirtualAddress = baseRelocDir->Size = 0; + } + printf("Pack base relocation table done!\n"); + + size_t numberOfSections, fileAlign, secAlign, sizeOfHeader; + + numberOfSections = _ntHeaders->FileHeader.NumberOfSections; + fileAlign = _ntHeaders->OptionalHeader.FileAlignment = 0x200; // 使用最小对齐间隔 + secAlign = _ntHeaders->OptionalHeader.SectionAlignment; + sizeOfHeader = (size_t)&_secHeaders[numberOfSections + 1] - (size_t)_imageBase; // 已考虑shell区块头 + sizeOfHeader = alignSize(sizeOfHeader, fileAlign); + + // 写文件头占位符, 后面修正文件头后,再重写一遍 + err = fwriteZero(f, sizeOfHeader); + if (SUCCESS != err) + goto out; + + // 处理区块 + PTOY_SECTION toySection; + + _secHeaders[0].PointerToRawData = sizeOfHeader; // 第一个区块的文件偏移 + + for (i = 0, secPos = _secHeaders; i < _ntHeaders->FileHeader.NumberOfSections; i++, secPos++) { + size_t sizeOfRawData = minSectionSize(RvaPtr(secPos->VirtualAddress), secPos->SizeOfRawData); + + if (sizeOfRawData == 0) { + secPos->SizeOfRawData = 0; + } else { + secPos->SizeOfRawData = alignSize(sizeOfRawData, fileAlign); + + if (canSectionEncode((const char *)secPos->Name)) { + ToyBlockPtr toyBlock(new ToyBlock(TOY_TYPE_SECTION, sizeof(*toySection))); + char *data = (char *)RvaPtr(secPos->VirtualAddress); + size_t dataLen = minSectionSize(data, secPos->SizeOfRawData); + size_t need = encode(NULL, data, dataLen); + + char *encData = new char[need]; + encode(encData, data, dataLen); + toyBlock->push(encData, need); + delete[] encData; + + toySection = (PTOY_SECTION)toyBlock->dataHeader(); + toySection->Encrypt = 1; + toySection->OrignalAddr = secPos->VirtualAddress; + toySection->PackedSize = need; + + toyBlock->finish(); + _toyBlockList.push_back(toyBlock); + + secPos->SizeOfRawData = 0; + } else { + err = fwriteFixed(f, RvaPtr(secPos->VirtualAddress), sizeOfRawData); + if (SUCCESS != err) + goto out; + err = fwriteZero(f, secPos->SizeOfRawData - sizeOfRawData); + if (SUCCESS != err) + goto out; + } + } + + secPos->Misc.VirtualSize = alignSize(secPos->Misc.VirtualSize, secAlign); + secPos->Characteristics |= IMAGE_SCN_MEM_WRITE; + + printf("Pack section %s done!\n", (const char *)secPos->Name); + + // 修正下一个区块文件偏移 + if (i != (numberOfSections - 1)) + secPos[1].PointerToRawData = secPos->PointerToRawData + secPos->SizeOfRawData; + } + + // + // 处理壳 + // + PTOY_SHELL_ARGS shellArgs; + size_t shellSize, shellCodeSize, shellDataSize = 0; + char *shellBase, *shellDataPtr; + + // 解压后的总大小 + shellDataSize = getBlockListSize(); + shellCodeSize = (size_t)&ToyShellEnd - (size_t)&ToyShellBegin; + shellSize = alignSize(shellCodeSize, 4) + shellDataSize; + + // 复制数据 + shellBase = new char[shellSize]; + shellDataPtr = shellBase + alignSize(shellCodeSize, 4); + memset(shellBase, 0, shellSize); + memcpy(shellBase, &ToyShellBegin, shellCodeSize); + mergeBlock(shellDataPtr, &shellDataSize); + + shellArgs = (PTOY_SHELL_ARGS)(shellBase + (size_t)&ToyShellArgs - (size_t)&ToyShellBegin); + + // 压缩数据 + char *packStart = shellBase + shellArgs->ToyPackVAddr; + size_t packBufSize = shellSize - shellArgs->ToyPackVAddr; + char *workmem = new char[aP_workmem_size(packBufSize)]; + char *compressed = new char[aP_max_packed_size(packBufSize)]; + size_t outlength = aP_pack(packStart, compressed, packBufSize, workmem, NULL, NULL); + if (outlength == APLIB_ERROR) + goto out; + + memcpy(packStart, compressed, outlength); + size_t shellRawSize = (size_t)packStart - (size_t)shellBase + outlength; + + shellArgs->ToyPackSize = outlength; + + // 修正壳的数据 + shellArgs->OrigImageBase = _ntHeaders->OptionalHeader.ImageBase; + shellArgs->OrigEntryPoint = _ntHeaders->OptionalHeader.AddressOfEntryPoint; + + secPos = &_secHeaders[numberOfSections - 1]; + shellHdr = secPos + 1; + _ntHeaders->FileHeader.NumberOfSections++; + + DWORD newEntryPoint = secPos->VirtualAddress + secPos->Misc.VirtualSize; // 新的入口点 + _ntHeaders->OptionalHeader.AddressOfEntryPoint = newEntryPoint; + + shellHdr->Misc.VirtualSize = alignSize(shellSize, secAlign); + strcpy((char *)shellHdr->Name, ".petoy"); + shellHdr->NumberOfLinenumbers = 0; + shellHdr->NumberOfRelocations = 0; + shellHdr->PointerToLinenumbers = 0; + shellHdr->PointerToRawData = secPos->PointerToRawData + secPos->SizeOfRawData; + shellHdr->PointerToRelocations = 0; + shellHdr->SizeOfRawData = alignSize(shellRawSize, fileAlign); + shellHdr->VirtualAddress = newEntryPoint; + shellHdr->Characteristics = 0xE0000040; // RWX + contains init data + + // 修正Shell数据块RVA + shellArgs->ToyBlockVAddr = shellHdr->VirtualAddress + alignSize(shellCodeSize, 4); + shellArgs->ToyBlockSize = shellDataSize; + + // 修正Shell导入表 + importDir->VirtualAddress = shellHdr->VirtualAddress + (DWORD)&ToyShellImportBegin - (DWORD)&ToyShellBegin; + importDir->Size = (DWORD)&ToyShellImportEnd - (DWORD)&ToyShellImportBegin; + + shellImportHdr = (PIMAGE_IMPORT_DESCRIPTOR)(shellBase + (DWORD)&ToyShellImportBegin - (DWORD)&ToyShellBegin); + for (i = 0; shellImportHdr[i].FirstThunk != 0; i++) { + PIMAGE_THUNK_DATA firstThunk = (PIMAGE_THUNK_DATA)((char *)&(shellImportHdr[i]) + shellImportHdr[i].FirstThunk); + + shellImportHdr[i].OriginalFirstThunk += importDir->VirtualAddress; + shellImportHdr[i].Name += importDir->VirtualAddress; + shellImportHdr[i].FirstThunk += importDir->VirtualAddress; + + for (int j = 0; firstThunk[j].u1.Ordinal != 0; j++) { + firstThunk[j].u1.Ordinal += importDir->VirtualAddress; + } + } + + printf("Add shellcode done!\n"); + + err = fwriteFixed(f, shellBase, shellRawSize); + if (SUCCESS != err) + goto out; + err = fwriteZero(f, shellHdr->SizeOfRawData - shellRawSize); + if (SUCCESS != err) + goto out; + + // 写文件头 + _ntHeaders->OptionalHeader.SizeOfHeaders = sizeOfHeader; + _ntHeaders->OptionalHeader.SizeOfImage = shellHdr->VirtualAddress + shellHdr->Misc.VirtualSize; + + _ntHeaders->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_IAT].VirtualAddress = 0; + _ntHeaders->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_IAT].Size = 0; + _ntHeaders->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_DEBUG].VirtualAddress = 0; + _ntHeaders->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_DEBUG].Size = 0; + _ntHeaders->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_DELAY_IMPORT].VirtualAddress = 0; + _ntHeaders->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_DELAY_IMPORT].Size = 0; + _ntHeaders->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG].VirtualAddress = 0; + _ntHeaders->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_LOAD_CONFIG].Size = 0; + + // 额外数据 + if (_extendSize > 0) { + err = fwriteFixed(f, _extendBase, _extendSize); + if (SUCCESS != err) + goto out; + printf("Add extend data done!\n"); + } + + fseek(f, 0, SEEK_SET); + err = fwriteFixed(f, _imageBase, sizeOfHeader); +out: + if (shellBase) delete []shellBase; + if (f) fclose(f); + return err; +} + +EC Packer::unpack(const std::string &savename) +{ + + return SUCCESS; +} + +bool Packer::canSectionEncode(const std::string &name) +{ + static const char *secNames[] = { + ".text", ".data", ".rdata", "CODE", "DATA", ".reloc", NULL, + }; + + for (int i = 0; secNames[i] != NULL; i++) { + if (0 == name.compare(secNames[i])) + return true; + } + return false; +} + +size_t Packer::encode(char *dst, const char *src, size_t len) +{ + for (size_t i = 0; i < len; i++) { + if (dst) + dst[i] = src[i] ^ ((char)i & 0xff); + } + return len; +} + +size_t Packer::decode(char *dst, const char *src, size_t len) +{ + return this->encode(dst, src, len); +} + +void Packer::packImport(void) +{ + char *dllName; + PIMAGE_DATA_DIRECTORY dataDir; + PIMAGE_IMPORT_DESCRIPTOR desc; + PIMAGE_THUNK_DATA32 origThunk; + + dataDir = &(_ntHeaders->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_IMPORT]); + if (dataDir->VirtualAddress == 0) + return; + + desc = (PIMAGE_IMPORT_DESCRIPTOR)RvaPtr(dataDir->VirtualAddress); + while (desc->Name != 0) { + TOY_IMPORT_THUNK toyThunk; + ToyBlockPtr toyBlock(new ToyBlock(TOY_TYPE_IMPORT, 0)); + + // DllName + dllName = (char *)RvaPtr(desc->Name); + toyThunk.Type = TOY_IMPORT_TYPE_DLLNAME; + toyThunk.Size = sizeof(toyThunk) + strlen(dllName) + 1; + toyBlock->push(&toyThunk, sizeof(toyThunk)); + toyBlock->pushString(dllName); + + // FirstThunk + toyThunk.Type = TOY_IMPORT_TYPE_FIRST_THUNK; + toyThunk.Size = sizeof(toyThunk) + sizeof(DWORD); + toyBlock->push(&toyThunk, sizeof(toyThunk)); + toyBlock->pushDword(desc->FirstThunk); + + // Function + if (desc->OriginalFirstThunk) + origThunk = (PIMAGE_THUNK_DATA32)RvaPtr(desc->OriginalFirstThunk); + else + origThunk = (PIMAGE_THUNK_DATA32)RvaPtr(desc->FirstThunk); + + while (origThunk->u1.Ordinal) { + if (IMAGE_SNAP_BY_ORDINAL32(origThunk->u1.Ordinal)) { + toyThunk.Type = TOY_IMPORT_TYPE_ORDINAL; + toyThunk.Size = sizeof(toyThunk) + sizeof(DWORD); + toyBlock->push(&toyThunk, sizeof(toyThunk)); + toyBlock->pushDword(IMAGE_ORDINAL32(origThunk->u1.Ordinal)); + } else { + PIMAGE_IMPORT_BY_NAME impName; + impName = (PIMAGE_IMPORT_BY_NAME)RvaPtr(origThunk->u1.AddressOfData); + + toyThunk.Type = TOY_IMPORT_TYPE_FUNC_NAME; + toyThunk.Size = sizeof(toyThunk) + strlen((char *)impName->Name) + 1; + toyBlock->push(&toyThunk, sizeof(toyThunk)); + toyBlock->pushString((char *)impName->Name); + } + origThunk++; + } + + toyThunk.Type = toyThunk.Size = 0; + toyBlock->push(&toyThunk, sizeof(toyThunk)); + + toyBlock->finish(); + _toyBlockList.push_back(toyBlock); + desc++; + } +} + +void Packer::packBaseReloc(void) +{ + PTOY_BASE_RELOC toyReloc; + + PIMAGE_DATA_DIRECTORY dataDir; + PIMAGE_BASE_RELOCATION reloc; + + dataDir = &(_ntHeaders->OptionalHeader.DataDirectory[IMAGE_DIRECTORY_ENTRY_BASERELOC]); + if (dataDir->VirtualAddress == 0) + return; + + reloc = (PIMAGE_BASE_RELOCATION)RvaPtr(dataDir->VirtualAddress); + while (reloc->VirtualAddress) { + DWORD count = 0; + ToyBlockPtr toyBlock(new ToyBlock(TOY_TYPE_BASERELOC, sizeof(*toyReloc))); + PWORD offset = (PWORD)((DWORD)reloc + sizeof(*reloc)); + + for (DWORD i = 0; i < (reloc->SizeOfBlock - sizeof(*reloc)) / 2; i++) { + if (IMAGE_REL_BASED_HIGHLOW == (offset[i] >> 12)) { + count++; + toyBlock->pushWord(offset[i] & 0x0fff); + } + } + + if (count) { + toyReloc = (PTOY_BASE_RELOC)toyBlock->dataHeader(); + + toyReloc->VirtualAddress = reloc->VirtualAddress; + toyReloc->Type = IMAGE_REL_BASED_HIGHLOW; + toyReloc->Number = count; + + toyBlock->finish(); + _toyBlockList.push_back(toyBlock); + } + + reloc = (PIMAGE_BASE_RELOCATION)((DWORD)reloc + reloc->SizeOfBlock); + } +} + +void Packer::mergeBlock(char *data, size_t *len) +{ + size_t used = 0; + size_t i = 0; + + // 优先合并区块信息 + while (i < _toyBlockList.size()) { + ToyBlockPtr bk = _toyBlockList[i]; + + if (bk->type() == TOY_TYPE_SECTION) { + const size_t bkSize = bk->size(); + if (data && (used + bkSize <= *len)) + memcpy(data + used, bk->get(), bkSize); + used += bkSize; + + _toyBlockList.erase(_toyBlockList.begin() + i); + continue; + } + i++; + } + + // 再处理其他的数据块 + for (i = 0; i < _toyBlockList.size(); i++) { + ToyBlockPtr bk = _toyBlockList[i]; + const size_t bkSize = bk->size(); + if (data && (used + bkSize <= *len)) + memcpy(data + used, bk->get(), bkSize); + used += bkSize; + } + + *len = used; +} + +size_t Packer::getBlockListSize(void) +{ + size_t result = 0; + + for (size_t i = 0; i < _toyBlockList.size(); i++) { + ToyBlockPtr bk = _toyBlockList[i]; + result += bk->size(); + } + return result; +} + +} // namespace petoy + +``` + +`packer.h`: + +```h +#ifndef _PETOY_PACKER_H_ +#define _PETOY_PACKER_H_ + +#include +#include +#include +#include +#include "common.h" +#include "shell.h" + +namespace petoy { + +class Packer +{ +public: + Packer(); + ~Packer(); + + // 加载PE文件到内存 + EC load(const std::string &filename); + // 加壳 + EC pack(const std::string &savename); + // 脱壳 + EC unpack(const std::string &savename); + +private: + size_t alignSize(size_t n, size_t align) + { + if (!n) return 0; + return (n + align - 1) / align * align; + } + + void *RvaPtr(size_t rva) { return _imageBase + rva; } + + size_t minSectionSize(const void *data, size_t len) + { + const char *buf = (const char *)data; + while (!buf[len - 1] && len > 0) + len--; + return len; + } + void packImport(void); + void packBaseReloc(void); + void mergeBlock(char *data, size_t *len); + size_t getBlockListSize(void); + void clearSectionName(void); + + bool canSectionEncode(const std::string &name); + size_t encode(char *dst, const char *src, size_t len); + size_t decode(char *dst, const char *src, size_t len); + + + PIMAGE_DOS_HEADER _dosHeader; + PIMAGE_NT_HEADERS32 _ntHeaders; + PIMAGE_SECTION_HEADER _secHeaders; + + char *_imageBase; + size_t _imageSize; + char *_extendBase; + size_t _extendSize; + + std::vector _toyBlockList; // 保存壳的数据块 +}; + +} // namespace petoy + +#endif // _PETOY_PACKER_H_ + +``` + +`petoy.sln`: + +```sln + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "petoy", "petoy.vcxproj", "{53E20AC4-7154-4501-85B7-B64FF4652F03}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Release|Win32 = Release|Win32 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {53E20AC4-7154-4501-85B7-B64FF4652F03}.Debug|Win32.ActiveCfg = Debug|Win32 + {53E20AC4-7154-4501-85B7-B64FF4652F03}.Debug|Win32.Build.0 = Debug|Win32 + {53E20AC4-7154-4501-85B7-B64FF4652F03}.Release|Win32.ActiveCfg = Release|Win32 + {53E20AC4-7154-4501-85B7-B64FF4652F03}.Release|Win32.Build.0 = Release|Win32 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal + +``` + +`petoy.vcxproj`: + +```vcxproj + + + + + Debug + Win32 + + + Release + Win32 + + + + {53E20AC4-7154-4501-85B7-B64FF4652F03} + Win32Proj + petoy + + + + Application + true + MultiByte + + + Application + false + true + MultiByte + + + + + + + + + + + + + true + + + false + + + + + + Level3 + Disabled + WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions) + + + Console + true + aPLib\lib\coff\aplib.lib;%(AdditionalDependencies) + + + + + Level3 + + + MaxSpeed + true + true + WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions) + + + Console + true + true + true + aPLib\lib\coff\aplib.lib;%(AdditionalDependencies) + + + 0x0004 + + + + + + + + + + + + + + + Document + masm32\ml /c /coff /Fo$(IntDir)\%(Filename).obj %(Filename).asm + $(IntDir)\%(Filename).obj + masm32\ml /c /coff /Fo$(IntDir)\%(Filename).obj %(Filename).asm + $(IntDir)\%(Filename).obj + + + + + + +``` + +`petoy.vcxproj.filters`: + +```filters + + + + + {4FC737F1-C7A5-4376-A066-2A32D752A2FF} + cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx + + + {93995380-89BD-4b04-88EB-625FBE52EBFB} + h;hpp;hxx;hm;inl;inc;xsd + + + + + 头文件 + + + 头文件 + + + 头文件 + + + + + 源文件 + + + 源文件 + + + + + + + + 源文件 + + + +``` + +`shell.asm`: + +```asm + +.586p +.model flat,stdcall +option casemap:none + +include masm32\windows.inc + +; ------------------------------------------------ +; 结构体声明 +; ------------------------------------------------ + +; 导入表 +TOY_IMPORT_TYPE_DLLNAME equ 1 +TOY_IMPORT_TYPE_FIRST_THUNK equ 2 +TOY_IMPORT_TYPE_ORDINAL equ 3 +TOY_IMPORT_TYPE_FUNC_NAME equ 4 + + +TOY_TYPE_SECTION equ 1 ; 数据块表示一个区块 +TOY_TYPE_IMPORT equ 2 ; 数据块表示导入表 +TOY_TYPE_BASERELOC equ 3 ; 数据块表示基值重定位数据 + +TOY_IMPORT_THUNK struct + dwSize dd ? + dwType dd ? +TOY_IMPORT_THUNK ends + +; 基值重定位 +TOY_BASE_RELOC struct + dwVAddr dd ? + dwType dd ? + dwNumber dd ? +TOY_BASE_RELOC ends + +; 区块信息 +TOY_SECTION struct + dwEncrypt dd ? + dwOrignalAddr dd ? + dwPackedSize dd ? +TOY_SECTION ends + +; 数据块信息 +TOY_BLOCK_TYPE_SECTION equ 1 +TOY_BLOCK_TYPE_IMPORT equ 2 +TOY_BLOCK_TYPE_BASERELOC equ 3 + +TOY_BLOCK_HEADER struct + dwSize dd ? + dwType dd ? +TOY_BLOCK_HEADER ends + +; 函数声明 +ToyMemCpy proto dst:ptr byte, src:ptr byte, len:dword +ToyZeroMem proto src:ptr byte, len:dword +ToyDecode proto dst:ptr byte, src:ptr byte, len:dword +ToyCheckDebugger proto +ToyDoSection proto instance:dword, section:dword +ToyDoImport proto instance:dword, thunk:dword +ToyDoBaseReloc proto instance:dword, reloc:dword +ToyDoDataBlock proto instance:dword, blockBase:dword + + +public ToyShellBegin +public ToyShellEnd +public ToyShellImportBegin +public ToyShellImportEnd +public ToyShellArgs + +assume fs:nothing + +.code + +ToyShellBegin label dword + nop ; 4字节对齐 + nop + pushad + call next0 + +; ------------------------------------------------------------- +; 外壳的输入表 +; ------------------------------------------------------------- +ToyShellImportBegin label dword +ToyImportTable dd AddressFirst - ToyImportTable ; OriginalFirstThunk + dd 0,0 ; TimeDataStamp, ForwardChain + dd DllName - ToyImportTable ; Name + dd AddressFirst - ToyImportTable ; FirstThunk + dd 0,0,0,0,0 + +AddressFirst dd FirstFunction - ToyImportTable ; 指向IMAGE_THUNK_DATA +AddressSecond dd SecondFunction - ToyImportTable ; 指向IMAGE_THUNK_DATA +AddressThird dd ThirdFunction - ToyImportTable ; 指向IMAGE_THUNK_DATA +AddressFourth dd FourthFunction - ToyImportTable ; 指向IMAGE_THUNK_DATA +AddressFifth dd FifthFunction - ToyImportTable ; 指向IMAGE_THUNK_DATA + dd 0 + +DllName db 'KERNEL32.dll' + dw 0 + +FirstFunction dw 0 + db 'GetProcAddress', 0 +SecondFunction dw 0 + db 'GetModuleHandleA', 0 +ThirdFunction dw 0 + db 'LoadLibraryA', 0 +FourthFunction dw 0 + db 'VirtualAlloc', 0 +FifthFunction dw 0 + db 'VirtualFree', 0 +ToyShellImportEnd label dword + +; ------------------------------------------------------------- +; 壳的变量 +; ------------------------------------------------------------- +ToyShellArgs label dword +toyPackVAddr dd next1 - ToyShellBegin +toyPackSize dd 0 +toyBlockVAddr dd 0 +toyBlockSize dd 0 +origImageBase dd 0 +origEntryPoint dd 0 + +; 内部使用的变量 +isFirstRun dd 0 +imageBase dd 0 + +ToyMemCpy proc dst:ptr byte, src:ptr byte, len:dword + mov edi, [dst] + mov esi, [src] + mov ecx, [len] + + shr ecx, 2 ; 按DWORD复制 + rep movsd + + mov ecx, [len] ; 复制剩余的小于DWORD的部分 + and ecx, 3 + rep movsb + + mov eax, [dst] + ret +ToyMemCpy endp + +; ------------------------------------------------------ +; aPLib +;------------------------------------------------------- + +aP_depack_asm: + ; aP_depack_asm(const void *source, void *destination) + + _ret$ equ 7*4 + _src$ equ 8*4 + 4 + _dst$ equ 8*4 + 8 + + pushad + + mov esi, [esp + _src$] ; C calling convention + mov edi, [esp + _dst$] + + cld + mov dl, 80h + xor ebx,ebx + +literal: + movsb + mov bl, 2 +nexttag: + call getbit + jnc literal + + xor ecx, ecx + call getbit + jnc codepair + xor eax, eax + call getbit + jnc shortmatch + mov bl, 2 + inc ecx + mov al, 10h + getmorebits: + call getbit + adc al, al + jnc getmorebits + jnz domatch + stosb + jmp nexttag +codepair: + call getgamma_no_ecx + sub ecx, ebx + jnz normalcodepair + call getgamma + jmp domatch_lastpos + +shortmatch: + lodsb + shr eax, 1 + jz donedepacking + adc ecx, ecx + jmp domatch_with_2inc + +normalcodepair: + xchg eax, ecx + dec eax + shl eax, 8 + lodsb + call getgamma + + cmp eax, 32000 + jae domatch_with_2inc + cmp ah, 5 + jae domatch_with_inc + cmp eax, 7fh + ja domatch_new_lastpos + +domatch_with_2inc: + inc ecx + +domatch_with_inc: + inc ecx + +domatch_new_lastpos: + xchg eax, ebp +domatch_lastpos: + mov eax, ebp + + mov bl, 1 + +domatch: + push esi + mov esi, edi + sub esi, eax + rep movsb + pop esi + jmp nexttag + +getbit: + add dl, dl + jnz stillbitsleft + mov dl, [esi] + inc esi + adc dl, dl + stillbitsleft: + ret + +getgamma: + xor ecx, ecx +getgamma_no_ecx: + inc ecx + getgammaloop: + call getbit + adc ecx, ecx + call getbit + jc getgammaloop + ret + +donedepacking: + sub edi, [esp + _dst$] + mov [esp + _ret$], edi ; return unpacked length in eax + + popad + + ret 8h + +; ------------------------------------------------------ +; 壳的代码 +; ------------------------------------------------------ +next0: + pop ebp + sub ebp, (ToyImportTable - ToyShellBegin) + + mov eax, [ebp + (isFirstRun - ToyShellBegin)] + .if eax != 0 + jmp ToyReturnOEP + .endif + inc dword ptr [ebp + (isFirstRun - ToyShellBegin)] + + ;得到映像基值 + push 0 + call dword ptr [ebp + (AddressSecond - ToyShellBegin)] ; GetModuleHandle + mov [ebp + (imageBase - ToyShellBegin)], eax + + ; 解压 + push PAGE_READWRITE + push MEM_COMMIT + push dword ptr [ebp + (toyPackSize - ToyShellBegin)] + push 0 + call dword ptr [ebp + (AddressFourth - ToyShellBegin)] ; VirtualAddress + push eax + + mov ecx, [ebp + (toyPackSize - ToyShellBegin)] + lea esi, [ebp + (next1 - ToyShellBegin)] + invoke ToyMemCpy, eax, esi, ecx + + pop eax + lea esi, [ebp + (next1 - ToyShellBegin)] + push esi + push eax + call aP_depack_asm + jmp next1 + + ; ------------------------------------------------------ + ; 下面部分运行时解压缩 + ; ------------------------------------------------------ +next1: + ; Anti-Debugger + invoke ToyCheckDebugger + + ; 处理数据块 + mov eax, [ebp + (toyBlockVAddr - ToyShellBegin)] + add eax, [ebp + (imageBase - ToyShellBegin)] + invoke ToyDoDataBlock, ebp, eax + + ; 删除壳的输入表 + mov edi, ebp + add edi, ToyShellImportBegin - ToyShellBegin + + lea eax, ToyShellImportBegin + lea ecx, ToyShellImportEnd + sub ecx, eax + invoke ToyZeroMem, edi, ecx + + ; 返回 + mov eax, [ebp + (origEntryPoint - ToyShellBegin)] + add eax, [ebp + (imageBase - ToyShellBegin)] + add dword ptr [ebp + (ToyReturnOEP - ToyShellBegin) + 1], eax ; SMC + popad +ToyReturnOEP: + push dword ptr[0] + ret + +ToyDoDataBlock proc instance:dword, blockBase:dword + local @block:dword, @blockData:dword + + mov edi, [blockBase] + mov [@block], edi + + .while 1 + mov edi, [@block] + + mov eax, edi + add eax, TOY_BLOCK_HEADER.dwSize + mov eax, [eax] + .if eax == 0 + .break + .endif + + mov eax, edi + add eax, sizeof TOY_BLOCK_HEADER + mov [@blockData], eax + + mov eax, edi + add eax, TOY_BLOCK_HEADER.dwType + mov eax, [eax] + .if eax == TOY_TYPE_SECTION + invoke ToyDoSection, [instance], [@blockData] + .elseif eax == TOY_TYPE_IMPORT + invoke ToyDoImport, [instance], [@blockData] + .elseif eax == TOY_TYPE_BASERELOC + invoke ToyDoBaseReloc, [instance], [@blockData] + .endif + + mov edi, [@block] + mov ecx, [edi + TOY_BLOCK_HEADER.dwSize] + mov eax, edi + add eax, ecx + mov [@block], eax + + ; 清空当前数据块的内容 + invoke ToyZeroMem, edi, ecx + .endw + ret +ToyDoDataBlock endp + +ToyDoSection proc instance:dword, section:dword + local data:dword, encrypt:dword, origAddr:dword, packedSize:dword + + mov edi, [section] + + mov eax, edi + add eax, sizeof TOY_SECTION + mov data, eax + + mov eax, [edi + TOY_SECTION.dwEncrypt] + mov [encrypt], eax + + mov eax, [edi + TOY_SECTION.dwPackedSize] + mov [packedSize], eax + + mov eax, edi + add eax, TOY_SECTION.dwOrignalAddr + mov eax, [eax] + mov ebx, [instance] + add eax, [ebx + (imageBase - ToyShellBegin)] + mov [origAddr], eax + + .if encrypt == 0 + invoke ToyMemCpy, [origAddr], [data], [packedSize] + .else + invoke ToyDecode, [origAddr], [data], [packedSize] + .endif + ret +ToyDoSection endp + +ToyImportThunkNext macro t, n + push edi + mov edi, t + add edi, [edi + TOY_IMPORT_THUNK.dwSize] + mov n, edi + pop edi +endm + +ToyImportThunkData macro t, d + push edi + mov edi, t + add edi, sizeof TOY_IMPORT_THUNK + mov d, edi + pop edi +endm + +ToyDoImport proc instance:dword, thunk:dword + local @thunk:dword, @dll:dword, @firstThunk:dword, @thunkData:dword, @size:dword + + ; DllName + mov edi, [thunk] + mov eax, [edi + TOY_IMPORT_THUNK.dwType] + .if eax != TOY_IMPORT_TYPE_DLLNAME + ret + .endif + + ToyImportThunkData [thunk], [@thunkData] + + push [@thunkData] + mov ebx, [instance] + call dword ptr [ebx + (AddressSecond - ToyShellBegin)] ; GetModuleHandle + .if eax == 0 + push [@thunkData] + mov ebx, [instance] + call dword ptr [ebx + (AddressThird - ToyShellBegin)] ; LoadLibrary + .endif + mov [@dll], eax + + ; FirstThunk + ToyImportThunkNext [thunk], [@thunk] + + mov edi, [@thunk] + mov eax, [edi + TOY_IMPORT_THUNK.dwType] + .if eax != TOY_IMPORT_TYPE_FIRST_THUNK + ret + .endif + + ToyImportThunkData [@thunk], [@thunkData] + + mov edi, [@thunkData] + mov edi, [edi] + mov ebx, [instance] + add edi, [ebx + (imageBase - ToyShellBegin)] + mov [@firstThunk], edi + + ; Function + .while 1 + ToyImportThunkNext [@thunk], [@thunk] + mov eax, [@thunk + TOY_IMPORT_THUNK.dwSize] + mov eax, [eax] + .if eax == 0 + .break + .endif + + ToyImportThunkData [@thunk], [@thunkData] + mov edi, [@thunk] + mov eax, [edi + TOY_IMPORT_THUNK.dwType] + .if eax == TOY_IMPORT_TYPE_ORDINAL + mov eax, [@thunkData] + push [eax] + .elseif eax == TOY_IMPORT_TYPE_FUNC_NAME + push [@thunkData] + .endif + push [@dll] + mov ebx, [instance] + call dword ptr [ebx + (AddressFirst - ToyShellBegin)] ; GetProcAddress + mov edx, [@firstThunk] + mov [edx], eax + + mov eax, [@firstThunk] + add eax, sizeof IMAGE_THUNK_DATA32 + mov [@firstThunk], eax + .endw + ret +ToyDoImport endp + +ToyDoBaseReloc proc instance:dword, reloc:dword + local @addr:ptr dword, @diff:dword, @offset:ptr word, @VAddr:dword + + mov ebx, [instance] + mov eax, [ebx + (imageBase - ToyShellBegin)] + sub eax, [ebx + (origImageBase - ToyShellBegin)] + mov [@diff], eax + + mov edi, [reloc] + + mov eax, [edi + TOY_BASE_RELOC.dwType] + .if eax != 3 + ret + .endif + + mov eax, [edi + TOY_BASE_RELOC.dwVAddr] + add eax, [ebx + (imageBase - ToyShellBegin)] + mov [@VAddr], eax + + mov eax, edi + add eax, sizeof TOY_BASE_RELOC + mov [@offset], eax + + mov ecx, [edi + TOY_BASE_RELOC.dwNumber] + xor esi, esi + .while esi < ecx + mov ebx, [@offset] + movzx eax, word ptr [ebx + sizeof WORD * esi] ; 16bit -> 32bit + add eax, [@VAddr] + mov edx, [@diff] + add [eax], edx + inc esi + .endw + ret +ToyDoBaseReloc endp + +ToyZeroMem proc src:ptr byte, len:dword + mov edi, [src] + mov ecx, [len] + mov eax, 0 + + shr ecx, 2 + rep stosd + + mov ecx, [len] + and ecx, 3 + rep stosb + + xor eax, [src] + ret +ToyZeroMem endp + +ToyCheckDebugger proc + ret +ToyCheckDebugger endp + +ToyDecode proc dst:ptr byte, src:ptr byte, len:dword + mov edi, [dst] + mov esi, [src] + mov edx, [len] + + xor ecx, ecx + .while ecx < edx + mov al, byte ptr [esi] + xor al, cl + mov byte ptr [edi], al + inc esi + inc edi + inc ecx + .endw + ret +ToyDecode endp + +ToyShellEnd label dword + +end +``` + +`shell.h`: + +```h +/** + * 壳的数据部分 + * (采用数据块的形式保存数据) + * +--------+-------+--------+-------+--------+-------+ + * | Header | Block | Header | Block | ... | 0 | + * +--------+-------+--------+-------+--------+-------+ + */ + +#ifndef _PETOY_SHELL_H_ +#define _PETOY_SHELL_H_ + +#include +#include +#include +#include "common.h" + +#include // 4字节对齐 + + +// +// 壳的参数 +// +extern "C" DWORD ToyShellBegin; +extern "C" DWORD ToyShellEnd; +extern "C" DWORD ToyShellImportBegin; +extern "C" DWORD ToyShellImportEnd; +extern "C" DWORD ToyShellArgs; + +typedef struct _TOY_SHELL_ARGS{ + DWORD ToyPackVAddr; // 0x00 + DWORD ToyPackSize; // 0x04 + DWORD ToyBlockVAddr; // 0x08 + DWORD ToyBlockSize; // 0x0c + DWORD OrigImageBase; // 0x10 + DWORD OrigEntryPoint; // 0x14 +} TOY_SHELL_ARGS, *PTOY_SHELL_ARGS; + +// +// 壳的数据块头部 +// + +#define TOY_BLOCK_ALIGN 4 // 数据块4字节对齐 +#define TOY_BLOCK_ALIGN_MASK 0x3 + +#define TOY_TYPE_SECTION 1 // 数据块表示一个区块 +#define TOY_TYPE_IMPORT 2 // 数据块表示导入表 +#define TOY_TYPE_BASERELOC 3 // 数据块表示基值重定位数据 + +typedef struct _TOY_BLOCK_HEADER { + DWORD Size; + DWORD Type; +} TOY_BLOCK_HEADER, *PTOY_BLOCK_HEADER; + +// +// 导入表 +// (每一块都是一个TOY_IMPORT_THUNK结构体,结尾有一个全为0的结构体) +// +---------+------------+----------+-----+---+ +// | DllName | FirstThunk | Function | ... | 0 | +// +---------+------------+----------+-----+---+ +// + +typedef struct TOY_IMPORT_THUNK { + DWORD Size; + DWORD Type; + //union { + // DWORD FirstThunk; // 原来的FirstThunk的RVA + // DWORD Ordinal; // 序号 + // CHAR DllName[1]; // Dll名 + // CHAR FuncName[1]; // 函数名 + //}; +} TOY_IMPORT_THUNK, *PTOY_IMPORT_THUNK; + + +enum { + TOY_IMPORT_TYPE_DLLNAME = 1, + TOY_IMPORT_TYPE_FIRST_THUNK, + TOY_IMPORT_TYPE_ORDINAL, + TOY_IMPORT_TYPE_FUNC_NAME, +}; + +#define TOY_IMPORT_THUNK_DATA(x) ((char *)((DWORD)x + sizeof(*x))) +#define TOY_IMPORT_THUNK_NEXT(x) ((PTOY_IMPORT_THUNK)((DWORD)x + x->Size)) + +// +// 基值重定位表格式 +// + +typedef struct _TOY_BASE_RELOC { + DWORD VirtualAddress; + DWORD Type; + DWORD Number; + // WORD Offset[1]; +} TOY_BASE_RELOC, *PTOY_BASE_RELOC; + +#define TOY_BASE_RELOC_DATA(x) ((PWORD)((DWORD)x + sizeof(*x))) + +// +// 区块信息 +// + +typedef struct _TOY_SECTION { + DWORD Encrypt; + DWORD OrignalAddr; + DWORD PackedSize; + // BYTE Data[1] +} TOY_SECTION, *PTOY_SECTION; + +#define TOY_SECTION_DATA(x) ((char *)((DWORD)x + sizeof(*x))) + +#include + +namespace petoy { + +class ToyBlock { +public: + ToyBlock() + : _buf(NULL), _used(0), _bufSize(0) + { + } + + ToyBlock(int type, size_t dataHeaderSize) + { + create(type, dataHeaderSize); + } + + ~ToyBlock() + { + if (_buf) { + delete []_buf; + _used = _bufSize = 0; + } + } + + void create(int type, size_t dataHeaderSize) + { + PTOY_BLOCK_HEADER blockHeader; + + if ((sizeof(TOY_BLOCK_HEADER) + dataHeaderSize) > DefaultBlockSize) + _bufSize = roundupPowOfTwo(sizeof(*blockHeader) + dataHeaderSize); + else + _bufSize = DefaultBlockSize; + + _buf = new char[_bufSize]; + _used = sizeof(*blockHeader) + dataHeaderSize; + memset(_buf, 0, _bufSize); + + blockHeader = (PTOY_BLOCK_HEADER)_buf; + blockHeader->Type = type; + } + + PTOY_BLOCK_HEADER blockHeader(void) + { + return (PTOY_BLOCK_HEADER)_buf; + } + + void *dataHeader(void) + { + return (void *)(_buf + sizeof(TOY_BLOCK_HEADER)); + } + + void finish(void) + { + size_t fill; + PTOY_BLOCK_HEADER hdr = (PTOY_BLOCK_HEADER)_buf; + + // 对齐4字节大小 + fill = TOY_BLOCK_ALIGN - (_used & TOY_BLOCK_ALIGN_MASK); + while (fill-- > 0) + pushByte(0); + + hdr->Size = _used; + } + + DWORD size(void) const + { + return _used; + } + + DWORD type(void) const + { + PTOY_BLOCK_HEADER hdr = (PTOY_BLOCK_HEADER)_buf; + return hdr->Type; + } + + char *get(void) const + { + return _buf; + } + + char *pushByte(BYTE b) + { + return push(&b, sizeof(BYTE)); + } + + char *pushWord(WORD w) + { + return push(&w, sizeof(WORD)); + } + + char *pushDword(DWORD dw) + { + return push(&dw, sizeof(DWORD)); + } + + char *pushString(const char *s) + { + return push(s, strlen(s) + 1); + } + + char *pushString(const std::string &s) + { + return push(s.c_str(), s.length() + 1); + } + + char *push(const void *buf, size_t len) + { + size_t newUsed = _used + len; + + if (newUsed > _bufSize) { + _bufSize = roundupPowOfTwo(newUsed); + char *n = new char[_bufSize]; + memset(n, 0, _bufSize); + memcpy(n, _buf, _used); + delete []_buf; + _buf = n; + } + + memcpy(&_buf[_used], buf, len); + _used += len; + return &_buf[_used - len]; + } + +private: + static const size_t DefaultBlockSize = 0x1000; + + size_t roundupPowOfTwo(size_t size) + { + int n = 0; + while (0 != size) { + size >>= 1; + ++n; + } + return 1 << (n + 1); + } + + char *_buf; + size_t _bufSize; + size_t _used; +}; + +typedef std::shared_ptr ToyBlockPtr; + +} // namespace petoy + +#endif // _PETOY_SHELL_H_ + +``` \ No newline at end of file