SafeArrays

From RAD Studio
Jump to: navigation, search

Go Up to Using Delphi or RIDL Syntax


COM requires that arrays be passed via a special data type known as a SafeArray. You can create and destroy SafeArrays by calling special COM functions to do so, and all elements within a SafeArray must be valid automation-compatible types. The Delphi compiler has built-in knowledge of COM SafeArrays and automatically calls the COM API to create, copy, and destroy SafeArrays.

Delphi:

 procedure HighLightLines(Lines: PSafeArray);

C++:

HRESULT STDMETHODCALLTYPE HighlightLines(LPSAFEARRAY Lines)

In the Type Library Editor, a SafeArray must specify the type of its elements. For example, the following line from the text page declares a method with a parameter that is a SafeArray with an element type of Integer:

 HRESULT _stdcall HighlightLines(SAFEARRAY(long) Lines);
Note: Although you must specify the element type when declaring a SafeArray type in the Type Library Editor, the declaration in the generated _TLB unit does not indicate the element type.

See Also