|
Windows
API Type Library
|
||||||||||||
Otázky a odpovědiCo je type library? Co je type library?Type library (knihovna typů) deklaruje třídy, rozhraní, konstanty a procedury, které jsou nabízeny aplikacemi nebo dynamickými knihovnami. Type library jsou obvykle v programech v podobě resource, ale může to být i samostatný soubor s koncovkou .tlb nebo .olb. Seznam všech registrovaných typových knihoven je k dispozici v dialogovém okně References... Co je Windows API Type Library?Soubor Win32.tlb obsahuje deklarace těch nejběžnějších procedur, konstant a typů, jež jsou součástí Windows API. Jakmile tuto knihovnu připojíte k projektu, všechny deklarace máte okamžitě k dispozici. Je to v podstatě totéž jako zkopírovat obsah souboru WIN32API.TXT do vašeho projektu. Tedy až na to, že se nemusíte obávat nadbytku nevyužitých deklarací. Další výhodou je to, že téměř všechny API konstanty jsou definovány jako výčtové typy (Enum) a řada procedur s nimi takto pracuje. To značně usnadňuje jejich zapisování, viz. příklad, kdy vkládáte druhý parametr funkce SendMessage a Visual Basic automaticky nabídne seznam dostupných konstant:
Zde je několik postřehů, na které je nutné pamatovat:
Jak nainstalovat Windows API Type Library?Stáhněte si soubor win32.zip a rozbalte si v něm obsažený soubor Win32.tlb kamkoliv na disk. Ve Visual Basicu vytvořte nový projekt a v menu Project zvolte položku
References. Klikněte na tlačítko Browse, vyhledejte extrahovaný soubor
a poté klepněte na tlačítko Ok. Tím dojde k registraci typové knihovny.
V případě nahrazení staré verze novou stačí tu původní přepsat. Další registrace není nutná. Kdykoliv budete chtít přidat typovou knihovnu do vašeho projektu, stačí otevřít dialog References a zaškrtnout položku "32-bit Windows API declarations (ANSI)".
Jak odinstalovat Windows API Type Library?Pokud chcete odstranit typovou knihovnu ze systému, smažte soubor Win32.tlb. Příslušná položka zmizí následně i z dialogu References. V případě zájmu můžete ještě v registrech odstranit následující klíč: HKEY_CLASSES_ROOT\TypeLib\{CD6E8B50-033A-11D2-B805-EBE0D6230404}
Jak používat funkci SendMessage?API Text Viewer deklaruje funkci SendMessage následovně: Declare Function SendMessage Lib "user32" Alias "SendMessageA" ( _ ByVal hWnd As Long, ByVal uMsg As Long, _ ByVal wParam As Long, lParam As Any) As Long Protože je lParam deklarován jako As Any, můžete pro něj použít jakýkoliv datový typ. To však není příliš bezpečné, protože Visual Basic nedokáže provést žádnou typovou kontrolu. K zajištění vyšší bezpečnosti deklaruje Windows API Type Library funkce SendMessage a PostMessage v několika variantách:
Jelikož je ve většině případů poslední parametr typu long, byl zvolen jako výchozí. Upřednostňuji jiný způsob deklarace funkcí DLL knihoven. Mohu to kombinovat?Klidně. Požadovanou funkci nadeklarujte v modulu pomocí příznaku Declare. Tato deklarace bude mít přednost před stejnojmennou funkcí ve Windows API Type Library. Například pokud v modulu použijete: Declare Function SendMessage Lib "user32" Alias "SendMessageA"
( _ ByVal hWnd As Long, ByVal uMsg As Long, _ ByVal wParam As Long, lParam As Any) As Long a funkci SendMessage zavoláte jako obvykle: SendMessage txtName.hWnd, EM_SETSEL, 0, ByVal -1& nezbavujete se možnosti využít i verzi z typové knihovny: Win32.SendMessage txtName.hWnd, EM_SETSEL, 0, -1 (Win32 je název knihovny Windows API Type Library.)
Převzato z http://www.geocities.com/practicalvb/vb/ |
|||||||||||||
|
Copyright © 2000 - 2003, Jan Tošovský |