Re[9]: Это только мне не хватает?
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 03.08.05 15:06
Оценка:
Здравствуйте, adontz, Вы писали:

A>Например есть 4 своства ассоциированных с именем: VSHPROPID_SaveName, VSHPROPID_Caption, VSHPROPID_Name, VSHPROPID_EditLabel. В моём случае они все обозначают одно и то же. Мне надо обращения к ним перенаправлять на одно и тоже свойство.


И все таки идеи я уловить не могу.
... << RSDN@Home 1.2.0 alpha rev. 599>>
AVK Blog
Re[10]: Это только мне не хватает?
От: adontz Грузия http://adontz.wordpress.com/
Дата: 03.08.05 15:47
Оценка:
Здравствуйте, 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;
}
A journey of a thousand miles must begin with a single step © Lau Tsu
Re[11]: Это только мне не хватает?
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 03.08.05 15:57
Оценка:
Здравствуйте, 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 студии, там готовые обертки есть, может ничего писать не придется.
... << RSDN@Home 1.2.0 alpha rev. 599>>
AVK Blog
Re[12]: Это только мне не хватает?
От: adontz Грузия http://adontz.wordpress.com/
Дата: 03.08.05 16:27
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Какой то код не очень. Не лучше ли закатать в хеш набор делегатов, сформированный на базе рефлекшена?


Лучше конечно. Я просто идею показал — что во что транслирую, ты же её не понял. На самом деле этот код вообще не скомпилируется — надо долго колдовать пока значение VSHPROPID к uint приведётся.

AVK>P.S. Коль скоро взялся за создание своего типа проекта, погляди VSIP SDK для 2005 студии, там готовые обертки есть, может ничего писать не придется.


VS2005 это конечно хорошо, но всё и на 2003 должно работать. А вдруг там в обёртке C#2.0 и дженерики? Оно мне надо?
A journey of a thousand miles must begin with a single step © Lau Tsu
Re[4]: Это только мне не хватает?
От: VladD2 Российская Империя www.nemerle.org
Дата: 03.08.05 16:58
Оценка:
Здравствуйте, Павел Кузнецов, Вы писали:

ПК>Мне показалось, что ты generics использовал из C# 2.0, который в том же

ПК>статусе, что и C++/CLI?

Статус тот же но вот стабилность явно разная. Шарп 2 с конца 2003 года стабилен. C++/CLI же скорее всего по традиции будет глючить и после релиза.
... << RSDN@Home 1.2.0 alpha rev. 591>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[5]: Это только мне не хватает?
От: VladD2 Российская Империя www.nemerle.org
Дата: 03.08.05 16:58
Оценка:
Здравствуйте, adontz, Вы писали:


A>и писать для 10 объектов которым нужно 3-4 метода по 50 заглушек не охота.

A>Наследование от параметра шаблона+вызов функции если она есть с Си++ решали эту проблему. А тут я какой-то хернёй маюсь

Мне кажется проблему легко решила бы генерация кода или как предлагал АВК банальный мапинг на делегатах.
... << RSDN@Home 1.2.0 alpha rev. 591>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[5]: Это только мне не хватает?
От: Павел Кузнецов  
Дата: 03.08.05 19:36
Оценка:
VladD2,

> ПК>Мне показалось, что ты generics использовал из C# 2.0, который в том же статусе, что и C++/CLI?

>
> Статус тот же но вот стабилность явно разная. Шарп 2 с конца 2003 года стабилен. C++/CLI же скорее всего по традиции будет глючить и после релиза.

По какой традиции? О чем речь-то? Может, примеры приведешь, или какие-то другие факты?
Posted via RSDN NNTP Server 2.0 beta
Легче одурачить людей, чем убедить их в том, что они одурачены. — Марк Твен
Re[6]: Это только мне не хватает?
От: VladD2 Российская Империя www.nemerle.org
Дата: 04.08.05 07:05
Оценка:
Здравствуйте, Павел Кузнецов, Вы писали:

ПК>По какой традиции? О чем речь-то? Может, примеры приведешь, или какие-то другие факты?


У МС традиция такая забивать на МС++. Первая версия глючила не по детски. В 1.1 поправили многое, но проблем отсалось хоть отбавляй. Мои попытки повозиться с С++Кли показали, что традиции сохраняются. Конечно может МС и удастся вытянуть С++Кли, но верется в это не сильно. Вот поддержку ЮМЛ-я она для него уже викинули.
... << RSDN@Home 1.2.0 alpha rev. 591>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[13]: Это только мне не хватает?
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 04.08.05 09:51
Оценка:
Здравствуйте, adontz, Вы писали:

A>VS2005 это конечно хорошо, но всё и на 2003 должно работать.


Думаю исходники с небольшими правками соберуться и под 2003.

A> А вдруг там в обёртке C#2.0 и дженерики?


Вряд ли. Я, по крайней мере, не заметил.
... << RSDN@Home 1.2.0 alpha rev. 599>>
AVK Blog
Re[7]: Это только мне не хватает?
От: Павел Кузнецов  
Дата: 04.08.05 11:56
Оценка:
VladD2,

ПК>> По какой традиции? О чем речь-то? Может, примеры приведешь, или

ПК>> какие-то другие факты?

V> У МС традиция такая забивать на МС++. Первая версия глючила <...>


Это не пример того, как глючит C++/CLI: Managed Extensions for C++ !=
C++/CLI в т.ч. и по отношению компании к своему детищу.

V> Мои попытки повозиться с С++Кли показали, что традиции сохраняются.


Вот я и спрашиваю о примерах, которые ты пока так и не привел (ни одного).

V> Вот поддержку ЮМЛ-я она для него уже викинули.


Это не относится к "глючить", напротив, чтоб не глючило, т.к. недостаточно
ресурсов, отложили до следующего релиза.
Posted via RSDN NNTP Server 2.0 beta
Легче одурачить людей, чем убедить их в том, что они одурачены. — Марк Твен
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.