All Manuals > COM/Automation User Guide and Reference Manual

Contents

Preface

1 Using COM

1.1 Prerequisites

1.2 Including COM in a Lisp application

1.2.1 Loading the modules

1.2.2 Generating FLI definitions from COM definitions

1.2.3 Standard IDL files

1.2.4 Making a COM DLL with LispWorks

1.3 The mapping from COM names to Lisp symbols

1.4 Initializing the COM runtime

1.5 Obtaining the first COM interface pointer

1.6 Reference counting

1.7 Querying for other COM interface pointers

1.8 Calling COM interface methods

1.8.1 Data conversion when calling COM methods

1.8.1.1 In parameters

1.8.1.2 Out parameters

1.8.1.3 In-out parameters

1.8.2 Error handling

1.9 Implementing COM interfaces in Lisp

1.9.1 Steps required to implement COM interfaces

1.9.2 The lifecycle of a COM object

1.9.3 Class factories

1.9.4 Unimplemented methods

1.9.5 Inheritance

1.9.5.1 An example of multiple inheritance

1.9.5.2 A second example of multiple inheritance

1.9.6 Data conversion in define-com-method

1.9.6.1 FLI types

1.9.6.2 In parameters

1.9.6.3 Out parameters

1.9.6.4 In-out parameters

1.10 Calling COM object methods from Lisp

1.10.1 Data conversion when calling COM object methods

1.10.1.1 In parameters

1.10.1.2 Out parameters

1.10.1.3 In-out parameters

2 COM Reference Entries

add-ref

automation-server-command-line-action

automation-server-main

automation-server-top-loop

call-com-interface

call-com-object

check-hresult

co-create-guid

co-initialize

com-error

com-interface

com-interface-refguid

com-object

com-object-destructor

com-object-from-pointer

com-object-initialize

com-object-query-interface

co-task-mem-alloc

co-task-mem-free

co-uninitialize

create-instance

define-com-implementation

define-com-method

find-clsid

get-object

guid-equal

guid-to-string

hresult

hresult-equal

interface-ref

i-unknown

make-factory-entry

make-guid-from-string

midl

midl-default-import-paths

:midl-file

midl-set-import-paths

query-interface

query-object-interface

refguid

refguid-interface-name

refiid

register-class-factory-entry

register-server

release

server-can-exit-p

server-in-use-p

set-automation-server-exit-delay

set-register-server-error-reporter

s_ok

standard-i-unknown

start-factories

stop-factories

succeeded

unregister-server

with-com-interface

with-com-object

with-query-interface

with-temp-interface

3 Using Automation

3.1 Including Automation in a Lisp application

3.1.1 Loading the modules

3.1.2 Generating FLI definitions from COM definitions

3.1.3 Reducing the size of the converted library

3.2 Starting a remote Automation server

3.3 Calling Automation methods

3.3.1 Calling Automation methods using a type library

3.3.2 Calling Automation methods without a type library

3.3.3 Data conversion when calling Automation methods

3.3.4 Using collections

3.3.5 Using connection points

3.3.6 Error handling

3.4 Implementing Automation interfaces in Lisp

3.4.1 A complete implementation of an Automation server

3.4.2 A simple implementation of a single Automation interface

3.4.3 Implementing collections

3.4.4 Implementing connection points

3.4.5 Reporting errors

3.4.6 Registering a running object for use by other applications

3.4.7 Automation of a CAPI application

3.5 Examples of using Automation

4 Automation Reference Entries

call-dispatch-get-property

call-dispatch-method

call-dispatch-put-property

com-dispatch-invoke-exception-error

com-dispatch-invoke-exception-error-info

com-object-dispinterface-invoke

create-instance-with-events

create-object

define-automation-collection

define-automation-component

define-dispinterface-method

disconnect-standard-sink

do-collection-items

do-connections

find-component-tlb

find-component-value

get-active-object

get-error-info

get-i-dispatch-name

get-i-dispatch-source-names

i-dispatch

interface-connect

interface-disconnect

invoke-dispatch-get-property

invoke-dispatch-method

invoke-dispatch-put-property

lisp-variant

make-lisp-variant

:midl-type-library-file

print-i-dispatch-methods

query-simple-i-dispatch-interface

register-active-object

revoke-active-object

set-error-info

set-i-dispatch-event-handler

set-variant

simple-i-dispatch

simple-i-dispatch-callback-object

standard-automation-collection

standard-i-connection-point-container

standard-i-dispatch

with-coclass

with-dispatch-interface

5 Tools

5.1 The COM Implementation Browser

5.2 The COM Object Browser

5.3 The COM Interface Browser

5.4 Editor extensions

5.4.1 Inserting GUIDs

5.4.2 Argument lists

6 Self-contained examples

6.1 Argument passing

6.2 Aggregation

6.3 OLE embedding of external components

6.4 Building an ActiveX control

6.5 OLE automation

Index


COM/Automation User Guide and Reference Manual - 01 Dec 2021 19:38:43