Estrutura SHChangeUpdateImageIDList (shlobj_core.h)
[SHChangeUpdateImageIDList está disponível para uso nos sistemas operacionais especificados na seção Requisitos. Ele pode estar alterado ou indisponível em versões subsequentes.]
Armazena as informações usadas como parâmetros para SHUpdateImage em um formulário imitando um ITEMIDLIST para que possam ser usadas por SHChangeNotify.
Sintaxe
typedef struct _SHChangeUpdateImageIDList {
USHORT cb;
int iIconIndex;
int iCurIndex;
UINT uFlags;
DWORD dwProcessID;
WCHAR szName[MAX_PATH];
USHORT cbZero;
} SHChangeUpdateImageIDList, *LPSHChangeUpdateImageIDList;
Membros
cb
Tipo: USHORT
O tamanho da estrutura em bytes.
iIconIndex
Tipo: int
O índice baseado em zero do ícone no arquivo especificado por szName. Obtenha esse valor chamando IExtractIcon::GetIconLocation e recuperando o valor apontado por piIndex.
iCurIndex
Tipo: int
O índice baseado em zero na lista de imagens do sistema do ícone que está sendo atualizado.
uFlags
Tipo: UINT
Sinalizadores que determinam os atributos de ícone. Obtenha esse valor chamando IExtractIcon::GetIconLocation e recuperando o valor apontado por pwFlags. Esses dois sinalizadores são relevantes para SHUpdateImage.
GIL_NOTFILENAME
O local não é um par de nome de arquivo/índice. Os aplicativos de chamada que decidem extrair o ícone do local devem chamar o método IExtractIcon::Extract deste objeto para obter as imagens de ícone desejadas.
GIL_SIMULATEDOC
O aplicativo de chamada deve criar um ícone de documento usando o ícone especificado.
dwProcessID
szName[MAX_PATH]
Tipo: WCHAR[MAX_PATH]
Uma cadeia de caracteres Unicode terminada em nulo que especifica o caminho totalmente qualificado do arquivo que contém o ícone. Obtenha esse valor chamando IExtractIcon::GetIconLocation e recuperando o valor apontado por szIconFile.
cbZero
Tipo: USHORT
Comentários
Este exemplo demonstra o uso de SHChangeUpdateImageIDList e SHChangeDWORDAsIDList por SHChangeNotify para imitar a função SHUpdateImage .
void MyUpdateImage(LPCWSTR pszHashItem, int iIndex, UINT uFlags, int iImageIndex)
{
SHChangeUpdateImageIDList rgPidl;
SHChangeDWORDAsIDList rgDWord;
int cchLen;
USHORT *pcb;
// Validate parameters: iImageIndex must be a valid system image list value.
if (iImageIndex < 0)
{
return;
}
// Validate parameters: pszHashItem must not exceed MAX_PATH in length
cchLen = lstrlenW(pszHashItem);
if (cchLen >= MAX_PATH)
{
return;
}
// Load SHChangeUpdateImageIDList
rgPidl.dwProcessID = GetCurrentProcessId();
rgPidl.iIconIndex = iIndex;
rgPidl.iCurIndex = iImageIndex;
rgPidl.uFlags = uFlags;
lstrcpynW(rgPidl.szName, pszHashItem, MAX_PATH);
pcb = &rgPidl.szName[cchLen+1];
// Set the size of the first element
rgPidl.cb = (USHORT)((BYTE*)pcb - (BYTE*)rgPidl);
// Terminate the "ITEMIDLIST"
*pcb = 0;
// Load SHChangeDWORDAsIDList
rgDWord.cb = (USHORT)FIELD_OFFSET(SHChangeDWORDAsIDList, cbZero);
rgDWord.dwItem1 = iImageIndex;
rgDWord.dwItem2 = 0;
rgDWord.cbZero = 0;
// Parameters are now in the form that SHCNE_UPDATEIMAGE can accept
SHChangeNotify(SHCNE_UPDATEIMAGE, SHCNF_IDLIST, &rgDWord, &rgPidl);
}
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows XP [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows Server 2003 [somente aplicativos da área de trabalho] |
Cabeçalho | shlobj_core.h (inclua Shlobj.h) |