Well, I've tried it all and it still doesn't work! The "GetProcAddress" still returns "0" as if it's not even recognizing that there is a function called "DllRegisterServer" which is impossible because if I open the DLL using WordPad I can find that exact text in there. Here's what I've got so far: 'API Declarations Private Declare Auto Function FreeLibrary Lib "kernel32.dll" (ByVal hLibModule As IntPtr) As Integer Private Declare Ansi Function LoadLibrary Lib "kernel32.dll" Alias "LoadLibraryA" (ByVal lpLibFileName As String) As IntPtr _ Private Function GetProcAddress2(ByVal hModule As IntPtr, ByVal lpProcName As String) As IntPtr End Function Private Declare Auto Function GetProcAddress Lib "kernel32.dll" (ByVal hModule As IntPtr, ByVal lpProcName As String) As IntPtr Private Declare Ansi Function CallWindowProc Lib "user32.dll" Alias "CallWindowProcA" (ByVal PrevWndFunc As IntPtr, ByVal hWnd As Integer, ByVal Msg As Integer, ByVal wParam As Integer, ByVal lParam As Integer) As Integer Public Function Register() As Boolean Dim hResult As Integer Dim hLib, hAddress As IntPtr hLib = Me.LoadLibrary(_Path) If (hLib.Equals(IntPtr.Zero)) Then Return False 'Failed to Load the Library Try 'Get the Address of the DllRegisterServer Function hAddress = Me.GetProcAddress2(hLib, "DllRegisterServer") If (hAddress.Equals(IntPtr.Zero)) Then Exit Try 'Execute the Function hResult = CallWindowProc(hAddress, 0, 0, 0, 0) Catch Finally 'Free the Library hResult = FreeLibrary(hLib) End Try End Function Any ideas?