Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   ShlObj: Implementierung der Interface-Methode IContextMenu (https://www.delphipraxis.net/163445-shlobj-implementierung-der-interface-methode-icontextmenu.html)

Mavarik 29. Sep 2011 08:29

ShlObj: Implementierung der Interface-Methode IContextMenu
 
Hallo Leute!

E2291: {Winapi.}ShlObj: Implementierung der Interface-Methode IContextMenu:GetCommandString fehlt.

Ähhhh und jetzt?
Was ist zu tun?

Grüsse Mavarik :coder:

PS.: Ich glaube nicht mehr daran, dass auch nur einer ein altes & großes Projekt auf XE/XE2 umgebaut hat...Mit ist so weinerlich...

CCRDude 29. Sep 2011 08:33

AW: ShlObj: Implementierung der Interface-Methode IContextMenu
 
Was jetzt? Glaskugel auspacken und raten vielleicht?

Fehlt Sie denn nun, oder nicht?

Und da ich mich gestern mit genau jener rumgeschlagen habe: achte beid en Unicode-Flags auf den Datentyp, den Du an LPSTR übergibst!

PS: Kopf hoch, ist zwar viel Fleißarbeit, aber machbar :)

Union 29. Sep 2011 09:10

AW: ShlObj: Implementierung der Interface-Methode IContextMenu
 
Was hast Du gemacht? Wahrscheinlich mit Copy / Paste irgendwelchen Code übernommen. Ich schätze mal Dein Code sieht ca. so aus:
Delphi-Quellcode:
function GetCommandString(idCmd, uType: UINT; pwReserved: PUINT;
       pszName: LPSTR; cchMax: UINT): HResult; stdcall;
Wenn man sich dann die Definition dann anschaut stellt man fest dass die nicht mehr passt. idCmd ist nämlich jetzt als UINT_PTR definiert. Deshalb passte die Signatur nicht usw...

Zitat:

PS.: Ich glaube nicht mehr daran, dass auch nur einer ein altes & großes Projekt auf XE/XE2 umgebaut hat...Mit ist so weinerlich...
Doch doch, das geht. Gerade gestern fertig geworden. Muss natürlich noch komplett getestet werden. Hauptproblem waren die externen Komponenten (glücklicherweise nur 4).

CCRDude 29. Sep 2011 12:41

AW: ShlObj: Implementierung der Interface-Methode IContextMenu
 
Weil ich das in der MSDN nicht gefunden habe und Du Union Dich damit auszukennen scheinst: was ist eigentlich der Default-Rückgabewert, wenn man dort gar nichts macht?

Copy'n'Paste-Beispiele springen da zwischen S_OK und E_INVALIDARG.

(Nachtrag: Entschuldigung, jetzt doch gefunden :) )

Mavarik 29. Sep 2011 14:44

AW: ShlObj: Implementierung der Interface-Methode IContextMenu
 
Nein!

Einfach nur mit XE2 übersetzt.. Das ist ne Fehlermeldung die in Shlobj kommt...


Mavarik

Union 29. Sep 2011 15:28

AW: ShlObj: Implementierung der Interface-Methode IContextMenu
 
Was meinst Du mit "Nein"? Wie sieht der Source aus den Du versucht hast zu kompilieren?

Mavarik 4. Okt 2011 13:48

AW: ShlObj: Implementierung der Interface-Methode IContextMenu
 
Zitat:

Zitat von Union (Beitrag 1127520)
Was meinst Du mit "Nein"? Wie sieht der Source aus den Du versucht hast zu kompilieren?

Der Code:


Delphi-Quellcode:
  TDropContextMenu = class(TInterfacedComponent, IShellExtInit, IContextMenu)
Mit D2007 compiliert das einwandfrei!

Grüsse Mavarik

Mavarik 4. Okt 2011 14:37

AW: ShlObj: Implementierung der Interface-Methode IContextMenu
 
Habs...

Dank Datas Beitrag...

Delphi-Quellcode:
{$IFDEF VER230}
    function GetCommandString(idCmd: UINT_PTR; uFlags: UINT; pwReserved: PUINT;
       pszName: LPSTR; cchMax: UINT): HResult; stdcall;
{$ELSE}
    function GetCommandString(idCmd, uType: UINT; pwReserved: PUINT;
      pszName: LPSTR; cchMax: UINT): HResult; stdcall;
{$ENDIF}
Grüsse Mavarik

Union 4. Okt 2011 14:55

AW: ShlObj: Implementierung der Interface-Methode IContextMenu
 
Wenn Du die Antworten hier lesen würdest, hättest Du es schon eine Woche früher gehabt :(
Zitat:

Zitat von Union (Beitrag 1127383)
idCmd ist nämlich jetzt als UINT_PTR definiert. Deshalb passte die Signatur nicht usw...


Bernhard Geyer 4. Okt 2011 15:01

AW: ShlObj: Implementierung der Interface-Methode IContextMenu
 
Zitat:

Zitat von Union (Beitrag 1128370)
Wenn Du die Antworten hier lesen würdest, hättest Du es schon eine Woche früher gehabt :(

Wie es aussieht ist auch der Parameter uFlags weggefallen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:56 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz