Xpprt2.ch: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Georg (Diskussion | Beiträge) (Die Seite wurde neu angelegt: „__FORCETOC__ == Allgemeines == Solange man mit den Standard-Datentypen von Xbase++ auf Windows-APIs zugreifen kann, mappt die Laufzeitumgebung von Xbase++ da…“) |
Georg (Diskussion | Beiträge) Keine Bearbeitungszusammenfassung |
||
Zeile 12: | Zeile 12: | ||
== Syntax == | == Syntax == | ||
typedef struct | |||
{ | |||
UINT _nSize; | |||
UINT_PTR _nUserParam; | |||
LPCSTR _pszProjectFileName; | |||
LPCSTR _pszOriginalProjectFileName; | |||
UINT _nPages; // 0 for 'unlimited' | |||
UINT _nFunction; | |||
HWND _hWnd; | |||
HANDLE _hEvent; | |||
LPCSTR _pszExportFormat; | |||
BOOL _bWithoutDialog; | |||
} scLlDesignerPrintJobA; | |||
Umsetzung in Xbase++ Syntax (mit xpprt2.ch): | |||
DEFINE STRUCTURE LLDesignerPrintJob | |||
VAR _nSize AS UINTEGER | |||
VAR _nUserParam AS UINTEGER | |||
VAR _pszProjectName AS @STRING | |||
VAR _pszOriginalProjectFileName AS @STRING | |||
VAR _nPages AS UINTEGER | |||
VAR _nFunction AS UINTEGER | |||
VAR _hWnd AS UINTEGER | |||
VAR _hEvent AS UINTEGER | |||
VAR _pszExportFormat AS @STRING | |||
VAR _bWithoutDialog AS UINTEGER | |||
ENDDEFINE | |||
== Beispiel == | == Beispiel == |
Version vom 4. März 2021, 14:25 Uhr
Allgemeines
Solange man mit den Standard-Datentypen von Xbase++ auf Windows-APIs zugreifen kann, mappt die Laufzeitumgebung von Xbase++ das sehr gut und zuverlässig.
Probleme treten aber auf, wenn komplexere Strukturen benötigt werden, also z.B. Strukturen. Hier muss man entweder auf die BAP.dll oder OT4XB zurückgreifen.
Oder, man verwendet eine zu diesem Zeitpunkt undokumentierte Header-Datei, die solche Zugriff ermöglicht.
Syntax
typedef struct { UINT _nSize; UINT_PTR _nUserParam; LPCSTR _pszProjectFileName; LPCSTR _pszOriginalProjectFileName; UINT _nPages; // 0 for 'unlimited' UINT _nFunction; HWND _hWnd; HANDLE _hEvent; LPCSTR _pszExportFormat; BOOL _bWithoutDialog; } scLlDesignerPrintJobA;
Umsetzung in Xbase++ Syntax (mit xpprt2.ch):
DEFINE STRUCTURE LLDesignerPrintJob VAR _nSize AS UINTEGER VAR _nUserParam AS UINTEGER VAR _pszProjectName AS @STRING VAR _pszOriginalProjectFileName AS @STRING VAR _nPages AS UINTEGER VAR _nFunction AS UINTEGER VAR _hWnd AS UINTEGER VAR _hEvent AS UINTEGER VAR _pszExportFormat AS @STRING VAR _bWithoutDialog AS UINTEGER ENDDEFINE
Beispiel
Quelle
#include "xpprt2.ch" Dank an Marcus Herz für diesen tollen Beitrag.