MMC Snap-in - PropertyPage
От: konst_z  
Дата: 29.08.02 11:04
Оценка:
Как вызвать PropertyPage не по соответствующему пункту меню,
а по другим действиям пользователя ?
В Platform SDK есть статья 'Using IPropertySheetProvider Directly' —
кто-нибудь разбирался с примером ?
какой IDataObject* туда надо передавать и что за функция ExtractCookie ?
Re: MMC Snap-in - PropertyPage
От: Rand1  
Дата: 29.08.02 12:04
Оценка:
Здравствуйте konst_z, Вы писали:

KZ>Как вызвать PropertyPage не по соответствующему пункту меню,

KZ>а по другим действиям пользователя ?
KZ>В Platform SDK есть статья 'Using IPropertySheetProvider Directly' -
KZ>кто-нибудь разбирался с примером ?
KZ>какой IDataObject* туда надо передавать и что за функция ExtractCookie ?

в качестве cookie — мы передавали (long) this
IDataObject* — у нас был com-объект реализующий IDataObject, создавали его через CreateInstance и передавали куда надо
Re[2]: MMC Snap-in - PropertyPage
От: konyaviy  
Дата: 30.08.02 09:04
Оценка:
Здравствуйте Rand1, Вы писали:

R>Здравствуйте konst_z, Вы писали:


KZ>>Как вызвать PropertyPage не по соответствующему пункту меню,

KZ>>а по другим действиям пользователя ?
KZ>>В Platform SDK есть статья 'Using IPropertySheetProvider Directly' -
KZ>>кто-нибудь разбирался с примером ?
KZ>>какой IDataObject* туда надо передавать и что за функция ExtractCookie ?

R>в качестве cookie — мы передавали (long) this

R>IDataObject* — у нас был com-объект реализующий IDataObject, создавали его через CreateInstance и передавали куда надо


Ребя, а вы случайно не пробовали Wizard вызвать, просто вызвать странички у меня получается. В MSDN есть пример функции, но мне кажется там написант бред типа
if (S_OK == hr)
return S_FALSE;
Подскажите если можете
Re[3]: MMC Snap-in - PropertyPage
От: Rand1  
Дата: 30.08.02 09:07
Оценка:
Здравствуйте konyaviy, Вы писали:

K>Здравствуйте Rand1, Вы писали:


R>>Здравствуйте konst_z, Вы писали:


KZ>>>Как вызвать PropertyPage не по соответствующему пункту меню,

KZ>>>а по другим действиям пользователя ?
KZ>>>В Platform SDK есть статья 'Using IPropertySheetProvider Directly' -
KZ>>>кто-нибудь разбирался с примером ?
KZ>>>какой IDataObject* туда надо передавать и что за функция ExtractCookie ?

R>>в качестве cookie — мы передавали (long) this

R>>IDataObject* — у нас был com-объект реализующий IDataObject, создавали его через CreateInstance и передавали куда надо


K>Ребя, а вы случайно не пробовали Wizard вызвать, просто вызвать странички у меня получается. В MSDN есть пример функции, но мне кажется там написант бред типа

K>if (S_OK == hr)
K> return S_FALSE;
K> Подскажите если можете
Лично я не занимался но у нас народ писал wizard'ы без проблем
Re[3]: MMC Snap-in - PropertyPage
От: Admiral Украина  
Дата: 30.08.02 12:31
Оценка:
Здравствуйте konyaviy, Вы писали:

K>Ребя, а вы случайно не пробовали Wizard вызвать, просто вызвать странички у меня получается. В MSDN есть пример функции, но мне кажется там написант бред типа

K> Подскажите если можете

http://codeproject.com/atl/mmcsnap.asp — там есть исходники. Все работоспособно.
Re: MMC Snap-in - PropertyPage
От: IBoB  
Дата: 03.09.02 16:14
Оценка:
Здравствуйте konst_z, Вы писали:

KZ>В Platform SDK есть статья 'Using IPropertySheetProvider Directly' -

KZ>кто-нибудь разбирался с примером ?
В примере из "Using IPropertySheetProvider Directly"
есть несколько тонкостей:
1.
hr = pPropertySheetProvider->CreatePropertySheet
    (
        NULL,     // pointer to the property page title - не должен быть NULL :-)
        // это написано в самом конце статьи по CreatePropertySheet
        TRUE,     // property sheet
        ExtractCookie(piDataObject),     
                     // cookie of current object - can be NULL
                     // for extension snap-ins
        piDataObject, // data object of selected node
        NULL          // specifies flags set by the method call
    );


2.
hr = pPropertySheetProvider->AddPrimaryPages
    (
        reinterpret_cast<IUnknown *>(this), // pointer to our 
                          // object's IUnknown - это должен быть указатель на 
             // IComponent или  IComponentData если следующий параметр стоит в TRUE
            //и соответствовать значению последнего параметра: IComponent - FALSE,
            //IComponentData - TRUE.
        TRUE, // specifies whether to create a notification 
               // handle
        NULL,  // must be NULL
        TRUE   // scope pane; FALSE for result pane
    );


А в остальном отличный пример
Будут деньги, дом в Чикаго, много женщин и машин...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.