Presentasi sedang didownload. Silahkan tunggu

Presentasi sedang didownload. Silahkan tunggu

PEMROGRAMAN API - PERTEMUAN 3 -. API parameter types  Terdapat parameter yang asing seperti VOID, LPCSTR or DWORD.  Bila anda familiar dengan C, maka.

Presentasi serupa


Presentasi berjudul: "PEMROGRAMAN API - PERTEMUAN 3 -. API parameter types  Terdapat parameter yang asing seperti VOID, LPCSTR or DWORD.  Bila anda familiar dengan C, maka."— Transcript presentasi:

1 PEMROGRAMAN API - PERTEMUAN 3 -

2 API parameter types  Terdapat parameter yang asing seperti VOID, LPCSTR or DWORD.  Bila anda familiar dengan C, maka anda mustinya sudah mengetahui tipe tersebut

3 API parameter types  Contoh lain adalah HWND, HDC, HMENU  Kesemuanya diawali dengan huruf “H”, yang artinya adalah handle untuk tipe object yang berbeda

4 API parameter types  Misalnya HBITMAP adalah handle untuk BITMAP, HBRUSH adalah handle untuk BRUSH, dan lain-lain  Semuanya dikonversikan ke Long dan harus dipassingkan secara ByVal

5 API parameter types  Beberapa Type diawali dengan LP. Merupakan singkatan dari Long Pointer.  Jadi LPWORD sebenarnya adalah alokasi memori dimana data disimpan  Ketika anda memassing argumen dengan menggunakan ByRef (default), maka anda sebenarnya memassing alamat

6 API parameter types  Ingat, bila parameter type anda diawali dengan LP, maka anda harus memassingnya secara ByRef.  Tapi LPARAM adalah sama seperti Lparam, bukan LParam. Artinya dia bukan pointer. Anda harus memassingnya secara ByVal

7 API parameter types  Untuk type NULL. Biasanya dipassing sebagai ByVal 0& atau sebagai vbNullString.  Untuk type VOID. Ingatlah deklarasi haruslah berbentuk Sub.

8 Any  Beberapa messages mengandung parameter yang dideklarasikan sebagai Any.  Artinya parameter bisa bervariasi  Anda bisa memassing integer, string, user defined types, ataupun yang lainnya  Berikut ini adalah contoh function ( SendMessage ) yang mengandung parameter bertype Any

9 Any  Public Declare Function SendMessage Lib "User32" Alias "SendMessageA" ( ByVal Hwnd as Long, ByVal wMsg as Long, ByVal wParam as Long, lParam as Any ) as Long

10 Any  lParam dideklarasikan ByRef (default) sebagai Any.  Aturan yang harus diikuti bila memassing type berbeda kepada lParam. Numeric  ByVal (As Long, or As Any ) Null  ByVal (As Long, or As Any ) String  ByRef (As String, or As Any ) Type  ByRef (As Any ) array  of Type ByRef (As Any )

11 Any CONTOH: Call SendMessage (Me.Hwnd, WM_XXXX, 0&, ByVal LongValue )

12 Any  Tiga parameter pertama adalah standar. Karena dideklarasikan secara ByVal.  Parameter keempat ( LongValue ) jika dibiarkan, maka akan dilakukan secara ByRef. Sebab VB tidak mengenali parameter apa yang akan dipassing  Oleh karena itu, harus ditulis secara eksplisit ByVal di depannya

13 Any  Lebih mudah bila kita membuat beberapa versi dari satu fungsi yang sama.  Penting untuk pemanggilan yang berbeda

14 Any  Public Declare Function SendMessageLng Lib "User32" Alias "SendMessageA" (ByVal Hwnd as Long, ByVal wMsg as Long, ByVal wParam as Long, ByVal lParam as Long ) as Long

15 Any  Public Declare Function SendMessageStr Lib "User32" Alias "SendMessageA" (ByVal Hwnd as Long, ByVal wMsg as Long, ByVal wParam as Long, lParam as String ) as Long

16 Any  Perhatikan bahwa tipe parameter tidak mengubah API.  Parameter keempat adalah selalu 4-byte.  Ketika kita memassing nilai Long atau Null ByVal, 4-byte value akan dipassing secara langsung ke function.

17 Any  Namun apabila yang dipassing adalah String atau yang lainnya, maka yang terjadi adalah ByRef  sehingga VB sebenarnya memassing alamat dari variabel tersebut, yaitu nilai 4-byte value.

18 - QUESTION ? -


Download ppt "PEMROGRAMAN API - PERTEMUAN 3 -. API parameter types  Terdapat parameter yang asing seperti VOID, LPCSTR or DWORD.  Bila anda familiar dengan C, maka."

Presentasi serupa


Iklan oleh Google