Code/C#
[C#] Register/Unregister ActiveX Control
Hide Code
2009. 3. 15. 19:00
regsvr32 acawebthumb.dll
regsvr32 /u acawebthumb.dll
regsvr32 /u acawebthumb.dll
using System;
using System.Runtime.InteropServices;
namespace WebThumbSample
{
class RegCOMServer
{
[DllImport("kernel32.dll")]
static extern bool FreeLibrary(IntPtr hModule);
[DllImport("kernel32.dll")]
static extern IntPtr LoadLibrary(string lpFilename);
[DllImport("kernel32.dll")]
static extern UIntPtr GetProcAddress(IntPtr hModule, string
lpProcName);
[DllImport("user32.dll")]
static extern IntPtr CallWindowProc(UIntPtr lpPrevWndFunc, IntPtr
hWnd, uint Msg, UIntPtr wParam, IntPtr lParam);
public static bool RegisterActiveX(string AXPath)
{
return RegAX(AXPath, true);
}
public static bool UnRegisterActiveX(string AXPath)
{
return RegAX(AXPath, false);
}
private static bool RegAX(string AXPath, bool Register)
{
IntPtr lb = IntPtr.Zero;
UIntPtr pa;
try
{
lb = LoadLibrary(AXPath);
if (Register)
{
pa = GetProcAddress(lb, "DllRegisterServer");
}
else
{
pa = GetProcAddress(lb, "DllUnregisterServer");
}
if (CallWindowProc(pa, IntPtr.Zero, 0, UIntPtr.Zero, IntPtr.Zero) == IntPtr.Zero)
{
return true;
}
else
{
return false;
}
}
catch (Exception ex)
{
throw (ex);
}
finally
{
FreeLibrary(lb);
}
}
}
}
using System.Runtime.InteropServices;
namespace WebThumbSample
{
class RegCOMServer
{
[DllImport("kernel32.dll")]
static extern bool FreeLibrary(IntPtr hModule);
[DllImport("kernel32.dll")]
static extern IntPtr LoadLibrary(string lpFilename);
[DllImport("kernel32.dll")]
static extern UIntPtr GetProcAddress(IntPtr hModule, string
lpProcName);
[DllImport("user32.dll")]
static extern IntPtr CallWindowProc(UIntPtr lpPrevWndFunc, IntPtr
hWnd, uint Msg, UIntPtr wParam, IntPtr lParam);
public static bool RegisterActiveX(string AXPath)
{
return RegAX(AXPath, true);
}
public static bool UnRegisterActiveX(string AXPath)
{
return RegAX(AXPath, false);
}
private static bool RegAX(string AXPath, bool Register)
{
IntPtr lb = IntPtr.Zero;
UIntPtr pa;
try
{
lb = LoadLibrary(AXPath);
if (Register)
{
pa = GetProcAddress(lb, "DllRegisterServer");
}
else
{
pa = GetProcAddress(lb, "DllUnregisterServer");
}
if (CallWindowProc(pa, IntPtr.Zero, 0, UIntPtr.Zero, IntPtr.Zero) == IntPtr.Zero)
{
return true;
}
else
{
return false;
}
}
catch (Exception ex)
{
throw (ex);
}
finally
{
FreeLibrary(lb);
}
}
}
}