/ 프로젝트 / 그 외 / go-ole (int32 fork)
🧬
내부 도구

go-ole (int32 fork)

COM/OLE int32 배열 지원 포크

OCX/COM 자동화에서 []int32 배열을 다루도록 확장한 go-ole 포크.

GoOLE/COMWinAPI

배경

표준 go-ole는 COM 메서드의 []int32 SAFEARRAY 인자를 지원하지 않아, Excel VBA·WMI 등에 int32 배열을 넘길 수 없습니다.

핵심 기능

  • []int32 SAFEARRAY(VT_I4)를 처리하도록 확장한 go-ole 포크
  • []int32 → Win32 SAFEARRAY 자동 마샬링
  • 기존 go-ole API와 완전 호환(드롭인 교체)
  • Office·WMI·커스텀 COM 서버의 배열 인자 지원

동작 방식

IDispatch.Invoke가 []int32 타입을 감지해 SafeArrayCreateVector로 VT_I4 배열을 만들고 SafeArrayPutElement로 원소를 복사한 뒤 VARIANT로 감쌉니다. 기존 []string 처리 패턴과 동일하게 동작합니다.

사용 방법

  1. 표준 go-ole 대신 이 포크를 받는다
  2. 평소처럼 COM 객체를 생성한다
  3. []int32 인자로 메서드를 직접 호출한다
  4. 라이브러리가 자동으로 SAFEARRAY로 변환한다
분류: 그 외 · 원본 경로: D:\goProject\go-ole