Jak mam odczytać "as"?

0

Próbuję wyciągnąć ścieżkę ze skrótów, czyli z plików o rozszerzeniu *.lnk, w google są jakieś przykłady, a że z COM nigdy nie miałem doświadczenia, bo dopiero się uczę, to trochę trudny jest taki kod. Zastanawia mnie, co oznacza "as" w np. linijce kodu:

islTemp:= IU as islTempellLink;

I jak tę samą linijkę można zapisać w inny sposób (może być dłuższy)? Wtedy łatwiej zrozumiem ją, bo w tym momencie dziwne mi się to wydaje.

Tu w razie czego doklejam cały kod:

var
  iuLink: IUnknown;
  islTemp: IShellLink;
  ipfTemp: IPersistFile;
  fdTemp: TWin32FindData;
  arrBuffer: array [0..MAX_PATH] of char;
begin
  iuLink:= CreateComObject(CLSID_ShellLink);
**  islTemp:= IU as islTempellLink;
  ipfTemp:= IU as IPersistFile;**
  ipfTemp.Load(PWideChar(strLinkFile), STGM_READ);
  islTemp.Resolve(0, SLR_ANY_MATCH or SLR_NO_UI);
  islTemp.GetPath(arrBuffer, MAX_PATH, fdTemp, SLGP_UNCPRIORITY);
  Result:= string(arrBuffer);
  iuLink._Release;
end;
0

A dlaczego nie szukałeś?

Operator w tym wypadku służy do tego, by potraktować islTempellLink jako IU; Więcej dowiesz się klikając na powyższy link.

0
furious programming napisał(a):

A dlaczego nie szukałeś?

szukałem w google wcześniej, ale to słówko jest takie krótkie i ma znaczenie angielskie, że przeglądałem głównie same angielskie strony i nic nie znalazłem. Dopiero teraz przed chwilą znalazłem to co właśnie mi dałeś i miałem odpisać tu, że już znalazłem QueryInterface, ale ubiegłeś mnie o 19 sekund. Teraz jako tako rozumiem to. To QueryInterface jest 100x czytelniejsze niż "as", gdy widzi się oba polecenia pierwszy raz (ale się zrymowało, zostanę raperem hehe). Tak czy siak, dzięki.

0

as to nie tylko QueryInterface.

as to takie rzutowanie, które zwraca nil jeśli się nie uda (a nie powoduje wyjątek albo błąd kompilacji).

To QueryInterface jest 100x czytelniejsze niż "as"
no proszę cię…

QueryInterface to „szczegół implementacji”, niskopoziomowa funkcja odpowiedzialna za rzutowanie obiektów COM.
Ale w każdym języku powinno się używać konstrukcji charakterystycznych dla tego języka.

1 użytkowników online, w tym zalogowanych: 0, gości: 1