public static void Init()
        {
            //
            // Initialize DUser
            //

            INITGADGET ig = new INITGADGET();

            ig.cbSize      = 12;
            ig.nThreadMode = 1;
            ig.nMsgMode    = 2;
            ig.hctxShare   = 0;
            if (!InitGadgets(ig))
            {
                throw new DUserException(GetLastError(), "Unable to initialized DUser");
            }

            if (!InitBridge())
            {
                throw new DUserException(GetLastError(), "Unable to initialized DUser Bridge");
            }


            //
            // Initialize all of the DUser classes
            //

            BaseGadget.InitBaseGadget();
            MsgGadget.InitMsgGadget();
            Extension.InitExtension();
            DropTarget.InitDropTarget();
            Visual.InitVisual();
            Root.InitRoot();
        }
        public void RemoveHandler(int nMsg, BaseGadget vb)
        {
            uint hr = BaseGadgetRemoveHandler(nMsg, h(vb));

            if (f(hr))
            {
                throw new DUserException(hr);
            }
        }