]> granicus.if.org Git - imagemagick/blob - MagickCore/nt-base-private.h
(no commit message)
[imagemagick] / MagickCore / nt-base-private.h
1 /*
2   Copyright 1999-2014 ImageMagick Studio LLC, a non-profit organization
3   dedicated to making software imaging solutions freely available.
4
5   You may not use this file except in compliance with the License.
6   obtain a copy of the License at
7
8     http://www.imagemagick.org/script/license.php
9
10   Unless required by applicable law or agreed to in writing, software
11   distributed under the License is distributed on an "AS IS" BASIS,
12   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13   See the License for the specific language governing permissions and
14   limitations under the License.
15
16   MagickCore Windows NT private methods.
17 */
18 #ifndef _MAGICKCORE_NT_BASE_PRIVATE_H
19 #define _MAGICKCORE_NT_BASE_PRIVATE_H
20
21 #include "MagickCore/delegate.h"
22 #include "MagickCore/delegate-private.h"
23 #include "MagickCore/exception.h"
24 #include "MagickCore/splay-tree.h"
25
26 #if defined(__cplusplus) || defined(c_plusplus)
27 extern "C" {
28 #endif
29
30 #if defined(MAGICKCORE_WINDOWS_SUPPORT)
31
32 #define WIN32_LEAN_AND_MEAN
33 #define VC_EXTRALEAN
34 #define _CRT_SECURE_NO_DEPRECATE  1
35 #include <windows.h>
36 #include <wchar.h>
37 #include <winuser.h>
38 #include <wingdi.h>
39 #include <io.h>
40 #include <process.h>
41 #include <errno.h>
42 #if defined(_DEBUG) && !defined(__MINGW32__) && !defined(__MINGW64__)
43 #include <crtdbg.h>
44 #endif
45
46 #if !defined(XS_VERSION)
47 struct dirent
48 {
49   char
50     d_name[2048];
51
52   int
53     d_namlen;
54 };
55
56 typedef struct _DIR
57 {
58   HANDLE
59     hSearch;
60
61   WIN32_FIND_DATAW
62     Win32FindData;
63
64   BOOL
65     firsttime;
66
67   struct dirent
68     file_info;
69 } DIR;
70
71 typedef struct _NTMEMORYSTATUSEX
72 {
73   DWORD
74     dwLength,
75     dwMemoryLoad;
76
77   DWORDLONG
78     ullTotalPhys,
79     ullAvailPhys,
80     ullTotalPageFile,
81     ullAvailPageFile,
82     ullTotalVirtual,
83     ullAvailVirtual,
84     ullAvailExtendedVirtual;
85 } NTMEMORYSTATUSEX;
86
87 #if !defined(__MINGW32__) && !defined(__MINGW64__)
88 struct timezone
89 {
90   int
91     tz_minuteswest,
92     tz_dsttime;
93 };
94 #endif
95
96 typedef UINT
97   (CALLBACK *LPFNDLLFUNC1)(DWORD,UINT);
98
99 typedef UINT
100   (CALLBACK *LPFNDLLFUNC2)(NTMEMORYSTATUSEX *);
101
102 #endif
103
104 #if defined(MAGICKCORE_BZLIB_DELEGATE)
105 #  if defined(_WIN32)
106 #    define BZ_IMPORT 1
107 #  endif
108 #endif
109
110 extern MagickPrivate char
111   *NTGetLastError(void);
112
113 #if !defined(MAGICKCORE_LTDL_DELEGATE)
114 extern MagickPrivate const char
115   *NTGetLibraryError(void);
116 #endif
117
118 #if !defined(XS_VERSION)
119 extern MagickPrivate const char
120   *NTGetLibraryError(void);
121
122 extern MagickPrivate DIR
123   *NTOpenDirectory(const char *);
124
125 extern MagickPrivate double
126   NTElapsedTime(void),
127   NTUserTime(void);
128
129 extern MagickPrivate int
130   Exit(int),
131 #if !defined(__MINGW32__) && !defined(__MINGW64__)
132   gettimeofday(struct timeval *,struct timezone *),
133 #endif
134   IsWindows95(void),
135   NTCloseDirectory(DIR *),
136   NTCloseLibrary(void *),
137   NTControlHandler(void),
138   NTExitLibrary(void),
139   NTTruncateFile(int,off_t),
140   NTGhostscriptDLL(char *,int),
141   NTGhostscriptEXE(char *,int),
142   NTGhostscriptFonts(char *,int),
143   NTGhostscriptLoadDLL(void),
144   NTInitializeLibrary(void),
145   NTSetSearchPath(const char *),
146   NTSyncMemory(void *,size_t,int),
147   NTUnmapMemory(void *,size_t),
148   NTSystemCommand(const char *);
149
150 extern MagickPrivate ssize_t
151   NTSystemConfiguration(int),
152   NTTellDirectory(DIR *);
153
154 extern MagickPrivate MagickBooleanType
155   NTGatherRandomData(const size_t,unsigned char *),
156   NTGetExecutionPath(char *,const size_t),
157   NTGetModulePath(const char *,char *),
158   NTReportEvent(const char *,const MagickBooleanType),
159   NTReportException(const char *,const MagickBooleanType);
160
161 extern MagickPrivate struct dirent
162   *NTReadDirectory(DIR *);
163
164 extern MagickPrivate unsigned char
165   *NTRegistryKeyLookup(const char *),
166   *NTResourceToBlob(const char *);
167
168 extern MagickPrivate void
169   NTWindowsGenesis(void),
170   *NTGetLibrarySymbol(void *,const char *),
171   *NTMapMemory(char *,size_t,int,int,int,MagickOffsetType),
172   *NTOpenLibrary(const char *),
173   NTSeekDirectory(DIR *,ssize_t);
174
175 #endif /* !XS_VERSION */
176
177 #endif /* MAGICKCORE_WINDOWS_SUPPORT */
178
179 #if defined(__cplusplus) || defined(c_plusplus)
180 }
181 #endif /* !C++ */
182
183 #endif /* !_MAGICKCORE_NT_BASE_H */