Re: pytanie o *.lnk (skrot)

Autor: Tomasz 'Pilot' Minkiewicz (spam.hater_at_dummy.domain)
Data: Fri 22 Jan 1999 - 16:45:50 MET


Sat, 16 Jan 1999 17:02:13 +0100, "Bartek"
<bartek_at_hoth.amu.edu.pl> napisał[a]:

>Czy ktos orientuje sie moze jak najprosciej z poziomu programu
>instalacyjnego np Delphi lub C wygenerowac plik *.lnk. czyli skrot Win9x. Ja
>niestety niewiem jak tego dokonac.

Masz i przestań œmiecić! NTG!!!

The CreateLink function in the following example creates a
shortcut. The parameters include a pointer to the name of
the file to link to, a pointer to the name of the shortcut
that you are creating, and a pointer to the description of
the link. The description consists of the string, "Shortcut
to filename," where filename is the name of the file to link
to.

Because CreateLink calls the CoCreateInstance function, it
is assumed that the CoInitialize
 function has already been called. CreateLink uses the
IPersistFile interface to save the shortcut and the
IShellLink interface to store the filename and description.

// CreateLink - uses the shell's IShellLink and IPersistFile
interfaces
// to create and store a shortcut to the specified object.

// Returns the result of calling the member functions of the
interfaces.
// lpszPathObj - address of a buffer containing the path of
the object
// lpszPathLink - address of a buffer containing the path
where the
// shell link is to be stored
// lpszDesc - address of a buffer containing the description
of the
// shell link

 
HRESULT CreateLink(LPCSTR lpszPathObj,
    LPSTR lpszPathLink, LPSTR lpszDesc)
{
    HRESULT hres;
    IShellLink* psl;
 
    // Get a pointer to the IShellLink interface.
    hres = CoCreateInstance(&CLSID_ShellLink, NULL,
        CLSCTX_INPROC_SERVER, &IID_IShellLink, &psl);
    if (SUCCEEDED(hres)) {
        IPersistFile* ppf;
 
        // Set the path to the shortcut target, and add the
        // description.
        psl->lpVtbl->SetPath(psl, lpszPathObj);

        psl->lpVtbl->SetDescription(psl, lpszDesc);
 
       // Query IShellLink for the IPersistFile interface
for saving the
       // shortcut in persistent storage.
        hres = psl->lpVtbl->QueryInterface(psl,
&IID_IPersistFile,
            &ppf);
 
        if (SUCCEEDED(hres)) {
            WORD wsz[MAX_PATH];
 
            // Ensure that the string is ANSI.
            MultiByteToWideChar(CP_ACP, 0, lpszPathLink, -1,

                wsz, MAX_PATH);

 
            // Save the link by calling IPersistFile::Save.
            hres = ppf->lpVtbl->Save(ppf, wsz, TRUE);
            ppf->lpVtbl->Release(ppf);
        }
        psl->lpVtbl->Release(psl);
    }
    return hres;
}
 

Tomasz 'Pilot' Minkiewicz
adres w naglowku jest dla picu, mailto:pilot_at_vc.pl



To archiwum zostało wygenerowane przez hypermail 2.1.7 : Tue 18 May 2004 - 18:07:15 MET DST