ffi/unsafe/com: repair for safe arrays, and add com-omit?
Repair provided by Antonio Menezes Leitao.
This commit is contained in:
parent
b54c03bb04
commit
585f14744e
|
@ -209,6 +209,14 @@ A constant for use with @racket[com-invoke] in place of an optional
|
||||||
argument.}
|
argument.}
|
||||||
|
|
||||||
|
|
||||||
|
@defproc[(com-omit? [v any/c]) boolean?]{
|
||||||
|
|
||||||
|
Returns @racket[#t] if @racket[v] is @racket[com-omit], @racket[#f]
|
||||||
|
otherwise.
|
||||||
|
|
||||||
|
@history[#:added "6.3.0.3"]}
|
||||||
|
|
||||||
|
|
||||||
@; ----------------------------------------
|
@; ----------------------------------------
|
||||||
|
|
||||||
@section{COM Properties}
|
@section{COM Properties}
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
com-release
|
com-release
|
||||||
com-object-type com-type? com-type=?
|
com-object-type com-type? com-type=?
|
||||||
|
|
||||||
com-methods com-method-type com-invoke com-omit
|
com-methods com-method-type com-invoke com-omit com-omit?
|
||||||
com-get-properties com-get-property-type com-get-property
|
com-get-properties com-get-property-type com-get-property
|
||||||
com-get-property*
|
com-get-property*
|
||||||
com-set-properties com-set-property-type com-set-property!
|
com-set-properties com-set-property-type com-set-property!
|
||||||
|
|
|
@ -54,7 +54,7 @@
|
||||||
com-release
|
com-release
|
||||||
com-object-type com-type? com-type=?
|
com-object-type com-type? com-type=?
|
||||||
|
|
||||||
com-methods com-method-type com-invoke com-omit
|
com-methods com-method-type com-invoke com-omit com-omit?
|
||||||
com-get-properties com-get-property-type com-get-property
|
com-get-properties com-get-property-type com-get-property
|
||||||
com-get-property*
|
com-get-property*
|
||||||
com-set-properties com-set-property-type com-set-property!
|
com-set-properties com-set-property-type com-set-property!
|
||||||
|
@ -1407,10 +1407,10 @@
|
||||||
|
|
||||||
(define-oleaut VariantInit (_wfun _VARIANT-pointer -> _void))
|
(define-oleaut VariantInit (_wfun _VARIANT-pointer -> _void))
|
||||||
|
|
||||||
(define com-omit
|
(define-values (com-omit com-omit?)
|
||||||
(let ()
|
(let ()
|
||||||
(struct com-omit ())
|
(struct com-omit ())
|
||||||
(com-omit)))
|
(values (com-omit) com-omit?)))
|
||||||
|
|
||||||
(define CY-factor 10000)
|
(define CY-factor 10000)
|
||||||
|
|
||||||
|
@ -1732,13 +1732,14 @@
|
||||||
(let loop ([dims dims] [level 1] [index null])
|
(let loop ([dims dims] [level 1] [index null])
|
||||||
(define lb (SafeArrayGetLBound sa level))
|
(define lb (SafeArrayGetLBound sa level))
|
||||||
(for/vector ([i (in-range (car dims))])
|
(for/vector ([i (in-range (car dims))])
|
||||||
|
(let ([i (+ i lb)])
|
||||||
(if (null? (cdr dims))
|
(if (null? (cdr dims))
|
||||||
(let ([var (make-a-VARIANT)])
|
(let ([var (make-a-VARIANT)])
|
||||||
(set-VARIANT-vt! var vt)
|
(set-VARIANT-vt! var vt)
|
||||||
(SafeArrayGetElement sa (reverse (cons i index))
|
(SafeArrayGetElement sa (reverse (cons i index))
|
||||||
(extract-variant-pointer var #t))
|
(extract-variant-pointer var #t))
|
||||||
(variant-to-scheme var #:mode mode))
|
(variant-to-scheme var #:mode mode))
|
||||||
(loop (cdr dims) (add1 level) (cons i index))))))))
|
(loop (cdr dims) (add1 level) (cons i index)))))))))
|
||||||
|
|
||||||
(define (_IUnknown-pointer-or-com-object mode)
|
(define (_IUnknown-pointer-or-com-object mode)
|
||||||
(make-ctype
|
(make-ctype
|
||||||
|
|
Loading…
Reference in New Issue
Block a user