namespace ActiveXCSharp { [ComVisible(true)] [ProgId("ActiveXCSharp.ButtonAx2")] [ComSourceInterfaces(typeof(IButtonAx2))] [ClassInterface(ClassInterfaceType.AutoDual)] public class ButtonAx2 : Button, IButtonAxInterface { // ptr to dll adapter private IntPtr _adapterDllPtr; private const uint DotNetButtonPressed = 0x0400; public ButtonAx2() { Application.EnableVisualStyles(); InitComEvents(); Click += ButtonAx2Click; } #region eventhandling private void InitComEvents() { ButtonClicked = ComEventButtonClicked; } public delegate void ButtonClickedEventHandler(); public event ButtonClickedEventHandler ButtonClicked; // Dummy Method to use when firing the event private void ComEventButtonClicked() { } private void FireButtonClickedEvent() { if (ButtonClicked != null) { ButtonClicked(); } } private void ButtonAx2Click(object sender, EventArgs e) { SendMessage(_adapterDllPtr.ToInt32(), DotNetButtonPressed, IntPtr.Zero, IntPtr.Zero); FireButtonClickedEvent(); } #endregion eventhandling #region IButtonAxInterface Member public void SetButtonCaption(String strNewCaption) { Text = strNewCaption; } public void SetAdapterDllPtr(IntPtr iAdapterDllPtr) { _adapterDllPtr = iAdapterDllPtr; } #endregion IButtonAxInterface Member [ComRegisterFunction] public static void RegisterClass(string key) { ... } [ComUnregisterFunction] public static void UnregisterClass(string key) { ... } #region MAPPING_OF_USER32_DLL_SECTION ... #endregion } }
void methodName(Type)
void methodName(String)
var
This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)