PBXB64 COM & Automation
COM & Automation PBXB64 Addition
Full COM support with VARIANT, OBJECT, GUID, and IDispatch automation. Create COM objects, call methods via vtable dispatch, and handle VARIANT return values. Type-safe and memory-safe with automatic reference counting.
VARIANT - COM-Compatible Values
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 Object References
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. Automatic reference counting (AddRef/Release) on assignment.