a oe@sddlZddlZddlZddlZddlZddlZddlZddlZddlZddl m Z ddlm Z ddlm Z ddl mZddlmZdZddlZeZGdddZGd d d Zd d Zed kreeedS)N) str2bytes)Unicode) storagecon) axcontrol) CheckCleanc@s`eZdZgdZejgZdddZddZddZ dd d Z d d Z ddZ ddZ ddZdS) LockBytes)ReadAtWriteAtFlushSetSize LockRegion UnlockRegionStatcCs t||_t|_t|_t|_dSN)rdatanowctimemtimeatimeselfrr:C:\Program Files\Certbot\pkgs\win32com\test\testPersist.py__init__%s zLockBytes.__init__cCstd|j|||}|S)Nr)printr)roffsetcbresultrrrr+szLockBytes.ReadAtcCstdt|tdtt|tdt|j|krL|jd||}tt|t|j|t|kr||j|t|d}tt|||_t|S)NzWriteAt zlen zdata:r)rstrlenr)rrrnewdatarrrr 0s  zLockBytes.WriteAtrcCs8tdt|tjtd}t|d|j t S)Nr z persist.docwb) rrospathjoinwin32apiZ GetTempPathopenwriterS_OK)rZ whatsthisfnamerrrr >szLockBytes.FlushcCsRtdt||t|jkr>|jtd|t|j|_n|jd||_tS)NzSet Sizer)rrr rrr))rsizerrrr Ds  zLockBytes.SetSizecCs tddS)Nr rrrr,Zlocktyperrrr LszLockBytes.LockRegioncCs tddS)Nr r-r.rrrr OszLockBytes.UnlockRegionc CsHtdt|dtjt|j|j|j|jtj tj Btj Btj dddf S)Nzreturning Stat Z PyMemBytesz&{00020905-0000-0000-C000-000000000046}r) rrrZSTGTY_LOCKBYTESr rrrr STGM_DIRECTSTGM_READWRITE STGM_CREATESTGM_SHARE_EXCLUSIVE)rZstatflagrrrrRszLockBytes.StatN)r)r)__name__ __module__ __qualname___public_methods_ pythoncomIID_ILockBytes_com_interfaces_rrr r r r r rrrrrrs   rc@sfeZdZgdZejgZdddZddZddZ d d Z d d Z d dZ ddZ ddZddZdS) OleClientSite) SaveObject GetMoniker GetContainer ShowObject OnShowWindowRequestNewObjectLayoutrcCsd|_d|_dSr)IPersistStorageIStoragerrrrrnszOleClientSite.__init__cCs ||_dSr)rA)rrArrrSetIPersistStoragersz OleClientSite.SetIPersistStoragecCs ||_dSr)rB)rrBrrr SetIStorageuszOleClientSite.SetIStoragecCs<td|jdkr8|jdkr8|j|jd|jdtS)Nr;r)rrArBSaveZCommitr)rrrrr;xs  zOleClientSite.SaveObjectcCs tdt|dt|dS)Nz GetMoniker  rr)rZdwAssignZdwWhichMonikerrrrr<szOleClientSite.GetMonikercCs tddS)Nr=r-rGrrrr=szOleClientSite.GetContainercCs tddSNr>r-rGrrrr>szOleClientSite.ShowObjectcCstdt|dSrJrI)rZfShowrrrr?szOleClientSite.OnShowWindowcCs tddS)Nr@r-rGrrrr@sz$OleClientSite.RequestNewObjectLayoutN)r)r3r4r5r6rIID_IOleClientSiter9rrCrDr;r<r=r>r?r@rrrrr:cs r:c Csftjjttj}t|tj tj Btj Btj Bd}t }tjj|tj}tdtjdd||}t}|}|dd|d|d|||ddtj|tj}|tj}|||||} t d D]} | !d | q|j"} t t#| D].} | d | | j$_%d d | | | j$_&q |'|d|(|)|j*+dS)Nrz&{00020906-0000-0000-C000-000000000046})rZOTPythonz This is CoolZ OTPython2Z ThisisCool2 zHello from Python %d rE ),win32comZserverutilwraprr7r8ZStgCreateDocfileOnILockBytesrr/r1r0r2r:rrKZ OleCreateZIID_IOleObjectwin32uiZ GetMainFrameZ GetSafeHwndZ SetHostNamesZDoVerbZ GetWindowRectZclientZDispatchZQueryInterfaceZ IID_IDispatchZIID_IPersistStoragerCrDZRangerangeZ InsertAfterZ Paragraphsr ZFontZ ColorIndexZSizerFZHandsOffStorager Z ApplicationZQuit) ZlbcomZstcomZocsZocscomZoocomZmfZhwnddocZdpcomZwrangeiZparasrrrtestsX         rW__main__)r#r7Z pywintypesr&rPZwin32com.clientZwin32com.client.dynamicZwin32com.server.utilrSZpywin32_testutilrrrZwin32com.axcontrolrZwin32com.test.utilrr)Z win32timezonerrr:rWr3ZCoUninitializerrrrs.     J,U