B
brainbug80
Hallo liebe Comm,
ich habe folgendes Problem:
Ich möchte mit Hilfe meines Programms einen Shortcut ins Autostart-Verzeichnis des PPCs schreiben, sobald das Programm gestartet wird und wieder gelöscht werden, sobald es beendet wird. Der Sinn dahinter ist der, dass das Programm bei einem Softreset des PPCs automatisch neu gestartet werden soll.
Mein bisheriger Quellcode der Funktion sieht folgendermaßen aus: (Hier ist die Volage, die ich benutzt habe.)
Folgende Headerfiles hab ich includiert (die nicht benötigten Files werde ich natürlich noch raus schmeißen):
#include <windows.h>
#include <shlobj.h>
#include <initguid.h>
#include <objbase.h>
#include <ole2.h>
#include <shlguid.h>
Jetzt bekomme ich leider 2 Fehlermeldungen, die ich nicht wegbekomme:
error C2065: 'CLSID_ShellLink' : undeclared identifier
error C2065: 'IID_IShellLinkW' : undeclared identifier
Ich habe natürlich schon Google bemüht, konnte aber leider nicht die passende Lösung finden.![Frown :( :(](https://cdn.jsdelivr.net/joypixels/assets/8.0/png/unicode/64/1f641.png)
Vielleicht weiß ja jemand von euch weiter... Ich wäre auf jeden Fall sehr dankbar.![Smile :) :)](https://cdn.jsdelivr.net/joypixels/assets/8.0/png/unicode/64/1f642.png)
Gruß,
Tobias
P.S. Ich benutze eMbedded Visual C++ 4.0 mit einem Pocket PC 2003 SDK.
ich habe folgendes Problem:
Ich möchte mit Hilfe meines Programms einen Shortcut ins Autostart-Verzeichnis des PPCs schreiben, sobald das Programm gestartet wird und wieder gelöscht werden, sobald es beendet wird. Der Sinn dahinter ist der, dass das Programm bei einem Softreset des PPCs automatisch neu gestartet werden soll.
Mein bisheriger Quellcode der Funktion sieht folgendermaßen aus: (Hier ist die Volage, die ich benutzt habe.)
Code:
bool MyClass::CreateShortCut( TShortcutCfg_* sCfg )
{
char cBuf[MAX_PATH];
bool blRetVal = true; // Rückgabewert
wchar_t wsz [MAX_PATH]; // Buffer für Unicode String
IShellLink *psl;
CString shortcut;
CString shortcutFolder = sCfg->linkDir;
// Verzeichnis und Datei zusammenführen
shortcut = shortcutFolder + L"\\" + sCfg->shortcutName + L".lnk";
MultiByteToWideChar(CP_ACP, MB_PRECOMPOSED, shortcut, -1, wsz, MAX_PATH);
if( blRetVal )
{
// COM-Bibliothek initialisieren
blRetVal = CoInitialize(NULL) == S_OK;
if( blRetVal )
{
// IShellLink Objekt erzeugen
blRetVal = CoCreateInstance(CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER, IID_IShellLink, (void **)&psl) >= 0;
if( blRetVal )
{
IPersistFile *ppf;
// Zeiger auf IPersistFile-Interface (zum Speichern der
// Verknüpfung) besorgen
blRetVal = psl->QueryInterface(IID_IPersistFile, (void **)&ppf) >= 0;
if( blRetVal )
{
// Zieldatei der Verknüpfung setzen
if( !sCfg->destFile )
blRetVal = psl->SetPath(sCfg->destFile) >= 0;
// Verknüpfung speichern
if( blRetVal )
blRetVal = ppf->Save(wsz, TRUE) >= 0;
// Zeiger auf IPersistFile freigeben
ppf->Release();
}
// Zeiger auf IShellLink freigeben
psl->Release();
}
// COM-Bibliothek freigeben
CoUninitialize();
}
}
return blRetVal;
}
Folgende Headerfiles hab ich includiert (die nicht benötigten Files werde ich natürlich noch raus schmeißen):
#include <windows.h>
#include <shlobj.h>
#include <initguid.h>
#include <objbase.h>
#include <ole2.h>
#include <shlguid.h>
Jetzt bekomme ich leider 2 Fehlermeldungen, die ich nicht wegbekomme:
error C2065: 'CLSID_ShellLink' : undeclared identifier
error C2065: 'IID_IShellLinkW' : undeclared identifier
Ich habe natürlich schon Google bemüht, konnte aber leider nicht die passende Lösung finden.
![Frown :( :(](https://cdn.jsdelivr.net/joypixels/assets/8.0/png/unicode/64/1f641.png)
Vielleicht weiß ja jemand von euch weiter... Ich wäre auf jeden Fall sehr dankbar.
![Smile :) :)](https://cdn.jsdelivr.net/joypixels/assets/8.0/png/unicode/64/1f642.png)
Gruß,
Tobias
P.S. Ich benutze eMbedded Visual C++ 4.0 mit einem Pocket PC 2003 SDK.