179 lines
6.1 KiB
Racket
179 lines
6.1 KiB
Racket
#lang scribble/doc
|
|
@(require "common.ss")
|
|
|
|
@title[#:tag "methprop"]{COM Methods and Properties}
|
|
|
|
MysterX allows scripting of most COM components from Scheme. A COM
|
|
component can be scripted in MysterX if it supports OLE Automation
|
|
via the @tt{IDispatch} interface, and if it publishes type
|
|
information using the @tt{ITypeInfo} interface.
|
|
|
|
@defproc[(com-all-coclasses) (listof string?)]{
|
|
|
|
Returns a list of strings for all COM classes
|
|
registered on a system.}
|
|
|
|
@defproc[(com-all-controls) (listof string?)]{
|
|
|
|
Returns a list of strings for all COM classes
|
|
registered on a system that have the @scheme["Control"]
|
|
subkey.}
|
|
|
|
@deftogether[(
|
|
@defproc[(cocreate-instance-from-coclass [coclass string?]
|
|
[where (or/c (one-of/c 'local 'remote) string?) 'local])
|
|
com-object?]
|
|
@defproc[(cci/coclass [coclass string?]
|
|
[where (or/c (one-of/c 'local 'remote) string?) 'local])
|
|
com-object?]
|
|
)]{
|
|
|
|
Returns an instance of @scheme[coclass]. This is useful for COM
|
|
classes without a visual representation, or when a visual
|
|
representation is not needed.
|
|
|
|
The optional argument @scheme[where] indicates a for running the
|
|
instance, and may be @scheme['local], @scheme['remote], or a string
|
|
indicating a machine name. See @secref["remote"] for more
|
|
information.}
|
|
|
|
@deftogether[(
|
|
@defproc[(cocreate-instance-from-progid [progid string?]
|
|
[where (or/c (one-of/c 'local 'remote) string?) 'local])
|
|
com-object?]
|
|
@defproc[(cci/progid [progid string?]
|
|
[where (or/c (one-of/c 'local 'remote) string?) 'local])
|
|
com-object?]
|
|
)]{
|
|
|
|
Like @scheme[cocreate-instance-from-coclass], but using a ProgID.}
|
|
|
|
|
|
@deftogether[(
|
|
@defproc[(com-get-active-object-from-coclass [coclass string?])
|
|
com-object?]
|
|
@defproc[(gao/coclass [coclass string?])
|
|
com-object?]
|
|
)]{
|
|
|
|
Like @scheme[cocreate-instance-from-coclass], but gets an existing
|
|
active object (always local) instead of creating a new one.}
|
|
|
|
|
|
@defproc[(coclass [obj com-object?]) string?]{
|
|
|
|
Returns a string that is the name of the COM class instantiated by
|
|
@scheme[obj], or raises an error if the COM class is not known.}
|
|
|
|
@defproc[(progid [obj com-object?]) string?]{
|
|
|
|
Returns a string that is the name of the ProgID instantiated by
|
|
@scheme[obj], or raises an error if the COM class is not known.}
|
|
|
|
@defproc[(set-coclass! [obj com-object?] [coclass string?]) void?]{
|
|
|
|
Sets the COM class for @scheme[obj] to @scheme[coclass]. This is
|
|
useful when MysterX COM event-handling procedures can obtain only
|
|
ambiguous information about the object's COM class.}
|
|
|
|
@defproc[(set-coclass-from-progid! [obj com-object?] [progid string?]) void?]{
|
|
|
|
Like @scheme[set-coclass!], but using a ProgID.}
|
|
|
|
@defproc[(com-methods [obj/type (or/c com-object? com-type?)])
|
|
(listof string?)]{
|
|
|
|
Returns a list of strings indicating the names of methods on
|
|
@scheme[obj/type].}
|
|
|
|
@defproc[(com-method-type [obj/type (or/c com-object? com-type?)]
|
|
[method-name string?])
|
|
(listof symbol?)]{
|
|
|
|
Returns a list of symbols indicating the type of the specified
|
|
method in @scheme[obj/type]. See @secref["com-types"] for
|
|
information on the symbols.}
|
|
|
|
@defproc[(com-invoke [obj com-object?] [method-name string?] [v any/c])
|
|
any/c]{
|
|
|
|
Invokes @scheme[method-name] on @scheme[obj] with @scheme[v]s as the
|
|
arguments. The special value @scheme[com-omit] may be used for
|
|
optional arguments, which useful when values are supplied for
|
|
arguments after the omitted argument(s).}
|
|
|
|
@defproc[(com-get-properties [obj/type (or/c com-object? com-type?)])
|
|
(listof string?)]{
|
|
|
|
Returns a list of strings indicating the names of readable
|
|
properties in @scheme[obj/type].}
|
|
|
|
@defproc[(com-get-property-type [obj/type (or/c com-object? com-type?)]
|
|
[property-name string?])
|
|
(listof symbol?)]{
|
|
|
|
Returns a list of symbols indicating the type of the specified
|
|
property in @scheme[obj/type]. See @secref["com-types"] for
|
|
information on the symbols.}
|
|
|
|
@defproc[(com-get-property [obj com-object?] [property string?] ...+)
|
|
any/c]{
|
|
|
|
Returns the value of the final property by following the indicated
|
|
path of @scheme[property]s, where each intermediate property is a
|
|
COM object.}
|
|
|
|
@defproc[(com-set-properties [obj/type (or/c com-object? com-type?)])
|
|
(listof string?)]{
|
|
|
|
Returns a list of strings indicating the names of writeable
|
|
properties in @scheme[obj/type].}
|
|
|
|
@defproc[(com-set-property-type [obj/type (or/c com-object? com-type?)]
|
|
[property-name strig?])
|
|
(listof symbol?)]{
|
|
|
|
Returns a list of symbols indicating the type of the specified
|
|
property in @scheme[obj/type]. See @secref["com-types"] for
|
|
information on the symbols.}
|
|
|
|
@defproc[(com-set-property! [obj com-object?]
|
|
[string? property] ...+
|
|
[v any/c])
|
|
void?]{
|
|
|
|
Sets the value of the final property in @scheme[obj] to @scheme[v]
|
|
by following the @scheme[property]s, where the value of each
|
|
intermediate property is a COM object.}
|
|
|
|
@defproc[(com-help [obj/type (or/c com-object? com-type?)]
|
|
[topic string? ""])
|
|
void?]{
|
|
|
|
Starts the Window Help system with help about the COM object or COM
|
|
type. The optional @scheme[topic] is typically a method or property
|
|
name.}
|
|
|
|
@defproc[(com-object-eq? [obj1 com-object?] [obj2 com-object?])
|
|
boolean?]{
|
|
|
|
Returns @scheme[#t] if the two COM objects are the same,
|
|
@scheme[#f] otherwise.}
|
|
|
|
@defproc[(com-object? [obj com-object?]) boolean?]{
|
|
|
|
Returns @scheme[#t] if the argument is a COM object, @scheme[#f]
|
|
otherwise.}
|
|
|
|
@defproc[(com-add-ref [obj com-object?]) void?]{
|
|
|
|
Increments the reference count for @scheme[obj].
|
|
This procedure should only be called when system-level
|
|
errors occur due to a mismanaged COM object. Ordinarily,
|
|
MysterX handles all COM reference-counting automatically.}
|
|
|
|
@defproc[(com-ref-count [obj com-object?]) exact-nonnegative-integer?]{
|
|
|
|
Returns a number indicating the current reference count
|
|
for a COM object.}
|