Ik ben al een tijdje bezig met dit probleem en ik heb al behoorlijk wat websites afgestruind, maar de oplossing nog niet gevonden.
Telkens als ik activedesktop functies aanroep met de shComponent structure zoals:
dan geeft ie dus een EINVALIDARG resultaat terug. Het lijkt erop dat de ShComponent structure verkeerd is, of verkeerd ingevuld.
Als ik mijn ShComponent structure aanpas aan die op de MSDN pagina's lukt het ook niet.
Ik heb ondertussen wel begrepen dat ik een obscuur stukje windows aan het programmeren ben en dat er weinig zijn die deze donkere hoeken van de win32 api betreden, maar ik heb nog hoop
Telkens als ik activedesktop functies aanroep met de shComponent structure zoals:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| function TForm1.addDesktopItem(filename: string): boolean;
var
ActiveDesktop : IActiveDesktop;
pComp: TShComponent;
begin
ActiveDesktop := CreateComObject(CLSID_ActiveDesktop) as IActiveDesktop;
pComp.dwSize := sizeOf(pComp);
pComp.iComponentType := COMP_TYPE_CONTROL;
StringToWideChar(filename, pComp.wszSource, 4096);
if (S_Ok = ActiveDesktop.AddDesktopItem(pComp, 0)) then
result := true
else
result := false;
end; |
dan geeft ie dus een EINVALIDARG resultaat terug. Het lijkt erop dat de ShComponent structure verkeerd is, of verkeerd ingevuld.
Als ik mijn ShComponent structure aanpas aan die op de MSDN pagina's lukt het ook niet.
Ik heb ondertussen wel begrepen dat ik een obscuur stukje windows aan het programmeren ben en dat er weinig zijn die deze donkere hoeken van de win32 api betreden, maar ik heb nog hoop