Mal wieder IActiveDesktop
-
-
Danke für den Link, aber da war ich auch schon. Das Problem ist die Lösung, die bei diesem Thema herauskam:
Ich habe es jetzt endlich geschafft. Danke für die Hinweise.
Entscheidend ist offenbar folgende Sequenz:#define _WIN32_IE 0x0400 // IE 4+
#include <afx.h>
#include <wininet.h>die auch noch an der richtigen Stelle eingebunden werden muß.
Aber ich habe keine Bibliothek, die afx.h heißt. Jetzt hab ich mal gegooglet und bin auf folgende Adresse gestoßen:
http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=3019&SiteID=1
Da steht, dass die Bibliothek in der Platform SDK enthalten ist. Kann man die Bibliothek auch allein ohne SDK downloaden?
-
Ein afx.h Header hat bei einem Dev++ Projekt nichts zu suchen, zumal du es wahrscheinlich gar nicht hinbekommen solltest, diesen gescheit/vollständig zu implementieren. Hast du denn schon dieses Define drinnen? Das muss ganz oben hin vor deinen Headern!
#define _WIN32_IE 0x0400 // IE 4+
-
Verwende VC2008EE, da ist das PSDK schon dabei...
http://www.c-plusplus.net/forum/viewtopic-var-t-is-143003.htmlFür Dev C++ musst Du Dich an den Hersteller wenden!
-
Ja, hab ich. Siehe oben^^.
-
@Jochen: Also hat man das bisher noch nie mit Dev c++ gemacht?
-
In der Doku steht dass Du shlobj.h includen musst!
http://msdn2.microsoft.com/en-us/library/bb776357.aspxHast Du das gemacht?
-
Oha, okay jetzt habe ich es auch gesehen

Habe es gerade geprüft, das hier funktioniert als Konsolenprogramm mit VS05 auch ohne afx.h#define _WIN32_IE 0x400 #include <windows.h> #include <tchar.h> #include <wininet.h> #include <shlobj.h> long changeWallpaper (char *strPicPath, DWORD flags) { WCHAR tempstr[MAX_PATH]; MultiByteToWideChar (CP_ACP, 0, strPicPath, -1, tempstr, sizeof(tempstr) ); HRESULT hr; IActiveDesktop *pActiveDesktop; CoInitialize(NULL); hr = CoCreateInstance (CLSID_ActiveDesktop, NULL,CLSCTX_INPROC_SERVER,IID_IActiveDesktop, (void**)&pActiveDesktop); if(hr == S_OK ) { pActiveDesktop->SetWallpaper(tempstr, 0); WALLPAPEROPT wpo; wpo.dwSize = sizeof(WALLPAPEROPT); wpo.dwStyle = flags; pActiveDesktop->SetWallpaperOptions(&wpo,0); pActiveDesktop->ApplyChanges(AD_APPLY_ALL); pActiveDesktop->Release(); return TRUE; } else return FALSE; } int main () { changeWallpaper ("C:\\Dokumente und Einstellungen\\Sebastian\\Eigene Dateien\\Eigene Bilder\\Jessica_Alba.jpg", 0); return 0; }Raten würde ich dir auch zu VS. Dev++ ist nicht wirklich das Wahre.
-
Felix15 schrieb:
@Jochen: Also hat man das bisher noch nie mit Dev c++ gemacht?
Ich kenn mich mit Dev C++ nicht aus... weiss nur, dass man da das PSDK nicht einbinden kann, sondern das nehmen muss was mitkommt... und das ist in unserer schnelllebigen Zeit leider schlecht...
-
Ok, danke für eure Antworten. Ich probiers dann mal mit Visual Studio. Wenn ihr doch einmal herausfinden solltet, wie das mit dev c++ geht, schreibt mir bitte ne Mail.
-
Dev-C++ wird seit Februar 2005 nicht mehr weiterentwickelt.
Alternative (außer VisualStudio): Code:Blocksgreetz, Swordfish
-
Swordfish schrieb:
Code:Blocks
Aber das Problem mit dem PSDK bleibt dabei das gleiche, oder?
-
Jochen Kalmbach schrieb:
Swordfish schrieb:
Code:Blocks
Aber das Problem mit dem PSDK bleibt dabei das gleiche, oder?
Das Problem bleibt das gleiche wenn der MinGW verwendet wird. Code::Blocks ist nur eine IDE!
-
Fazit: Code:Blocks ist nicht verwendbar...
-
MinGW ist nicht verwendbar

greetz, Swordfish
-
kann man sich nicht die nötigen definitionen aus dem windows sdk klauen?
-
Und woher die a-Dateien nehmen?
Wenn Du zu viel Zeit hast, mag das ja der Weg sein...