Estás trabajando sin conexión, espera a que vuelva la conexión a Internet

Cómo cambiar el icono de un acceso directo A IShellLink

IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.

Haga clic aquí para ver el artículo original (en inglés): 179904
Resumen
En este artículo se describe cómo crear un acceso directo y cambiar el icono que se muestra para el acceso directo.
Más información
IShellLink proporciona métodos para obtener y establecer el icono de un acceso directo. Los pasos para cambiar el icono de un acceso directo son como sigue:
  1. Obtener la interfaz IPersistFile desde el IShellLink con QueryInterface IID_IPersistFile.
  2. Llamar a IShellLink::SetIconLocation con el archivo que contiene el icono (en este caso, el archivo es un archivo .dll o .exe) y el índice del icono.
  3. Llame a IPersistFile::Save para actualizar el acceso directo.

Código de ejemplo

Código de ejemplo siguiente crea un acceso directo y establece icono del acceso directo en un icono contenido en shell32.dll:
   /*PARAMETERS   fname_to_create_link  = (e.g.) "c:\\mytextfile.txt"   lnk_fname = (e.g.) "yourname.lnk"   */    void CreateLinkThenChangeIcon(LPTSTR fname_to_create_link,                                 LPTSTR lnk_fname)   {   HRESULT hres;   IShellLink *psl = NULL;   IPersistFile *pPf = NULL;   WORD wsz[256];   TCHAR buf[256];   int id;   LPITEMIDLIST pidl;   hres = CoCreateInstance(  CLSID_ShellLink,                           NULL,                           CLSCTX_INPROC_SERVER,                           IID_IShellLink,                           (LPVOID*)&psl);   if(FAILED(hres))      goto cleanup;   hres = psl->QueryInterface(IID_IPersistFile, (LPVOID*)&pPf);   if(FAILED(hres))      goto cleanup;   hres = psl->SetPath(fname_to_create_link);   if(FAILED(hres))      goto cleanup;   //place the shortcut on the desktop   SHGetSpecialFolderLocation(hwnd, CSIDL_DESKTOP, >pidl);   SHGetPathFromIDList(pidl, buf);   lstrcat(buf,"\\");   lstrcat(buf,lnk_fname);   MultiByteToWideChar(CP_ACP, 0, buf, -1, wsz, MAX_PATH);   hres = pPf->Save(wsz, TRUE);   if(FAILED(hres))      goto cleanup;   GetSystemDirectory(buf, 256);   lstrcat(buf,"\\shell32.dll");   hres = psl->SetIconLocation(buf, 1);   if(FAILED(hres))      goto cleanup;   hres = psl->GetIconLocation(buf, 256, &id);   if(FAILED(hres))      goto cleanup;   pPf-&Save(wsz, TRUE);   cleanup:   if(pPf)      pPf->Release();   if(psl)      psl->Release();   }				

Advertencia: este artículo se tradujo automáticamente

Propiedades

Id. de artículo: 179904 - Última revisión: 07/11/2005 20:36:03 - Revisión: 1.3

Microsoft Platform Software Development Kit-January 2000 Edition

  • kbmt kbhowto KB179904 KbMtes
Comentarios