pemrograman api

18
PEMROGRAMAN API - PERTEMUAN 3 -

Upload: frey

Post on 21-Mar-2016

51 views

Category:

Documents


0 download

DESCRIPTION

PEMROGRAMAN API. - PERTEMUAN 3 -. API parameter types. Terdapat parameter yang asing seperti VOID , LPCSTR or DWORD . Bila anda familiar dengan C, maka anda mustinya sudah mengetahui tipe tersebut. API parameter types. Contoh lain adalah HWND , HDC , HMENU - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: PEMROGRAMAN API

PEMROGRAMAN API

- PERTEMUAN 3 -

Page 2: PEMROGRAMAN API

API parameter types Terdapat parameter yang asing

seperti VOID, LPCSTR or DWORD.

Bila anda familiar dengan C, maka anda mustinya sudah mengetahui tipe tersebut

Page 3: PEMROGRAMAN API

API parameter types Contoh lain adalah HWND, HDC, HMENU

Kesemuanya diawali dengan huruf “H”, yang artinya adalah handle untuk tipe object yang berbeda

Page 4: PEMROGRAMAN API

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

Page 5: PEMROGRAMAN API

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

Page 6: PEMROGRAMAN API

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

Page 7: PEMROGRAMAN API

API parameter types Untuk type NULL. Biasanya dipassing

sebagai ByVal 0& atau sebagai vbNullString.

Untuk type VOID. Ingatlah deklarasi haruslah berbentuk Sub.

Page 8: PEMROGRAMAN API

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

Page 9: PEMROGRAMAN API

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

Page 10: PEMROGRAMAN API

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)

Page 11: PEMROGRAMAN API

AnyCONTOH:

Call SendMessage( Me.Hwnd,

WM_XXXX, 0&, ByVal LongValue

)

Page 12: PEMROGRAMAN API

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

Page 13: PEMROGRAMAN API

Any Lebih mudah bila kita membuat beberapa

versi dari satu fungsi yang sama. Penting untuk pemanggilan yang berbeda

Page 14: PEMROGRAMAN API

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

Page 15: PEMROGRAMAN API

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

Page 16: PEMROGRAMAN API

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.

Page 17: PEMROGRAMAN API

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.

Page 18: PEMROGRAMAN API

- QUESTION ? -