LispWorks COM/Automation User Guide and Reference Manual

NextPrevTopIndex

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 Obtaining the first COM interface pointer

1.5 Reference counting

1.6 Querying for other COM interface pointers

1.7 Calling COM interface methods

1.7.1 Data conversion when calling COM methods

1.7.1.1 In parameters

1.7.1.2 Out parameters

1.7.1.3 In-out parameters

1.7.2 Error handling

1.8 Implementing COM interfaces in Lisp

1.8.1 Steps required to implement COM interfaces

1.8.2 The lifecycle of a COM object

1.8.3 Class factories

1.8.4 Unimplemented methods

1.8.5 Inheritance

1.8.5.1 An example of multiple inheritance

1.8.5.2 A second example of multiple inheritance

1.8.6 Data conversion in define-com-method

1.8.6.1 FLI types

1.8.6.2 In parameters

1.8.6.3 Out parameters

1.8.6.4 In-out parameters

1.9 Calling COM object methods from Lisp

1.9.1 Data conversion when calling COM object methods

1.9.1.1 In parameters

1.9.1.2 Out parameters

1.9.1.3 In-out parameters

2 COM Reference Entries

add-ref

call-com-interface

call-com-object

check-hresult

co-initialize

co-task-mem-alloc

co-task-mem-free

co-uninitialize

com-error

com-interface

com-interface-refguid

com-object

com-object-destructor

com-object-from-pointer

com-object-initialize

com-object-query-interface

create-instance

define-com-implementation

define-com-method

find-clsid

guid-equal

guid-to-string

hresult

hresult-equal

i-unknown

interface-ref

make-factory-entry

make-guid-from-string

midl

:midl-file

query-interface

query-object-interface

refguid

refguid-interface-name

refiid

register-class-factory-entry

register-server

release

s_ok

standard-i-unknown

start-factories

stop-factories

succeeded

unregister-server

with-com-interface

with-com-object

with-temp-interface

with-query-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 Automation of a CAPI application

4 Automation Reference Entries

call-dispatch-get-property

call-dispatch-method

call-dispatch-put-property

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-error-info

get-i-dispatch-name

get-i-dispatch-source-names

i-dispatch

interface-connect

interface-disconnect

lisp-variant

invoke-dispatch-get-property

invoke-dispatch-method

invoke-dispatch-put-property

make-lisp-variant

:midl-type-library-file

query-simple-i-dispatch-interface

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

Index

 


LispWorks COM/Automation User Guide and Reference Manual - 22 Dec 2009

NextPrevTopIndex