Я использую проприетарную библиотеку в linux, которая использует тип SAFEARRAY
в функции обратного вызова:
HRESULT Write(SAFEARRAY *Data)
SAFEARRAY
определяется в заголовочном файле как typedef void SAFEARRAY
.
Я должен определить функцию обратного вызова, которая будет получать данные (например, *unsigned char
) и их длину (например, int
или size_t
) и записывать данные куда-нибудь.
Что-то вроде:
HRESULT MyWrite(SAFEARRAY *Data) {
unsigned char *data = SafeArrayGetData(Data);
size_t length = SafeArrayGetLength(Data);
write_data_somewhere(data, length);
}
А затем используйте его с библиотекой:
ProprietaryLib::ExportThing(thing, MyWrite);
Итак, мой вопрос: как получить данные и их длину в linux, где у меня нет заголовочного файла oaidl.h или oleauto.h .