1 // =================================
  2 // Copyright (c) 2024 Seppo Laakko
  3 // Distributed under the MIT license
  4 // =================================
  5 
  6 public extern cdecl void RtmInit();
  7 public extern cdecl void RtmDone();
  8 public extern cdecl void RtmEnqueueDestruction(void*void*);
  9 public extern cdecl void RtmBeginStaticInitCriticalSection();
 10 public extern cdecl void RtmEndtaticInitCriticalSection();
 11 public extern cdecl const char* RtmClassName(void* typeId);
 12 public extern cdecl bool RtmIs(void* typeIdvoid* baseTypeId);
 13 public extern cdecl void RtmPushFunction(void* traceInfo);
 14 public extern cdecl void RtmPopFunction(void* traceInfo);
 15 public extern cdecl void* RtmMemAlloc(long size);
 16 public extern cdecl void RtmMemFree(void* ptr);
 17 public extern cdecl void RtmPrintInteger(long x);
 18 public extern cdecl void RtmPrintFloat(float x);
 19 public extern cdecl void RtmPrintDouble(double x);
 20 public extern cdecl void RtmPrintString(const char* s);
 21 public extern cdecl void RtmBeginUnitTest(int numAssertionsconst char* unitTestFilePath);
 22 public extern cdecl void RtmEndUnitTest(const char* testNameint exitCode);
 23 public extern cdecl void RtmSetUnitTestAssertionResult(int assertionIndexbool assertionResultint line);
 24 public extern cdecl long RtmEvaluateUnaryOp(long operandint typeint operation);
 25 public extern cdecl long RtmEvaluateBinOp(long leftlong rightint typeint operation);
 26 public extern cdecl float RtmEvaluateFloatUnaryOp(float operandint operation);
 27 public extern cdecl float RtmEvaluateFloatBinaryOp(float leftfloat rightint operation);
 28 public extern cdecl double RtmEvaluateDoubleUnaryOp(double operandint operation);
 29 public extern cdecl double RtmEvaluateDoubleBinaryOp(double leftdouble rightint operation);
 30 public extern cdecl void RtmPanic(const char* message);
 31 public extern cdecl void RtmFailAssertion(const char* assertionconst char* functionconst char* sourceFilePathint lineNumber);
 32 public extern cdecl int RtmAllocateError(const char* errorMessage);
 33 public extern cdecl const char* RtmGetErrorMessage(int errorId);
 34 public extern cdecl const char* RtmGetErrorMessageWithoutStackTrace(int errorId);
 35 public extern cdecl int RtmGetErrno();
 36 public extern cdecl void RtmDisposeError(int errorId);
 37 public extern cdecl void RtmInitRand(uint seed);
 38 public extern cdecl uint RtmRandom();
 39 public extern cdecl ulong RtmRandom64();
 40 public extern cdecl void* RtmOpenFile(const char* filePathbyte openModeint& errorId);
 41 public extern cdecl void* RtmOpenStdFile(int handleint& errorId);
 42 public extern cdecl bool RtmClose(void* fileHandleint& errorId);
 43 public extern cdecl bool RtmDisposeFile(void* fileHandleint& errorId);
 44 public extern cdecl long RtmWrite(void* fileHandleconst byte* bufferlong countint& errorId);
 45 public extern cdecl bool RtmWriteByte(void* fileHandlebyte xint& errorId);
 46 public extern cdecl long RtmRead(void* fileHandlebyte* bufferlong bufferSizeint& errorId);
 47 public extern cdecl int RtmReadByte(void* fileHandleint& errorId);
 48 public extern cdecl bool RtmEof(void* fileHandle);
 49 public extern cdecl bool RtmGetFileError(void* fileHandleint& errorId);
 50 public extern cdecl bool RtmSeek(void* fileHandlelong posbyte originint& errorId);
 51 public extern cdecl long RtmTell(void* fileHandleint& errorId);
 52 public extern cdecl bool RtmFlush(void* fileHandleint& errorId);
 53 public extern cdecl bool RtmFileExists(const char* filePathint& errorId);
 54 public extern cdecl bool RtmLastWriteTimeLess(const char* filePath1const char* filePath2int& errorId);
 55 public extern cdecl long RtmGetFileSize(const char* filePathint& errorId);
 56 public extern cdecl bool RtmRemoveFile(const char* filePathint& errorId);
 57 public extern cdecl bool RtmCopyFile(const char* sourceFilePathconst char* targetFilePathint& errorId);
 58 public extern cdecl bool RtmMoveFile(const char* sourceFilePathconst char* targetFilePathint& errorId);
 59 public extern cdecl bool RtmIsConsoleHandle(int handle);
 60 public extern cdecl long RtmNow();
 61 public extern cdecl void RtmSleep(long nanoSeconds);
 62 public extern cdecl bool RtmGetCurrentDate(short* yearsbyte* monthsbyte* day);
 63 public extern cdecl bool RtmGetCurrentDateTime(short* yearsbyte* monthsbyte* dayint* secs);
 64 public extern cdecl double RtmPow(double xint exponent);
 65 public extern cdecl double Pow(double xdouble y);
 66 public extern cdecl double RtmSqrt(double x);
 67 public extern cdecl double RtmPi();
 68 public extern cdecl double RtmCos(double angleRad);
 69 public extern cdecl double RtmSin(double angleRad);
 70 public extern cdecl double RtmArcCos(double x);
 71 public extern cdecl double RtmArcSin(double x);
 72 public extern cdecl double RtmAtan2(double ydouble x);
 73 public extern cdecl double RtmEpsilon();
 74 public extern cdecl double RtmRemainder(double xdouble y);
 75 public extern cdecl int RtmGetCurrentWorkingDirectoryHandle(int& errorId);
 76 public extern cdecl const char* RtmGetCurrentWorkingDirectory(int handle);
 77 public extern cdecl void RtmFreeCurrentWorkingDirectoryHandle(int handle);
 78 public extern cdecl int RtmAllocateString(const char* s);
 79 public extern cdecl void RtmFreeString(int stringHandle);
 80 public extern cdecl const char* RtmGetString(int stringHandle);
 81 public extern cdecl char RtmAsciiToUpper(char c);
 82 public extern cdecl char RtmAsciiToLower(char c);
 83 public extern cdecl int RtmBeginGetPathToExecutable();
 84 public extern cdecl const char* RtmGetPathToExecutable(int pathHandle);
 85 public extern cdecl void RtmEndGetPathToExecutable(int pathHandle);
 86 public extern cdecl int RtmGetEnvironmentVariable(const char* envVarName);
 87 public extern cdecl void* RtmAllocateMutex();
 88 public extern cdecl void RtmFreeMutex(void* mutexHandle);
 89 public extern cdecl void* RtmAllocateRecursiveMutex();
 90 public extern cdecl void RtmFreeRecursiveMutex(void* recursiveMutexHandle);
 91 public extern cdecl void RtmLockMutex(void* mutexHandle);
 92 public extern cdecl void RtmUnlockMutex(void* mutexHandle);
 93 public extern cdecl void RtmLockRecursiveMutex(void* recursiveMutexHandle);
 94 public extern cdecl void RtmUnlockRecursiveMutex(void* recursiveMutexHandle);
 95 public extern cdecl void* RtmAllocateConditionVariable();
 96 public extern cdecl void RtmFreeConditionVariable(void* nativeHandle);
 97 public extern cdecl bool RtmNotifyOne(void* nativeHandleint& errorId);
 98 public extern cdecl bool RtmNotifyAll(void* nativeHandleint& errorId);
 99 public extern cdecl bool RtmWaitConditionVariable(void* nativeHandlevoid* recursiveMutexHandleint& errorId);
