Makes a object which can be used to register a class factory.
com
make-factory-entry &key clsid implementation-name constructor-function constructor-extra-args friendly-name prog-id version-independent-prog-id
clsid⇩ |
The CLSID of the coclass. |
implementation-name⇩ |
A Lisp symbol naming the implementation class. |
constructor-function⇩ |
A function to construct the object. |
constructor-extra-args⇩ | |
Extra arguments to pass to constructor-function. | |
friendly-name⇩ |
A string. |
prog-id⇩ |
A string. |
version-independent-prog-id⇩ | |
A string. |
The function make-factory-entry
makes an object to contain all the information for class factory registration in the COM runtime for clsid. This object should be passed to register-class-factory-entry to perform the registration. This done automatically if you use define-automation-component described in the 3 Using Automation.
If constructor-function is nil
, the default constructor is used which makes an instance of implementation-name and queries it for a i-unknown interface pointer. The default constructor also handles aggregation.
If constructor-function is non-nil, it is called by LispWorks with the unknown-outer (non-nil if aggregation is being used), the IID of the interface to return and the values in constructor-extra-args. It should return three values: the hresult, the COM interface pointer and the instance of implementation-name.
constructor-extra-args supplies extra arguments to pass to constructor-function. It defaults to a list containing implementation-name.
friendly-name is the name of the coclass for use by application builders.
prog-id and version-independent-prog-id specify the ProgID and VersionIndependentProgID of the coclass when it is registered.
(make-factory-entry :clsid (make-guid-from-string "7D9EB762-E4E5-11D5-BF02-000347024BE1") :implementation-name 'doc-impl :prog-id "Wordifier.Document.1" :version-independent-prog-id "Wordifier.Document" :friendly-name "Wordifier Document")
COM/Automation User Guide and Reference Manual - 01 Dec 2021 19:38:38