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;..