// from vsshell.idl
        //cpp_quote("const GUID GUID_PropertyBrowser = { 0xeefa5220, 0xe298, 0x11d0, { 0x8f, 0x78, 0x0, 0xa0, 0xc9, 0x11, 0x0, 0x57 } };")

        public override void Dispose() {
            if (propertyBrowser != null) {
                // write the state of the alpha/cat buttons
                propertyBrowser.Dispose();
                propertyBrowser = null;
            }

            if (commandTarget != null) {
               commandTarget.Dispose();
               commandTarget = null;
            }
            
            base.Dispose();
        }
 private NativeMethods.IOleCommandTarget GetCommandTarget() {
     if (commandTarget == null) {
         commandTarget = new PbrsCommandTarget(this, (NativeMethods.IOleCommandTarget)base.GetService(typeof(NativeMethods.IOleCommandTarget)), (IVsMonitorSelection)base.GetService(typeof(IVsMonitorSelection)));
     }
     return commandTarget;
 }