a „oeªã@sšddlZddlZddlZddlZddlZddlmZddlmZm Z d  ¡Z da d dd„Z Gdd„dƒZGd d „d ejƒZed kr–dd lmZe ¡dS)éN)Ú COMException)ÚNewEnumÚwrapzœGetData GetDataHere QueryGetData GetCanonicalFormatEtc SetData EnumFormatEtc DAdvise DUnadvise EnumDAdvisecCst||dd�S)Nr)ÚiidZ useDispatcher)r)Úobr©rúttjd�‚dS)Nrr!)rrrr$Z DV_E_DVASPECTrZ DV_E_TYMED)rrrr&r'r(r)rrrÚ QueryGetData>s    zTestDataObject.QueryGetDatacCsttjƒdS©N)ZRaiseCOMExceptionr$ZDATA_S_SAMEFORMATETCr-rrrÚGetCanonicalFormatEtcFsz$TestDataObject.GetCanonicalFormatEtccCsttjd�‚dSr+r,)rrZmediumrrrÚSetDataJszTestDataObject.SetDatacCs&|tjkrttjd�‚t|jtjd�S)Nr!r)rZ DATADIR_GETrr$r%rrr)rÚ directionrrrÚ EnumFormatEtcMs  zTestDataObject.EnumFormatEtccCsttjd�‚dSr+r,)rrÚflagsZsinkrrrÚDAdviseRszTestDataObject.DAdvisecCsttjd�‚dSr+r,)rZ connectionrrrÚ DUnadviseUszTestDataObject.DUnadvisecCsttjd�‚dSr+r,rrrrÚ EnumDAdviseXszTestDataObject.EnumDAdviseN)Ú__name__Ú __module__Ú __qualname__rÚIID_IDataObjectZ_com_interfaces_ÚIDataObject_MethodsZ_public_methods_rrrr*r.r/r1r2r4r6r7r8rrrrr s r c@sDeZdZdd„Zdd„Zdd„Zdd„Zd d „Zd d „Zd d„Z dS)ÚClipboardTestercCs t ¡dSr0)rZ OleInitializerrrrÚsetUp]szClipboardTester.setUpcCs&z t ¡Wntjy Yn0dSr0)rÚOleFlushClipboardZ com_errorrrrrÚtearDown`s zClipboardTester.tearDowncCs4tdƒ}t|tjd�}t |¡| t |¡¡dS)NóHello from Pythonr)r r rr<ÚOleSetClipboardÚ assertTrueZOleIsCurrentClipboard©rÚdorrrÚtestIsCurrentClipboardgs z&ClipboardTester.testIsCurrentClipboardcCshtdƒ}t|tjd�}t |¡t ¡t tj ¡}d}|  ||¡t tj ¡}|  |d¡t  ¡dS)NrBrzHello from Python) r r rr<rCÚwin32clipboardÚ OpenClipboardZGetClipboardDatarrÚ assertEqualrÚCloseClipboard)rrFÚgotZexpectedrrrÚtestComToWin32ms     zClipboardTester.testComToWin32cCs^d}t ¡t tj|¡t ¡t ¡}tjdtjdtj f}|  |¡}|j }|  |d¡dS)Ns Hello again!r s Hello again!) rHrIZSetClipboardDatarrrKrZOleGetClipboardrrr*ÚdatarD)rÚvalrFrZstgrLrrrÚtestWin32ToCom}sû zClipboardTester.testWin32ToComcCsHtdƒ}t|tjd�}t |¡| td¡d}t ¡| td¡dS)NrBrr r)r r rr<rCrJr r@rErrrÚtestDataObjectFlush“s  z#ClipboardTester.testDataObjectFlushcCsDtdƒ}t|ƒ}t |¡d}| td¡t d¡| td¡dS)NrBr r)r r rrCrJr rErrrÚtestDataObjectReset�s   z#ClipboardTester.testDataObjectResetN) r9r:r;r?rArGrMrPrQrRrrrrr>\s r>Ú__main__)Úutil)N)ZunittestrrHrr$Zwin32com.server.exceptionrZwin32com.server.utilrrÚsplitr=r r r ZTestCaser>r9Z win32com.testrTZtestmainrrrrÚs  EK