See also: about COM, using COM components.
In QM you can:
1. Use type libraries. See available type libraries, declare them in code, and use identifiers (interfaces, types, constants, etc) declared in type libraries.
2. Explicitly declare COM interfaces.
3. Use COM interface pointer variables.
5. Call COM object functions (methods and properties).
6. Use early binding (VTBL or id), or late binding. By default, if possible, QM uses VTBL binding, which is fastest. You can use #opt dispatch directive to use id binding, or IDispatch variable to use late binding (without declaring).
7. Enumerate collections.
8. Receive events.
9. Use ActiveX controls in dialogs.
10. Use OLE Automation variable types.
11. Use type info.
12. Execute VBScript code. Use VbsExec and other functions from System\Functions\Scripting folder.
QM does not support some features used in VB and other languages: default member, implicit application object, etc.