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 FUNCTION

VARIANT 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 FUNCTION

CreateObject 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.

Back to feature list