(/,2131.4 ’*,-(+ &(,*) $# -...

17
1MGVSWSJX 6ISUAL "ASIC JÚV ;MRHS[W 28

Upload: others

Post on 13-Oct-2019

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: (/,2131.4 ’*,-(+ &(,*) $# - files.herdtdownloads.defiles.herdtdownloads.de/dnl/details/vb6f-lese.pdf · art ghp declare $/ hihko uvhkv ght 3`ovljnhlvuehthl fk ght 2wq nvlrq% bltg

(/,2131.4'*,-(+ &(,*) $"#.#2 +/0-153 &$"&%")*

2

8TVXLJWHMVNXXJSJ2?VTLVFRRNJVYSL22

2!

!

!

%#!$" "

2222222222222

2222222222222222222222222222222222D518224YXTVNS32C&25,XXHMJV22+&24YKQFLJ2ZTR2+0&26J]JRGJV2.**02

2#2G\2:7@6B%DJVQFL2K-V25NQIYSLWRJINJS29RG:$2222225TIJSMJNR22;SXJVSJX322[[[&MJVIX/\TY&IJ(2&FX(2&HM22 [[[&MJVIX/GYWNSJWW&IJ(2&FX(2&HM22 [[[&MJVIX/ZMW&IJ(2&FX22

24QQJ2 @JHMXJ2 ZTVGJMFQXJS&2 <JNS2 BJNQ2 IJW2 EJVPJW2 IFVK2 NS2NVLJSIJNSJV28TVR2!6VYHP$28TXTPTUNJ$2>NHVTKNQR2TIJV2JNSJR2FSIJVJS2 DJVKFMVJS"2 TMSJ2 WHMVNKXQNHMJ2 9JSJMRNLYSL2 IJW2:JVFYWLJGJVW2 VJUVTIY]NJVX2 TIJV2 YSXJV2 DJV[JSIYSL2JQJPXVTSNWHMJV2 A\WXJRJ2 ZJVFVGJNXJX$2 ZJVZNJQK)QXNLX2 TIJV2ZJVGVJNXJX2[JVIJS&2

26NJWJ2 CSXJVQFLJ2 [YVIJ2 RNX2 LVT'JV2 ATVLKFQX2 JVWXJQQX2 YSI2LJUV-KX&2 BVTX]IJR2 P,SSJS2 8JMQJV2 SNHMX2 ZTQQPTRRJS2 FYW%LJWHMQTWWJS2 [JVIJS&2 DJVQFL$2 :JVFYWLJGJV2 YSI2 4YXTVJS2P,SSJS2K-V2KJMQJVMFKXJ24SLFGJS2YSI2IJVJS28TQLJS2[JIJV2JNSJ2 OYVNWXNWHMJ2 DJVFSX[TVXYSL2 STHM2 NVLJSIJNSJ2 :FKXYSL2-GJVSJMRJS&2

26NJ2 5NQIYSLWRJINJS2 IJW2 :7@6B%DJVQFLW2 JSXMFQXJS2 =NSPW2G][&2 DJV[JNWJ2 FYK2 ;SXJVSJXWJNXJS2 FSIJVJV2 4SGNJXJV&2 4YK2;SMFQX2 YSI2 9JWXFQXYSL2 INJWJV2 4SLJGTXJ2 MFX2 IJV2 :7@6B%DJVQFL2 PJNSJVQJN2 7NSKQYWW&2 :NJVK-V2 WNSI2 FQQJNSJ2 INJ2 OJ[JN%QNLJS24SGNJXJV2ZJVFSX[TVXQNHM&22

Page 2: (/,2131.4 ’*,-(+ &(,*) $# - files.herdtdownloads.defiles.herdtdownloads.de/dnl/details/vb6f-lese.pdf · art ghp declare $/ hihko uvhkv ght 3`ovljnhlvuehthl fk ght 2wq nvlrq% bltg

INHALTSVERZEICHNIS Visual Basic 6.0 - Fortgeschrittene Programmierung

1 Objektorientierte Programmierung.............. 4

1.1 Grundlagen der objektorientiertenProgrammierung...............................................4

1.1.1 Klassen, Methoden, Eigenschaften

und Objekte .............................................4

1.1.2 Definition von Objekten, Objektvariablen

und Zugriff auf deren Eigenschaften und

Methoden.................................................6

1.2 Vordefinierte Objekte von Visual Basic...........10

1.3 Definieren eigener Objektklassen...................12

1.3.1 Gültigkeitsbereiche der Eigenschaften

und Methoden ........................................12

1.3.2 Ereignisse von Klassen..........................13

1.3.3 Übergabe von Objekten als Parameter

an Prozeduren bzw. als Rückgabewerte

von Funktionen ......................................15

1.3.4 Eigenschaftsprozeduren.........................16

1.3.5 Eigene Ereignisse ..................................18

1.3.6 Klassen implementieren.........................19

1.4 Der Klassengenerator.....................................23

1.5 Übungen.........................................................23

2 Grafikprogrammierung ............................... 24

2.1 Grundlagen der Grafikprogrammierung ..........24

2.1.1 Die Picturebox........................................24

2.1.2 Grafikeigenschaften ...............................25

2.1.3 Grafikmethoden .....................................26

2.1.4 Laden und Speichern von Bitmaps

und Icons ...............................................30

2.2 Das Koordinatensystem .................................32

2.3 Bildlaufleisten (Scrollbars) für diePictureBox ......................................................33

2.4 Grundlagen - Drucken ....................................35

2.4.1 Der Druckdialog .....................................35

2.4.2 Drucken .................................................37

2.5 Übung.............................................................39

3 API-Programmierung .................................. 40

3.1 Allgemeines zum Windows-API......................40

3.2 API-Funktionen aufrufen und deklarieren .......40

3.3 API-Viewer .....................................................41

3.4 Parameterübergabe........................................42

3.4.1 Übergabe von Werten oder Variablen ....42

3.4.2 Callback-Adressen.................................44

3.5 Ausgewählte API-Funktionen .........................46

3.5.1 GDI-Funktionen als Ergänzung zu

den Visual-Basic-Grafikfunktionen..........46

3.5.2 Funktionen zur Speicher- und

Systemverwaltung ................................. 49

3.5.3 Fenster- und Mausfunktionen ................ 50

3.6 Übung ............................................................53

4 Registrierdatenbank ....................................54

4.1 Einführung......................................................54

4.2 Registrierungseditor und Aufbauder Registry....................................................54

4.3 Sichern und Wiederherstellen der Registry ....57

4.4 Manipulieren der Registry ..............................57

4.5 Registry-Funktionen des Windows-API ..........60

4.6 Arbeiten mit verschiedenen Betriebs-systemen........................................................62

4.7 Dateierweiterungen ........................................62

4.8 Übung ............................................................63

5 Fortschrittliche Programmiertechniken.....64

5.1 Begrüßungsbildschirm und Anmeldedialog ....64

5.1.1 Begrüßungsbildschirm ........................... 64

5.1.2 Anmeldedialog....................................... 65

5.2 Andere vorgefertigte Formulare......................65

5.3 Hintergrundbilder............................................66

5.4 Mit MDI-Fenstern arbeiten..............................68

5.5 Namen für Variablen und Funktionen.............70

5.6 Der Mauszeiger ..............................................70

5.7 Übung ............................................................72

6 Einführung in die Datenbank-

programmierung...........................................74

6.1 Aufbau und Funktion einer Datenbank ...........74

6.1.1 Datenbankbegriffe ................................. 74

6.1.2 Datenbankentwurf.................................. 77

6.1.3 Datenbanken im Netzwerk..................... 79

6.1.4 Datenbankformate ................................. 79

6.2 Visual Data Manager "VisData" ......................79

6.3 Erstellen von Datenbankprogrammen ............83

6.4 Übung ............................................................85

7 Arbeiten mit Abfragen .................................86

7.1 Einführung......................................................86

7.2 Einführung in SQL ..........................................86

7.2.1 Sprachumfang von SQL......................... 87

7.2.2 Die Datendefinitionssprache DDL .......... 87

7.2.3 Die Abfragesprache DQL....................... 88

Page 3: (/,2131.4 ’*,-(+ &(,*) $# - files.herdtdownloads.defiles.herdtdownloads.de/dnl/details/vb6f-lese.pdf · art ghp declare $/ hihko uvhkv ght 3`ovljnhlvuehthl fk ght 2wq nvlrq% bltg

Inhaltsverzeichnis I

7.2.4 Der Join ................................................. 91

7.2.5 Datenaktualisierung mit DML ................. 92

7.3 Dynamisches SQL ......................................... 94

7.3.1 #"!-Anweisung dynamisch aufbauen.... 94

7.3.2 Parametrisierte Abfragen ....................... 94

7.4 Übung ............................................................ 95

8 ADO - Datenumgebungs-Designer ............ 96

8.1 ADO, DAO und RDO...................................... 96

8.2 Die ADO-Objekthierarchie.............................. 97

8.3 Der Datenumgebungs-Designer..................... 98

8.3.1 DataEnvironment-Objekt erzeugen.... 98

8.3.2 Connection-Objekt erstellen................ 99

8.3.3 Command-Objekte ................................ 100

8.4 Datenansichtsfenster ................................... 106

8.5 Überblick über die Steuerelemente fürdie Datenbankprogrammierung.................... 107

8.6 Übung .......................................................... 108

9 ADO-Objekte .............................................. 110

9.1 Datenbankverbindung.................................. 110

9.1.1 Verbindung öffnen ............................... 110

9.1.2 Verbindung schließen .......................... 112

9.1.3 SQL-Befehle ausführen ....................... 112

9.1.4 Datenbankinformationen...................... 113

9.1.5 Transaktionen...................................... 114

9.2 Command-Objekte ........................................ 116

9.2.1 Eigenschaften einesCommand-Objekts ................................ 117

9.2.2 Die Execute-Methode ........................ 118

9.3 Recordsets................................................... 120

9.3.1 Aufbauen eines Recodsets .................. 120

9.3.2 Bewegen im Recordset ........................ 121

9.3.3 Fields................................................... 124

9.3.4 Datensätze sortieren und suchen......... 128

9.3.5 Datensätze bearbeiten......................... 128

9.3.6 Ereignisse und Fehlerbehandlung........ 130

9.4 Error-Objekte............................................. 132

9.5 Weiterführendes zu Recordsets ................... 133

9.5.1 Stapelverarbeitung............................... 133

9.5.2 Hierarchische Recordsets .................... 134

9.6 Übung .......................................................... 136

10 Reports ....................................................... 138

10.1 Allgemeines zum Datenberichtsdesigner(DataReport) ................................................ 138

10.2 Erstellen eines Reports ................................ 139

10.3 Steuerelemente für Reports ......................... 141

10.4 Nachteile des DataReports .......................... 143

10.5 Übung.......................................................... 144

11 OLE und ActiveX ....................................... 146

11.1 Einführung in ActiveX................................... 146

11.2 OLE ............................................................. 146

11.3 ActiveX-Automation am Beispiel Office 97... 150

11.4 Übung.......................................................... 154

12 ActiveX-Komponenten.............................. 156

12.1 Einführung ................................................... 156

12.2 Erstellen einer ActiveX-Komponente............ 157

12.2.1 Entwicklung..........................................157

12.2.2 Testen..................................................158

12.2.3 Fertigstellen..........................................160

12.3 Multithreading .............................................. 162

12.4 Kommunikation zwischen Clientund Server ................................................... 163

12.4.1 Synchrone Kommunikation...................163

12.4.2 Asynchrone Kommunikation .................163

12.5 Übung.......................................................... 166

13 ActiveX-Steuerelemente ........................... 168

13.1 Erstellen eines Steuerelements -Einführung ................................................... 168

13.2 Grundlagen von ActiveX-Steuerelementen ......................................... 170

13.2.1 Das UserControl-Objekt .......................170

13.2.2 Eigenschaftenseiten .............................174

13.3 Verwendung von Assistenten....................... 176

13.4 Übung.......................................................... 177

A Weitergeben von Anwendungen ............. 178

A.1 Der Paket- und Weitergabe-Assistent .......... 178

Stichwortverzeichnis ..................................... 182

Page 4: (/,2131.4 ’*,-(+ &(,*) $# - files.herdtdownloads.defiles.herdtdownloads.de/dnl/details/vb6f-lese.pdf · art ghp declare $/ hihko uvhkv ght 3`ovljnhlvuehthl fk ght 2wq nvlrq% bltg

3 Visual Basic 6.0 - Fortgeschrittene Programmierung

.*

3 API-Programmierung

!. &+'2'- "%0+3', '1(%*1'. #+'

! D0@ B<A4? &**@ C4?@A0<34< D8?3

! D84 ,84 /8<3=D@!'B<9A8=<4< 8< )7?4; +?=6?0;; 48<@4AE4< 9F<<4<

! D84 384 +0?0;4A4?G14?6014 0< /8<3=D@!'B<9A8=<4< 5B<9A8=<84?A

$/1%422'354.)'.

" (?B<3:064< 34? +?=6?0;;84?B<6 ;8A .8@B0: %0@82 $"#

" -<A4?>?=6?0;;A427<89

3.1 Allgemeines zum Windows-API

3J[ 0YYURLJ\RXW ?ZXPZJVVRWP 8W\NZOJLN "0W_NWM]WP[YZXPZJVVRNZ[LQWR\\[\NUUN#& T]Zb 0?8& [\NUU\ MRN 6N[JV\'QNR\ JUUNZ 3aWJVRL ;RWT ;RKZJZRN[ "3;;[# MN[ ERWMX_['Aa[\NV[ MJZ& MRN MNV ?ZXPZJVVRNZNZ b]Z DNZOgP]WP[\NQNW(

4RWN 3aWJVRL ;RWT ;RKZJZa "3aWJVR[LQN ;RWT 1RKURX\QNT# R[\ NRWN AJVVU]WP ^XW 5]WT\RXWNW& VNR[\ b] NRWNVKN[\RVV\NW BQNVJ "b(1( 6ZJORT' XMNZ Aa[\NVO]WT\RXWNW#& MRN [\JWMJZMVedRP RW NRWNZ 3J\NR VR\ MNZ 4Z_NR'\NZ]WP $($(( JKPNUNP\ [RWM "N[ _NZMNW JKNZ J]LQ JWMNZN 4WM]WPNW ^NZ_NWMN\#( 3RN[N 5]WT\RXWNW TfWWNW ARNJU[ ?ZXPZJVVRNZNZ RW 8QZNV ?ZXPZJVV W]\bNW(

0WMNZ[ JU[ >KSNT\KRKURX\QNTNW "(>19# XMNZ ;J]ObNR\KRKURX\QNTNW "(;81#& _X b]Z ;RWTbNR\ NRWN ON[\N "[\J\R[LQN#1RWM]WP ^XW ?ZXPZJVV ]WM PNW]\b\NW 1RKURX\QNT[O]WT\RXWNW QNZPN[\NUU\ _RZM& NZOXUP\ MRN 1RWM]WP ^XW 3;;[b]V ?ZXPZJVV NZ[\ b]Z ;J]ObNR\ MN[ ?ZXPZJVV[( 3J[ _RZM JU[ !3aWJVR[LQN 1RWM]WP! KNbNRLQWN\( 0]LQBZNRKNZMJ\NRNW "b(1( A3./%)($-1 XMNZ <+0.%($-1# OgZ 6NZe\N MN[ Aa[\NV[ [RWM MaWJVR[LQN 1RKURX\QNTNW& MNZNW5]WT\RXWNW [RLQ ERWMX_['?ZXPZJVVRNZNZ b]W]\bN VJLQNW TfWWNW(

3RN JV Qe]ORP[\NW ^NZ_NWMN\NW 3aWJVRL ;RWT ;RKZJZRN[ [RWM/

:%-*%(-,(3;; AYNRLQNZ^NZ_JU\]WP

C.%--,(3;; 5NW[\NZ'& <NWg'& <J][O]WT\RXWNW

638-,(3;; 6ZJORTO]WT\RXWNW

ARN TfWWNW J]LQ [NUK[\ 3;;[ YZXPZJVVRNZNW( 3RN AYZJLQN 2)2%% KRN\N\ [RLQ b(1( MJb] JW( 8W DR[]JU 1J[RLTfWWNW ARN [XPNWJWW\N 0L\R^NF'3;;[ YZXPZJVVRNZNW "^PU( :JYR\NU +,#(

3.2 API-Funktionen aufrufen und deklarieren

3NZ 0]OZ]O ^XW 3;;'5]WT\RXWNW RW NRWNV DR[]JU'1J[RL'?ZXPZJVV ]W\NZ[LQNRMN\ [RLQ WRLQ\ ^XW NRWNV PJWbWXZVJUNW 5]WT\RXW[J]OZ]O(

!

"

#

Dim R As Double

R = GetBkColor(Form1.hdc)

Label1.Caption = " Rückgabewert: " & R

Page 5: (/,2131.4 ’*,-(+ &(,*) $# - files.herdtdownloads.defiles.herdtdownloads.de/dnl/details/vb6f-lese.pdf · art ghp declare $/ hihko uvhkv ght 3`ovljnhlvuehthl fk ght 2wq nvlrq% bltg

API-Programmierung 3

+(

! 1U YLTG HLQH ADTLDEOH R GHNODTLHTV# GLH GHQ =`FNJDEHYHTV GHT 2WQNVLRQ DWIQLPPV%" 0LH .<5$2WQNVLRQ GetBkColor YLTG DWIJHTWIHQ% >LH OLHIHTV GLH 4LQVHTJTWQGIDTEH GHU DQJHJHEHQHQ

;EMHNVU !KLHT LUV HU GDU 2RTPWODT"% .OU <DTDPHVHT YLTG GDU 4DQGOH GHU 2RTPWODTU hdc `EHTJHEHQ%# 0HT =`FNJDEHYHTV YLTG GHT Capture$1LJHQUFKDIV HLQHU 8DEHOU [WJHYLHUHQ# WP LKQ DQ[W[HLJHQ%

/HXRT >LH DEHT HLQH 088$2WQNVLRQ DWITWIHQ N_QQHQ# P`UUHQ >LH GHP >ZUVHP PLVVHLOHQ# GD] >LH HLQH UROFKH2WQNVLRQ QWV[HQ YROOHQ WQG LQ YHOFKHT 088$0DVHL GLHUH UVHKV% 0D[W PW] GLH 2WQNVLRQ LP <TRJTDPP PLV GHP/HIHKO Declare EHNDQQV JHPDFKV !GHNODTLHTV" YHTGHQ%

0LH 0HNODTDVLRQ HTIROJV YLH GLH ADTLDEOHQGHNODTDVLRQ DP .QIDQJ GHU 9RGWOU%

4LHT UHKHQ >LH DQ HLQHP /HLUSLHO GHQ .WIEDW GLHUHT 0HNODTDVLRQ%

Private Declare Function GetBkColor Lib "gdi32" Alias "GetBkColor" _(ByVal hdc As Long) As Long

ART GHP Declare$/HIHKO UVHKV GHT 3`OVLJNHLVUEHTHLFK GHT 2WQNVLRQ% BLTG GLH 2WQNVLRQ LP 2RTPWODTPRGWOGHNODTLHTV# NDQQ ULH QWT GHQ 3`OVLJNHLVUEHTHLFK Private KDEHQ% BROOHQ >LH GLH 2WQNVLRQ DWFK LQ DQGHTHQ9RGWOHQ GHU <TRJTDPPU XHTYHQGHQ# P`UUHQ >LH GLH 0HNODTDVLRQ LQ HLQHP >VDQGDTGPRGWO XRTQHKPHQ% 1LQ>VDQGDTGPRGWO HTUVHOOHQ >LH `EHT GHQ 9HQ`SWQNV <=;617? $ 9;0@8 45:C@2\31:%

:DFK GHP Declare$/HIHKO IROJV GHT JHUDPVH 7RSI GHT 2WQNVLRQ% 1T EHJLQQV PLV GHP >FKO`UUHOYRTV FunctionRGHT Sub !IDOOU HU ULFK WP HLQ @QVHTSTRJTDPP KDQGHOV"# JHIROJV XRP .WITWIQDPHQ GHT 2WQNVLRQ% 0DQDFK PW]GDU >FKO`UUHOYRTV Lib WQG GLH /LEOLRVKHN !088" DQJHJHEHQ YHTGHQ# LQ GHT GLH 2WQNVLRQ HQVKDOVHQ LUV# LP/HLUSLHO 3#'*)%#((% 4LQVHT GHP >FKO`UUHOYRTV Alias PW] GHT HFKVH 2WQNVLRQUQDPH UVHKHQ# DQDORJ GHP:DPHQ LQ GHT 088$0DVHL !3TR]&7OHLQUFKTHLEWQJ PW] EHDFKVHV YHTGHQ"% 5Q 7ODPPHTQ UVHKV GLH 8LUVH GHT \EHT$JDEHSDTDPHVHT WQG GDKLQVHT GHT ?ZS GHU BHTVHU# GHQ GLH 2WQNVLRQ [WT`FNOLHIHTV !IDOOU HU HLQHQ UROFKHQ JLEV"%

@P 5KQHQ GLH .TEHLV DE[WQHKPHQ# GHQ JHUDPVHQ Declare$/HIHKO UHOEUV LQ 5KT <TRJTDPP HLQ[WJHEHQ# YWTGHGHT .<5$A'$0$, LQ GLH 1QVYLFNOWQJUWPJHEWQJ LQVHJTLHTV%

3.3 API-Viewer

@P GHQ .<5$ALHYHT [W ODGHQ# JHKHQ >LH YLH IROJV XRT-

! 4J<@9B 2=9 89B -9BKDHB?G &(("+.2 " &(("+."

-&.&*)1#

! -5E?=9E9B 2=9 89B )=BGE5; 3' % &0+"3&#-#*! HB8

A5E?=9E9B 2=9 =A '9E9=7< ,!"#,#*%!(+#) 8=9

/DG=CB ,!"#)$))+(!"#)! C89E ?@=7?9B 2=9 8CDD9@G

5H: 89B )=BGE5; 3' % &0+"3&#-#*#

! 197<GF B969B 3' % &0+"3&#-#* FG9<G >9GIG 89E

)=BGE5; *#(!"#)#

! 39E@5FF9B 2=9 89B &"""+)"-!)!$#* K69E /'#

2DOOU >LH GHQ .<5$ALHYHT QLFKV UVDTVHQ N_QQHQ# LUV HT LQ 5KTHP >ZUVHP P_JOLFKHTYHLUH QLFKV LQUVDOOLHTV%

@P GHQ .<5$ALHYHT [W LQUVDOOLHTHQ# _IIQHQ >LH GLH >1-.$)-.$/$,/*& WQG NOLFNHQ >LH GRSSHOV DWI GDU >ZPERO>+%.0!,$% 5Q GHT 8LUVH UWFKHQ >LH GHQ 1LQVTDJ 9'",+-+%. A'-/!( /!-'" ,%' WQG NOLFNHQ GDQQ DWI GLH>FKDOVIO^FKH 4'*2/%3&$*&1*.%$,*$*% 0DU >HVWS$<TRJTDPP XRQ A'-/!( /!-'" YLTG JHUVDTVHV% 5QUVDOOLHTHQ >LH QWQGHQ .<5$ALHYHT%

5P 9HQ` .00$5:> ILQGHQ >LH QWQ GHQ QHWHQ 9HQ`SWQNV .<5$A51B1=% BHQQ >LH HLQH 2WQNVLRQUGHNODTDVLRQ LQ5KT <TRJTDPP HLQI`JHQ P_FKVHQ# JHKHQ >LH IROJHQGHTPD]HQ XRT-

Page 6: (/,2131.4 ’*,-(+ &(,*) $# - files.herdtdownloads.defiles.herdtdownloads.de/dnl/details/vb6f-lese.pdf · art ghp declare $/ hihko uvhkv ght 3`ovljnhlvuehthl fk ght 2wq nvlrq% bltg

3 Visual Basic 6.0 - Fortgeschrittene Programmierung

%$

! N==D<D 4@< ;<D )3.$6@<K<G# JD; KQ?B<D 4@< @C1<DS *)5+. ;@< *8I<@ 7'*'&)3.%.1. 8JH !;@<H<K@G; HI8D;8G;CQP@> @C 6<GM<@:?D@H ###;2(".,/,%0

9(/1!) 701#(,;),**,+;8,,)/;:(+!-(; 89><B<>I"%

! 2JD HI<?<D @D ;<G 0@HI< 6#,$5%"!,# +(#)#*.#(M8?BG<@:?< !89<G D@:?I 8BB<" )3.$,JDAI@ED<D MJG)JHK8?B%

! 18GA@<G<D 4@< ;@< ,JDAI@ED# ;@< 4@< @D .?G3GE>G8CC <@D=S><D CR:?I<D%

! O9<GIG8><D 4@< ;@< 8JH><KQ?BI< ,JDAI@ED @D ;@<0@HI< )/-%#04&(.# +(#)#*.## @D;<C 4@< 8J= ;@<4:?8BI=BQ:?< -'*3/$5%#* AB@:A<D E;<G ;@< ,JDA$I@ED ;EFF<BI 8DAB@:A<D%

! /B@:A<D 4@< 8J= ;@< 4:?8BI=BQ:?< +'*$5%#*# JC;@< ,JDAI@EDH;<=@D@I@ED @D .?G 3GE>G8CC MJ S9<G$IG8><D%

(@OIK 7D@ ?D@ ,NHEMDIH DH ?D@ 1DLM@ '1/&$35')0$ +)$*$+0$ Y=@KMK<B@H! EXHH@H 7D@ Y=@K ?D@ 4JMDIH@HT%%$+0)("' I?@K 5.(2!0 @KK@D>C@H! ?<V ?@K KD>CMDB@ -YFMDBE@DML=@K@D>C AYK ?D@ ,NHEMDIH A@LMB@F@BM PDK?#

3D>CM <FF@ ,NHEMDIHL?@ADHDMDIH@H ?@L '5/"9D@P@KL LDH? OXFFDB @Q<EM# (@<>CM@H 7D@ ?D@L! P@HH ,@CF@K <NAMK@M@H#

/H '5/",NHEMDIH@H EIGGM @L CWNADB OIK! ?<V <FL U=@KB<=@J<K<G@M@K =@LMDGGM@ *<M@HMRJ@H O@KP@H?@MP@K?@H! ?D@ E@DH 7M<H?<K?"*<M@HMRJ OIH 9DLN<F (<LD> LDH?! S#(# LMKNEMNKD@KM@ *<M@HMRJ@H# 'N>C ?D@ *@EF<K<"MDIH ?D@L@K *<M@HMRJ@H GNV DH /CK@G 2I?NF <NAB@AYCKM L@DH! P@HH 7D@ ?D@ ,NHEMDIH HNMS@H PIFF@H# *<SNEXHH@H 7D@ @=@HA<FFL ?@H '5/"9D@P@K HNMS@H#

! 7<:?H<BD 4@< ;8MJ @C 0@HI<D=<B; )3.$52+ 8J= ;<D +@DIG8> 52+#*%

! 7Q?B<D 4@< ;8DD ;<D ><HJ:?I<D 5LF 8JH# JD; S9<GIG8><D 4@< ;@<H<D @D .?G 3GE>G8CC%

:@HH 7D@ @DH@ ,NHEMDIHL?@EF<K<MDIH@DHB@AYBM C<=@H! LIFFM@H 7D@ BF@D>CY=@KJKYA@H! I= ?<KDH NH=@E<HHM@*<M@HMRJ@H @HMC<FM@H LDH?# 7N>C@H7D@ ?D@L@ DH ?@K 1DLM@ NH? AYB@H 7D@LD@ @DH! =@OIK 7D@ <FF@L DH /CK 5KI"BK<GGI?NF Y=@KH@CG@H#

/G H@=@HLM@C@H?@H (@DLJD@F PDK??@K 8RJ MMTime <FL 5<K<G@M@K ?@K,NHEMDIH timeGetSystemTime O@K"F<HBM NH? PNK?@ ?@LC<F= BF@D>C GDM<NLB@PWCFM#

.WNADB P@K?@H DH '5/",NHEMDIH@H 0IHLM<HM@H B@HNMSM# 'N>C ?D@L@ EXHH@H 7D@ GDM ?@G '5/"9D@P@K DH /CK5KIBK<GG Y=@KH@CG@H# :WCF@H 7D@ ?<SN ?@H +DHMK<B 0,+/0!+0$+ DG 1DLM@HA@F? '5/"84-#

3.4 Parameterübergabe

3.4.1 Übergabe von Werten oder Variablen

(@D @DH@G ,NHEMDIHL<NAKNA LDH? ?D@ U=@KB<=@J<K<G@M@K DH 0F<GG@KH <HSNB@=@H! P@HH ?@K 6Y>EB<=@P@KM DH@DH@K 9<KD<=F@H B@LJ@D>C@KM P@K?@H LIFF&

R = GetBkColor(Form1.hdc)

Page 7: (/,2131.4 ’*,-(+ &(,*) $# - files.herdtdownloads.defiles.herdtdownloads.de/dnl/details/vb6f-lese.pdf · art ghp declare $/ hihko uvhkv ght 3`ovljnhlvuehthl fk ght 2wq nvlrq% bltg

API-Programmierung 3

.-

AXUU MNZ @gLTPJKN_NZ\ WRLQ\ J][PN_NZ\N\ _NZMNW& TJWW MNZ 5]WT\RXW[J]OZ]O J]LQ [X NZOXUPNW/

GetBkColor Form1.hdc

ARWM TNRWN ?JZJVN\NZ NZOXZMNZURLQ& TfWWNW ARN UNNZN :UJVVNZW [LQZNRKNW XMNZ MRN :UJVVNZW PJWb _NPUJ[[NW/

R = GetTickCount() XMNZ R = GetTickCount

3RN ?JZJVN\NZgKNZPJKN R[\ KNR MNZ DNZ_NWM]WP MNZ 0?8'5]WT\RXWNW MJ[ PZfd\N ?ZXKUNV& _NRU MRN BaYNW MNZgKNZPNKNWNW ?JZJVN\NZ PJWb N`JT\ [\RVVNW Vg[[NW( 3RN 0?8'5]WT\RXWNW [RWM RW MNZ ?ZXPZJVVRNZ[YZJLQN 2PN[LQZRNKNW ]WM N[ R[\ NZOXZMNZURLQ& MRN 2'3J\NW\aYNW RW MNZ Declare'0W_NR[]WP 8QZN[ ?ZXPZJVV[ RW DR[]JU'1J[RL'3J\NW\aYNW b] TXW^NZ\RNZNW( AXUJWPN ARN 0?8'5]WT\RXWNW gKNZ MNW 0?8'DRN_NZ NRWOgPNW& [RWM MRN NW\'[YZNLQNWMNW DR[]JU'1J[RL'3J\NW\aYNW OgZ MRN ?JZJVN\NZ [LQXW NW\QJU\NW( 0WMNZ[ OXZV]URNZ\& MRN BaYNW MNZ?JZJVN\NZ [RWM MXZ\ KNZNR\[ RW DR[]JU'1J[RL'3J\NW\aYNW TXW^NZ\RNZ\( ENWW ARN JUUNZMRWP[ 5]WT\RXWNW J]OZ]ONW&MRN WRLQ\ RV 0?8'DRN_NZ ^NZbNRLQWN\ [RWM& Vg[[NW ARN MRN[N 0WYJ[[]WP [NUK[\ ^XZWNQVNW( 3J[ R[\ WRLQ\ PJWbNRWOJLQ& MJ 2 b]V BNRU JWMNZN 3J\NW\aYNW ^NZ_NWMN\( 8W MNZ OXUPNWMNW BJKNUUN [RWM MRN _RLQ\RP[\NW 2'3J\NW'\aYNW VR\ 8QZNZ DR[]JU'1J[RL'4W\[YZNLQ]WP J]OPNOgQZ\( Var_Name [\NQ\ OgZ MRN b] ^NZNRWKJZNWMNW DJZRJKUNW'WJVNW(

#!$&1)-13. )-10./)'*)-() %+02&,!"&0+'! $&1)-13.)-

1GB4& 270@ ByVal Var_Name As Byte

0B><& A7>@B& E>@3 ByVal Var_Name As Integer

;?E>@3 Var_Name As Integer

1>>; ByVal Var_Name As Long

2>;>@@45 ByVal Var_Name As Long

3E>@3& 8=B&C8=B& ;>=6 ByVal Var_Name As Long

5;>0B ByVal Var_Name As Single

3>C1;4 ByVal Var_Name As Double

1AB@ ByVal Var_Name As String

1AB@ $DJZI=JVN Var_Name As String

7E=3& 732& 7<4=C ((( "ERWMX_['H]PZROO[W]VVNZW#

ByVal Var_Name As Long

;?0@0< ByVal Var_Name As Long

;?3E>@3&;?8=B&;?C8=B Var_Name As Long

;?AB@& ;?2AB@ ByVal Var_Name As String

;?D>83 Var_Name As Any

0WVNZT]WP/ cKNZPJKN NRWNZ KNURNKRPNW DJZRJKUN& _NWW JKNZ NRWNHNRLQNWTN\\N gKNZPNKNW _RZM& Vg[[NW ARN ByVal ^NZ_NWMNW(

;@4AC;B ByVal Var_Name As Long

=C;; As Any oderByVal Var_Name As Long

0WVNZT]WP/ <]d NRW =C;;'A\ZRWP gKNZPNKNW _NZMNW& MJZO WRLQ\NRWOJLQ !! XMNZ =C;; JWPNPNKNW _NZMNW& [XWMNZW vbNullString(AXW[\ ByVal Nothing XMNZ ByVal 0&(

ERZM RW 2 far *Var_Name JWPNPNKNW& V]d MJ[ ALQUg[[NU_XZ\ ByVal NW\OJUUNW(

H]V 1NR[YRNU _gZMN SHORT FAR *Var_Name RW DR[]JU 1J[RL VR\ Var_Name As Single MNTUJZRNZNW _NZMNW(

3RN CV_JWMU]WP ^XW HJQUNW ]WM HNRLQNW' XMNZ 1a\N'DJZRJKUNW R[\ ZNUJ\R^ ]WYZXKUNVJ\R[LQ( H_R[LQNW DR[]JU'1J[RL'HNRLQNWTN\\NW ]WM 2'HNRLQNWTN\\NW PRK\ N[ SNMXLQ _RLQ\RPN CW\NZ[LQRNMN( 8W DR[]JU 1J[RL _NZMNWHNRLQNWTN\\NW RV CWRLXMN PN[YNRLQNZ\( 3J[ NW\[YZRLQ\ MNV 1AB@'3J\NW\aY& MNZ RW MNZ >;4'0?8 ^NZNRWKJZ\ R[\(

Page 8: (/,2131.4 ’*,-(+ &(,*) $# - files.herdtdownloads.defiles.herdtdownloads.de/dnl/details/vb6f-lese.pdf · art ghp declare $/ hihko uvhkv ght 3`ovljnhlvuehthl fk ght 2wq nvlrq% bltg

3 Visual Basic 6.0 - Fortgeschrittene Programmierung

&&

:@II @DI@ +22$-OIFNDJI @DI@ )675$6NLOFNOL @LQ<LN@N# F<II @DI ;@DB@L <OA @DI@ 9DMO<G$)<MD>$;@D>C@IF@NN@X=@LB@=@I Q@L?@I' ByVal ZK As String%

+D@ QD>CNDBMN@I 8IN@LM>CD@?@ SQDM>C@I 9DMO<G$)<MD>$ OI? *$;@D>C@IF@NN@I MDI?'

$*01%+ !%0*& #/-(/%,,*'/0./%&)' "

6K@D>C@LN @DI ;@D>C@I DI SQ@D )RN@ <= !8ID>J?@$;@D>C@IM<NS"%

6K@D>C@LN @DI ;@D>C@I DI @DI@H )RN@ <=%

+D@ 2VIB@ ?@L ;@D>C@IF@NN@ QDL? PJL ?@L ;@D>C@IF@NN@<=B@MK@D>C@LN%

+D@ ;@D>C@IF@NN@I Q@L?@I ?OL>C ?<M ;@D>C@I 0 <=$B@M>CGJMM@I%

,DI@ ;@D>C@IF@NN@ ?<LA ?@I :@LN 0 @INC<GN@I% +D@ ;@D>C@IF@NN@ ?<LA ?@I :@LN 0 ID>CN @INC<GN@I%

#)-*+-., "'(&! #)-*+-., $%'(&!

48<6;8@!

=8CC8@!

>E@:8 48<6;8@=8CC8 <? 0@<6A78

! !

! !

48<:8B 5D9 8<@8 #./-!48<6;8@=8CC8 48<:8B 5D9 8<@8 (,./-!48<6;8@=8CC8

-XL ?D@ 4<L<H@N@L$T=@LB<=@ HOU ByVal PJL<IB@MN@GGN Q@L?@I# ?<HDN <O>C N<NMV>CGD>C @DI ;@DB@L <OA ?D@;@D>C@IF@NN@ X=@LB@=@I QDL? OI? ID>CN @DI ;@DB@L <OA ?D@ ;@D>C@IF@NN@IMNLOFNOL# ?D@ HDN ?@L 2VIB@ ?@L;@D>C@IF@NN@ =@BDIIN%

+D@ X=@LB@=@I@ ;@D>C@IF@NN@ F<II NLJNS ?@L T=@LB<=@ HDN ByVal H<IDKOGD@LN Q@L?@I% 6D@ F<II <=@L ID>CNP@LBLWU@LN Q@L?@I# ?< ?D@ ;@D>C@IF@NN@IGVIB@ A@MN MN@CN OI? ID>CN HDN ?@L ;@D>C@IF@NN@ X=@LB@=@I QDL?% +D@-OIFNDJI Len GD@A@LN <O>C I<>C ?@L 9@LVI?@LOIB @DI@L ;@D>C@IF@NN@ ?D@ OLMKLXIBGD>C@I 2VIB@ SOLX>F%

:@II 6D@ @DI@ (40$-OIFNDJI @DIB@AXBN C<=@I OI? 6D@ Q@DN@LAXCL@I?@ 0IAJLH<NDJI@I SO ?@I (40$-OIFNDJI@I=@IWNDB@I !=@DMKD@GMQ@DM@ Q@G>C@ )@?@ONOIB Q@G>C@L 4<L<H@N@L C<N J?@L Q<M @DI@ -OIFNDJI AXL @DI@ (OAB<=@C<N"# FWII@I 6D@ ?D@M@ DI ?@L /DGA@ ?@M 6+&/2"-% +%1%(+,)%*/ 1'/ !6+1" <=LOA@I%

3.4.2 Callback-Adressen

0I @DIDB@I )@NLD@=MMRMN@HAOIFNDJI@I QDL? <GM T=@LB<=@K<L<H@N@L @DI@ *<GG=<>F$(?L@MM@ B@AJL?@LN% +<M DMN ?D@(?L@MM@ @DI@L -OIFNDJI# ?D@ MKVN@L PJI :DI?JQM <OAB@LOA@I QDL?# S%)% OH ,LB@=IDMM@ @DI@M -OIFNDJIM<OALOA@MSOLX>FSOGD@A@LI%

0I 9DMO<G )<MD> FWII@I 6D@ ?D@ (?L@MM@ @DI@L -OIFNDJI HDN AddressOf X=@LB@=@I%

AddressOf Funktionsname

+@L -OIFNDJIMI<H@ HOU DI @DI@H 6N<I?<L?HJ?OG MN@C@I% +<M 6N<I?<L?HJ?OG HOU @DI 7@DG ?@M 4LJE@FN@M M@DI#DI ?@H ?@L -OIFNDJIMI<H@ <OAB@LOA@I QDL?%

,DI 6N<I?<L?HJ?OG DI 9DMO<G )<MD> DMN @DI 3J?OG# ?<M IOL 4LJS@?OL@I# 7RK@I# +<N@I?@FG<L<NDJI@I OI? +<N@I$?@ADIDNDJI@I @INCVGN% 4LJS@?OL@I OI? -OIFNDJI@I C<=@I <ONJH<NDM>C ?@I .XGNDBF@DNM=@L@D>C Public, <O>CQ@II F@DI .XGNDBF@DNM=@L@D>C <IB@B@=@I DMN%

+D@ (IQ@I?OIB PJI AddressOf DMN <=@L IOL DI -OIFNDJIM<OALOA@I HWBGD>C% :@II 6D@ @DI@ (?L@MM@ DI @DI@L9<LD<=G@I MK@D>C@LI QJGG@I# HXMM@I 6D@ ?@I 8HQ@B X=@L @DI@ :L<KK@LAOIFNDJI !3<IN@GAOIFNDJI" B@C@I%

Function AdresseDerFunktion (ByVal ZeigerVariable As Long) As Long

AdresseDerFunktion = ZeigerVariable

End Function

Page 9: (/,2131.4 ’*,-(+ &(,*) $# - files.herdtdownloads.defiles.herdtdownloads.de/dnl/details/vb6f-lese.pdf · art ghp declare $/ hihko uvhkv ght 3`ovljnhlvuehthl fk ght 2wq nvlrq% bltg

API-Programmierung 3

&'

,>DE:JB>J>G 4B> =>G 5PI =>J 7:JB:;E>G# MG= JM?>G 4B> =B> .MGDLBHG :M?# BG=>F 4B> :EK 3:J:F>L>J AddressOfFBL =>F 2:F>G /AJ>J +:EE;:<D$.MGDLBHG :G@>;>G%

StrukturName.Zeiger = AdresseDerFunktion(AddressOf MeineFunktion)

*>BKIB>EKO>BK> FMS =B> )3/$.MGDLBHG SetTimer FBL >BG>J +:EE;:<D$)=J>KK> :M?@>JM?>G O>J=>G%

SetTimer (hWnd, 1, 2000, AddressOf TimerFunktion)

1BL )M?JM? =B>K>J .MGDLBHG OBJ= :EE> QO>B 4>DMG=>G =B> :EK E>LQL>K )J@MF>GL :G@>@>;>G> .MGDLBHGTimerFunktion :MK@>?VAJL%

"('%$&) ##$"&!'!%

/F 4L:G=:J=FH=ME 5%'$*91(#,&%"!+ O>J=>G =B> .MGDLBHG>G =>DE:JB>JL MG= =B> +:EE;:<D$.MGDLBHG Blinken=>?BGB>JL%

!

"

#

$

Option Explicit

Declare Function SetTimer Lib "user32" (ByVal hWnd As Long, _

ByVal nIDEvent As Long, _

ByVal uElapse As Long, _

ByVal lpTimerFunc As Long) As Long

Declare Function KillTimer Lib "user32" (ByVal hWnd As Long, _

ByVal nIDEvent As Long) As Long

Public Sub Blinken(hwnd As Long, uMsg As Long, _

idEvent As Long, dwTime As Long)

Form1.Label1.Visible = Not Form1.Label1.Visible

End Sub

! ,B> )3/$.MGDLBHG SetTimer !KL:G=:J=FTSB@ U??>GLEB<A" OBJ= =>DE:JB>JL%" 8MF 0UK<A>G =>K 5BF>JK OBJ= =B> )3/$.MGDLBHG KillTimer =>DE:JB>JL%# ,:K 6GL>JIJH@J:FF Blinken OBJ= =>?BGB>JL MG= KITL>J :EK +:EE;:<D$.MGDLBHG =>J SetTimer$.MGDLBHG

V;>J@>;>G%$ 6F >BG 0:;>E ;EBGD>G QM E:KK>G# OBJ= =B> -B@>GK<A:?L Visible :;O><AK>EG= :M? True MG= False

@>K>LQL%

,B> 3:J:F>L>JEBKL> =>J .MGDLBHG Blinken :EK +:EE;:<D$.MGDLBHG !?VJ =>G )M?JM? =>J 4>L5BF>J$.MGDLBHG" BKL=MJ<A =>G 5PI TIMERPROC =>K R;>J@:;>I:J:F>L>JK lpTimerFunc ;>KLBFFL# =>J BG + ?HE@>G=>JF:S>G:MKKB>AL(

VOID CALLBACK TimerProc( HWND hwnd, // handle of window for timer messages

UINT uMsg, // WM_TIMER message

UINT idEvent, // timer identifier

DWORD dwTime); // current system time

)M<A O>GG 4B> =B> R;>J@:;>I:J:F>L>J ?VJ /AJ> 3JHQ>=MJ GB<AL ;>GULB@>G# FVKK>G 4B> =B>K> :G@>;>G% 4B>JBKDB>J>G KHGKL >BG> 8M@JB??KN>JE>LQMG@# =B> /AJ 7BKM:E *:KB< QMF );KLMJQ ;JBG@L% 4ITL>KL>GK AB>J FVKK>G 4B>>BG> 5PI:GI:KKMG@ OB> QMNHJ ;>K<AJB>;>G =MJ<A?VAJ>G%

)M? =>F .HJFME:J =>K 3JHC>DLK 5%'$*%-") KBG= QO>B 4<A:EL?ET<A>G MGL>J@>;J:<AL% *>BF *>LTLB@>G =>J H;>J>G4<A:EL?ET<A> OBJ= >BG ;EBGD>G=>K 0:;>E :G@>Q>B@L# ;>BF GT<AKL>G *>LTLB@>G N>JK<AOBG=>L =:K ;EBGD>G=> 0:;>EOB>=>J% R;>J =B> MGL>J> 4<A:EL?ET<A> DUGG>G 4B> =B> )GO>G=MG@ K<AEB>S>G%

Page 10: (/,2131.4 ’*,-(+ &(,*) $# - files.herdtdownloads.defiles.herdtdownloads.de/dnl/details/vb6f-lese.pdf · art ghp declare $/ hihko uvhkv ght 3`ovljnhlvuehthl fk ght 2wq nvlrq% bltg

3 Visual Basic 6.0 - Fortgeschrittene Programmierung

)*

!

"

#

$

%

&

'

(

Dim TimerNr, KillOK As Long

Private Sub Blink_Click()

If TimerNr = 0 Then

TimerNr = SetTimer(hwnd, 1, 300, AddressOf Blinken)

Else

KillOK = KillTimer(hwnd, TimerNr)

Label1.Visible = False

TimerNr = 0

End If

End Sub

Private Sub Form_Load()

TimerNr = 0

End Sub

Private Sub Ende_Click()

End

End Sub

! TimerNr QKB KillOK OGKB <?NG?@ICK# BGC TQN -QDK?FJC BCN 9YAHE?@CSCNPC BCN -84$1QKHPGLKCK BGCKCKQKB BCOF?I@ ?IO Long RCNCGK@?NP SCNBCK JYOOCK%

" /GC <?NG?@IC TimerNr SGNB ?QD 0 ECMNYDP%# 3?P TimerNr BCK =CNP 0# SGNB BGC 1QKHPGLK SetTimer ?QDECNQDCK% TimerNr SGNB RLK BCN 1QKHPGLK

SetTimer JGP CGKCJ 9YAHE?@CSCNP @CICEP% .CG LNBKQKEOECJWVCN -QODYFNQKE BCN 1QKHPGLK GOP BGCOCN=CNP EICGAF BCN 7QJJCN BCO ;GJCNO# BCN CNTCQEP SQNBC% 5LKKPC HCGK ;GJCN CNTCQEP SCNBCK# SGNB BCN=CNP 0 TQNYAHECEC@CK%

$$& =GNB B?O Click$0NCGEKGO ?QOECIXOP# SCKK @CNCGPO CGK ;GJCN CNTCQEP SQNBC !TimerNr , &"# B?KK SGNBBCN ;GJCN JGP BCN KillTimer$1QKHPGLK SGCBCN ECIXOAFP $ B?O @IGKHCKBC 6?@CI SGNB SGCBCN ?QOEC@ICKBCPQKB TimerNr ?QD 0 ECOCPTP%

' TimerNr SGNB JGP BCJ =CNP 0 RLN@CICEP%( 3GCN CNDLIEP B?O :AFIGCVCK BCN -KSCKBQKE%

3.5 Ausgewählte API-Funktionen

/GC 1QKHPGLKCK# BGC GK BGCOCJ -@OAFKGPP RLNECOPCIIP SCNBCK# OGKB KQN CGK HICGKCN ;CGI BCN GJ =GKBLSO$-84 RCN$DYE@?NCK 1QKHPGLKCK% 0O OLII 4FKCK FGCN KQN CGK ENL@CN U@CN@IGAH Y@CN BGC 0GKO?PTJXEIGAFHCGPCK BGCOCN1QKHPGLKCK RCNJGPPCIP SCNBCK%

3.5.1 GDI-Funktionen als Ergänzung zu den Visual-Basic-Grafikfunktionen

#')'%)! -)$ "-+.%)&-)(,'*)%) BGCKCK TQJ >CGAFKCK RLK 6GKGCK# .XECK# :CNGCK RLK 6GKGCK QKB .XECK !4JMLNP$@G@IGLPFCH+ 2!"('%!##"%

Arc>CGAFKCP CGKCK CIIGMPGOAFCK .LECK% /GC -KE?@C RLK .LECK$ QKB 5LLNBGK?PCKJ?VCKGOP JXEIGAF%

ArcTo >CGAFKCP CGKCK CIIGMPGOAFCK .LECK# KQN -KE?@C RLK 5LLNBGK?PCKJ?VCK%

MoveToEx:CPTP BGC ?HPQCIIC 8LOGPGLK ?QD BCK ?KECEC@CKCK =CNP QKB EG@P BGC ?IPC 8LOGPGLKTQNYAH%

Page 11: (/,2131.4 ’*,-(+ &(,*) $# - files.herdtdownloads.defiles.herdtdownloads.de/dnl/details/vb6f-lese.pdf · art ghp declare $/ hihko uvhkv ght 3`ovljnhlvuehthl fk ght 2wq nvlrq% bltg

API-Programmierung 3

()

PolyBezier

PolyBezierTo=BF@EJBO BFJB KABM IBEMBMB ,ZUFBM$3PMQBJ%

Polyline,

PolylineTo=BF@EJBO BFJ 9BMFB QKJ 4FJFBJNBDIBJOBJ%

SetArcDirection 9BOUO AFB =BF@EBJMF@EOPJD%

#2-+1*.-(- 42, %(*')-(- 3.- #.0,(- RFB 8B@EOB@GBJ# 7KHTDKJBJ PJA +PNN@EJFOOBJ QKJ DBKIBOMFN@EBJ3[MLBMJ !2ILKMO?F?HFKOEBG* 0!"'&%!##"%

Rectangle =BF@EJBO BFJ 8B@EOB@G%

Polygon =BF@EJBO BFJ 7KHTDKJ%

Pie =BF@EJBO BFJBJ +PNN@EJFOO BFJBM .HHFLNB >PN QFBM 7PJGOBJ%

PolyPolygon =BF@EJBO BFJB 9BMFB QKJ DBN@EHKNNBJBJ 7KHTDKJBJ%

RoundRect =BF@EJBO BFJ 8B@EOB@G IFO >?DBMPJABOBJ .@GBJ%

"*1,&/!#2-+1*.-(- AFBJBJ UPI 3KLFBMBJ# ;BMN@EFB?BJ PJA 9OMBO@EBJ QKJ ,FOI>LN# RK?BF AFB />M?B?BF?BE>HOBJ KABM >PC QBMN@EFBABJB +MOBJ QBMYJABMO RBMABJ G>JJ !2ILKMO?F?HFKOEBG* 0!"'&%!##"%

BitBlt:M>JNCBMFBMO KABM GKLFBMO BFJBJ MB@EOB@GFDBJ +PNN@EJFOO BFJBM 0M>CFG >J BFJBJ>JABMBJ 6MO%

StretchBlt<FB BitBlt# >?BM ,FOI>LN G[JJBJ FJ FEMBM 0M[XB QBMYJABMO RBMABJ !DBUBMMO KABMDBNO>P@EO"%

CreateBitmap .MNOBHHO BFJ ,FOI>L FJ >JDBDB?BJBM 1[EB# ,MBFOB PJA CBNODBHBDOBJ />M?BJ%

SetPixel 9BOUO AFB />M?B BFJBN >JDBDB?BJBJ 7FSBHN%

SetPixelV <FB SetPixel# >?BM ABM 7FSBH IPX FI -HFLLFJD$,BMBF@E HFBDBJ%

$&1)!#2-+1*.-(- AFBJBJ UPI .MNOBHHBJ# VJABMJ KABM =FBEBJ QKJ 7C>ABJ !ABM ,BDMFCC 7C>A RFMA EFBM FI 9FJJBQKJ ;BMH>PC IBEMBMBM 3PMQBJNBDIBJOB QBMRBJABO" !2ILKMO?F?HFKOEBG* 0!"'&%!##"%

AbortPath 9@EHFBXO PJA NBOUO 7C>AB UPM\@G%

BeginPath WCCJBO BFJBJ 7C>A%

CloseFigure 9@EHFBXO BFJB KCCBJB /FDPM FJ BFJBI 7C>A%

EndPath 9@EHFBXO BFJBJ 7C>A >?%

FillPath9@EHFBXO BFJB KCCBJB /FDPM FI >GOPBHHBJ 7C>A PJA C\HHO AFBNB IFO ABI BFJDBNOBHHOBJ5PNOBM%

Notizen

Page 12: (/,2131.4 ’*,-(+ &(,*) $# - files.herdtdownloads.defiles.herdtdownloads.de/dnl/details/vb6f-lese.pdf · art ghp declare $/ hihko uvhkv ght 3`ovljnhlvuehthl fk ght 2wq nvlrq% bltg

3 Visual Basic 6.0 - Fortgeschrittene Programmierung

()

#13',(1)3.,2*/.(. !1KNMOQ@G@JGMQFCI* 0!"'&%!##"

AbortDoc 8QMNNQ BCL ?IQRCJJCL -ORAI$2M@%

EndDoc ,CCLBCQ CGLCL -ORAI$2M@%

EndPage 9CGJQ BCK 0COYQ B?P .LBC CGLCO -ORAIPCGQC KGQ%

StartDoc 8Q?OQCQ CGLCL -ORAI$2M@%

StartPage ,COCGQCQ BCL -ORAICOQOCG@CO D[O BGC -?QCL?RDL?FKC SMO%

#13',!&0//-(1!$3.,2*/.(. !1KNMOQ@G@JGMQFCI* <"$(&%%#%!')"

AbortPrinter 4ZPAFQ CGL -ORAICO$8NMMJ$/GJC%

ClosePrinter 8AFJGCX B?P ?LECEC@CLC -ORAICOM@HCIQ%

GetPrinter 0G@Q BGC 1LDMOK?QGMLCL [@CO BCL -ORAICO WRO[AI%

WritePrinter1LDMOKGCOQ BCL -ORAI$8NMMJCO# B?X -?QCL ?RD BCL ?LECEC@CLCL -ORAICO EC$

PAFOGC@CL TCOBCL PMJJQCL%

<CGQCOFGL CUGPQGCOCL LC@CL BCL 0O?DGI$ RLB -ORAIDRLIQGMLCL /RLIQGMLCL D[O 5RJQGKCBG? !W%,% -GOCAQ=# +RBGM#

;GBCM"%

%1/+(,2 #'#$#"%#"(!&

:LQCO 6RQWRLE BCO /RLIQGML Polygon PMJJCL BOCG -OCGCAIC ECWCGAFLCQ TCOBCL RLB HCBC CLQPQCFCLBC /JYAFC KGQ

CGLCO ?LBCOCL /?O@C ECD[JJQ TCOBCL% >RK /[JJCL BCO /JYAFCL TGOB BGC /RLIQGML ExtFloodFill SCOTCLBCQ# B?

LRO BGC 9CGJC BCO -OCGCAIC ECD[JJQ TCOBCL PMJJCL# BGC PGAF LGAFQ [@COJ?ECOL%

1L CGLCK 8Q?LB?OBKMBRJ TCOBCL BGC /RLIQGMLPBCIJ?O?QGMLCL BCO +71$/RLIQGMLCL CGLECD[EQ%

!

"

#

$

Public Declare Function Polygon Lib "gdi32" (ByVal hdc As Long, _

lpPoint As POINTAPI, ByVal nCount As Long) As Long

Public Type POINTAPI

x As Long

y As Long

End Type

Public Declare Function ExtFloodFill Lib "gdi32" (ByVal hdc As Long, _

ByVal x As Long, ByVal y As Long, ByVal crColor As Long, _

ByVal wFillType As Long) As Long

Public Const FLOODFILLBORDER = 0

! .P CODMJEQ BGC -CIJ?O?QGML BCO /RLIQGML Polygon%" -CO 9VN POINTAPI TGOB D[O BCL /RLIQGMLP?RDORD BCO /RLIQGML Polygon @CLZQGEQ%

# -GC -CIJ?O?QGML BCO /RLIQGML ExtFloodFill TGOB BROAFECD[FOQ%

$ .GLC 3MLPQ?LQC D[O BCL /RLIQGMLP?RDORD BCO /RLIQGML ExtFloodFill TGOB BCIJ?OGCOQ%

-GC COPQCL BOCG -CIJ?O?QGMLCL IZLLCL [@CO BCL +71$;GCTCO CGLECD[EQ TCOBCL# BGC SGCOQC -CIJ?O?QGML GPQ

K?LRCJJ DCPQWRJCECL%

Page 13: (/,2131.4 ’*,-(+ &(,*) $# - files.herdtdownloads.defiles.herdtdownloads.de/dnl/details/vb6f-lese.pdf · art ghp declare $/ hihko uvhkv ght 3`ovljnhlvuehthl fk ght 2wq nvlrq% bltg

API-Programmierung 3

)*

!

"

#

$

%

&

Dim RW As Long

Dim Punkte(3) As POINTAPI

Const n = 3

Private Sub Form_Paint()

Dim B, H As Long

... ' belegen des Feldes Punkte mit Werten

RW = Polygon(Form1.hdc, Punkte(0), n)

...

FillColor = &HFFC0C0

RW = ExtFloodFill(hdc, B/2, H/5+10, vbBlue, FLOODFILLBORDER)

...

End Sub

Private Sub Form_Resize()

Form_Paint

End Sub

! .C? :;KC;<F?H RW NH> n P?K>?H ;FL Long O?K?CH<;KM&" /L ?K@IFAM >C? .?EF;K;MCIH ?CH?L 0?F>?L GCM >K?C /F?G?HM?H ">; .K?C?=E? A?R?C=BH?M P?K>?H LIFF?H# OIG

9QJ POINTAPI& .?K 9QJ POINTAPI PNK>? CG 8M;H>;K>GI>NF O?K?CH<;KM&# .;L .K?C?=E PCK> GCM >?K ,73%0NHEMCIH Polygon A?R?C=BH?M& S<?KA?<?H P?K>?H >;L 2;H>F? >?L

0IKGNF;KL$ ;N@ >;L A?R?C=BH?M P?K>?H LIFF$ >?K ?KLM? 7NHEM >?L 7IFQAIHL NH> >C? ,HR;BF >?K RNR?C=BH?H>?H 7NHEM? "H+($ >; 8C? ?CH .K?C?=E R?C=BH?H PIFF?H#&

$ .C? 0WFF@;K<? PCK> @?LMA?F?AM&% 5CM >?K ,73%0NHEMCIH ExtFloodFill PCK> >C? 0FU=B? NG >?H ;HA?A?<?H?H 7NHEM GCM >?K 0;K<? A?@WFFM$

>C? >NK=B >C? /CA?HL=B;@M FillColor @?LMA?F?AM PNK>?& 3LM ;FL F?MRM?K 7;K;G?M?K FLOODFILLBORDER(=0) ;HA?A?<?H$ PCK> >C? 0FU=B? A?@WFFM$ >C? >NK=B >C? ;HA?A?<?H?H 0;K<? "OC?KM?K 7;K;G?M?K# <?%AK?HRM PCK>&

& .?K ,N@KN@ >?L Paint%/K?CAHCLL?L CH >?K Resize%/K?CAHCLJKIR?>NK <?PCKEM ?CH 6?NR?C=BH?H >?K .K?C%?=E? GCM D?>?K 1KVT?HO?KUH>?KNHA >?L 0IKGNF;KL&

3.5.2 Funktionen zur Speicher- und Systemverwaltung

#-,0'1! /+& $(-'%&!"/+*.),+'+ "3GJIKM<C<FCIMB?E 4"%$"#('&!##)

CreateProcess/KLM?FFM ?CH?H H?N?H 7KIR?T$ >?K >;L ;FL 7;K;G?M?K W<?KA?<?H? 7KIAK;GG;NL@WBKM&

ExitProcess -??H>?M ?CH?H 7KIR?T&

GetCurrentProcess 1C<M ?CH !7L?N>I2;H>F?! >?L ;EMN?FF?H 7KIR?LL?L RNKW=E&

Sleep .;L 7KIAK;GG "<RP& 9BK?;># PCK> @WK ?CHCA? 8?ENH>?H ;HA?B;FM?H&

Notizen

Page 14: (/,2131.4 ’*,-(+ &(,*) $# - files.herdtdownloads.defiles.herdtdownloads.de/dnl/details/vb6f-lese.pdf · art ghp declare $/ hihko uvhkv ght 3`ovljnhlvuehthl fk ght 2wq nvlrq% bltg

3 Visual Basic 6.0 - Fortgeschrittene Programmierung

)&

&,7496*,!#9308/43,3 E]P CDM =LF@MF LHR :DQQNSPBDM !3LONPRAHAKHNRGDJ 4#'&#%('%"%%"

FindResource,DQRHLLR CDM 8PR DHMDP :DQQNSPBD LHR CDL @MFDFDADMDM 7@LDM SMC <WO HMDHMDL @MFDFDADMDM 6NCSK%

LoadImage 5[CR DHMD 3L@FD$# -SPQNP$ NCDP ,HRL@O$:DQQNSPBD%

LoadResource 5[CR CHD @MFDFDADMD :DQQNSPBD HM CDM ;ODHBGDP%

UpdateResource5\QBGR NCDP DPQDRXR DHMD :DQQNSPBD HM DHMDL @SQE]GPA@PDM 9PNFP@LL NCDP E]FRDHMD GHMXS%

'<78,2/3-462)8/437!#9308/43,3 XSL +SQFDADM NCDP ;DRXDM TNM ;WQRDLHMENPL@RHNMDM !3LONPRAHAKHNRGDJ*4#'&#%('%"%%"

GetComputerName 1HAR CDM -NLOSRDPM@LDM CDQ @JRSDKKDM ;WQRDLQ XSP]BJ%

GetSystemMetrics 1HAR TDPQBGHDCDMD ;WQRDL$1P\ZDM@MF@ADM XSP]BJ%

GetUserName 1HAR CDM ,DMSRXDPM@LDM CDQ @JRSDKKDM <GPD@CQ XSP]BJ%

GetWindowsDirectory 1HAR CDM 9E@C CDQ ?HMCNUQ$>DPXDHBGMHQQDQ XSP]BJ%

#/1,!'<78,2!#9308/43,3 XSL >DP$ SMC /MRQBGK]QQDKM QNUHD XSL 4NLOPHLHDPDM TNM .@RDHDM !3LONPRAHAKHNRGDJ*4#'&#%('%"%%"

DecryptFile >DPQBGK]QQDKR CHD @MFDFDADMD .@RDH%

EncryptFIle /MRQBGK]QQDKR CHD @MFDFDADMD .@RDH%

GetCompressedFileSize /PLHRRDKR CDM 9K@RXADC@PE DHMDP JNLOPHLHDPRDM .@RDH%

GetVolumeInformation5HDEDPR 3MENPL@RHNMDM ]ADP C@Q .@RDHQWQRDL SMC CDM ;ODHBGDPOK@RX CDQ @MFD$FDADMDM ?SPXDKTDPXDHBGMHQQDQ%

3.5.3 Fenster- und Mausfunktionen

"6=,9.,3 93+ (,6;)18,3 :43 #,378,63 !3LONPRAHAKHNRGDJ* =(#'('%%$!"

ArrangeIconicWindows 8PCMDR @KKD LHMHLHDPRDM 0DMQRDP HL @MFDFDADMDM /KRDPMEDMQRDP @M%

EnumWindows1HAR @KKD <NO$5DTDK$0DMQRDP XSP]BJ# UNADH E]P IDCDQ 0DMQRDP CDP :DHGD M@BG DHMD-@KKA@BJ$0SMJRHNM @SEFDPSEDM UHPC%

FindWindow1HAR C@Q 2@MCKD CDQ 0DMQRDPQ XSP]BJ# CDQQDM 4K@QQD SMC 7@LD @MFDFDADMUSPCDM%

IsWindow 1HAR XSP]BJ# NA C@Q @MFDFDADMD 0DMQRDP DVHQRHDPR%

SetParent YMCDPR C@Q /KRDPMEDMQRDP CDQ @MFDFDADMDM -GHKC$0DMQRDPQ%

%)97!$3598!#9308/43,3 !3LONPRAHAKHNRGDJ =(#'('%%$!"

DragDetect>DPENKFR CHD 6@SQADUDFSMF# AHQ CDP 7SRXDP CHD KHMJD 6@SQR@QRD UHDCDP KNQK[ZR%.HD 2\GD SMC ,PDHRD CDQ FDXNFDMDM :DBGRDBJQ J\MMDM ;HD LHR 2HKED CDP0SMJRHNM GetSystemMetrics DPLHRRDKM%

GetCapture 1HAR C@Q 2@MCKD CDQ 0DMQRDPQ XSP]BJ# C@Q @KKD 6@SQDHMF@ADM DLOE[MFR%

GetDoubleClickTime 1HAR CHD @JRSDKKD .NOODKJKHBJXDHR E]P CHD 6@SQ XSP]BJ%

SetDoubleClickTime ;DRXR CHD .NOODKJKHBJXDHR E]P CHD 6@SQ%

Page 15: (/,2131.4 ’*,-(+ &(,*) $# - files.herdtdownloads.defiles.herdtdownloads.de/dnl/details/vb6f-lese.pdf · art ghp declare $/ hihko uvhkv ght 3`ovljnhlvuehthl fk ght 2wq nvlrq% bltg

API-Programmierung 3

)&

#52312!$50.4,10*0 !3LONPRBIBKINRHEJ =(#'('%&%!"

ClipCursor ,EQCHPZMJR DEM -SPQNP$,EPEICH ASF DEM AMGEGEBEMEM :ECHRECJBEPEICH%

GetCursorPos 1IBR DIE ABQNKSRE 6ASQONQIRINM XSP\CJ%

SetCursorPos ,EUEGR DEM -SPQNP XS DEM AMGEGEBEMEM ,IKDQCHIPLJNNPDIMAREM%

ShowCursor @EIGR DEM -SPQNP AM NDEP TEPQRECJR DEM -SPQNP%

&(!(+*//!$50.4,10*0 !3LONPRBIBKINRHEJ ;$#&&('%"&&"

SHFileOperation4NOIEPR# BEUEGR# K[QCHR NDEP BEMEMMR EIME .AREI SL% .SPCH DAQ 0KAG

FOF_ALLOWUNDO IQR DAQ :\CJGZMGIGLACHEM DEP 8OEPARINM L[GKICH# UAQ

BEQNMDEPQ BEIL 5[QCHEM TNM >NPREIK IQR%

SHGetFileInfo1IBR 3MFNPLARINMEM XS EIMEP .AREI# EIMEL >EPXEICHMIQ NDEP ?SPXEKTEPXEICHMIQ

XSP\CJ UIE X%,% 9FAD# +RRPIBSRE# 3CNM SMD 1P[YE%

SHGetDiskFreeSpace1IBR DIE ABQNKSRE 1P[YE DEP .IQJERRE NDEP 0EQROKARRE SMD DEM FPEIEM ;OEICHEP$

BEPEICH XSP\CJ%

'21-*.4 ((&)%#"$"'!%

3L ,EIQOIEK QNKKEM EIMIGE ;WQRELIMFNPLARINMEM LIR 2IKFE TNM +93$

0SMJRINMEM AMGEXEIGR UEPDEM%

.AF\P UEPDEM DIE +93$0SMJRINMEM GEMSRXR*

! GetWindowsDirectory XSP /PLIRRKSMG DEQ ?IMDNUQ$>EPXEICH$

MIQQEQ

! GetUserName F\P DIE /PLIRRKSMG DEQ 7SRXEPMALEMQ SMD

! GetComputerName# SL DEM -NLOSREPMALEM XS EPLIRREKM

.IE JNLOKEVE +93$0SMJRINM GetVersionEx F\KKR EIME ;RPSJRSP TNL <WO OSVERSIONINFO LIR 3MFNPLARINMEM

\BEP DAQ ,ERPIEBQQWQREL%

!

"

#

$

%

&

'

(

Private Declare Function GetWindowsDirectory Lib "kernel32" _

Alias "GetWindowsDirectoryA" (ByVal lpBuffer As String, _

ByVal nSize As Long) As Long

Private Declare Function GetUserName Lib "advapi32.dll" Alias "GetUserNameA" _

(ByVal lpBuffer As String, nSize As Long) As Long

Private Declare Function GetComputerName Lib "kernel32" _

Alias "GetComputerNameA" (ByVal lpBuffer As String, _

nSize As Long) As Long

Private Declare Function Lib "kernel32" Alias "GetVersionExA" _

(lpVersionInformation As OSVERSIONINFO) As Long

Private Type OSVERSIONINFO

dwOSVersionInfoSize As Long

dwMajorVersion As Long

dwMinorVersion As Long

dwBuildNumber As Long

dwPlatformId As Long

szCSDVersion As String * 128 'Maintenance string for PSS usage

End Type

Const VER_PLATFORM_WIN32s = 0 'für Windows 3.1

Const VER_PLATFORM_WIN32_WINDOWS = 1 'für Windows 95 oder 98

Const VER_PLATFORM_WIN32_NT = 2 'für Windows NT

Page 16: (/,2131.4 ’*,-(+ &(,*) $# - files.herdtdownloads.defiles.herdtdownloads.de/dnl/details/vb6f-lese.pdf · art ghp declare $/ hihko uvhkv ght 3`ovljnhlvuehthl fk ght 2wq nvlrq% bltg

3 Visual Basic 6.0 - Fortgeschrittene Programmierung

%$

! )8=>4C4E<A@ 78C &/,"+F@=E<A@ GetWindowsDirectory! 7<8 78@ /947 78D 3<@7AHD"28CJ8<6;@<DD8D 4F9

78C 24C<45>8@ lpBuffer JFCK6=><898CE#

" )8=>4C4E<A@ 78C &/,"+F@=E<A@ GetUserName! 7<8 78@ .4?8@ 78D 4@:8?8>78E8@ .FEJ8CD 4F9 78C

24C<45>8@ lpBuffer JFCK6=><898CE#

# )8=>4C4E<A@ 78C &/,"+F@=E<A@ GetComputerName! 7<8 78@ .4?8@ 78D (A?BFE8CD 4F9 78C 24C<45>8@

lpBuffer JFCK6=><898CE#

$ )8=>4C4E<A@ 78C &/,"+F@=E<A@ GetVersionEx! 7<8 '8EC<85DDIDE8?<@9AC?4E<A@8@ <@ 8<@8C 24C<45>8@ GA?

1IB OSVERSIONINFO JFCK6=><898CE#

% )8=>4C4E<A@ 78D )4E8@EIBD OSVERSIONINFO#&"( -A@DE4@E8@789<@<E<A@ 9KC 78@ 28C:>8<6; ?<E 78C 24C<45>8@ dwPlatformId 4FD 78C 0ECF=EFC

OSVERSIONINFO JFC *C?<EE>F@: 78D '8EC<85DDIDE8?D#

!

"

#

$

%

&

'

(

)

*

+

,

-

.

/

0

1

2

Private Sub Form_Load()

Dim S1 As String * 128, S2 As String * 128, S3 As String * 128

Dim n1, n2, n3 As Long

Dim info As OSVERSIONINFO

S1 = Space(128)

S2 = Space(128)

S3 = Space(128)

n1 = 148

n2 = 148

n3 = 148

GetWindowsDirectory S1, n1

GetUserName S2, n2

GetComputerName S3, n3

WinDir.Text = VB_ZK(S1)

UserName.Text = VB_ZK(S2)

CompName.Text = VB_ZK(S3)

info.dwOSVersionInfoSize = 148

info.szCSDVersion = Space(128)

GetVersionEx info

If info.dwPlatformId = VER_PLATFORM_WIN32s Then

BS.Text = "Windows 3.1"

ElseIf info.dwPlatformId = VER_PLATFORM_WIN32_WINDOWS Then

If info.dwMinorVersion = 0 Then '

BS.Text = "Windows 95"

Else

BS.Text = "Windows 98"

End If

Else

BS.Text = "Windows NT"

End If

With info

Vers.Text = .dwMajorVersion & "." & .dwMinorVersion

Build.Text = .dwBuildNumber

Zus.Text = VB_ZK(.szCSDVersion)

End With

End Sub

' Nullterminierte Zeichenkette in eine Visual-Basic-Zeichenkette umwandeln

Public Function VB_ZK(ZK$) As String

Dim Pos_0&

Pos_0 = InStr(ZK, Chr(0)) '0 suchen

If Pos_0 = 0 Then

VB_ZK = ""

Else

VB_ZK = Left(ZK, Pos_0 - 1) 'die Zeichen links des 0-Zeichens zurückgeben

End If

End Function

Page 17: (/,2131.4 ’*,-(+ &(,*) $# - files.herdtdownloads.defiles.herdtdownloads.de/dnl/details/vb6f-lese.pdf · art ghp declare $/ hihko uvhkv ght 3`ovljnhlvuehthl fk ght 2wq nvlrq% bltg

API-Programmierung 3

)(

! -?DE;J;LCHG >?J :?C=B?GD?LL? @WJ >C? +M@G;BF? >?J 9?JL? ;MK >?G +51$/MGDLCHG?G%" -?DE;J;LCHG >?J 8;JC;<E?G @WJ >C? S<?JA;<? >?J 5M@@?JAJVT? ;G >C? +51$/MGDLCHG?G%# -?DE;J;LCHG >?J 6LJMDLMJ$8;JC;<E?G NHF 7QI OSVERSIONINFO RMJ +M@G;BF? >?J 6QKL?FCG@HJF;LCHG?G%$ +EE? 6LJCGA$8;JC;<E?G O?J>?G FCL &'* 2??JR?C=B?G A?@WEEL# MF >?G 5M@@?J<?J?C=B <?J?CLRMKL?EE?G%% 1G >?G Long$8;JC;<E?G n1 <CK n3 O?J>?G >C? 5M@@?JEUGA?G A?KI?C=B?JL%&$' -?J +M@JM@ >?J +51$/MGDLCHG?G FCL S<?JA;<? >?J 6LJCGA$8;JC;<E?G MG> >?J 5M@@?JEUGA?G ?J@HEAL%( :MJ +GR?CA? >?J .JA?<GCKO?JL? O?J>?G >C? 6LJCGA$8;JC;<E?G >?J Text-.CA?GK=B;@L >?J 7?PL,HP?G

W<?JLJ;A?G%) -?J +M@JM@ >?J +51$/MGDLCHG GetVersionEx FCL S<?JA;<? >?J 6LJMDLMJN;JC;<E?G info ?J@HEAL%* .GLKIJ?=B?G> >?F 9?JL NHG info.dwPlatformId OCJ> >;K ,?LJC?<KKQKL?F ?JFCLL?EL MG> RMJ +GR?CA?

CG >?J .CA?GK=B;@L Text >?J 7?PL,HP BS ;<A?E?AL%+ -C? 8?JKCHGKGMFF?J OCJ> CG Vers.Text A?KI?C=B?JL% 6C? K?LRL KC=B ;MK 0;MIL$ MG> 4?<?GGMFF?J

RMK;FF?G%,$- -C? ,MCE>$4MFF?J >?K ,?LJC?<KKQKL?FK MG> >?J :MK;LRL?PL O?J>?G RMJ +GR?CA? CG 7?PL<HP?G ;<A?E?AL%. -C? /MGDLCHG VB_ZK O;G>?EL ?CG? GMEEL?JFCGC?JL? :?C=B?GD?LL? CG ?CG? 8CKM;E$,;KC=$:?C=B?GD?LL? MF%/ -C? 5HKCLCHG >?K :?C=B?GK "0" !>?K 4MEEL?JFCG;LHJK" OCJ> ?JFCLL?EL%0 1KL >C? W<?JA?<?G? :?C=B?GD?LL? E??J# OCJ> ?CG 2??J$6LJCGA RMJW=DA?A?<?G%1 +EE? :?C=B?G ECGDK NHF :?C=B?G 4MEE O?J>?G ;EK .JA?<GCK RMJW=DA?A?<?G%

9?GG F?BJ?J? GMEEL?JFCGC?JL? :?C=B?GD?LL?G RM ?CG?J :?C=B?GD?LL? RMK;FF?GA?@WAL O?J>?G KHEE?G# FWKK?GNHJB?J ;EE? 4MEEL?JFCGC?JMGAK$:?C=B?G ?GL@?JGL O?J>?G% -?J .JA?<GCK$6LJCGA OWJ>? KHGKL CFF?J G;=B >?F?JKL?G 4MEER?C=B?G ?G>?G# ?A;E OC? NC?E? :?C=B?GD?LL?G 6C? RMK;FF?GBUGA?G% 6C? DVGG?G >C?K W<?JIJW@?G#CG>?F 6C? >C? +MKA;<? >?J 6QKL?FCG@HJF;LCHG?G CG ?CG?J :?C=B?GD?LL? RMK;FF?G@;KK?G MG> W<?J ?CG?3?KK;A? ,HP ;MKA?<?G%

3.6 Übung

! +JKL>EE>G 3B> >BG G>M>K 1JHC>DL! >JFBLL>EG 3B> FBL -BE?>

=>J (1.",MGDLBHG GetVolumeInformation :EE>

FS@EB<A>G .G?HJF:LBHG>G QM .AJ>F 5MJQ>EN>JQ>B<AGBK

)'9! MG= Q>B@>G 3B> =B>K> BG >BG>F ,>GKL>J :G#

" +JO>BL>JG 3B> .AJ ,>GKL>J MF =B> (GQ>B@> =>J

*HII>EDEB<D"8>BL =>J 0:MK#

# />@>G 3B> FBLL>EK =>J (1.",MGDLBHG RoundRect ABG"

L>J =B>K> .G?HJF:LBHGK:GQ>B@> >BG 2><AL><D FBL :;"

@>JMG=>L>G +<D>G# *:K 2><AL><D KHEE K<AO:JQ MF"

J:G=>L MG= ;E:M @>?TEEL K>BG# 4HF ,>GKL>JJ:G= KHEE

>BG (;KL:G= NHG %$ 1BP>E ;>KL>A>G MG= =B> +<D>G

KHEE>G FBL &$ 1BP>E BG 6" MG= 7"2B<ALMG@ :;@>JMG=>L

K>BG# *B> /:;>EK! =B> =:J:M? :G@>Q>B@L O>J=>G! KHEE>G

>BG>G LJ:GKI:J>GL>G -BGL>J@JMG= >JA:EL>G! KH =:R

GMJ =B> 3<AJB?L QM K>A>G BKL#

Notizen