a „oeýã@sÜddlZddlZddlZddlZddlZddlZddlZddlZddlZddl m Z ddlm Z ddlm Z ddl mZddlmZdZddlZe ¡ZGdd„dƒZGd d „d ƒZd d „Zed krØeƒe ¡eƒdS)éN)Ú str2bytes)ÚUnicode)Ú storagecon)Ú axcontrol)Ú CheckCleanc@s`eZdZgd¢ZejgZddd„Zdd„Zdd„Z dd d „Z d d „Z dd„Z dd„Z dd„ZdS)Ú LockBytes)ÚReadAtÚWriteAtÚFlushÚSetSizeÚ LockRegionÚ UnlockRegionÚStatÚcCs t|ƒ|_t|_t|_t|_dS©N)rÚdataÚnowÚctimeÚmtimeÚatime©Úselfr©rú:C:\Program Files\Certbot\pkgs\win32com\test\testPersist.pyÚ__init__%s zLockBytes.__init__cCstdƒ|j|||…}|S)Nr)Úprintr)rÚoffsetÚcbÚresultrrrr+szLockBytes.ReadAtcCs¢tdt|ƒƒtdtt|ƒƒƒtdƒt|jƒ|krL|jd|…|}tt|ƒƒt|jƒ|t|ƒkrˆ||j|t|ƒd…}tt|ƒƒ||_t|ƒS)NzWriteAt zlen zdata:r)rÚstrÚlenr)rrrÚnewdatarrrr 0s  zLockBytes.WriteAtrcCs8tdt|ƒƒtj t ¡d¡}t|dƒ |j ¡t S)Nr z persist.docÚwb) rrÚosÚpathÚjoinÚwin32apiZ GetTempPathÚopenÚwriterÚS_OK)rZ whatsthisÚfnamerrrr >szLockBytes.FlushcCsRtdt|ƒƒ|t|jƒkr>|jtd|t|jƒƒ|_n|jd|…|_tS)NzSet Sizeúr)rrr rrr))rÚsizerrrr Ds  zLockBytes.SetSizecCs tdƒdS)Nr ©r©rrr,Zlocktyperrrr LszLockBytes.LockRegioncCs tdƒdS)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_DIRECTÚSTGM_READWRITEÚ STGM_CREATEÚSTGM_SHARE_EXCLUSIVE)rZstatflagrrrrRsõzLockBytes.StatN)r)r)Ú__name__Ú __module__Ú __qualname__Ú_public_methods_Ú pythoncomÚIID_ILockBytesÚ_com_interfaces_rrr r r r r rrrrrrs   rc@sfeZdZgd¢ZejgZddd„Zdd„Zdd„Z d d „Z d d „Z d d„Z dd„Z dd„Zdd„ZdS)Ú OleClientSite)Ú SaveObjectÚ GetMonikerÚ GetContainerÚ ShowObjectÚ OnShowWindowÚRequestNewObjectLayoutrcCsd|_d|_dSr)ÚIPersistStorageÚIStoragerrrrrnszOleClientSite.__init__cCs ||_dSr)rA)rrArrrÚSetIPersistStoragersz OleClientSite.SetIPersistStoragecCs ||_dSr)rB)rrBrrrÚ SetIStorageuszOleClientSite.SetIStoragecCs<tdƒ|jdkr8|jdkr8|j |jd¡|j d¡tS)Nr;ér)rrArBÚSaveZCommitr)©rrrrr;xs  zOleClientSite.SaveObjectcCs tdt|ƒdt|ƒƒdS)Nz GetMoniker ú ©rr)rZdwAssignZdwWhichMonikerrrrr<szOleClientSite.GetMonikercCs tdƒdS)Nr=r-rGrrrr=‚szOleClientSite.GetContainercCs tdƒdS©Nr>r-rGrrrr>…szOleClientSite.ShowObjectcCstdt|ƒƒdSrJrI)rZfShowrrrr?ˆszOleClientSite.OnShowWindowcCs tdƒdS)Nr@r-rGrrrr@‹sz$OleClientSite.RequestNewObjectLayoutN)r)r3r4r5r6rÚIID_IOleClientSiter9rrCrDr;r<r=r>r?r@rrrrr:cs r:c Csftjj tƒtj¡}t |tj tj Btj Btj Bd¡}t ƒ}tjj |tj¡}t dtjdd||¡}t ¡}| ¡}| dd¡| d|d|| ¡¡| dd¡tj | 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 CooléÿÿÿÿZ OTPython2Z ThisisCool2é zHello from Python %d rEé é),Úwin32comZserverÚutilÚwraprr7r8ZStgCreateDocfileOnILockBytesrr/r1r0r2r:rrKZ OleCreateZIID_IOleObjectÚwin32uiZ GetMainFrameZ GetSafeHwndZ SetHostNamesZDoVerbZ GetWindowRectZclientZDispatchZQueryInterfaceZ IID_IDispatchZIID_IPersistStoragerCrDZRangeÚrangeZ InsertAfterZ Paragraphsr ZFontZ ColorIndexZSizerFZHandsOffStorager Z ApplicationZQuit) ZlbcomZstcomZocsZocscomZoocomZmfZhwndÚdocZdpcomZwrangeÚiZparasrrrÚtest�sXÿÿþýú ú        rWÚ__main__)r#r7Z pywintypesr&rPZwin32com.clientZwin32com.client.dynamicZwin32com.server.utilrSZpywin32_testutilrrrZwin32com.axcontrolrZwin32com.test.utilrr)Z win32timezonerrr:rWr3ZCoUninitializerrrrÚs.     J,U