Skip to content

Instantly share code, notes, and snippets.

@kumatti1
kumatti1 / Module1.bas
Last active August 29, 2015 14:20
関数ポインタ実行すんねん(・∀・)
Option Explicit
Private Declare PtrSafe _
Function SE_GetProcAddressIgnoreIncExc Lib "apphelp.dll" ( _
ByRef arg1 As Long, _
ByVal arg2 As LongPtr, _
ByRef arg3 As String _
) As Long
Private Declare PtrSafe _
@kumatti1
kumatti1 / Module1.bas
Created May 9, 2015 21:51
IWebBrowser_Navigate2
Option Explicit
Private Declare PtrSafe _
Function IWebBrowser_Navigate2 Lib "shlwapi.dll" Alias "#575" ( _
ByVal IE As Object, _
ByVal url As LongPtr, _
ByVal Flags As LongPtr, _
ByVal TargetFrameName As LongPtr, _
ByVal PostData As LongPtr, _
ByVal Headers As LongPtr _
@kumatti1
kumatti1 / Module2.bas
Last active August 29, 2015 14:20
IUnknown_QueryServiceForWebBrowserApp
Option Explicit
Private Type GUID
Data1 As Long
Data2 As Integer
Data3 As Integer
Data4(0 To 7) As Byte
End Type
Private Declare PtrSafe _
Option Explicit
Private Declare PtrSafe _
Function IWebBrowser_Navigate2 Lib "shlwapi.dll" Alias "#575" ( _
ByVal IE As Object, _
ByVal url As LongPtr, _
ByVal Flags As LongPtr, _
ByVal TargetFrameName As LongPtr, _
ByVal PostData As LongPtr, _
ByVal Headers As LongPtr _
@kumatti1
kumatti1 / Module2.bas
Created May 13, 2015 21:31
配列の初期化チェック
Option Explicit
Private Declare PtrSafe _
Function VarPtr Lib "vbe7.dll" ( _
ByRef arr() As Any _
) As LongPtr
Private Declare PtrSafe _
Sub RtlMoveMemory Lib "Kernel32.dll" ( _
ByRef Destination As Any, _
@kumatti1
kumatti1 / Module4.bas
Last active January 8, 2021 04:13
Endステートメント
Option Explicit
Private Declare PtrSafe Function GetModuleHandle Lib "kernel32" Alias "GetModuleHandleA" (ByVal lpModuleName As String) As LongPtr
Private Declare PtrSafe Function GetProcAddress Lib "kernel32" (ByVal hModule As LongPtr, ByVal lpProcName As String) As LongPtr
Private Declare PtrSafe _
Function DispCallFunc Lib "OleAut32.dll" ( _
ByVal pvInstance As LongPtr, _
ByVal oVft As LongPtr, _
ByVal cc_ As Long, _
ByVal vtReturn As Integer, _
@kumatti1
kumatti1 / Module5.bas
Created May 15, 2015 22:55
Eraseステートメント
Option Explicit
Private Declare PtrSafe _
Function vbaErase Lib "msvbvm60.dll" Alias "#213" ( _
ByRef arg1 As Variant, _
ByVal arg2 As LongPtr _
) As Long
Sub foo()
@kumatti1
kumatti1 / Module7.bas
Last active August 29, 2015 14:21
__vbaInStr
Option Explicit
Private Type GUID
Data1 As Long
Data2 As Integer
Data3 As Integer
Data4(0 To 7) As Byte
End Type
@kumatti1
kumatti1 / Module2.bas
Last active November 3, 2018 09:47
内部関数呼び出し
Option Explicit
Private Declare PtrSafe Function GetModuleHandle Lib "kernel32" Alias "GetModuleHandleA" (ByVal lpModuleName As String) As LongPtr
Private Declare PtrSafe Function GetProcAddress Lib "kernel32" (ByVal hModule As LongPtr, ByVal lpProcName As String) As LongPtr
Private Declare PtrSafe _
Function DispCallFunc Lib "OleAut32.dll" ( _
ByVal pvInstance As LongPtr, _
ByVal oVft As LongPtr, _
ByVal cc_ As Long, _
ByVal vtReturn As Integer, _
@kumatti1
kumatti1 / Module1.bas
Created May 23, 2015 22:42
Nameステートメントを直で呼び出す
Option Explicit
Private Declare PtrSafe Function GetModuleHandle Lib "kernel32" Alias "GetModuleHandleA" (ByVal lpModuleName As String) As LongPtr
Private Declare PtrSafe Function GetProcAddress Lib "kernel32" (ByVal hModule As LongPtr, ByVal lpProcName As String) As LongPtr
Private Declare PtrSafe _
Function DispCallFunc Lib "OleAut32.dll" ( _
ByVal pvInstance As LongPtr, _
ByVal oVft As LongPtr, _
ByVal cc_ As Long, _
ByVal vtReturn As Integer, _