a oe@sddlZddlZddlmZddlmZmZmZmZddl m Z ej dddddd ej d dd ddd e d dddd gGdddZ GdddZddZddZedkrddlZejjedejvreeneedS)N) universal)DispatchDispatchWithEvents constantsgencache) COMExceptionz&{00020813-0000-0000-C000-000000000046}T)Z bForDemandz&{2DF8D04C-5BFA-101B-BDE5-00AA0044DE52}z&{AC0714F2-3D04-11D1-AE7D-00A0C90F26F4}_IDTExtensibility2c@seZdZddZdS) ButtonEventcCs$ddl}ddl}|dd|j|S)NrzHello from Pythonz Python Test)win32conwin32uiZ MessageBoxZ MB_OKCANCEL)selfZbuttoncancelr rr:C:\Program Files\Certbot\pkgs\win32com\demos\excelAddin.pyOnClickGszButtonEvent.OnClickN)__name__ __module__ __qualname__rrrrrr Fsr c@sXeZdZdgZgZejZdZdZ dZ ddZ ddZ d d Z d d Zd dZddZdS) ExcelAddinr z&{C5482ECA-F559-45A0-B078-B2036E6F011A}zPython.Test.ExcelAddinz)win32com.server.policy.EventHandlerPolicycCs d|_dS)N) appHostApp)rrrr__init__WszExcelAddin.__init__c Cstd||||zl||_|jjjdtjtjdd}|jjtjdd}t |t }|_ tj |_ d|_d|_d|_d |_d|_Wntjy}zp|j\}} } } td || f| durtd n4| \} } }}}}td | td |td||fWYd}~n d}~00dS)N OnConnection PythonBarT)NameZPositionZMenuBarZ TemporaryZ Greetings)TypeZ Parameterz&PythonzPython rules the WorldZ34z&The Excel call failed with code %d: %sz&There is no extended error informationzThe source of the error iszThe error message isz$More info can be found in %s (id=%d))printr CommandBarsZAddrZ msoBarTopZmsoBarTypeNormalZControlsZmsoControlButtonrr Z toolbarButtonZmsoButtonCaptionZStyleZ BeginGroupZCaptionZ TooltipTextZWidthZVisible pythoncomZ com_errorargs)rZ applicationZ connectModeZaddincustomZcbcMyBarZ btnMyButtonZxxx_todo_changemehrmsgexcargZwcodesourcetextZhelpFileZhelpIdZscoderrrrZs<     zExcelAddin.OnConnectioncCs td|jdjd|_dS)NOnDisconnectionr)rrrZDelete)rmoder"rrrr){szExcelAddin.OnDisconnectioncCstd|dS)NOnAddInsUpdaterrr"rrrr+szExcelAddin.OnAddInsUpdatecCstd|dS)NOnStartupCompleter,r-rrrr.szExcelAddin.OnStartupCompletecCstd|dS)NOnBeginShutdownr,r-rrrr/szExcelAddin.OnBeginShutdownN)rrrZ_com_interfaces_Z_public_methods_r ZCLSCTX_INPROC_SERVERZ _reg_clsctx_Z _reg_clsid_ _reg_progid_Z_reg_policy_spec_rrr)r+r.r/rrrrrOs!rcCsxddl}||jd}|||j}||dd|jd||dd|jd||dd|jd||dd|jd dS) Nrz&Software\Microsoft\Office\Excel\AddinsZCommandLineSafeZ LoadBehaviorr Z Descriptionz Excel AddinZ FriendlyNamezA Simple Excel Addin)winreg CreateKeyHKEY_CURRENT_USERr0 SetValueEx REG_DWORDREG_SZ)klassr1keyZsubkeyrrr RegisterAddinsr9cCs8ddl}z||jd|jWnty2Yn0dS)Nrz'Software\Microsoft\Office\Excel\Addins\)r1 DeleteKeyr3r0 WindowsError)r7r1rrrUnregisterAddins r<__main__z --unregister)sysr Zwin32comrZwin32com.clientrrrrZwin32com.server.exceptionrZ EnsureModuleZRegisterInterfacesr rr9r<rZwin32com.server.registerZserverregisterZUseCommandLineargvrrrr1s.      ;