예제 #1
0
파일: windows.go 프로젝트: jmptrader/com
func NewHString(s string) (hstring hstr.HString, err error) {
	u16 := windows.StringToUTF16Ptr(s)
	len := uint32(utf8.RuneCountInString(s))
	err = errors.MaybeError(procWindowsCreateString.Call(
		uintptr(unsafe.Pointer(u16)),
		uintptr(len),
		uintptr(unsafe.Pointer(&hstring))))
	return
}
예제 #2
0
파일: windows.go 프로젝트: jmptrader/com
func RoActivateInstance(classID string) (obj *iinspectable.Inspectable, err error) {
	hClassID, err := NewHString(classID)
	if err != nil {
		return nil, err
	}
	defer DeleteHString(hClassID)

	err = errors.MaybeError(procRoActivateInstance.Call(
		uintptr(unsafe.Pointer(hClassID)),
		uintptr(unsafe.Pointer(&obj))))
	return
}
예제 #3
0
파일: windows.go 프로젝트: jmptrader/com
func RoGetActivationFactory(classID string, interfaceID *types.GUID) (obj *iinspectable.Inspectable, err error) {
	hClassID, err := NewHString(classID)
	if err != nil {
		return nil, err
	}
	defer DeleteHString(hClassID)

	err = errors.MaybeError(procRoGetActivationFactory.Call(
		uintptr(unsafe.Pointer(hClassID)),
		uintptr(unsafe.Pointer(interfaceID)),
		uintptr(unsafe.Pointer(&obj))))
	return
}
예제 #4
0
파일: cgo.go 프로젝트: jmptrader/com
func AllocateArrayDescriptorEx(variantType types.VariantType, dimensions uint32) (array *types.COMArray, err error) {
	err = errors.MaybeError(C.SafeArrayAllocDescriptorEx(uint16(variantType), dimensions, unsafe.Pointer(&array)))
	return
}
예제 #5
0
파일: cgo.go 프로젝트: jmptrader/com
func AllocateArrayDescriptor(dimensions uint32) (array *types.COMArray, err error) {
	err = errors.MaybeError(C.SafeArrayAllocDescriptor(dimensions, unsafe.Pointer(&array)))
	return
}
예제 #6
0
파일: cgo.go 프로젝트: jmptrader/com
func AllocateArrayData(array *types.COMArray) error {
	return errors.MaybeError(C.SafeArrayAllocData(array))
}
예제 #7
0
파일: cgo.go 프로젝트: jmptrader/com
func GetUpperBound(array *types.COMArray, dimension uint32) (upperBound int64, err error) {
	err = errors.MaybeError(C.SafeArrayGetUBound(array, dimension, unsafe.Pointer(&upperBound)))
	return
}
예제 #8
0
파일: cgo.go 프로젝트: jmptrader/com
func DestroyDescriptor(array *types.COMArray) error {
	return errors.MaybeError(C.SafeArrayDestroyDescriptor(array))
}
예제 #9
0
파일: cgo.go 프로젝트: jmptrader/com
func PutElement(array *types.COMArray, index int64, element interface{}) error {
	return errors.MaybeError(C.SafeArrayPutElement(array, index, unsafe.Pointer(&element)))
}
예제 #10
0
파일: cgo.go 프로젝트: jmptrader/com
func ResetDimensions(array *types.COMArray, bounds *types.Bounds) error {
	return errors.MaybeError(C.SafeArrayRedim(array, bounds))
}
예제 #11
0
파일: cgo.go 프로젝트: jmptrader/com
func SetInterfaceID(array *types.COMArray, interfaceID *types.GUID) error {
	return errors.MaybeError(C.SafeArraySetIID(array, interfaceID))
}
예제 #12
0
파일: cgo.go 프로젝트: jmptrader/com
func GetPointerOfIndex(array *types.COMArray, index int64) (ref uintptr, err error) {
	err = errors.MaybeError(C.SafeArrayPtrOfIndex(array, index, unsafe.Pointer(&ref)))
	return
}
예제 #13
0
파일: cgo.go 프로젝트: jmptrader/com
func Unlock(array *types.COMArray) error {
	return errors.MaybeError(C.SafeArrayUnlock(array))
}
예제 #14
0
파일: cgo.go 프로젝트: jmptrader/com
func GetVariantType(array *types.COMArray) (varType uint16, err error) {
	err = errors.MaybeError(C.SafeArrayGetVartype(array, unsafe.Pointer(&varType)))
	return
}
예제 #15
0
파일: cgo.go 프로젝트: jmptrader/com
func Duplicate(original *types.COMArray) (array *types.COMArray, err error) {
	err = errors.MaybeError(C.SafeArrayCopy(original, unsafe.Pointer(&array)))
	return
}
예제 #16
0
파일: cgo.go 프로젝트: jmptrader/com
func DuplicateData(original, duplicate *types.COMArray) error {
	return errors.MaybeError(C.SafeArrayCopyData(original, unsafe.Pointer(&duplicate)))
}
예제 #17
0
파일: cgo.go 프로젝트: jmptrader/com
func GetRecordInfo(array *types.COMArray) (recordInfo interface{}, err error) {
	err = errors.MaybeError(C.SafeArrayGetRecordInfo(array, unsafe.Pointer(&recordInfo)))
	return
}
예제 #18
0
파일: windows.go 프로젝트: jmptrader/com
func RoInitialize(threadType uint32) error {
	return errors.MaybeError(procRoInitialize.Call(uintptr(threadType)))
}
예제 #19
0
파일: cgo.go 프로젝트: jmptrader/com
func SetRecordInfo(array *types.COMArray, recordInfo interface{}) error {
	return errors.MaybeError(C.SafeArraySetRecordInfo(array, unsafe.Pointer(recordInfo)))
}
예제 #20
0
파일: cgo.go 프로젝트: jmptrader/com
func AccessData(array *types.COMArray) (element uintptr, err error) {
	err = errors.MaybeError(C.SafeArrayAccessData(array, unsafe.Pointer(&element)))
	return
}
예제 #21
0
파일: cgo.go 프로젝트: jmptrader/com
func UnaccessData(array *types.COMArray) error {
	return errors.MaybeError(C.SafeArrayUnaccessData(array))
}
예제 #22
0
파일: windows.go 프로젝트: jmptrader/com
func DeleteHString(hstring hstr.HString) error {
	return errors.MaybeError(procWindowsDeleteString.Call(uintptr(hstring)))
}
예제 #23
0
파일: cgo.go 프로젝트: jmptrader/com
func GetInterfaceID(array *types.COMArray) (guid *types.GUID, err error) {
	err = errors.MaybeError(C.SafeArrayGetIID(array, unsafe.Pointer(&guid)))
	return
}