No começo foi trabalhosso devido ao pacote do compilador não ter incluso os headers necessários e por eu não ter usado o CoInitialize() corretamente. Depois de muitas horas, tentativas e pesquisas descobri que não estava iniciando a biblioteca COM
Vamos dá uma olhada num exemplo e ver como implementar esse estilo em uma janela do bloco de notas aberta.
#include <windows.h>
#include <shobjidl.h>
const GUID my_IID_ITaskbarList3 =
{ 0xea1afb91, 0x9e28, 0x4b86, { 0x90, 0xe9, 0x9e, 0x9f, 0x8a, 0x5e, 0xef, 0xaf } };
const GUID my_CLSID_TaskbarList =
{ 0x56fdf344, 0xfd6d, 0x11d0, { 0x95, 0x8a, 0x00, 0x60, 0x97, 0xc9, 0xa0, 0x90 } };
ITaskbarList3* ptbl = NULL;
int main()
{
// inicia a biblioteca
CoInitialize(NULL);
// cria a instancia para a interface ITaskbarList3
CoCreateInstance(my_CLSID_TaskbarList, NULL, CLSCTX_INPROC_SERVER, my_IID_ITaskbarList3, (LPVOID*)&ptbl);
// procura por uma janela do bloco de notas
HWND hWindow = FindWindow("Notepad", NULL);
ptbl->SetProgressState(hWindow, TBPF_ERROR);
ptbl->SetProgressValue(hWindow, 40, 100);
return 0;
}
Recomendo o link onde o autor faz uma introdução de COM e explica o que é e como usar (texto em inglês).
Att, Gilson Fabiano.
Nenhum comentário:
Postar um comentário