Outlook日历项目剪贴板格式文档?

时间:2019-07-11 19:47:31

标签: winapi outlook clipboard clipboard-interaction

短版

Outlook RenPrivateAppointment剪贴板格式上是否有用于转移约会的文档?

长版

提醒一下,对于剪贴板上的任何内容,源应用程序都可以多种不同格式显示数据。接收者可以按顺序浏览列表,并决定最了解哪种格式。

对于我的Outlook约会,格式为:

  • 0: "RenPrivateSourceFolder" (IStream)
  • 1: "RenPrivateMessages" (IStream)
  • 2: "RenPrivateItem" (HGlobal)
  • 3: "FileGroupDescriptor" (HGlobal)
  • 4: CFSTR_FILEDESCRIPTOR (HGlobal)
  • 5: CFSTR_FILENAME (文件)
  • 6: CFSTR_FILECONTENTS (IStream,IStorage)
  • 7: "Object Descriptor" (HGlobal)
  • 8: "RenPrivateAppointment" (IStream)
  • 9: CF_TEXT (HGlobal)
  • 10: CF_UNICODETEXT (HGlobal)

查看各种格式的内容,最有前途的外观类似于 RenPrivateAppointment 格式:

01 00 00 00 C0 C8 1E 0D   60 CE 1E 0D 01 00 00 00    ....ÀÈ.`Î......
6A CB 1E 0D 79 CB 1E 0D   41 00 00 00 41 73 6B 20    jË..yË..A...Ask 
71 75 65 73 74 69 6F 6E   20 61 62 6F 75 74 20 61    question about a
70 70 6F 69 6E 74 6D 65   6E 74 20 63 6C 69 70 62    ppointment clipb
6F 61 72 64 20 66 6F 72   6D 61 74 20 6F 6E 20 53    oard format on S
74 61 63 6B 6F 76 65 72   66 6C 6F 77 00 02 00 00    tackoverflow...
00 02 00 00 00 18 00 00   00 00 00 00 00 BC B9 6E    ............¼¹n
9C 12 F8 D3 43 AC B7 74   81 5E F0 3D FC 04 D2 97    œ.øÓC¬·t.^ð=ü.Ò—
00 00 00 00 00 00 00 00   00 02 00 00 00 00 00 00    ...............
00 01 00 00 00 00 00 00   00 00 00 00 00 00 00 00    ................
00 FF 92 81 02 41 00 73   00 6B 00 20 00 71 00 75    .ÿ’.A.s.k. .q.u
00 65 00 73 00 74 00 69   00 6F 00 6E 00 20 00 61    .e.s.t.i.o.n. .a
00 62 00 6F 00 75 00 74   00 20 00 61 00 70 00 70    .b.o.u.t. .a.p.p
00 6F 00 69 00 6E 00 74   00 6D 00 65 00 6E 00 74    .o.i.n.t.m.e.n.t
00 20 00 63 00 6C 00 69   00 70 00 62 00 6F 00 61    . .c.l.i.p.b.o.a
00 72 00 64 00 20 00 66   00 6F 00 72 00 6D 00 61    .r.d. .f.o.r.m.a
00 74 00 20 00 6F 00 6E   00 20 00 53 00 74 00 61    .t. .o.n. .S.t.a
00 63 00 6B 00 6F 00 76   00 65 00 72 00 66 00 6C    .c.k.o.v.e.r.f.l
00 6F 00 77 00 00 00 01   00 00 00 00 00 FF FF FF    .o.w.........ÿÿÿ
FF                                                   ÿ

其中一些可以解释:

剪贴板格式“ RenPrivateAppointment”

01 00 00 00               ; always 0x00000001 (Version 1?)
C0 C8 1E 0D               ; Start day of appt.  minutes from 1/1/1601 0x0D1EC8C0 = 220,121,280 minutes = 7/11/2019 12:00 am
60 CE 1E 0D               ; End   day of appt.  minutes from 1/1/1601 0x0D1ECE60 = 220,122,720 minutes = 7/12/2019 12:00 am
01 00 00 00               ; 0x00000001 (fixed)
6A CB 1E 0D               ; Start of appt.      minutes from 1/1/1601 0x0D1ECB6A = 220,121,962 minutes = 7/11/2019 11:22 am
79 CB 1E 0D               ; End of appt.        minutes from 1/1/1601 0x0D1ECB79 = 220,121,977 minutes = 7/11/2019 11:37 am

                          ; "Ask question about appointment clipboard format on Stackoverflow.\0"  
41 00 00 00               ; String length prefix, including null terminator (0x00000041 = 65 characters)
41 73 6B 20 71 75 65 73     Ask ques
74 69 6F 6E 20 61 62 6F     tion abo
75 74 20 61 70 70 6F 69     ut appoi
6E 74 6D 65 6E 74 20 63     ntment c
6C 69 70 62 6F 61 72 64     lipboard
20 66 6F 72 6D 61 74 20      format 
6F 6E 20 53 74 61 63 6B     on Stack
6F 76 65 72 66 6C 6F 77     overflow
00                          .

02 00 00 00               ; 0x0000002 = 2
02 00 00 00               ; 0x0000002 = 2

18 00 00 00               ; 0x00000018 = 24
00 00 00 00               ; 0x00000000 = 0
BC B9 6E 9C 12 F8 D3 43   ; always
AC B7 74 81 5E F0 3D FC   ; always
04 D2 97 00               ; varies (~32 ticks per day)  0x0097D204 = 9,949,700

00 00 00 00 
00 00 00 00 

02 00 00 00               ; 0x00000002 = 2
00 00 00 00 
01 00 00 00               ; 0x00000001 = 1
00 00 00 00 
00 00 00 00 
00 00 00 00 
FF 92 81 02               ; always 0x028192FF   

                          ; N"Ask question about appointment clipboard format on Stackoverflow\0"
41 00 73 00 6B 00 20 00 71 00 75 00 65 00 73 00    A.s.k. .q.u.e.s.
74 00 69 00 6F 00 6E 00 20 00 61 00 62 00 6F 00    t.i.o.n. .a.b.o.
75 00 74 00 20 00 61 00 70 00 70 00 6F 00 69 00    u.t. .a.p.p.o.i.
6E 00 74 00 6D 00 65 00 6E 00 74 00 20 00 63 00    n.t.m.e.n.t. .c.
6C 00 69 00 70 00 62 00 6F 00 61 00 72 00 64 00    l.i.p.b.o.a.r.d.
20 00 66 00 6F 00 72 00 6D 00 61 00 74 00 20 00     .f.o.r.m.a.t. .
6F 00 6E 00 20 00 53 00 74 00 61 00 63 00 6B 00    o.n. .S.t.a.c.k.
6F 00 76 00 65 00 72 00 66 00 6C 00 6F 00 77 00    o.v.e.r.f.l.o.w.
00 00                                              ..

01 00                     ; padding to DWORD

00 00 00 00 
FF FF FF FF               ; footer

是否有关于 RenPrivateAppointment 的文档,或其他任何允许用户进行丰富交互的格式?

注意:这不会自动执行Outlook。这正在处理Outlook放置在剪贴板上的IDataObject。我要检索:

  • 开始时间
  • 结束时间
  • 说明

另请参见

2 个答案:

答案 0 :(得分:1)

GitHub上有一个项目可以解析RenPrivateAppointment剪贴板格式:https://github.com/yasoonOfficial/outlook-dndprotocol

答案 1 :(得分:0)

未记录RenPrivateAppointment格式。您可以在DragDrop Event in Outlook Calendar主题中阅读有关该主题的信息,该主题具有VSTO团队成员的官方评论。另外,您可以查看Drag and Drop with Outlook页。