Skip to content

Commit

Permalink
Merge pull request #105 from dynarithmic/master-staging
Browse files Browse the repository at this point in the history
Merge to version 5.4.8
  • Loading branch information
dynarithmic authored Aug 18, 2024
2 parents a5c604d + 47ac7bf commit fabeb67
Show file tree
Hide file tree
Showing 564 changed files with 14,224 additions and 53,974 deletions.
60 changes: 40 additions & 20 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

* The Dynarithmic TWAIN Library is open source and licensed under the Apache 2.0 License. Please read the [LICENSE](https://github.com/dynarithmic/twain_library/tree/master/LICENSE) file for more information.
* The DTWAIN Library online help file can be found [here](https://www.dynarithmic.com/onlinehelp/dtwain/newversion/Dynarithmic%20TWAIN%20Library,%20Version%205.x.html).
* The current version is [**5.4.7** (See Version History)](https://github.com/dynarithmic/twain_library/tree/master/updates/updates.txt).
* The current version is [**5.4.8** (See Version History)](https://github.com/dynarithmic/twain_library/tree/master/updates/updates.txt).

**Please note that the source code and sample programs for the Dynarithmic TWAIN Library has moved to [this repository](https://github.com/dynarithmic/twain_library_source/tree/master)**.

Expand Down Expand Up @@ -237,40 +237,60 @@ In general, DTWAIN can set or get any capability, including custom capabilities
----------

<a name="alternatecompilers"></a>
### What if I don't have Visual Studio as the compiler to use when building an application? I use Embarcadero/g++/clang/MingW/Dev++ (fill in with your favorite compiler or IDE). How do I use the library?
### What if I don't have Visual C++ as the compiler to use when building an application? The Visual C++ import libraries will not work for me. I use Embarcadero/g++/clang/MingW (fill in with your favorite compiler or IDE). So how do I use the library?

You can do one of two things:

1. Attempt to convert the .lib files mentioned above to your compiler's version of an import library, or
2. Forget about using libraries altogether, and use dynamic library loading using the Windows API LoadLibrary, GetProcAddress, and FreeLibrary calls.
2. Use dynamic library loading using the Windows API LoadLibrary, GetProcAddress, and FreeLibrary calls. Usage of this method requires no import libraries to be used (which makes this a better choice).

For the first item, some compilers have external tools that allow you to use Visual Studio generated library files.
For the first item, some compilers have external tools that allow you to use Visual Studio generated library files. However, there still may be some quirks in those tools that do not create correct import libraries.

For the second item, there are bindings that we have built that facilitate the usage of LoadLibrary/GetProcAddress/FreeLibrary, without you having to tediously write the interface. It can be [found here](https://github.com/dynarithmic/twain_library/blob/master/language_bindings_and_examples/C_CPP_DynamicLoad).
For the second item, no import libraries are required, thus makes this choice the recommended option.

/* Include this header */
#include "dtwainx2.h"

/* declare the API instance and the handle to the loaded library */
DYNDTWAIN_API API;
HMODULE h;
There are many DTWAIN functions, and you might be fearful of having to write code that tediously tries to create function pointers, call **GetProcAddress**, etc. There is no need to do that, as there are bindings that we have built that facilitate the usage of LoadLibrary/GetProcAddress/FreeLibrary Windows API functions. It can be [found here](https://github.com/dynarithmic/twain_library/blob/master/programming_language_bindings/C_CPP_DynamicLoad).

In addition, one of the files in the set of bindings is the C/C++ source file **dtwimpl.cpp** (or **dtwimpl.c** if you are using plain C) -- this file will need to be added to your project, as it contains the needed infrastructure for the binding to work properly. Failure to add this source file will result in linker errors when building your application.

Here is an example of code that works for both the LoadLibrary/GetProcAddress technique, and the "normal" DTWAIN usage of import libraries.

#ifdef USING_LOADLIBRARY
/* Include this header */
#include "dtwainx2.h"
#define API_INSTANCE API.
/* declare the API instance and the handle to the loaded library */
DYNDTWAIN_API API;
HMODULE h;
#else
#include "dtwain.h"
#define API_INSTANCE
#endif

int main()
{
#ifdef USING_LOADLIBRARY
/* Load the library dynamically, and hook up the external functions */
h = LoadLibraryA("dtwain32.dll");
InitDTWAINInterface(&API, h);

/* Use the API hook code */
API.DTWAIN_SysInitialize();
DTWAIN_SOURCE Source = API.DTWAIN_SelectSource();
if ( !h )
return -1; /* DTWAIN DLL was not found or could not be loaded */
API_INSTANCE InitDTWAINInterface(&API, h);
#endif
API_INSTANCE DTWAIN_SysInitialize();
DTWAIN_SOURCE Source = API_INSTANCE DTWAIN_SelectSource();
if ( Source )
API.DTWAIN_AcquireFileA(Source, "Test.bmp", DTWAIN_BMP,
API_INSTANCE DTWAIN_AcquireFileA(Source, "Test.bmp", DTWAIN_BMP,
DTWAIN_USENATIVE | DTWAIN_USENAME, DTWAIN_PT_DEFAULT,
DTWAIN_MAXACQUIRE, TRUE, TRUE, NULL);
API.DTWAIN_SysDestroy();
API_INSTANCE DTWAIN_SysDestroy();
}

The code above makes use of a preprocessor macro called **USING_LOADLIBRARY** that when defined will use the LoadLibrary technique. If **USING_LOADLIBRARY** is defined, then the header file **dtwainx2.h** is utilized, otherwise the normal **dtwain.h** header is used. In addition, the **API_INSTANCE** prefix is set to the **API.** text.

Note that your code has to call **LoadLibrary** with the appropriate DTWAIN DLL name. If the DLL is found at runtime, the **InitDTWAINInterface** is called with the address of the API instance and the returned module handle from the **LoadLibrary** call.

The **InitDTWAINInterface** function fills the API instance with all of the function pointers that exist in the DLL, where each function pointer matches the name of the DTWAIN function. Basically, all of the calls to **GetProcAddress** that you would have had to normally write is taken care of in the **InitDTWAINInterface** function. From there, all you have to do is preface all the DTWAIN calls with **API_INSTANCE**, since it will either be **API.** or blank, depending on whether the **USING_LOADLIBRARY** was defined.

----------

Expand All @@ -281,7 +301,7 @@ Note: To utilize other computer languages, it still requires that one of the [DT

----

DTWAIN includes computer language bindings for the following computer languages and utilities found in the [language_bindings_and_examples](https://github.com/dynarithmic/twain_library/tree/master/language_bindings_and_examples) folder:
DTWAIN includes computer language bindings for the following computer languages and utilities found in the [language_bindings_and_examples](https://github.com/dynarithmic/twain_library/tree/master/programming_language_bindings) folder:

C/C++ header and source files for dynamic loading using the Windows API LoadLibrary() and GetProcAddress() functions.
C#
Expand Down Expand Up @@ -342,7 +362,7 @@ namespace Test
----
###### Quick Example (Python)

Here is a python example using the [ctypes](https://docs.python.org/3/library/ctypes.html) module and using the [dtwain.py](https://github.com/dynarithmic/twain_library/tree/master/language_bindings_and_examples/Python) file that defines the DTWAIN constants. The program gives an example of acquiring a BMP image from a TWAIN device installed on your system:
Here is a python example using the [ctypes](https://docs.python.org/3/library/ctypes.html) module and using the [dtwain.py](https://github.com/dynarithmic/twain_library/tree/master/programming_language_bindings/Python) file that defines the DTWAIN constants. The program gives an example of acquiring a BMP image from a TWAIN device installed on your system:


```python
Expand Down
Binary file modified binaries/32bit/32bit_FullDemo.zip
Binary file not shown.
9 changes: 5 additions & 4 deletions binaries/32bit/32bit_FullDemo_hash.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
MD5: d6caf4457343f39847147a3b6724e287
SHA1: 2e7cdbf1d284d7f937b676eeda1ed73e662277ba
SHA256: 01e97b9c72beca33075ca1b2675b2acd3e658494134089ad159203847a8a4d8d
SHA512: 789ccd56829f71dcba84ecd1eb604bba499edde35c7174eea57cf262f4cac1d673f04a8a70e7a3e6bcaeb6733bfebc5ae09ea33640e750967bc1ae825d05c924
MD5: 896e4305ea73d8d3fef3b9b0464bc826
SHA1: 07f24e7f57fdd894794f8742daecb1cde34977d5
SHA256: 514d66b251a55e5616bfcc5e88f4b8aa0f0d36666601f0bd45ed10ae6b35f1cf
SHA512: 6b0c23a17a351dc7a80e98e85235c731bce7855a146f59e1b666da6e7cf9abca5255e2e4265ea0236db39d377829dbc9e6011cd71916f765ce8103ab30e84fbe

Binary file modified binaries/32bit/release_libraries.zip
Binary file not shown.
6 changes: 3 additions & 3 deletions binaries/32bit/release_ziphashes32.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
MD5 hash of "release_libraries.zip" (16 bytes) = 61d380d46ff6b01f60152e2f2aaf8885
SHA1 hash of "release_libraries.zip" (20 bytes) = 6b5325fde7f9f9dcd5f980737cbaad584e12587b
SHA256 hash of "release_libraries.zip" (32 bytes) = bf97da8c91c6f6b0425dc68a420578897fb7a4a995debc86cfa6842c45c27a67
MD5 hash of "release_libraries.zip" (16 bytes) = 7bfb784834940b5ea4072125b1c0cb0c
SHA1 hash of "release_libraries.zip" (20 bytes) = 6ccb3b498e630f70f9d15019addcc9d0785f2e2b
SHA256 hash of "release_libraries.zip" (32 bytes) = ce666114a3d4ee22c67f086965a56ab946c00bf3ef0a2f041f0d454a45d0824b

Binary file modified binaries/64bit/64bit_FullDemo.zip
Binary file not shown.
8 changes: 4 additions & 4 deletions binaries/64bit/64bit_FullDemo_hash.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
MD5: 7799f1c231387eb634d2ea6c54142d73
SHA1: a1176211b1582243870491e75c35633d0ee36c77
SHA256: 12c906d671db79b3960ab16f645d7dde647f5fe79eb5ed888f11e5a6d1e00fc2
SHA512: 7414f30c5f0bb122944f35f33e8be402bf5e5328e6235e2bb7ed95a9efb948207934b12cbe9f940c8372dde1865f28429b10f381d9afdbf8f2317b5bbe031e1a
MD5: b5bdfaaa86e710b150d7f9a0fc3c42b9
SHA1: 1acc69e7f2cad58aa152c017758fe1e67ebf6af7
SHA256: 5d7a1aa1fed9205dbbaedc9536b1b30e91a2aa41c29d7c36657ae629e99ccec0
SHA512: 6fef7b3e39283f1c47484f2ec50a6fdfb8f31b38993cde82a3792028792dab559c609026d56954d78e681ba1fb60dce246128093c35ab5bdabc09f866e6170e6
Binary file modified binaries/64bit/release_libraries.zip
Binary file not shown.
6 changes: 3 additions & 3 deletions binaries/64bit/release_ziphashes64.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
MD5 hash of "release_libraries.zip" (16 bytes) = 9fdeada30b4fcee9ef918a9a242237e3
SHA1 hash of "release_libraries.zip" (20 bytes) = 31ef17ed78cef997ef1b96893caec366d3ac1136
SHA256 hash of "release_libraries.zip" (32 bytes) = 4b4b96aa92222973498036b7c9e92eb0fc3021f772f338fd75fa28c034e435e1
MD5 hash of "release_libraries.zip" (16 bytes) = 5d0f1bc4c4ee63bb25c0069bc74d0671
SHA1 hash of "release_libraries.zip" (20 bytes) = 72b22ccd6b60c293fecea1e04674ce883f33b52b
SHA256 hash of "release_libraries.zip" (32 bytes) = 717a13483f340eba39c6afd5dadd9c56635cc9a87166afeebae204553416773b

4 changes: 2 additions & 2 deletions c_cpp_includes/dtwain_filetypes.h
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ OF THIRD PARTY RIGHTS.
/* DTWAIN File Types. Use only if Source does not support File Transfer, or
if you want to acquire using DTWAIN's file mode */
#define DTWAIN_BMP 100 /* Windows BMP file */
#define DTWAIN_JPEG 200 /* JPEG - See DTWAIN_SetJPEGQuality */
#define DTWAIN_JPEG 200 /* JPEG - See DTWAIN_SetJpegValues */

#define DTWAIN_PDF 250 /* Adobe Acrobat PDF File */
#define DTWAIN_PDFMULTI 251 /* Multi-page PDF file */
Expand All @@ -38,7 +38,7 @@ if you want to acquire using DTWAIN's file mode */
#define DTWAIN_TIFFG4 800 /* Group 4 CCITT Tiff (FAX format) */
#define DTWAIN_TIFFPACKBITS 801 /* Huffman encoded Tiff */
#define DTWAIN_TIFFDEFLATE 802 /* TIFF packed with z-lib encoded data*/
#define DTWAIN_TIFFJPEG 803 /* See DTWAIN_SetJPEGQuality */
#define DTWAIN_TIFFJPEG 803
#define DTWAIN_TIFFJBIG 804 /* TIFF-JBIG compression (not implemented due to patent) */
#define DTWAIN_TIFFPIXARLOG 805 /* TIFF Pixar Log compression (not implemented )*/
#define DTWAIN_TIFFNONEMULTI 900 /* Multi-page TIFF, No compression by default */
Expand Down
2 changes: 1 addition & 1 deletion c_cpp_includes/dtwain_version.h
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@

#define DTWAIN_MAJOR_VERSION 5
#define DTWAIN_MINOR_VERSION 4
#define DTWAIN_PATCHLEVEL_VERSION 7
#define DTWAIN_PATCHLEVEL_VERSION 8

#define DTWAIN_TEXTRESOURCE_MIN_MAJOR_VERSION 5
#define DTWAIN_TEXTRESOURCE_MIN_MINOR_VERSION 4
Expand Down
10 changes: 9 additions & 1 deletion c_cpp_includes/dtwaindefs.h
Original file line number Diff line number Diff line change
Expand Up @@ -1536,7 +1536,15 @@ DTWAIN DLL are not displayed */
#define DTWAIN_CONSTANT_TWCT 45
#define DTWAIN_CONSTANT_TWPS 46
#define DTWAIN_CONSTANT_TWSS 47
#define DTWAIN_CONSTANT_LAST (DTWAIN_CONSTANT_TWSS + 1)
#define DTWAIN_CONSTANT_TWPH 48
#define DTWAIN_CONSTANT_TWCI 49
#define DTWAIN_CONSTANT_LAST (DTWAIN_CONSTANT_TWCI + 1)

/* This ID is the start of user-defined custom resources */
#define DTWAIN_USERRES_START 20000

/* Maximum length for a resource string*/
#define DTWAIN_USERRES_MAXSIZE 8192

#endif

15 changes: 12 additions & 3 deletions c_cpp_includes/dtwstrfn.h
Original file line number Diff line number Diff line change
Expand Up @@ -202,6 +202,8 @@ LONG DLLENTRY_DEF DTWAIN_GetDSMFullNameA(LONG DSMType, LPSTR szDLLName, LONG nMa
LONG DLLENTRY_DEF DTWAIN_GetDSMFullNameW(LONG DSMType, LPWSTR szDLLName, LONG nMaxLen, LPLONG pWhichSearch);
LONG DLLENTRY_DEF DTWAIN_GetErrorStringA(LONG lError, LPSTR lpszBuffer, LONG nLength);
LONG DLLENTRY_DEF DTWAIN_GetErrorStringW(LONG lError, LPWSTR lpszBuffer, LONG nLength);
LONG DLLENTRY_DEF DTWAIN_GetResourceStringA(LONG ResourceID, LPSTR lpszBuffer, LONG nMaxLen);
LONG DLLENTRY_DEF DTWAIN_GetResourceStringW(LONG ResourceID, LPWSTR lpszBuffer, LONG nMaxLen);
LONG DLLENTRY_DEF DTWAIN_GetExtCapFromNameA(LPCSTR szName);
LONG DLLENTRY_DEF DTWAIN_GetExtCapFromNameW(LPCWSTR szName);
LONG DLLENTRY_DEF DTWAIN_GetExtNameFromCapA(LONG nValue, LPSTR szValue, LONG nLength);
Expand Down Expand Up @@ -299,16 +301,22 @@ LONG DLLENTRY_DEF DTWAIN_GetVersionCopyrightW(LPWSTR lpszApp, LONG nLengt
#ifdef DTWAIN_ANSIDLL
#define DTWAIN_CHARPTRTYPE LPSTR
#define DTWAIN_CCHARPTRTYPE LPCSTR
#pragma message ("Using ANSI DTWAIN DLL")
#ifdef _MSC_VER
#pragma message ("Using ANSI DTWAIN DLL")
#endif
#else
#ifdef DTWAIN_UNICODEDLL
#define DTWAIN_CHARPTRTYPE LPWSTR
#define DTWAIN_CCHARPTRTYPE LPCWSTR
#pragma message ("Using Unicode DTWAIN DLL")
#ifdef _MSC_VER
#pragma message ("Using Unicode DTWAIN DLL")
#endif
#else
#define DTWAIN_CHARPTRTYPE LPTSTR
#define DTWAIN_CCHARPTRTYPE LPCTSTR
#pragma message ("Using Platform-specific DTWAIN DLL")
#ifdef _MSC_VER
#pragma message ("Using Platform-specific DTWAIN DLL")
#endif
#endif
#endif

Expand All @@ -321,6 +329,7 @@ LONG DLLENTRY_DEF DTWAIN_GetLibraryPath(DTWAIN_CHARPTRTYPE lpszVe
LONG DLLENTRY_DEF DTWAIN_GetShortVersionString(DTWAIN_CHARPTRTYPE lpszVer, LONG nLength);
LONG DLLENTRY_DEF DTWAIN_GetVersionInfo(DTWAIN_CHARPTRTYPE lpszVer, LONG nLength);
LONG DLLENTRY_DEF DTWAIN_GetErrorString(LONG lError, DTWAIN_CHARPTRTYPE lpszBuffer, LONG nMaxLen);
LONG DLLENTRY_DEF DTWAIN_GetResourceString(LONG ResourceID, DTWAIN_CHARPTRTYPE lpszBuffer, LONG nMaxLen);
LONG DLLENTRY_DEF DTWAIN_GetConditionCodeString(LONG lError, DTWAIN_CHARPTRTYPE lpszBuffer, LONG nMaxLen);
LONG DLLENTRY_DEF DTWAIN_GetTwainStringName(LONG category, LONG TwainID, DTWAIN_CHARPTRTYPE lpszBuffer, LONG nMaxLen);
LONG DLLENTRY_DEF DTWAIN_GetTwainIDFromName(DTWAIN_CCHARPTRTYPE lpszBuffer);
Expand Down
99 changes: 44 additions & 55 deletions c_cpp_includes/winconst.h
Original file line number Diff line number Diff line change
Expand Up @@ -33,24 +33,25 @@
#endif

#if defined (WIN32) || defined (_WIN64)
#define DllExport __declspec( dllexport )
//#define HUGEDEF
#define DLLEXPORTDEF DllExport
#define EXPORTDEF
#define DllExport __declspec( dllexport )
//#define HUGEDEF
#define DLLEXPORTDEF DllExport
#define EXPORTDEF
#else
#ifdef WINDOWS_16
//#define HUGEDEF huge
#define DLLEXPORTDEF
#define EXPORTDEF _export
//#define HUGEDEF huge
#define DLLEXPORTDEF
#define EXPORTDEF _export
#endif
#endif
#endif

#ifdef DLLENTRY_DEF
#undef DLLENTRY_DEF
#undef DLLENTRY_DEF
#endif

#ifdef IMGFUNC_DEF
#undef IMGFUNC_DEF
#undef IMGFUNC_DEF
#endif

#define CALLCONVENTION_DEF
Expand All @@ -67,72 +68,61 @@
#elif _MSC_VER >= 1920 && _MSC_VER < 1930
#pragma message ("Microsoft Visual Studio 2019 compiler defined")
#elif _MSC_VER >= 1930
#pragma message ("Microsoft Visual Studio 2022 compiler defined")
#pragma message ("Microsoft Visual Studio 2022 (or greater) compiler defined")
#endif
#endif

#ifndef _MSC_VER
#pragma message("Unsupported compiler being used to compile DTWAIN")
#endif

#if defined (UNICODE) || defined (_UNICODE)
#pragma message ("DTWAIN Library using Unicode is active")
#else
#pragma message ("DTWAIN Library using ANSI/MBCS is active")
#ifdef _MSC_VER
#if defined (UNICODE) || defined (_UNICODE)
#pragma message ("DTWAIN Library using Unicode is active")
#else
#pragma message ("DTWAIN Library using ANSI/MBCS is active")
#endif
#endif

#if defined(DTWAIN_STDCALL) || !defined(DTWAIN_LIB)
#undef CALLCONVENTION_DEF
#define CALLCONVENTION_DEF __stdcall
#pragma message ("DTWAIN Using __stdcall calling convention")
#ifdef _MSC_VER
#pragma message ("DTWAIN Using __stdcall calling convention")
#endif
#else
#undef CALLCONVENTION_DEF
#define CALLCONVENTION_DEF __cdecl
#pragma message ("DTWAIN Using __cdecl calling convention")
#ifdef _MSC_VER
#pragma message ("DTWAIN Using __cdecl calling convention")
#endif
#endif

#ifdef BUILDING_DTWAINDLL
#ifdef _DEBUG
#pragma message ("DTWAIN Debug Library building...")
#else
#pragma message ("DTWAIN Release Library building...")
#ifdef _MSC_VER
#ifdef BUILDING_DTWAINDLL
#ifdef _DEBUG
#pragma message ("DTWAIN Debug Library building...")
#else
#pragma message ("DTWAIN Release Library building...")
#endif
#endif
#endif

#if defined(DTWAIN_LIB)
#define DLLENTRY_DEF CALLCONVENTION_DEF
#define EXPORTDEF
#define DLLEXORTDEF
#define CALLBACK_DEF __stdcall
#if defined (WIN64) || defined (_WIN64)
#pragma message("DTWAIN static LIB for Win64")
#define IMGFUNC_DEF __stdcall
#else
#if defined(WIN32) || defined(_WIN32)
#pragma message("DTWAIN static LIB for Win32")
#undef CALLCONVENTION_DEF
#define CALLCONVENTION_DEF __stdcall
#define DECLSPEC_DEF
#define CALLBACK_DEF DECLSPEC_DEF __stdcall
#if defined(WIN32) || defined(_WIN32) || defined (WIN64) || defined(_WIN64)
#ifdef DTWAIN_DLL
#define DLLENTRY_DEF DECLSPEC_DEF CALLCONVENTION_DEF
#define IMGFUNC_DEF __stdcall
#else
#pragma message("DTWAIN static LIB for Win16")
#define IMGFUNC_DEF FAR PASCAL
#endif
#endif
#else
#undef CALLCONVENTION_DEF
#define CALLCONVENTION_DEF __stdcall
#define DECLSPEC_DEF
#define CALLBACK_DEF DECLSPEC_DEF __stdcall
#if defined(WIN32) || defined(_WIN32) || defined (WIN64) || defined(_WIN64)
#if defined(DTWAIN_DLL) || defined(DTWAIN_OCX) || defined(DTWAIN_VB)
#define DLLENTRY_DEF DECLSPEC_DEF CALLCONVENTION_DEF
#define IMGFUNC_DEF __stdcall
#ifdef _MSC_VER
#if defined(WIN64) || defined (_WIN64)
#pragma message("Building 64-bit DTWAIN DLL")
#else
#pragma message("Building 32-bit DTWAIN DLL, OCX or VB version")
#pragma message("Building 32-bit DTWAIN DLL, OCX or VB version")
#endif
#else
#define DLLENTRY_DEF __stdcall
#define IMGFUNC_DEF __declspec(dllexport) CALLCONVENTION_DEF
#endif
#else
#define DLLENTRY_DEF __stdcall
#define IMGFUNC_DEF __declspec(dllexport) CALLCONVENTION_DEF
#ifdef _MSC_VER
#if defined (WIN64) || defined(_WIN64)
#pragma message("Including 64-bit DTWAIN DLL definitions")
#else
Expand All @@ -141,7 +131,6 @@
#endif
#endif
#endif
#endif
#define HUGEDEF
typedef unsigned char HUGEDEF* HUGEPTR_CHAR;
#endif
Loading

0 comments on commit fabeb67

Please sign in to comment.