IOleInPlaceComponentUIManager.UIActivateForMe Yöntem

Tanım

SOleComponentUIManagerHizmetin bir yerinde VSPackage nesnesinin etkinleştirilmesinde veya devre dışı bırakılması sırasında katılımını ister.

public:
 int UIActivateForMe(System::UInt32 dwCompRole, Guid % rclsidActive, Microsoft::VisualStudio::OLE::Interop::IOleInPlaceActiveObject ^ pIPActObj, Microsoft::VisualStudio::OLE::Interop::IOleCommandTarget ^ pCmdTrgtActive, System::UInt32 cCmdGrpId, cli::array <int> ^ rgnCmdGrpId);
public int UIActivateForMe (uint dwCompRole, ref Guid rclsidActive, Microsoft.VisualStudio.OLE.Interop.IOleInPlaceActiveObject pIPActObj, Microsoft.VisualStudio.OLE.Interop.IOleCommandTarget pCmdTrgtActive, uint cCmdGrpId, int[] rgnCmdGrpId);
abstract member UIActivateForMe : uint32 * Guid * Microsoft.VisualStudio.OLE.Interop.IOleInPlaceActiveObject * Microsoft.VisualStudio.OLE.Interop.IOleCommandTarget * uint32 * int[] -> int
Public Function UIActivateForMe (dwCompRole As UInteger, ByRef rclsidActive As Guid, pIPActObj As IOleInPlaceActiveObject, pCmdTrgtActive As IOleCommandTarget, cCmdGrpId As UInteger, rgnCmdGrpId As Integer()) As Integer

Parametreler

dwCompRole
UInt32

'ndaki Etkinleştiren veya devre dışı bırakacağınız yerinde VSPackage nesnesinin rolü. Geçerli dwCompRole değerler için bkz OLEROLE ..

rclsidActive
Guid

'ndaki Etkinleştiren veya devre dışı bırakacağınız yerinde VSPackage nesnesinin sınıf tanımlayıcısı (CLSID).

pIPActObj
IOleInPlaceActiveObject

'ndaki IOleInPlaceActiveObject En içteki etkin nesnenin arabirimine yönelik işaretçi. pIPActObjParametre null yerinde nesne devre dışı bırakıldığında ve etkinleşirken geçerli bir arabirim İşaretçisinde olması gerekir.

pCmdTrgtActive
IOleCommandTarget

'ndaki IOleCommandTarget Etkin yerinde nesne komutlarının dağıtımını işlemek için arabirim işaretçisi. pCmdTrgtActiveYerinde nesne devre dışı bırakıldığında ve etkinleştirildiğinde geçerli bir arabirim işaretçisiyse parametre null olmalıdır.

cCmdGrpId
UInt32

'ndaki Parametresindeki özel araç çubuğu tanımlayıcılarının sayısı rgnCmdGrpId .

rgnCmdGrpId
Int32[]

'ndaki Hizmet tarafından görüntülenecek özel araç çubuğu için tanımlayıcı dizisi SOleComponentUIManager .

Döndürülenler

Int32

Yöntem başarılı olursa, döndürür S_OK . Başarısız olursa, bir hata kodu döndürür.

Açıklamalar

COM Imzası

Oleıpc. DL ' den:

HRESULT IOleInPlaceComponentUIManager::UIActivateForMe(  
   [in] DWORD dwCompRole,  
   [in] REFCLSID rclsidActive,  
   [in] IOleInPlaceActiveObject *pIPActObj,  
   [in] IOleCommandTarget *pCmdTrgtActive,  
   [in] ULONG cCmdGrpId,  
   [in] LONG *rgnCmdGrpId  
);  

UIActivateForMe , hizmetin kullanımını geleneksel OLE yerinde etkinleştirmeye ayıran birincil yöntemdir SOleComponentUIManager . Bir yerinde VSPackage nesnesi çağırdığında UIActivateForMe , SOleComponentUIManager hizmet nesnenin menülerini, araç çubuklarını ve komutlarını ortamla bütünleştirmek için gereken tüm adımları alır. OLE yerinde etkinleştirme işleminde gerekli olduğu gibi, nesnenin menü birleştirmeyi etkinleştirmek için, kenarlık alanı anlaşmasına katılması gerekmez.

UIActivateForMe , arabirimindeki yöntemin mantıksal bir değiştirme SetActiveObject yöntemidir IOleInPlaceFrame . Yerinde VSPackage nesnesi, pIPActObj UIActivateForMe Standart ole yerinde etkinleştirme sırasında yapıldığı gibi kapsayıcının yöntemi yerine bu yöntemde kendi işaretçisini ortama geçirir.

Uygulamak için UIActivateForMe , bu yöntemi arabirimindeki Yöntem uygulamasıyla koordine edin UIActivateForMe IOleInPlaceFrame . Bu çağrının etkisi, çağıran OLE nesnesine benzer:

IOleInPlaceUIWindow::SetActiveObject(pActiveObj);

IOleInPlaceFrame::SetMenu(null);

IOleInPlaceUIWindow::SetBorderSpace(null);

Bir yerinde VSPackage nesnesi çağırarak odağı alırsa UIActivateForMe , SOleComponentUIManager hizmet, önceki etkin nesnenin adına yeni etkin nesne ile görüntülenmiş tüm özel menüleri ve araç çubuklarını değiştirir. Yeni nesne odağı kaybederse veya iç içe yerleştirilmiş bir nesne odağı alırsa, bu menüler ve araç çubukları kaldırılır.

Şunlara uygulanır