Здравствуйте, adontz, Вы писали:
A>Например есть 4 своства ассоциированных с именем: VSHPROPID_SaveName, VSHPROPID_Caption, VSHPROPID_Name, VSHPROPID_EditLabel. В моём случае они все обозначают одно и то же. Мне надо обращения к ним перенаправлять на одно и тоже свойство.
Здравствуйте, AndrewVK, Вы писали:
A>>Например есть 4 своства ассоциированных с именем: VSHPROPID_SaveName, VSHPROPID_Caption, VSHPROPID_Name, VSHPROPID_EditLabel. В моём случае они все обозначают одно и то же. Мне надо обращения к ним перенаправлять на одно и тоже свойство. AVK>И все таки идеи я уловить не могу.
По сути идея такая
public int SetProperty(uint itemID, int propID, object var)
{
switch (propID)
{
case VSHPROPID_SaveName:
case VSHPROPID_Caption:
case VSHPROPID_Name:
case VSHPROPID_EditLabel:
((IVsHierarchyImplemetation)this).Name[itemID] = (string)var;
break;
}
return ResultCom.S_OK;
}
public int GetProperty(uint itemID, int propID, out object var)
{
switch (propID)
{
case VSHPROPID_SaveName:
case VSHPROPID_Caption:
case VSHPROPID_Name:
case VSHPROPID_EditLabel:
var = ((IVsHierarchyImplemetation)this).Name[itemID];
break;
}
return ResultCom.S_OK;
}
Здравствуйте, adontz, Вы писали:
A>По сути идея такая A>
A>public int SetProperty(uint itemID, int propID, object var)
A>{
A> switch (propID)
A> {
A> case VSHPROPID_SaveName:
A> case VSHPROPID_Caption:
A> case VSHPROPID_Name:
A> case VSHPROPID_EditLabel:
A> ((IVsHierarchyImplemetation)this).Name[itemID] = (string)var;
A> break;
A> }
A> return ResultCom.S_OK;
A>}
A>public int GetProperty(uint itemID, int propID, out object var)
A>{
A> switch (propID)
A> {
A> case VSHPROPID_SaveName:
A> case VSHPROPID_Caption:
A> case VSHPROPID_Name:
A> case VSHPROPID_EditLabel:
A> var = ((IVsHierarchyImplemetation)this).Name[itemID];
A> break;
A> }
A> return ResultCom.S_OK;
A>}
A>
Какой то код не очень. Не лучше ли закатать в хеш набор делегатов, сформированный на базе рефлекшена?
P.S. Коль скоро взялся за создание своего типа проекта, погляди VSIP SDK для 2005 студии, там готовые обертки есть, может ничего писать не придется.
Здравствуйте, AndrewVK, Вы писали:
AVK>Какой то код не очень. Не лучше ли закатать в хеш набор делегатов, сформированный на базе рефлекшена?
Лучше конечно. Я просто идею показал — что во что транслирую, ты же её не понял. На самом деле этот код вообще не скомпилируется — надо долго колдовать пока значение VSHPROPID к uint приведётся.
AVK>P.S. Коль скоро взялся за создание своего типа проекта, погляди VSIP SDK для 2005 студии, там готовые обертки есть, может ничего писать не придется.
VS2005 это конечно хорошо, но всё и на 2003 должно работать. А вдруг там в обёртке C#2.0 и дженерики? Оно мне надо?
A>и писать для 10 объектов которым нужно 3-4 метода по 50 заглушек не охота. A>Наследование от параметра шаблона+вызов функции если она есть с Си++ решали эту проблему. А тут я какой-то хернёй маюсь
Мне кажется проблему легко решила бы генерация кода или как предлагал АВК банальный мапинг на делегатах.
... << RSDN@Home 1.2.0 alpha rev. 591>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
VladD2,
> ПК>Мне показалось, что ты generics использовал из C# 2.0, который в том же статусе, что и C++/CLI? > > Статус тот же но вот стабилность явно разная. Шарп 2 с конца 2003 года стабилен. C++/CLI же скорее всего по традиции будет глючить и после релиза.
По какой традиции? О чем речь-то? Может, примеры приведешь, или какие-то другие факты?
Posted via RSDN NNTP Server 2.0 beta
Легче одурачить людей, чем убедить их в том, что они одурачены. — Марк Твен
Здравствуйте, Павел Кузнецов, Вы писали:
ПК>По какой традиции? О чем речь-то? Может, примеры приведешь, или какие-то другие факты?
У МС традиция такая забивать на МС++. Первая версия глючила не по детски. В 1.1 поправили многое, но проблем отсалось хоть отбавляй. Мои попытки повозиться с С++Кли показали, что традиции сохраняются. Конечно может МС и удастся вытянуть С++Кли, но верется в это не сильно. Вот поддержку ЮМЛ-я она для него уже викинули.
... << RSDN@Home 1.2.0 alpha rev. 591>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
VladD2,
ПК>> По какой традиции? О чем речь-то? Может, примеры приведешь, или ПК>> какие-то другие факты?
V> У МС традиция такая забивать на МС++. Первая версия глючила <...>
Это не пример того, как глючит C++/CLI: Managed Extensions for C++ !=
C++/CLI в т.ч. и по отношению компании к своему детищу.
V> Мои попытки повозиться с С++Кли показали, что традиции сохраняются.
Вот я и спрашиваю о примерах, которые ты пока так и не привел (ни одного).
V> Вот поддержку ЮМЛ-я она для него уже викинули.
Это не относится к "глючить", напротив, чтоб не глючило, т.к. недостаточно
ресурсов, отложили до следующего релиза.
Posted via RSDN NNTP Server 2.0 beta
Легче одурачить людей, чем убедить их в том, что они одурачены. — Марк Твен