Artifact 92f6c63b4156f1a9ab0b6db61abbe97e41b28c7b:
- File
src/win32/richole.d
-
2015-05-05 06:49:05
- part of checkin
[9b639cf2d6]
on branch trunk
- Working version for update to 2.067.
The problem was __gshared. Replacing it with TLS fixed the issue. Remaining problem is that "hack.d"'s CloseHandle hack is not working anymore.
(user: kinaba) [annotate]
-
2015-05-05 06:49:05
- part of checkin
[9b639cf2d6]
on branch trunk
- Working version for update to 2.067.
0000: 2f 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a /*************** 0010: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a **************** 0020: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a **************** 0030: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a **************** 0040: 2a 2a 2a 2a 2a 2a 2a 2a 5c 0d 0a 2a 20 20 20 20 ********\..* 0050: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0060: 20 20 20 20 20 20 20 20 20 20 20 72 69 63 68 6f richo 0070: 6c 65 2e 64 20 20 20 20 20 20 20 20 20 20 20 20 le.d 0080: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0090: 20 20 20 2a 0d 0a 2a 20 20 20 20 20 20 20 20 20 *..* 00a0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 00b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 00c0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 00d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2a 0d *. 00e0: 0a 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .* 00f0: 20 20 20 20 20 20 20 20 20 57 69 6e 64 6f 77 73 Windows 0100: 20 41 50 49 20 68 65 61 64 65 72 20 6d 6f 64 75 API header modu 0110: 6c 65 20 20 20 20 20 20 20 20 20 20 20 20 20 20 le 0120: 20 20 20 20 20 20 20 20 20 2a 0d 0a 2a 20 20 20 *..* 0130: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0140: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0150: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0160: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0170: 20 20 20 20 2a 0d 0a 2a 20 20 20 20 20 20 20 20 *..* 0180: 20 20 20 20 20 20 20 20 20 54 72 61 6e 73 6c 61 Transla 0190: 74 65 64 20 66 72 6f 6d 20 4d 69 6e 47 57 20 57 ted from MinGW W 01a0: 69 6e 64 6f 77 73 20 68 65 61 64 65 72 73 20 20 indows headers 01b0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2a * 01c0: 0d 0a 2a 20 20 20 20 20 20 20 20 20 20 20 20 20 ..* 01d0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 01e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 01f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0200: 20 20 20 20 20 20 20 20 20 20 2a 0d 0a 2a 20 20 *..* 0210: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0220: 20 20 20 20 20 50 6c 61 63 65 64 20 69 6e 74 6f Placed into 0230: 20 70 75 62 6c 69 63 20 64 6f 6d 61 69 6e 20 20 public domain 0240: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 0250: 20 20 20 20 20 2a 0d 0a 5c 2a 2a 2a 2a 2a 2a 2a *..\******* 0260: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a **************** 0270: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a **************** 0280: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a **************** 0290: 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a 2a **************** 02a0: 2f 0d 0a 6d 6f 64 75 6c 65 20 77 69 6e 33 32 2e /..module win32. 02b0: 72 69 63 68 6f 6c 65 3b 0d 0a 0d 0a 70 72 69 76 richole;....priv 02c0: 61 74 65 20 69 6d 70 6f 72 74 20 77 69 6e 33 32 ate import win32 02d0: 2e 6f 62 6a 66 77 64 2c 20 77 69 6e 33 32 2e 6f .objfwd, win32.o 02e0: 62 6a 69 64 6c 2c 20 77 69 6e 33 32 2e 6f 6c 65 bjidl, win32.ole 02f0: 32 2c 20 77 69 6e 33 32 2e 75 6e 6b 6e 77 6e 2c 2, win32.unknwn, 0300: 0d 0a 20 20 77 69 6e 33 32 2e 77 69 6e 64 65 66 .. win32.windef 0310: 3b 0d 0a 70 72 69 76 61 74 65 20 69 6d 70 6f 72 ;..private impor 0320: 74 20 77 69 6e 33 32 2e 72 69 63 68 65 64 69 74 t win32.richedit 0330: 3b 20 2f 2f 20 66 6f 72 20 43 48 41 52 52 41 4e ; // for CHARRAN 0340: 47 45 0d 0a 0d 0a 61 6c 69 67 6e 28 34 29 3a 0d GE....align(4):. 0350: 0a 0d 0a 63 6f 6e 73 74 20 55 4c 4f 4e 47 0d 0a ...const ULONG.. 0360: 09 52 45 4f 5f 47 45 54 4f 42 4a 5f 4e 4f 5f 49 .REO_GETOBJ_NO_I 0370: 4e 54 45 52 46 41 43 45 53 20 3d 20 30 2c 0d 0a NTERFACES = 0,.. 0380: 09 52 45 4f 5f 47 45 54 4f 42 4a 5f 50 4f 4c 45 .REO_GETOBJ_POLE 0390: 4f 42 4a 20 3d 20 31 2c 0d 0a 09 52 45 4f 5f 47 OBJ = 1,...REO_G 03a0: 45 54 4f 42 4a 5f 50 53 54 47 20 3d 20 32 2c 0d ETOBJ_PSTG = 2,. 03b0: 0a 09 52 45 4f 5f 47 45 54 4f 42 4a 5f 50 4f 4c ..REO_GETOBJ_POL 03c0: 45 53 49 54 45 20 3d 20 34 2c 0d 0a 09 52 45 4f ESITE = 4,...REO 03d0: 5f 47 45 54 4f 42 4a 5f 41 4c 4c 5f 49 4e 54 45 _GETOBJ_ALL_INTE 03e0: 52 46 41 43 45 53 20 3d 20 37 2c 0d 0a 09 52 45 RFACES = 7,...RE 03f0: 4f 5f 43 50 5f 53 45 4c 45 43 54 49 4f 4e 20 3d O_CP_SELECTION = 0400: 20 2d 31 2c 0d 0a 09 52 45 4f 5f 49 4f 42 5f 53 -1,...REO_IOB_S 0410: 45 4c 45 43 54 49 4f 4e 20 3d 20 2d 31 2c 0d 0a ELECTION = -1,.. 0420: 09 52 45 4f 5f 49 4f 42 5f 55 53 45 5f 43 50 20 .REO_IOB_USE_CP 0430: 3d 20 2d 32 2c 0d 0a 09 52 45 4f 5f 4e 55 4c 4c = -2,...REO_NULL 0440: 20 3d 20 30 2c 0d 0a 09 52 45 4f 5f 52 45 41 44 = 0,...REO_READ 0450: 57 52 49 54 45 4d 41 53 4b 20 3d 20 30 78 33 46 WRITEMASK = 0x3F 0460: 2c 0d 0a 09 52 45 4f 5f 44 4f 4e 54 4e 45 45 44 ,...REO_DONTNEED 0470: 50 41 4c 45 54 54 45 20 3d 20 33 32 2c 0d 0a 09 PALETTE = 32,... 0480: 52 45 4f 5f 42 4c 41 4e 4b 20 3d 20 31 36 2c 0d REO_BLANK = 16,. 0490: 0a 09 52 45 4f 5f 44 59 4e 41 4d 49 43 53 49 5a ..REO_DYNAMICSIZ 04a0: 45 20 3d 20 38 2c 0d 0a 09 52 45 4f 5f 49 4e 56 E = 8,...REO_INV 04b0: 45 52 54 45 44 53 45 4c 45 43 54 20 3d 20 34 2c ERTEDSELECT = 4, 04c0: 0d 0a 09 52 45 4f 5f 42 45 4c 4f 57 42 41 53 45 ...REO_BELOWBASE 04d0: 4c 49 4e 45 20 3d 20 32 2c 0d 0a 09 52 45 4f 5f LINE = 2,...REO_ 04e0: 52 45 53 49 5a 41 42 4c 45 20 3d 20 31 2c 0d 0a RESIZABLE = 1,.. 04f0: 09 52 45 4f 5f 4c 49 4e 4b 20 3d 20 30 78 38 30 .REO_LINK = 0x80 0500: 30 30 30 30 30 30 2c 0d 0a 09 52 45 4f 5f 53 54 000000,...REO_ST 0510: 41 54 49 43 20 3d 20 30 78 34 30 30 30 30 30 30 ATIC = 0x4000000 0520: 30 2c 0d 0a 09 52 45 4f 5f 53 45 4c 45 43 54 45 0,...REO_SELECTE 0530: 44 20 3d 20 30 78 30 38 30 30 30 30 30 30 2c 0d D = 0x08000000,. 0540: 0a 09 52 45 4f 5f 4f 50 45 4e 20 3d 20 30 78 34 ..REO_OPEN = 0x4 0550: 30 30 30 30 30 30 2c 0d 0a 09 52 45 4f 5f 49 4e 000000,...REO_IN 0560: 50 4c 41 43 45 41 43 54 49 56 45 20 3d 20 30 78 PLACEACTIVE = 0x 0570: 32 30 30 30 30 30 30 2c 0d 0a 09 52 45 4f 5f 48 2000000,...REO_H 0580: 49 4c 49 54 45 44 20 3d 20 30 78 31 30 30 30 30 ILITED = 0x10000 0590: 30 30 2c 0d 0a 09 52 45 4f 5f 4c 49 4e 4b 41 56 00,...REO_LINKAV 05a0: 41 49 4c 41 42 4c 45 20 3d 20 30 78 38 30 30 30 AILABLE = 0x8000 05b0: 30 30 2c 0d 0a 09 52 45 4f 5f 47 45 54 4d 45 54 00,...REO_GETMET 05c0: 41 46 49 4c 45 20 3d 20 30 78 34 30 30 30 30 30 AFILE = 0x400000 05d0: 3b 0d 0a 0d 0a 65 6e 75 6d 20 7b 0d 0a 09 52 45 ;....enum {...RE 05e0: 43 4f 5f 50 41 53 54 45 20 3d 20 30 2c 0d 0a 09 CO_PASTE = 0,... 05f0: 52 45 43 4f 5f 44 52 4f 50 2c 0d 0a 09 52 45 43 RECO_DROP,...REC 0600: 4f 5f 43 4f 50 59 2c 0d 0a 09 52 45 43 4f 5f 43 O_COPY,...RECO_C 0610: 55 54 2c 0d 0a 09 52 45 43 4f 5f 44 52 41 47 20 UT,...RECO_DRAG 0620: 2f 2f 20 3d 20 34 0d 0a 7d 0d 0a 0d 0a 65 78 74 // = 4..}....ext 0630: 65 72 6e 20 28 43 29 20 65 78 74 65 72 6e 20 63 ern (C) extern c 0640: 6f 6e 73 74 20 47 55 49 44 0d 0a 09 49 49 44 5f onst GUID...IID_ 0650: 49 52 69 63 68 45 64 69 74 4f 6c 65 2c 0d 0a 09 IRichEditOle,... 0660: 49 49 44 5f 49 52 69 63 68 45 64 69 74 4f 6c 65 IID_IRichEditOle 0670: 43 61 6c 6c 62 61 63 6b 3b 0d 0a 0d 0a 73 74 72 Callback;....str 0680: 75 63 74 20 52 45 4f 42 4a 45 43 54 20 7b 0d 0a uct REOBJECT {.. 0690: 09 44 57 4f 52 44 20 20 20 20 20 20 20 20 20 20 .DWORD 06a0: 20 63 62 53 74 72 75 63 74 20 3d 20 52 45 4f 42 cbStruct = REOB 06b0: 4a 45 43 54 2e 73 69 7a 65 6f 66 3b 0d 0a 09 4c JECT.sizeof;...L 06c0: 4f 4e 47 20 20 20 20 20 20 20 20 20 20 20 20 63 ONG c 06d0: 70 3b 0d 0a 09 43 4c 53 49 44 20 20 20 20 20 20 p;...CLSID 06e0: 20 20 20 20 20 63 6c 73 69 64 3b 0d 0a 09 4c 50 clsid;...LP 06f0: 4f 4c 45 4f 42 4a 45 43 54 20 20 20 20 20 70 6f OLEOBJECT po 0700: 6c 65 6f 62 6a 3b 0d 0a 09 4c 50 53 54 4f 52 41 leobj;...LPSTORA 0710: 47 45 20 20 20 20 20 20 20 70 73 74 67 3b 0d 0a GE pstg;.. 0720: 09 4c 50 4f 4c 45 43 4c 49 45 4e 54 53 49 54 45 .LPOLECLIENTSITE 0730: 20 70 6f 6c 65 73 69 74 65 3b 0d 0a 09 53 49 5a polesite;...SIZ 0740: 45 4c 20 20 20 20 20 20 20 20 20 20 20 73 69 7a EL siz 0750: 65 6c 3b 0d 0a 09 44 57 4f 52 44 20 20 20 20 20 el;...DWORD 0760: 20 20 20 20 20 20 64 76 61 73 70 65 63 74 3b 0d dvaspect;. 0770: 0a 09 44 57 4f 52 44 20 20 20 20 20 20 20 20 20 ..DWORD 0780: 20 20 64 77 46 6c 61 67 73 3b 0d 0a 09 44 57 4f dwFlags;...DWO 0790: 52 44 20 20 20 20 20 20 20 20 20 20 20 64 77 55 RD dwU 07a0: 73 65 72 3b 0d 0a 7d 0d 0a 0d 0a 69 6e 74 65 72 ser;..}....inter 07b0: 66 61 63 65 20 49 52 69 63 68 45 64 69 74 4f 6c face IRichEditOl 07c0: 65 20 3a 20 49 55 6e 6b 6e 6f 77 6e 20 7b 0d 0a e : IUnknown {.. 07d0: 09 48 52 45 53 55 4c 54 20 47 65 74 43 6c 69 65 .HRESULT GetClie 07e0: 6e 74 53 69 74 65 28 4c 50 4f 4c 45 43 4c 49 45 ntSite(LPOLECLIE 07f0: 4e 54 53 49 54 45 2a 29 3b 0d 0a 09 4c 4f 4e 47 NTSITE*);...LONG 0800: 20 47 65 74 4f 62 6a 65 63 74 43 6f 75 6e 74 28 GetObjectCount( 0810: 29 3b 0d 0a 09 4c 4f 4e 47 20 47 65 74 4c 69 6e );...LONG GetLin 0820: 6b 43 6f 75 6e 74 28 29 3b 0d 0a 09 48 52 45 53 kCount();...HRES 0830: 55 4c 54 20 47 65 74 4f 62 6a 65 63 74 28 4c 4f ULT GetObject(LO 0840: 4e 47 2c 20 52 45 4f 42 4a 45 43 54 2a 2c 20 44 NG, REOBJECT*, D 0850: 57 4f 52 44 29 3b 0d 0a 09 48 52 45 53 55 4c 54 WORD);...HRESULT 0860: 20 49 6e 73 65 72 74 4f 62 6a 65 63 74 28 52 45 InsertObject(RE 0870: 4f 42 4a 45 43 54 2a 29 3b 0d 0a 09 48 52 45 53 OBJECT*);...HRES 0880: 55 4c 54 20 43 6f 6e 76 65 72 74 4f 62 6a 65 63 ULT ConvertObjec 0890: 74 28 4c 4f 4e 47 2c 20 52 45 46 43 4c 53 49 44 t(LONG, REFCLSID 08a0: 2c 20 4c 50 43 53 54 52 29 3b 0d 0a 09 48 52 45 , LPCSTR);...HRE 08b0: 53 55 4c 54 20 41 63 74 69 76 61 74 65 41 73 28 SULT ActivateAs( 08c0: 52 45 46 43 4c 53 49 44 2c 20 52 45 46 43 4c 53 REFCLSID, REFCLS 08d0: 49 44 29 3b 0d 0a 09 48 52 45 53 55 4c 54 20 53 ID);...HRESULT S 08e0: 65 74 48 6f 73 74 4e 61 6d 65 73 28 4c 50 43 53 etHostNames(LPCS 08f0: 54 52 2c 20 4c 50 43 53 54 52 29 3b 0d 0a 09 48 TR, LPCSTR);...H 0900: 52 45 53 55 4c 54 20 53 65 74 4c 69 6e 6b 41 76 RESULT SetLinkAv 0910: 61 69 6c 61 62 6c 65 28 4c 4f 4e 47 2c 20 42 4f ailable(LONG, BO 0920: 4f 4c 29 3b 0d 0a 09 48 52 45 53 55 4c 54 20 53 OL);...HRESULT S 0930: 65 74 44 76 61 73 70 65 63 74 28 4c 4f 4e 47 2c etDvaspect(LONG, 0940: 20 44 57 4f 52 44 29 3b 0d 0a 09 48 52 45 53 55 DWORD);...HRESU 0950: 4c 54 20 48 61 6e 64 73 4f 66 66 53 74 6f 72 61 LT HandsOffStora 0960: 67 65 28 4c 4f 4e 47 29 3b 0d 0a 09 48 52 45 53 ge(LONG);...HRES 0970: 55 4c 54 20 53 61 76 65 43 6f 6d 70 6c 65 74 65 ULT SaveComplete 0980: 64 28 4c 4f 4e 47 2c 20 4c 50 53 54 4f 52 41 47 d(LONG, LPSTORAG 0990: 45 29 3b 0d 0a 09 48 52 45 53 55 4c 54 20 49 6e E);...HRESULT In 09a0: 50 6c 61 63 65 44 65 61 63 74 69 76 61 74 65 28 PlaceDeactivate( 09b0: 29 3b 0d 0a 09 48 52 45 53 55 4c 54 20 43 6f 6e );...HRESULT Con 09c0: 74 65 78 74 53 65 6e 73 69 74 69 76 65 48 65 6c textSensitiveHel 09d0: 70 28 42 4f 4f 4c 29 3b 0d 0a 09 48 52 45 53 55 p(BOOL);...HRESU 09e0: 4c 54 20 47 65 74 43 6c 69 70 62 6f 61 72 64 44 LT GetClipboardD 09f0: 61 74 61 28 43 48 41 52 52 41 4e 47 45 2a 2c 20 ata(CHARRANGE*, 0a00: 44 57 4f 52 44 2c 20 4c 50 44 41 54 41 4f 42 4a DWORD, LPDATAOBJ 0a10: 45 43 54 2a 29 3b 0d 0a 09 48 52 45 53 55 4c 54 ECT*);...HRESULT 0a20: 20 49 6d 70 6f 72 74 44 61 74 61 4f 62 6a 65 63 ImportDataObjec 0a30: 74 28 4c 50 44 41 54 41 4f 42 4a 45 43 54 2c 20 t(LPDATAOBJECT, 0a40: 43 4c 49 50 46 4f 52 4d 41 54 2c 20 48 47 4c 4f CLIPFORMAT, HGLO 0a50: 42 41 4c 29 3b 0d 0a 7d 3b 0d 0a 61 6c 69 61 73 BAL);..};..alias 0a60: 20 49 52 69 63 68 45 64 69 74 4f 6c 65 20 4c 50 IRichEditOle LP 0a70: 52 49 43 48 45 44 49 54 4f 4c 45 3b 0d 0a 0d 0a RICHEDITOLE;.... 0a80: 69 6e 74 65 72 66 61 63 65 20 49 52 69 63 68 45 interface IRichE 0a90: 64 69 74 4f 6c 65 43 61 6c 6c 62 61 63 6b 20 3a ditOleCallback : 0aa0: 20 49 55 6e 6b 6e 6f 77 6e 20 7b 0d 0a 09 48 52 IUnknown {...HR 0ab0: 45 53 55 4c 54 20 47 65 74 4e 65 77 53 74 6f 72 ESULT GetNewStor 0ac0: 61 67 65 28 4c 50 53 54 4f 52 41 47 45 2a 29 3b age(LPSTORAGE*); 0ad0: 0d 0a 09 48 52 45 53 55 4c 54 20 47 65 74 49 6e ...HRESULT GetIn 0ae0: 50 6c 61 63 65 43 6f 6e 74 65 78 74 28 4c 50 4f PlaceContext(LPO 0af0: 4c 45 49 4e 50 4c 41 43 45 46 52 41 4d 45 2a 2c LEINPLACEFRAME*, 0b00: 20 4c 50 4f 4c 45 49 4e 50 4c 41 43 45 55 49 57 LPOLEINPLACEUIW 0b10: 49 4e 44 4f 57 2a 2c 20 4c 50 4f 4c 45 49 4e 50 INDOW*, LPOLEINP 0b20: 4c 41 43 45 46 52 41 4d 45 49 4e 46 4f 29 3b 0d LACEFRAMEINFO);. 0b30: 0a 09 48 52 45 53 55 4c 54 20 53 68 6f 77 43 6f ..HRESULT ShowCo 0b40: 6e 74 61 69 6e 65 72 55 49 28 42 4f 4f 4c 29 3b ntainerUI(BOOL); 0b50: 0d 0a 09 48 52 45 53 55 4c 54 20 51 75 65 72 79 ...HRESULT Query 0b60: 49 6e 73 65 72 74 4f 62 6a 65 63 74 28 4c 50 43 InsertObject(LPC 0b70: 4c 53 49 44 2c 20 4c 50 53 54 4f 52 41 47 45 2c LSID, LPSTORAGE, 0b80: 20 4c 4f 4e 47 29 3b 0d 0a 09 48 52 45 53 55 4c LONG);...HRESUL 0b90: 54 20 44 65 6c 65 74 65 4f 62 6a 65 63 74 28 4c T DeleteObject(L 0ba0: 50 4f 4c 45 4f 42 4a 45 43 54 29 3b 0d 0a 09 48 POLEOBJECT);...H 0bb0: 52 45 53 55 4c 54 20 51 75 65 72 79 41 63 63 65 RESULT QueryAcce 0bc0: 70 74 44 61 74 61 28 4c 50 44 41 54 41 4f 42 4a ptData(LPDATAOBJ 0bd0: 45 43 54 2c 20 43 4c 49 50 46 4f 52 4d 41 54 2a ECT, CLIPFORMAT* 0be0: 2c 20 44 57 4f 52 44 2c 20 42 4f 4f 4c 2c 20 48 , DWORD, BOOL, H 0bf0: 47 4c 4f 42 41 4c 29 3b 0d 0a 09 48 52 45 53 55 GLOBAL);...HRESU 0c00: 4c 54 20 43 6f 6e 74 65 78 74 53 65 6e 73 69 74 LT ContextSensit 0c10: 69 76 65 48 65 6c 70 28 42 4f 4f 4c 29 3b 0d 0a iveHelp(BOOL);.. 0c20: 09 48 52 45 53 55 4c 54 20 47 65 74 43 6c 69 70 .HRESULT GetClip 0c30: 62 6f 61 72 64 44 61 74 61 28 43 48 41 52 52 41 boardData(CHARRA 0c40: 4e 47 45 2a 2c 20 44 57 4f 52 44 2c 20 4c 50 44 NGE*, DWORD, LPD 0c50: 41 54 41 4f 42 4a 45 43 54 2a 29 3b 0d 0a 09 48 ATAOBJECT*);...H 0c60: 52 45 53 55 4c 54 20 47 65 74 44 72 61 67 44 72 RESULT GetDragDr 0c70: 6f 70 45 66 66 65 63 74 28 42 4f 4f 4c 2c 20 44 opEffect(BOOL, D 0c80: 57 4f 52 44 2c 20 50 44 57 4f 52 44 29 3b 0d 0a WORD, PDWORD);.. 0c90: 09 48 52 45 53 55 4c 54 20 47 65 74 43 6f 6e 74 .HRESULT GetCont 0ca0: 65 78 74 4d 65 6e 75 28 57 4f 52 44 2c 20 4c 50 extMenu(WORD, LP 0cb0: 4f 4c 45 4f 42 4a 45 43 54 2c 20 43 48 41 52 52 OLEOBJECT, CHARR 0cc0: 41 4e 47 45 2a 2c 20 48 4d 45 4e 55 2a 29 3b 0d ANGE*, HMENU*);. 0cd0: 0a 7d 3b 0d 0a 61 6c 69 61 73 20 49 52 69 63 68 .};..alias IRich 0ce0: 45 64 69 74 4f 6c 65 43 61 6c 6c 62 61 63 6b 20 EditOleCallback 0cf0: 4c 50 52 49 43 48 45 44 49 54 4f 4c 45 43 41 4c LPRICHEDITOLECAL 0d00: 4c 42 41 43 4b 3b 0d 0a LBACK;..