Как перегрузить функцию в IDL на основе типа элемента параметра массива?

Предположим, у меня была определена эта функция в IDL следующим образом:

[propget, id(6), helpstring("property MyArray")]
HRESULT MyArray([out, retval] SAFEARRAY(myEnum)* pVal);

и я хотел создать перегрузку для этой функции, определенной в IDL, следующим образом:

[propget, id(7), helpstring("property MyArray")]
HRESULT MyArray([out, retval] SAFEARRAY(BSTR)* pVal);

но в заголовочном файле класса, который реализует функцию, оригинал был объявлен так:

STDMETHOD(get_InstalledScanningDetectors)(SAFEARRAY** pVal);

таким образом, тип элементов в массиве больше не является частью подписи. так как я пытаюсь создать перегруженную функцию на основе именно этой разницы в сигнатурах функции .. как мне поступить ??

0

Решение

SAFEARRAY это отдельный тип (на самом деле структура, встраивающая связанные с массивом члены), и его эффективный тип элемента не может быть частью подписи. У вас может быть один метод для возврата того или иного массива, иначе вы можете иметь два метода с разными именами, которые оба возвращают массивы.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]