🧬
내부 도구
go-ole (int32 fork)
COM/OLE int32 배열 지원 포크
OCX/COM 자동화에서 []int32 배열을 다루도록 확장한 go-ole 포크.
배경
표준 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 처리 패턴과 동일하게 동작합니다.
사용 방법
- 표준 go-ole 대신 이 포크를 받는다
- 평소처럼 COM 객체를 생성한다
- []int32 인자로 메서드를 직접 호출한다
- 라이브러리가 자동으로 SAFEARRAY로 변환한다
분류: 그 외 · 원본 경로: D:\goProject\go-ole