Método IVsUIShell.CreateToolWindow (UInt32, UInt32, Object, Guid, Guid, Guid, IServiceProvider, String, Int32 , IVsWindowFrame)
Publicado: abril de 2016
Esse método cria uma janela de ferramenta que contém a incorporação indicado por punkDocView, ou o clsidDocView parâmetro, se o punkDocView parâmetro é null.
Namespace: Microsoft.VisualStudio.Shell.Interop
Assembly: Microsoft.VisualStudio.Shell.Interop (em Microsoft.VisualStudio.Shell.Interop.dll)
Sintaxe
int CreateToolWindow(
uint grfCTW,
uint dwToolWindowId,
object punkTool,
[InAttribute] ref Guid rclsidTool,
[InAttribute] ref Guid rguidPersistenceSlot,
[InAttribute] ref Guid rguidAutoActivate,
IServiceProvider psp,
string pszCaption,
int[] pfDefaultPosition,
out IVsWindowFrame ppWindowFrame
)
int CreateToolWindow(
unsigned int grfCTW,
unsigned int dwToolWindowId,
Object^ punkTool,
[InAttribute] Guid% rclsidTool,
[InAttribute] Guid% rguidPersistenceSlot,
[InAttribute] Guid% rguidAutoActivate,
IServiceProvider^ psp,
String^ pszCaption,
array<int>^ pfDefaultPosition,
[OutAttribute] IVsWindowFrame^% ppWindowFrame
)
abstract CreateToolWindow :
grfCTW:uint32 *
dwToolWindowId:uint32 *
punkTool:Object *
rclsidTool:Guid byref *
rguidPersistenceSlot:Guid byref *
rguidAutoActivate:Guid byref *
psp:IServiceProvider *
pszCaption:string *
pfDefaultPosition:int[] *
ppWindowFrame:IVsWindowFrame byref -> int
Function CreateToolWindow (
grfCTW As UInteger,
dwToolWindowId As UInteger,
punkTool As Object,
<InAttribute> ByRef rclsidTool As Guid,
<InAttribute> ByRef rguidPersistenceSlot As Guid,
<InAttribute> ByRef rguidAutoActivate As Guid,
psp As IServiceProvider,
pszCaption As String,
pfDefaultPosition As Integer(),
<OutAttribute> ByRef ppWindowFrame As IVsWindowFrame
) As Integer
Parâmetros
- grfCTW
[in] Especifica como uma nova janela de ferramenta é criada.Para obter mais informações, consulte __VSCREATETOOLWIN.
- dwToolWindowId
[in] ID de instância de janela de ferramenta.Se você estiver criando uma janela da ferramenta de instância única, em seguida, passe em uma passagem de zero para esse parâmetro.Se você estiver criando uma janela de ferramenta de várias instâncias, em seguida, passe o identificador para a próxima janela de ferramenta disponível.
- punkTool
[in] Objeto de exibição a ser exibido na área do cliente da janela de ferramenta.Este objeto pode ser um controle Active X (como, IOleInPlaceActiveObject, IOleControl), um documento Active X (como IOleView, IOleDocument), ou a incorporação de um ambiente simples (IVsWindowPane).Pode ser null se um valor é fornecido para rclsidTool.
- rclsidTool
[in] Ferramenta para criar o ID de classe para o tipo de janela de ferramenta.Classe indicada é criado usando CreateInstance (clsidTool).Essa funcionalidade é uma conveniência para o chamador.Pode ser GUID_NULL se um valor é fornecido para punkTool.
- rguidPersistenceSlot
[in] Identificador exclusivo para esta janela de ferramenta para que o ambiente pode reter informações (por exemplo, posição da janela, status de encaixe e assim por diante) sobre essa janela de ferramenta nas sessões.Nenhuma janela de dois ferramenta pode compartilhar a mesma GUID.Nesse caso, a segunda janela de ferramenta entrariam em falência em criação.
- rguidAutoActivate
[in] Deve ser GUID_NULL.Não use.Para obter mais informações sobre como a visibilidade da janela de ferramenta é controlada, consulte Visão geral da janela de ferramenta.
- psp
[in] Ponteiro para o IServiceProvider interface.Can be null.Este parâmetro permite que o chamador especificar um provedor de serviço adicionais fornecido para a janela da ferramenta e, assim, fornecer contexto extra para a janela da ferramenta por meio do serviço.Quando a incorporação faz uma solicitação de serviço, o quadro de tentativas satisfazer a solicitação.Se o serviço não for fornecido pelo quadro, o serviço especificado no parâmetro psp é consultado.Se o serviço não é encontrado, o provedor de serviços globais do ambiente é consultada.
- pszCaption
[in] Legenda da janela de ferramenta.
- pfDefaultPosition
[out] Ponteiro para a posição padrão da janela da ferramenta.Pode ser null, se o chamador não desejam essas informações.Se false, e em seguida, o ambiente não tinha todas as informações salvas sobre a última posição desta janela de ferramenta (ou seja, guidPersistenceSlot não encontrado), e a janela da ferramenta é colocada em algum local padrão na tela.Se definido como true, e em seguida, a janela é colocada onde o usuário última localizada e dimensionado a ele.
- ppWindowFrame
[out] Ponteiro para a moldura da janela que contém a janela da ferramenta.Use esse ponteiro, para manipular o local, tamanho, legenda e assim por diante da janela de ferramenta e para obter o IUnknown o ponteiro de interface da incorporação.
Valor de retorno
Type: System.Int32
Se o método for bem-sucedido, ele retorna S_OK.Se ele falhar, ele retorna um código de erro.
Comentários
COM assinatura
De vsshell.idl:
HRESULT IVsUIShell::CreateToolWindow(
[in] VSCREATETOOLWIN grfCTW,
[in] DWORD dwToolWindowId,
[in] IUnknown *punkTool,
[in] REFCLSID rclsidTool,
[in] REFGUID rguidPersistenceSlot,
[in] REFGUID rguidAutoActivate,
[in] IServiceProvider *pSP,
[in] LPCOLESTR pszCaption,
[out] BOOL *pfDefaultPosition,
[out] IVsWindowFrame **ppWindowFrame
);
Passar um valor para cada uma a punkTool parâmetro ou para o rclsidTool parâmetro.Se você passar um valor rclsidTool, e em seguida, o ambiente cria o objeto usando rclsidTool.Classe indicada é criado usando CreateInstance (clsidTool).
O objeto de ToolFrame implementado o ambiente é retornado a partir da qual um pode obter o punkDocView, legenda, posicionar e assim por diante.Para obter uma lista completa das propriedades que podem ser acessados, consulte __VSFPROPID.
Janelas de ferramentas são criadas no estado invisível.Use Show ou ShowNoActivate para criar uma janela de ferramenta visível.
Uma instância da janela de hierarquia de interface do usuário é criada chamando IVsUIShell::CreateToolWindow (CLSID_VsUIHierarchyWindow).O chamador pode usar o ponteiro retornado para a moldura da janela para obter o ppunkDocView, no qual QueryInterface pode ser chamado para um ponteiro para o IVsUIHierarchyWindow interface.
Consulte também
Interface IVsUIShell
Namespace Microsoft.VisualStudio.Shell.Interop
Retornar ao topo