У WI есть расширение оболочки Windows, которое добавляет пункты меню в меню принтера, когда принтер щелкнут правой кнопкой мыши. Код отлично работает в Windows 2000, XP, Vista, но в Windows 7 вызов GetData() завершается с ошибкой DV_E_FORMATETC. Я нашел различные темы по этому поводу, но все они, похоже, связаны с VB/asp. Структуры FORMATETC и STGMEDIUM инициализируются следующим образом.
STGMEDIUM medium = {TYMED_HGLOBAL, {0}, 0};
FORMATETC fmte = {(unsigned short)RegisterClipboardFormat(CFSTR_PRINTERGROUP),
NULL,
DVASPECT_CONTENT,
-1,
TYMED_HGLOBAL};
<snip>
hrc = pDataObj->GetData(&fmte, &medium);
if (FAILED(hrc))
{
hrc is DV_E_FORMATETC