да, есть такая беда. и просто так от нее не исбавиться, ибо НЕ ЛОКАЛИЗОВАНО.
единственный выход - функция враппера ShowProperty для погашения того, что тебе не нужно, например
STDMETHODIMP CAcDbMyClassWraper::ShowProperty (DISPID dispId, BOOL * pShow)
{
switch (dispId)
{
case (0x502): /*Тип линий*/ *pShow = FALSE; break;
case (0x503): /*Масштаб типа линий*/ *pShow = FALSE; break;
case (0x513): /*Стиль печати*/ *pShow = FALSE; break;
case (0x515): /*Гиперссылка*/ *pShow = FALSE; break;
case (0x577): /*Материал*/ *pShow = FALSE; break;
}
return S_OK;
}
и функция GetDisplayName для собственной локализации :):):) (пример взят от себя, так что некоторые свойства назвал иначе)
STDMETHODIMP CAcDbMyClassWraper::GetDisplayName (DISPID dispId, BSTR *propName)
{
switch (dispId)
{
// стандартное
case (0x401):
*propName = ::SysAllocString(_T("Мой тип ообъекта"));
break;
case (0x514):
*propName = ::SysAllocString(_T("Толщина рёбер"));
break;
case (0x516):
*propName = ::SysAllocString(_T("Цвет заливки"));
break;
case (0x501):
*propName = ::SysAllocString(_T("Слой"));
break;
}
return S_OK;
}
в cpp враппера это выглядит так
STDMETHODIMP CAcDbMyClassWraper::GetDisplayName (DISPID dispId, BSTR *propName)
{
}
в h файле
STDMETHOD(GetDisplayName) (DISPID dispId, BSTR *propName); // для русского языка в окне свойств (имена свойств)
STDMETHOD(ShowProperty) (DISPID dispId, BOOL * pShow);