begin process at 2010 03 21 02:23:47
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Delphi

 > 

Archives

 > 

J'AI BESOIN D'AIDE !!!! :O

 > 

Utilisation de la methode AddDesktopItem de l'API


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Utilisation de la methode AddDesktopItem de l'API

samedi 28 août 2004 à 17:50:44 | Utilisation de la methode AddDesktopItem de l'API

saib

Salut,
J'essaie de faire une horloge skinable qui pourrait s'integrer au bureau de windows, et pour ca, il semble que le plus simpl (disons le moins compliqué...) soit d'utiliser ActiveDesktop et ajouter un element, seulement quand j'execute la methode AddDesktopItem, rien ne se passe, et dans le HRESULT j'ai "parametre incorrect" comme code de retour, mais je vois pas du tout quel parametre est incorrect!

j'ai essayé aussi avec AddURL et AddiDesktopItemWithUI mais pas mieux...

voila le code que j'utilise:

--------------------------------------------------------------------------------

const
CLSID: TGUID = '{75048700-EF1F-11D0-9888-006097DEACF9}';
IID_IActiveDesktop: TGUID = '{F490EB00-1240-11D1-9888-006097DEACF9}';

...

procedure TForm1.Button1Click(Sender: TObject);

Var ADeskTop: IActiveDesktop;
AComponent : _tagCOMPONENT;
ACompPos : _tagCOMPPOS;
hr: HRESULT;

BmpName : String;

begin

BmpName := 'http://www.yahoo.fr';



hr := CoCreateInstance(CLSID_ActiveDesktop, nil, CLSCTX_INPROC_SERVER,
IID_IActiveDesktop, ADeskTop );

MessageDlg(SysErrorMessage(HResultCode(hr)),mtWarning,[mbOK],-1); // => 'Operation Reussie' donc le probleme vient pas de la (enfin je pense)


ACompPos.dwSize := SizeOf(_tagCOMPPOS);
ACompPos.iLeft := 200;
ACompPos.iTop := 200;
ACompPos.dwWidth := ItemBmp.Width + 1;
ACompPos.dwHeight := ItemBmp.Height + 1;
ACompPos.izIndex := 0;
ACompPos.fCanResize := True;
ACompPos.fCanResizeX := True;
ACompPos.fCanResizeY := True;
ACompPos.iPreferredLeftPercent := 10;
ACompPos.iPreferredTopPercent := 10;


AComponent.dwSize := sizeof(_tagCOMPONENT);
AComponent.dwID := 0;
AComponent.iComponentType := COMP_TYPE_WEBSITE;
AComponent.fChecked := True;
AComponent.fDirty := False;
AComponent.fNoScroll := true;
AComponent.cpPos := ACompPos;
MultiByteToWideChar(CP_ACP,0,PChar(BmpName),StrLen(PChar(BmpName))+1,AComponent.wszFriendlyName,sizeof(AComponent.wszFriendlyName));
MultiByteToWideChar(CP_ACP,0,PChar(BmpName),StrLen(PChar(BmpName))+1,AComponent.wszSource,sizeof(AComponent.wszSource));
MultiByteToWideChar(CP_ACP,0,PChar(BmpName),StrLen(PChar(BmpName))+1,AComponent.wszSubscribedURL,sizeof(AComponent.wszSubscribedURL));


hr := ADeskTop.AddDesktopItem(AComponent,0);

MessageDlg(SysErrorMessage(HResultCode(hr)),mtWarning,[mbOK],-1); // 'Parametre incorrect' mais LEQUEL !!??!?

ADeskTop.ApplyChanges(AD_APPLY_ALL);

// ADesk._Release; -> provoque une violation d'acces (??)

end;

--------------------------------------------------------------------

Donc si quelqu'un peut m'aider, HEEEEELLLLPPPPPP!!!!!


Merci!

saib
mardi 7 septembre 2004 à 13:18:17 | Re : Utilisation de la methode AddDesktopItem de l'API

saib

Réponse acceptée !
Bon ben encore un fois je me retrouve a me repondre moi meme a ma question que je me posais...

alors le pourquoi de ce qui se passait que ca marchait pas, c'est en fait un bug de delphi : l'unité ShlObj definit la fonction AddDesktopItem comme acceptant comme parametre une structure _TagCOMPONENT, alors qu'en fait c'est un POINTEUR vers une structure _TagCOMPONENT qu'il faut passer!!

voici une unité corrigeant pas mal de bugs de ShlObj.pas : ShlObjAdditional.zip

saib


Cette discussion est classée dans : hr, pchar, acomponent, acomppos, bmpname


Répondre à ce message

Sujets en rapport avec ce message

urgent : code à corriger. Cela fait des jours que je suis dessus !!!!!! [ par Marcel ] Le code qui suit sert à créer un compte à rebours. Les 2 dernières lignes de ce code sont incorrecte car le compilateur signale:[Erreur]Unit1.pas(56): Ouvrir une fenêtre avec ses dimensions [ par Pilou ] Comment peut on attribuer la taille et position d'une fenêtre qu'on ouvre avec shellexecute ?ShellExecute (handle,'Open', PChar('c:\windows\') ,PChar Récupération de PChar renvoyés par une DLL [ par daniel ] J'ai écrit une DLL en Delphi 5 devant me renvoyer des chaînes de caractères. Je les ai codés en PChar. Tout ce passe bien lorsque j'appelle cette DLL Fonction ki execute tout et n'importe koi et attend sagement la fin [ par Gysmo ] J'ai trouver cette excelentissime fonction sur le web:function LaunchNWaitEnd(sFile: string): boolean;var cExe: array [0..255] of Char; sExe, Fichie comment on passe un tfilename en pchar ? [ par Faiche ] j ai besoin de faire passer l adresse d un son depuis opendialog qui est donc un tfilename dans mon module fmusic_loadsong qui ne prends que des PChar comment je peux passer un tfilename en pchar ? [ par Faiche ] j utilise FMODj ai besoin de faire passer l adresse d un son depuis opendialog qui est donc un tfilename dans mon module fmusic_loadsong qui ne prends Lancement d'une application avec ouverture d'un fichier [ par Zitoune34 ] sltJ'ai un petit probleme pour ouvrir une image en lancant une application extérieure comme mspaint.exe ou AcdSee.exe.j'utilise la fonction suivante : Transtypage : String (ou Integer) en Pchar [ par pyroflo ] Salut !Ben voilà tout est dans le titre :)En fait, je souhaite que lorsqu'on clique sur une listbox, un son portant le nom du numéro de l'item sélecti convertion Char en PChar heellllpppp!!! [ par damomospike ] bonjours a tousvoila je voudrai utiliser la fonction hextobin qui converti donc un hexadecimal en binaire ms le seul probleme c'est que je n'arrive pa Types incompatibles 'String' et 'PChar'. [ par stigmate101 ] Salut a tous,Avec cette ligne de code:CopyFile(CheminApplication(),(CheminApplication()+'\'+'RepTravail'),False);Je retrouve avec ce message d'erreur:


Nos sponsors


Sondage...

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,343 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales