1 / 18

PEMROGRAMAN API

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

frey
Download Presentation

PEMROGRAMAN API

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  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 ByVal0& 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 ? -

More Related