pemrograman api

Post on 21-Mar-2016

51 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

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

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

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

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

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

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

API parameter types Untuk type NULL. Biasanya dipassing

sebagai ByVal 0& atau sebagai vbNullString.

Untuk type VOID. Ingatlah deklarasi haruslah berbentuk Sub.

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

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

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)

AnyCONTOH:

Call SendMessage( Me.Hwnd,

WM_XXXX, 0&, ByVal LongValue

)

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

Any Lebih mudah bila kita membuat beberapa

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

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

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

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.

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.

- QUESTION ? -

top related