100 public extern cdecl int RtmWaitConditionVariableDuration(void* nativeHandlevoid* recursiveMutexHandlelong nanosecondsint& errorId);
101 public extern cdecl bool RtmDirectoryExists(const char* directoryPath);
102 public extern cdecl void RtmCreateDirectories(const char* directoryPath);
103 public extern cdecl int RtmBeginIterateDirectory(const char* directoryPath);
104 public extern cdecl const char* RtmGetNextFilePath(int directoryIterationHandle);
105 public extern cdecl const char* RtmGetNextDirectoryPath(int directoryIterationHandle);
106 public extern cdecl void RtmEndIterateDirectory(int directoryIterationHandle);
107 public extern cdecl int RtmExecute(const char* command);
108 public extern cdecl int RtmBeginExec(const char* command);
109 public extern cdecl void RtmAddRedirection(int execHandleint handleconst char* file);
110 public extern cdecl int RtmEndExec(int execHandle);
111 public extern cdecl void* RtmConvertThreadToFiber(void* param);
112 public extern cdecl void* RtmCreateFiber(ulong stackSizevoid* startAddressvoid* param);
113 public extern cdecl void RtmSwitchToFiber(void* fiber);
114 public extern cdecl void* RtmGetFiberData();
115 public extern cdecl void RtmDeleteFiber(void* fiber);
116 public extern cdecl void* RtmCreateProcess(const char* commandint redirectionsint& errorId);
117 public extern cdecl void RtmDeleteProcess(void* process);
118 public extern cdecl bool RtmProcessRunning(void* processint& errorId);
119 public extern cdecl bool RtmProcessWaitForExit(void* processint& errorId);
120 public extern cdecl int RtmProcessExitCode(void* processint& errorId);
121 public extern cdecl bool RtmProcessTerminate(void* processint& errorId);
122 public extern cdecl bool RtmProcessEof(void* processint handleint& errorId);
123 public extern cdecl int RtmProcessReadLine(void* processint handleint& errorId);
124 public extern cdecl int RtmProcessReadToEnd(void* processint handleint& errorId);
125 public extern cdecl bool RtmProcessWriteLine(void* processconst char* lineint& errorId);
126 public extern cdecl int* RtmGetClassMap(const char* classMapNameint& errorId);
127 public extern cdecl void RtmInitZlib(int modeint levelvoid** handleint& errorId);
128 public extern cdecl void RtmDoneZlib(int modevoid* handle);
129 public extern cdecl void RtmSetInputZlib(void* inChunkuint inAvailvoid* handle);
130 public extern cdecl int RtmInflateZlib(void* outChunkuint outChunkSizeuint* haveuint* outAvailuint* inAvailvoid* handleint& errorId);
131 public extern cdecl int RtmDeflateZlib(void* outChunkuint outChunkSizeuint* haveuint* outAvailvoid* handleint flushint& errorId);
132 public extern cdecl void* RtmCreateSocket(int& errorId);
133 public extern cdecl void RtmBindSocket(void* socketHandleint portint& errorId);
134 public extern cdecl void RtmListenSocket(void* socketHandleint backlogint& errorId);
135 public extern cdecl void* RtmAcceptSocket(void* socketHandleint& errorId);
136 public extern cdecl void RtmCloseSocket(void* socketHandleint& errorId);
137 public extern cdecl void RtmShutdownSocket(void* socketHandleint modeint& errorId);
138 public extern cdecl void* RtmConnectSocket(const char* nodeconst char* serviceint& errorId);
139 public extern cdecl int RtmSendSocket(void* socketHandlebyte* bufint lenint flagsint& errorId);
140 public extern cdecl int RtmReceiveSocket(void* socketHandlebyte* bufint lenint flagsint& errorId);
141 public extern cdecl void RtmDestroySocket(void* socketHandle);
142 public extern cdecl void WinSetInstance();
143 public extern cdecl int WinInit(void* messageProcessorFunctionAddressvoid* keyPreviewFunctionAddress);
144 public extern cdecl int WinRun();
145 public extern cdecl int WinApplicationMessageLoop();
146 public extern cdecl void WinRunModal();
147 public extern cdecl void* WinGetForegroundWindow();
148 public extern cdecl bool WinEnableWindow(void* windowHandlebool enable);
149 public extern cdecl int WinDialogWindowMessageLoop(void* windowHandlevoid* parentWindowHandlevoid* getDialogResultFuncvoid* keyPreviewFuncvoid* dialogWindowPtr);
150 public extern cdecl void* WinSubClassCommandWndProc(void* windowHandle);
151 public extern cdecl void WinRestoreOriginalWndProc(void* windowHandlevoid* originalWndProc);
152 public extern cdecl void WinDone();
153 public extern cdecl int WinShowMessageBox(const char* textconst char* caption);
154 public extern cdecl int WinShowMessageBoxWithType(const char* textconst char* captionvoid* ownerWindowHandleuint type);
155 public extern cdecl ulong WinGetLastError();
156 public extern cdecl int WinAllocateWindowsError(const char* errorMessageulong errorCode);
157 public extern cdecl int WinAllocateGdiPlusError(const char* errorMessageint gdiplusStatus);
158 public extern cdecl void WinFormatMessage(ulong errorCodewchar* buffer);
159 public extern cdecl void WinFatalWindowsError(ulong errorCode);
160 public extern cdecl void WinFatalError(const char* errorMessage);
161 public extern cdecl void WinFatalGdiplusError(int gdiplusStatus);
162 public extern cdecl void* WinCreateEvent();
163 public extern cdecl bool WinSetEvent(void* eventHandle);
164 public extern cdecl bool WinResetEvent(void* eventHandle);
165 public extern cdecl bool WinWaitEvent(void* eventHandle);
166 public extern cdecl bool WinCloseHandle(void* handle);
167 public extern cdecl bool WinKeyPressed(int keyCode);
168 public extern cdecl int WinWaitForMultipleObjects(uint countvoid** handles);
169 public extern cdecl void* WinFindFirstChangeNotification(const char* directoryPath);
170 public extern cdecl bool WinFindNextChangeNotification(void* handle);
171 public extern cdecl bool WinFindCloseChangeNotification(void* handle);
172 public extern cdecl bool WinShellExecute(const char* filePathlong& errorCode);
173 public extern cdecl ushort WinRegisterWindowClass(const char* windowClassNameuint styleint backgroundColor);
174 public extern cdecl bool WinMessageBeep(uint messageBeepType);
175 public extern cdecl void* WinCreateWindowByClassAtom(ushort windowClassconst char* windowNamelong stylelong exStyleint xint yint wint hvoid* parentHandle);
176 public extern cdecl void* WinCreateWindowByClassName(const char* windowClassconst char* windowNamelong stylelong exStyleint xint yint wint hvoid* parentHandle);
177 public extern cdecl void WinDestroyWindow(void* windowHandle);
178 public extern cdecl void WinPostQuitMessage(int exitCode);
179 public extern cdecl bool WinPostMessage(void* windowHandleuint msgulong wparamlong lparam);
180 public extern cdecl long WinSendMessage(void* windowHandleuint msgulong wparamlong lparam);
181 public extern cdecl bool WinShowWindow(void* windowHandleint commandShow);
182 public extern cdecl bool WinUpdateWindow(void* windowHandle);
183 public extern cdecl bool WinMoveWindow(void* windowHandleint xint yint wint hbool repaint);
184 public extern cdecl bool WinGetClientRect(void* windowHandlevoid* rect);
185 public extern cdecl bool WinGetWindowRect(void* windowHandlevoid* rect);
186 public extern cdecl bool WinClientToScreen(void* windowHandlevoid* point);
187 public extern cdecl bool WinScreenToClient(void* windowHandlevoid* point);
188 public extern cdecl bool WinPtInRect(void* rectvoid* point);
189 public extern cdecl bool WinSetWindowText(void* windowHandleconst char* text);
190 public extern cdecl int WinGetWindowTextLength(void* windowHandle);
191 public extern cdecl int WinGetWindowText(void* windowHandlewchar* textBufferint maxCount);
192 public extern cdecl void* WinGetDC(void* windowHandle);
193 public extern cdecl int WinReleaseHDC(void* windowHandlevoid* hdc);
194 public extern cdecl bool WinTrackMouseEvent(void* windowHandleuint flagsuint hoverTimeMs);
195 public extern cdecl void* WinSetParent(void* childWindowHandlevoid* parentWindowHandle);
196 public extern cdecl bool WinInvalidateRect(void* windowHandlevoid* rectbool eraseBackground);
197 public extern cdecl void* WinBeginPaint(void* windowHandlevoid*& paintStruct);
198 public extern cdecl void WinEndPaint(void* windowHandlevoid* paintStruct);
199 public extern cdecl void WinGetClipRect(void* paintStructint& xint& yint& wint& h);
200 public extern cdecl void WinGetSysColor(int indexbyte& redbyte& greenbyte& blue);
201 public extern cdecl bool WinSetBkColor(void* hdcbyte redbyte greenbyte blue);
202 public extern cdecl void WinGetMessagePos(int& xint& y);
203 public extern cdecl void* WinGetFocus();
204 public extern cdecl void* WinSetFocus(void* windowHandle);
205 public extern cdecl void* WinGetTopWindow(void* windowHandle);
206 public extern cdecl bool WinBringWindowToTop(void* windowHandle);
207 public extern cdecl bool WinSetWindowPos(void* windowHandlevoid* insertAfterWindowHandleint xint yint cxint cyuint flags);
208 public extern cdecl bool WinGetOpenFileName(void* windowHandleconst wchar* filterconst wchar* initialDirectorywchar* fileNameBufferuint fileNameBufferSize
209     uint flagsconst wchar* defaultExtension);
210 public extern cdecl bool WinGetSaveFileName(void* windowHandleconst wchar* filterconst wchar* initialDirectorywchar* fileNameBufferuint fileNameBufferSize
211     uint flagsconst wchar* defaultExtension);
212 public extern cdecl uint WinCommDlgExtendedError();
213 public extern cdecl void* WinLoadImage(const char* nameuint typeint cxint cy);
214 public extern cdecl void* WinLoadStandardCursor(int cursorId);
215 public extern cdecl void* WinLoadCursor(const char* cursorName);
216 public extern cdecl void* WinGetCursor();
217 public extern cdecl void* WinSetCursor(void* cursorHandle);
218 public extern cdecl bool WinDestroyCursor(void* cursorHandle);
219 public extern cdecl void* WinLoadStandardIcon(int iconId);
220 public extern cdecl void* WinLoadIcon(const char* iconName);
221 public extern cdecl bool WinDestroyIcon(void* iconHandle);
222 public extern cdecl void* WinLoadStandardBitmap(int bitmapId);
223 public extern cdecl void* WinLoadBitmap(const char* bitmapName);
224 public extern cdecl bool WinDestroyBitmap(void* bitmapHandle);
225 public extern cdecl bool WinDeleteObject(void* handle);
226 public extern cdecl int WinGetSystemMetrics(int index);
227 public extern cdecl void* WinSetCapture(void* windowHandle);
228 public extern cdecl bool WinReleaseCapture();
229 public extern cdecl long WinGetClassLong(void* windowHandleint index);
230 public extern cdecl long WinSetClassLong(void* windowHandleint indexlong value);
231 public extern cdecl long WinGetWindowLong(void* windowHandleint index);
232 public extern cdecl bool WinSetWindowLong(void* windowHandleint indexlong newValue);
233 public extern cdecl bool WinScrollWindow(void* windowHandleint xAmountint yAmountint clientLocXint clientLocYint clientSizeWint clientSizeH
234     int clipLocXint clipLocYint clipSizeWint clipSizeH);
235 public extern cdecl bool WinScrollWindowEx(void* windowHandleint dxint dyint clientLocXint clientLocYint clientSizeWint clientSizeH
236     int clipLocXint clipLocYint clipSizeWint clipSizeHint x1int y1int x2int y2);
237 public extern cdecl bool WinGetScrollInfo(void* windowHandleint nBaruint& nPageint& nPosint& nMinint& nMaxint& nTrackPos);
238 public extern cdecl int WinSetScrollInfo(void* windowHandleint nBaruint fMaskbool redrawuint nPageint nPosint nMinint nMax);
239 public extern cdecl int WinGetScrollPos(void* windowHandleint nBar);
240 public extern cdecl bool WinShowScrollBar(void* windowHandleint nBarbool show);
241 public extern cdecl bool WinCreateCaret(void* windowHandlevoid* bitmapHandleint widthint height);
242 public extern cdecl bool WinDestroyCaret();
243 public extern cdecl bool WinShowCaret(void* windowHandle);
244 public extern cdecl bool WinHideCaret(void* windowHandle);
245 public extern cdecl bool WinGetCaretPos(int& xint& y);
246 public extern cdecl bool WinSetCaretPos(int xint y);
247 public extern cdecl bool WinSetTimer(void* windowHandleuint timerIduint elapse);
248 public extern cdecl bool WinKillTimer(void* windowHandleuint timerId);
249 public extern cdecl bool WinRegOpenCurrentUser(void** result);
250 public extern cdecl bool WinRegCloseKey(void* key);
251 public extern cdecl bool WinRegGetDWordValue(void* keyconst char* subKeyconst char* valueNameuint& value);
252 public extern cdecl uint WinRegisterClipboardFormat(const char* formatName);
253 public extern cdecl bool WinOpenClipboard(void* windowHandle);
254 public extern cdecl bool WinCloseClipboard();
255 public extern cdecl bool WinEmptyClipboard();
256 public extern cdecl void* WinSetClipboardData(uint formatvoid* mem);
257 public extern cdecl void* WinGetClipboardData(uint format);
258 public extern cdecl bool WinIsClipboardFormatAvailable(uint format);
259 public extern cdecl bool WinAddClipboardFormatListener(void* windowHandle);
260 public extern cdecl bool WinRemoveClipboardFormatListener(void* windowHandle);
261 public extern cdecl void* WinGlobalAlloc(uint flagsulong size);
262 public extern cdecl void* WinGlobalLock(void* memHandle);
263 public extern cdecl bool WinGlobalUnlock(void* memHandle);
264 public extern cdecl void* WinGlobalFree(void* memHandle);
265 public extern cdecl ulong WinGlobalSize(void* memHandle);
266 public extern cdecl bool WinGetCursorPos(int& xint& y);
267 public extern cdecl bool WinGetFolder(void* windowHandleconst wchar* defaultDirectorywchar* folderNameBufferuint folderNameBufferSize);
268 public extern cdecl int WinGetLogicalDrives();
269 public extern cdecl void* WinCreateGraphics(void* hdc);
270 public extern cdecl void WinDeleteGraphics(void* nativeGraphics);
271 public extern cdecl void* WinCreateGraphicsFromWindowHandle(void* hwnd);
272 public extern cdecl void* WinCreateGraphicsFromImage(void* image);
273 public extern cdecl int WinGraphicsGetLastStatus(void* graphics);
274 public extern cdecl int WinGraphicsFontGetLastStatus(void* font);
275 public extern cdecl void* WinGraphicsGetHDC(void* nativeGraphics);
276 public extern cdecl void* WinGraphicsCreatePen(byte alphabyte redbyte greenbyte bluefloat width);
277 public extern cdecl void WinGraphicsDeletePen(void* pen);
278 public extern cdecl void* WinGraphicsClonePen(void* pen);
279 public extern cdecl int WinGraphicsPenGetLastStatus(void* pen);
280 public extern cdecl int WinGraphicsPenGetAlignment(void* pen);
281 public extern cdecl int WinGraphicsPenSetAlignment(void* penint alignment);
282 public extern cdecl void* WinGraphicsPenGetBrush(void* pen);
283 public extern cdecl int WinGraphicsPenSetBrush(void* penvoid* brush);
284 public extern cdecl int WinGraphicsPenGetColor(void* penbyte& alphabyte& redbyte& greenbyte& blue);
285 public extern cdecl int WinGraphicsPenSetColor(void* penbyte alphabyte redbyte greenbyte blue);
286 public extern cdecl int WinGraphicsPenGetStartCap(void* pen);
287 public extern cdecl int WinGraphicsPenSetStartCap(void* penint startCap);
288 public extern cdecl int WinGraphicsPenGetEndCap(void* pen);
289 public extern cdecl int WinGraphicsPenSetEndCap(void* penint endCap);
290 public extern cdecl int WinGraphicsPenGetDashCap(void* pen);
291 public extern cdecl int WinGraphicsPenSetDashCap(void* penint dashCap);
292 public extern cdecl float WinGraphicsPenGetDashOffset(void* pen);
293 public extern cdecl int WinGraphicsPenSetDashOffset(void* penfloat dashOffset);
294 public extern cdecl int WinGraphicsPenGetDashStyle(void* pen);
295 public extern cdecl int WinGraphicsPenSetDashStyle(void* penint dashStyle);
296 public extern cdecl int WinGraphicsPenGetLineJoin(void* pen);
297 public extern cdecl int WinGraphicsPenSetLineJoin(void* penint lineJoin);
298 public extern cdecl void* WinGraphicsCreateSolidBrush(byte alphabyte redbyte greenbyte blue);
299 public extern cdecl void* WinGraphicsCloneSolidBrush(void* solidBrush);
300 public extern cdecl void WinGraphicsDeleteSolidBrush(void* solidBrush);
301 public extern cdecl int WinGraphicsBrushGetLastStatus(void* brush);
302 public extern cdecl void* WinGraphicsCreateEmptyFontFamily();
303 public extern cdecl void* WinGraphicsCreateFontFamily(const char* familyName);
304 public extern cdecl void* WinGraphicsCloneFontFamily(void* fontFamily);
305 public extern cdecl void WinGraphicsDeleteFontFamily(void* fontFamily);
306 public extern cdecl int WinGraphicsGetFontFamilyName(void* fontFamilyvoid*& str);
307 public extern cdecl const void* WinGraphicsGetGenericMonospaceFontFamily();
308 public extern cdecl const void* WinGraphicsGetGenericSansSerifFontFamily();
309 public extern cdecl const void* WinGraphicsGetGenericSerifFontFamily();
310 public extern cdecl int WinGraphicsFontFamilyGetLastStatus(void* fontFamily);
311 public extern cdecl void* WinGraphicsCreateFont(const void* fontFamilyfloat emSizeint styleint unit);
312 public extern cdecl void* WinGraphicsCreateFontFromHFont(void* hdcvoid* hfont);
313 public extern cdecl void* WinGraphicsCloneFont(void* font);
314 public extern cdecl void WinGraphicsDeleteFont(void* font);
315 public extern cdecl int WinGraphicsGetFontFamily(void* fontvoid* fontFamily);
316 public extern cdecl float WinGraphicsGetFontSize(void* font);
317 public extern cdecl float WinGraphicsGetFontHeight(void* fontconst void* graphics);
318 public extern cdecl int WinGraphicsGetFontStyle(void* font);
319 public extern cdecl int WinGraphicsFontToHFont(void* fontvoid* graphicsvoid*& hfont);
320 public extern cdecl void* WinGraphicsCreateDefaultStringFormat();
321 public extern cdecl const void* WinGraphicsGetGenericDefaultStringFormat();
322 public extern cdecl const void* WinGraphicsGetGenericTypographicStringFormat();
323 public extern cdecl void* WinGraphicsCreateStringFormat(int formatFlagsushort languageId);
324 public extern cdecl void* WinGraphicsCloneStringFormat(void* stringFormat);
325 public extern cdecl void WinGraphicsDeleteStringFormat(void* stringFormat);
326 public extern cdecl int WinGraphicsStringFormatGetLastStatus(void* stringFormat);
327 public extern cdecl int WinGraphicsStringFormatSetAlignment(void* stringFormatint alignment);
328 public extern cdecl int WinGraphicsStringFormatSetLineAlignment(void* stringFormatint alignment);
329 public extern cdecl int WinGraphicsStringFormatSetHotKeyPrefix(void* stringFormatint hotKeyPrefix);
330 public extern cdecl int WinGraphicsDrawLine(void* graphicsvoid* penint startXint startYint endXint endY);
331 public extern cdecl int WinGraphicsDrawLineF(void* graphicsvoid* penfloat startXfloat startYfloat endXfloat endY);
332 public extern cdecl int WinGraphicsDrawLines(void* graphicsvoid* penint countvoid* points);
333 public extern cdecl int WinGraphicsDrawLinesF(void* graphicsvoid* penint countvoid* points);
334 public extern cdecl int WinGraphicsDrawString(void* graphicsconst char* strvoid* fontfloat xfloat yvoid* brush);
335 public extern cdecl int WinGraphicsDrawStringFormatPoint(void* graphicsconst char* strvoid* fontfloat xfloat yvoid* formatvoid* brush);
336 public extern cdecl int WinGraphicsDrawStringFormatRect(void* graphicsconst char* strvoid* fontfloat xfloat yfloat wfloat hvoid* formatvoid* brush);
337 public extern cdecl int WinGraphicsMeasureStringFormatSize(void* graphicsconst char* strvoid* fontfloat wfloat hvoid* format
338     float& outSizeWfloat& outSizeHint* codePointsFittedint* linesFilled);
339 public extern cdecl int WinGraphicsMeasureStringFormatRect(void* graphicsconst char* strvoid* fontfloat xfloat yfloat wfloat hvoid* format
340     float& outXfloat& outYfloat& outWfloat& outHint* codePointsFittedint* linesFilled);
341 public extern cdecl int WinGraphicsMeasureStringFormatPoint(void* graphicsconst char* strvoid* fontfloat xfloat yvoid* format
342     float& outXfloat& outYfloat& outWfloat& outH);
343 public extern cdecl int WinGraphicsGetTextRenderingHint(void* graphics);
344 public extern cdecl int WinGraphicsSetTextRenderingHint(void* graphicsint textRenderingHint);
345 public extern cdecl int WinGraphicsClear(void* graphicsbyte alphabyte redbyte greenbyte blue);
346 public extern cdecl int WinGraphicsDrawRectangle(void* graphicsvoid* penint xint yint wint h);
347 public extern cdecl int WinGraphicsDrawRectangleF(void* graphicsvoid* penfloat xfloat yfloat wfloat h);
348 public extern cdecl int WinGraphicsFillRectangle(void* graphicsvoid* brushint xint yint wint h);
349 public extern cdecl int WinGraphicsFillRectangleF(void* graphicsvoid* brushfloat xfloat yfloat wfloat h);
350 public extern cdecl int WinGraphicsFillPolygon(void* graphicsvoid* brushint countvoid* points);
351 public extern cdecl int WinGraphicsFillPolygonF(void* graphicsvoid* brushint countvoid* points);
352 public extern cdecl int WinGraphicsDrawArc(void* graphicsvoid* penfloat xfloat yfloat wfloat hfloat startAnglefloat sweepAngle);
353 public extern cdecl int WinGraphicsDrawEllipse(void* graphicsvoid* penfloat xfloat yfloat wfloat h);
354 public extern cdecl int WinGraphicsFillEllipse(void* graphicsvoid* brushfloat xfloat yfloat wfloat h);
355 public extern cdecl void* WinGraphicsCreateRegion();
356 public extern cdecl void* WinGraphicsCloneRegion(void* region);
357 public extern cdecl void WinGraphicsDeleteRegion(void* region);
358 public extern cdecl int WinGraphicsRegionGetLastStatus(void* region);
359 public extern cdecl int WinGraphicsGetClip(void* graphicsvoid* region);
360 public extern cdecl int WinGraphicsSetClipRect(void* graphicsint xint yint wint hint combineMode);
361 public extern cdecl int WinGraphicsSetClipRegion(void* graphicsvoid* region);
362 public extern cdecl void* WinGraphicsCreateImage(const char* fileNamebool useEmbeddedColorManagement);
363 public extern cdecl int WinGraphicsImageGetLastStatus(void* image);
364 public extern cdecl void* WinGraphicsCloneImage(void* image);
365 public extern cdecl void WinGraphicsDeleteImage(void* image);
366 public extern cdecl int WinGraphicsImageGetHeight(void* image);
367 public extern cdecl int WinGraphicsImageGetWidth(void* image);
368 public extern cdecl void* WinGraphicsCreateBitmap(const char* fileNamebool useEmbeddedColorManagement);
369 public extern cdecl void* WinGraphicsCreateBitmapWidthHeight(int wint hvoid* graphics);
370 public extern cdecl void* WinGraphicsCreateBitmapWinBitmap(void* winBitmapvoid* palette);
371 public extern cdecl void* WinGraphicsCreateBitmapIcon(void* icon);
372 public extern cdecl void* WinGraphicsCreateBitmapResource(const char* resourceName);
373 public extern cdecl void* WinGraphicsCloneBitmap(void* nativeBitmapint xint yint wint hint pixelFormat);
374 public extern cdecl int WinGraphicsBitmapGetPixel(void* nativeBitmapint xint ybyte& alphabyte& redbyte& greenbyte& blue);
375 public extern cdecl int WinGraphicsBitmapSetPixel(void* nativeBitmapint xint ybyte alphabyte redbyte greenbyte blue);
376 public extern cdecl uint WinGraphicsSave(void* graphics);
377 public extern cdecl int WinGraphicsRestore(void* graphicsuint graphicsState);
378 public extern cdecl void* WinGraphicsCreateDefaultImageAttributes();
379 public extern cdecl int WinGraphicsImageAttributesGetLastStatus(void* imageAttributes);
380 public extern cdecl void* WinGraphicsCloneImageAttributes(void* imageAttributes);
381 public extern cdecl void WinGraphicsDeleteImageAttributes(void* imageAttributes);
382 public extern cdecl int WinGraphicsImageAttributesSetColorKey(void* imageAttributesbyte colorLowAlphabyte colorLowRedbyte colorLowGreenbyte colorLowBlue
383     byte colorHighAlphabyte colorHighRedbyte colorHighGreenbyte colorHighBlueint colorAdjustType);
384 public extern cdecl int WinGraphicsDrawImagePoint(void* graphicsvoid* imagefloat xfloat y);
385 public extern cdecl int WinGraphicsDrawImageRect(void* graphicsvoid* imagefloat xfloat yfloat wfloat h);
386 public extern cdecl int WinGraphicsDrawImageWithAttributes(void* graphicsvoid* imageint destRectXint destRectYint destRectWint destRectHint srcXint srcYint srcWint srcH
387     int srcUnitvoid* imageAttributes);
388 public extern cdecl int WinGraphicsDrawImageWithAttributesF(void* graphicsvoid* imagefloat destRectXfloat destRectYfloat destRectWfloat destRectH
389     float srcXfloat srcYfloat srcWfloat srcHint srcUnitvoid* imageAttributes);
390 public extern cdecl int WinGraphicsGetTransform(void* graphicsvoid* matrix);
391 public extern cdecl int WinGraphicsSetTransform(void* graphicsvoid* matrix);
392 public extern cdecl int WinGraphicsMultiplyTransform(void* graphicsvoid* matrixint order);
393 public extern cdecl int WinGraphicsResetTransform(void* graphics);
394 public extern cdecl int WinGraphicsRotateTransform(void* graphicsfloat angleint order);
395 public extern cdecl int WinGraphicsScaleTransform(void* graphicsfloat scaleXfloat scaleYint order);
396 public extern cdecl int WinGraphicsTranslateTransform(void* graphicsfloat offsetXfloat offsetYint order);
397 public extern cdecl void* WinGraphicsCreateMatrixFromElements(float m11float m12float m21float m22float dxfloat dy);
398 public extern cdecl void* WinGraphicsCreateMatrix();
399 public extern cdecl void* WinGraphicsCreateMatrixRectFPointF(float rectXfloat rectYfloat rectWfloat rectHfloat ptXfloat ptY);
400 public extern cdecl void* WinGraphicsCreateMatrixRectPoint(int rectXint rectYint rectWint rectHint ptXint ptY);
401 public extern cdecl int WinGraphicsMatrixGetLastStatus(void* matrix);
402 public extern cdecl void* WinGraphicsCloneMatrix(void* matrix);
403 public extern cdecl void WinGraphicsDeleteMatrix(void* matrix);
404 public extern cdecl int WinGraphicsMultiplyMatrix(void* matrixvoid* factorMatrixint order);
405 public extern cdecl int WinGraphicsResetMatrix(void* matrix);
406 public extern cdecl int WinGraphicsInvertMatrix(void* matrix);
407 public extern cdecl float WinGraphicsMatrixOffsetX(void* matrix);
408 public extern cdecl float WinGraphicsMatrixOffsetY(void* matrix);
409 public extern cdecl int WinGraphicsMatrixRotate(void* matrixfloat angleint order);
410 public extern cdecl int WinGraphicsMatrixRotateAt(void* matrixfloat anglefloat centerXfloat centerYint order);
411 public extern cdecl int WinGraphicsMatrixScale(void* matrixfloat scaleXfloat scaleYint order);
412 public extern cdecl int WinGraphicsMatrixSetElements(void* matrixfloat m11float m12float m21float m22float dxfloat dy);
413 public extern cdecl int WinGraphicsMatrixShear(void* matrixfloat shearXfloat shearYint order);
414 public extern cdecl int WinGraphicsMatrixTranslate(void* matrixfloat offsetXfloat offsetYint order);
415 public extern cdecl int WinGraphicsMatrixTransformPoints(void* matrixvoid* pointsint numPoints);
416 public extern cdecl int WinGraphicsMatrixTransformPointsF(void* matrixvoid* pointsint numPoints);
417 public extern cdecl int WinGraphicsGetPageUnit(void* graphics);
418 public extern cdecl int WinGraphicsSetPageUnit(void* graphicsint unit);
419 public extern cdecl float WinGraphicsGetPageScale(void* graphics);
420 public extern cdecl int WinGraphicsSetPageScale(void* graphicsfloat scale);
421 public extern cdecl float WinGraphicsGetDpiX(void* graphics);
422 public extern cdecl float WinGraphicsGetDpiY(void* graphics);
423 public extern cdecl int WinGraphicsGetSmoothingMode(void* graphics);
424 public extern cdecl int WinGraphicsSetSmoothingMode(void* graphicsint smoothingMode);
425 public extern cdecl int WinGraphicsGetEncoderClsId(const char* imageFormatvoid* clsid);
426 public extern cdecl int WinGraphicsImageSave(void* imageconst char* fileNameconst void* encoderClsId);