ffi/com: add `com-get-property*'

Accesses a "parameterized property", which is like a method call
but for a name that is categorized as a property.
This commit is contained in:
Matthew Flatt 2012-12-18 06:24:08 -07:00
parent ae97ae0fcc
commit 0f909af765
4 changed files with 14 additions and 1 deletions

View File

@ -16,6 +16,7 @@
com-methods com-method-type com-invoke com-omit
com-get-properties com-get-property-type com-get-property
com-get-property*
com-set-properties com-set-property-type com-set-property!
com-events com-event-type

View File

@ -53,6 +53,7 @@
com-methods com-method-type com-invoke com-omit
com-get-properties com-get-property-type com-get-property
com-get-property*
com-set-properties com-set-property-type com-set-property!
com-events com-event-type
@ -2048,6 +2049,9 @@
(com-get-property target-obj (list-ref names (sub1 len)))
(com-release target-obj))]))
(define (com-get-property* obj name . args)
(do-com-invoke 'com-get-property obj name args INVOKE_PROPERTYGET))
(define com-set-property!
(case-lambda
[(obj name val)

View File

@ -187,7 +187,7 @@ type information, @racket[#f] otherwise.}
@secref["com-types"] for more information.}
@defproc[(com-invoke [obj com-object?] [method-name string?] [v any/c])
@defproc[(com-invoke [obj com-object?] [method-name string?] [v any/c] ...)
any/c]{
Invokes @racket[method-name] on @racket[obj] with @racket[v]s as the
@ -237,6 +237,13 @@ argument.}
path of @racket[property]s, where each intermediate property must be a
COM object.}
@defproc[(com-get-property* [obj com-object?] [property string?] [v any/c] ...)
any/c]{
Returns the value of a parameterized property, which behaves like a
method and accepts the @racket[v]s as arguments (like
@racket[com-invoke]). When no @racket[v]s are provided,
@racket[com-get-property*] is the same as @racket[com-get-property].}
@defproc[(com-set-properties [obj/type (or/c com-object? com-type?)])
(listof string?)]{

View File

@ -6,6 +6,7 @@ Add #fx() and #fl() reader forms for flvectors and fxvectors
racket/serialize: fxvectors and flvectors are serializable
racket/net: added uri-path-segment-unreserved-encode
racket/url: added current-url-encode-mode
ffi/com: added com-get-property*
Version 5.3.1.8
file/untar: added