diff --git a/collects/ffi/com.rkt b/collects/ffi/com.rkt index a2950e58f6..30c3145d9b 100644 --- a/collects/ffi/com.rkt +++ b/collects/ffi/com.rkt @@ -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 diff --git a/collects/ffi/unsafe/com.rkt b/collects/ffi/unsafe/com.rkt index d5d08b0722..c85f60a43f 100644 --- a/collects/ffi/unsafe/com.rkt +++ b/collects/ffi/unsafe/com.rkt @@ -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) diff --git a/collects/scribblings/foreign/com-auto.scrbl b/collects/scribblings/foreign/com-auto.scrbl index 508ae3d81c..6499ecc9ae 100644 --- a/collects/scribblings/foreign/com-auto.scrbl +++ b/collects/scribblings/foreign/com-auto.scrbl @@ -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?)]{ diff --git a/doc/release-notes/racket/HISTORY.txt b/doc/release-notes/racket/HISTORY.txt index e0db424835..90e2b7b783 100644 --- a/doc/release-notes/racket/HISTORY.txt +++ b/doc/release-notes/racket/HISTORY.txt @@ -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