PBXB64 COM & Automation
COM & Automation PBXB64-Erweiterung
Volle COM-Unterstützung with VARIANT, OBJECT, GUID, and IDispatch-Automation. COM-Objekte erstellen, Methoden via Vtable-Dispatch aufrufen, and VARIANT-Rückgabewerte behandeln. Typensicher und speichersicher with automatisches Referenzzählen.
VARIANT - COM-kompatible Werte
VARIANT type switching
FUNCTION PBMAIN() AS LONG
LOCAL v AS VARIANT
v = 42 ' VT_I8
PRINT VARIANTVT(v) ' 20
v = "Hello" ' VT_BSTR
PRINT VARIANTVT(v) ' 8
v = 3.14159 ' VT_R8
PRINT VARIANTVT(v) ' 5
FUNCTION = 0
END FUNCTIONVARIANT stores any COM-compatible type: integers (VT_I8), floats (VT_R8), strings (VT_BSTR), booleans (VT_BOOL), currency (VT_CY), and empty (VT_EMPTY). Arrays are supported with element-wise lifecycle management.
OBJECT - COM-Objekt-Referenzen
COM object creation
FUNCTION PBMAIN() AS LONG
LOCAL obj AS OBJECT
LOCAL result AS VARIANT
' Create COM object by ProgID
obj = CreateObject("Scripting.Dictionary")
' Call method via IDispatch
result = obj.Add("key", "value")
result = obj.Item("key")
PRINT "Value: "; result ' "value"
' GUID support
LOCAL g AS GUID
g = GUID$("{12345678-1234-1234-1234-123456789ABC}")
PRINT "GUID: "; GUID$(g)
FUNCTION = 0
END FUNCTIONCreateObject creates COM objects by ProgID. OBJECT supports IDispatch method calls with VARIANT arguments and return values. GUID stores 128-bit UUIDs. Automatisches Referenzzählen (AddRef/Release) bei Zuweisung.