HABIT IS POWER

习惯就是力量

0%

For a layman, What is the difference between 3G standars

作为一个通讯行业的门外汉,对于这段时间频频发布的XXX手机电信版本,不禁要问:

1、为什么需要单独针对电信版本的iPhone4,Lumia800?

2、这些3G标准或者说运营商们,到底哪个好?

先来简单回答下上面两个问题:

1、以iPhone为例,由于3G标准不同,支持WCDMA(联通)的手机是无法使用CDMA2000(电信)和TD-SCDMA(移动)的手机卡,这些卡片不单是大小不一样,类型都不一样:

SIM卡和UIM卡,所以针对不同的3G标准,必须推出不同的手机。

2、中国的3中3G标准中:

移动的TD-SCDMA还不成熟,不靠谱;

联通的WCDMA是目前全球最成熟和最先进的,理论速度最快,但价格比较贵;

电信的CDMA2000理论速度比联通的慢,但资费套餐更实在一点。但目前中国整体的3G网络建设还不完善,所以网速都相对比较慢,联通的网速优势也没有特别明显。

下面是一些更细节的比较:

3G, 3rd-generation,指的是第三代移动通信技术,在中国所用到的这三个标准中:

  1. WCDMA(联通)是目前技术最先进、最成熟的,这也是目前国外最普及的3G网络,所以像iPhone等3G手机都是优先出WCDMA的版本;
  2. 理论上WCDMA的网络速度是最快的,不过从目前我自己体验的来看,国内的3G网速还无法达到理论上的那么快,联通的3G速度确实要快一点但要贵不少;
  3. 综合目前国内的3G资费,大家也不太可能经常用3G来看高清在线视频,从我自己的体验来说联通和电信的3G速度差距还不算太大,电信的虽然慢一点,但基本需求还是够用的;
  4. CDMA2000(电信)由于可以由老的2G网络升级,目前的网络普及程度要好于联通的WCDMA,这就是为什么有人说小地方的联通3G信号不好的缘故;
  5. TD-SCDMA,国产3G还不够稳定,可用的手机也很少,还不够成熟(因为国外的手机厂商都是先有标准的受益者,行业中制定标准的才是大赢家,他们可不想中国自己搞出来的标准发展壮大);
  6. 携号转网还没普及,换个号码不容易,大家辛苦了

以上只是我这么一个门外汉在一阵搜索之后的一些收获和见解,不一定全部正确 :)

参考资料:

3G

WCDMA

CDMA2000

电信 CDMA 与联通 WCDMA 哪个更好?

MWC 2012:中国 3G 市场数据

到底选谁? 移动电信联通3G资费业务全对比

PS.

你可能还对LTE 4G网络感兴趣,可以看下这个:LTE 3GPP长期演进技术

从珠海九洲港出发,坐船去香港休闲一日游,下面是一些小提示,希望对没去过的人有帮助。

1、从九洲港坐船去香港的船票是可以网上购票的,特别是节假日期间,一定要提前网上订票。

2、从九洲港去香港的船分别到两个码头:中港城码头和港澳码头

中港城码头在尖沙咀,靠近天星码头、星光大道、尖沙咀地铁站;

从中港城去天星码头的路线:沿着广东道一路走到头就可以了;

港澳码头在港岛,上环,两个码头分别靠近两岸的天星码头(港岛那边叫中环码头7号码头);

3、从中港城码头去港澳码头怎么走
沿着广东道步行到天星码头(步行10分钟内,天星码头旁边的香港文化中心算是一个标志性建筑);

搭乘天星小轮到对岸7号码头;从7号码头沿着海边,往1号码头方向一路走,顺着民光街步行10分钟左右就能走到港澳码头。

4、从中港城码头去山顶怎么走

沿着广东道步行到天星码头(步行10分钟内,天星码头旁边的香港文化中心算是一个标志性建筑);

搭乘天星小轮到对岸,中环码头 7号码头;

从中环码头出发往山顶,见第6条提示

5、从港澳码头去山顶怎么走

沿着海边步行,顺着民光街步行10分钟左右就能走到中环码头

从中环码头出发往山顶,见第6条提示

6、从中环码头去山顶怎么走

6.1 方案一:搭缆车

在7号码头出口和8号码头出口中间的位置可以找到15C巴士站,搭乘15C巴士前往搭乘山顶缆车,港币$4.2,缆车可以直接使用八达通乘坐,单程$28,双程套票是$40

6.2 方案二:搭巴士上山

在5号码头出口附近可以找到15路巴士站,搭乘15路巴士可以直接抵达山顶,当然搭缆车要快一点

7、山顶的蜡像馆,爱因斯坦比较像,其他很多都不太像,拍照别开闪光,否则蜡人会反光,你懂的

Have fun :)

在WinRT下使用软键盘可能会出现“黑屏”的Bug,这个时候你需要特别留意下是不是使用错了InputPaneVisibilityEventArgs下面这个属性:

1
2
EnsuredFocusedElementInView
Read/write Identifies whether the application has taken steps to ensure that the input pane doesn't cover the UI element that has focus.

出现黑屏的问题,试试在InputPane的Showing事件处理时将EnsuredFocusedElementInView赋值为false

1
2
3
The InputPane class has the following events. 
Hiding Occurs when the input pane is about to be hidden by sliding out of view.
Showing Occurs when the input pane is about to be displayed by sliding into view.

两个相关的MSDN链接:

InputPane class

InputPaneVisibilityEventArgs class

比较推崇《Rework》中的小团队小公司,其实我自己也是从投入工作开始一直在经意或不经意地探寻着小团队的成功之道

且不论团队大小,团队成功的要素是什么?

成功的团队大多是相似,但失败的团队却各有各的不幸。

这些看似相似的成功经验,每个关键字都能写成一本书:定位、执行力、管理、成本控制……

那么小团队在这些很可能带来成功的因素上有什么优劣势呢?

1、定位

决策的团队不可能太多,也不能太多,团队总是要有人来领导,其他人要做的就是100%的信任,或者离开,所以这点上小团队和大团队不会有直接的高下之分。

2、执行力

我个人是一个GTD深度中毒者,我会尽可能的把任务分解,然后按优先级排序然后逐个执行,这是我的高效法则;

对于一个团队来说只要他还有着生命力,那么工作永远都是做不完的,那么无非还是一样:优先级;

假设团队成员的数量决定执行力的话那么小团队的缺点在于会做的比大团的慢,这也许是很多创业小团队在别人下班的时候还在干活的原因,因为他们人少;

但是,执行力并不是和人数的多少成正比!所以在这一点上我个人的观点是:取决于团队的目标,目标由小变大,人员也以应该有小变大,然后保持平衡;

老板们都希望自己手下有一支短小精干的小团队,就像《24》里的杰克鲍尔,执行力上,CTU的10人小团队,不会差于军队。

3、管理

……

4、成本控制、风险投资

……


结语

这篇随笔的草稿很早就写成了,但是一直想不到该如何续笔,也许未完成也是一种完成,完成了记录当时思考状态的文章。

我喜欢小团队,希望自己的小团队能够敏捷的输出好的产品和理念,2012年还有很多事情要做,小团队暂时只剩我一个人全职了,但会慢慢好起来的~

我调侃的跟lori说,等我一个人把Win8QQ写好了,我就可以升T4了,谁说不是呢!

但一个人注定不是团队,期待我的队友们归队的那一天。

最后,以海贼王的经典台词自勉:

“白痴!我根本就不会剑术!而且我也不会航海!更不会做菜!也不会说谎!不懂医术!不懂历史!不懂修船!不懂音乐!如果没有他们的帮助我根本活不下去!”

问题

在WinRT下,文件访问有着严格的限制,默认你只能访问Windows::Storage::ApplicationData::Current 下属的一些目录,连“我的文档”,“我的图片”都无法访问。

那么如果我们想从“我的图片”中选择一张图片并上传,我们应该怎么做呢?

我当时也找到了这个MSDN帖子:Access denied on Pictures library,但没有得到答案,最终我自己解决后回复如下:

If you want access a file in Document Library,you must follow:
1.select “Document Library Access” in “Capabilities” Tab of “.appxmanifest”
2.add “File Type Associations” in Declarations Tab of “.appxmanifest”

you can get sample from “File access sample”, which is one of “Windows Developer Preview Metro style app samples”

描述下我的解决方案:

  • 1、打开.appxmanifest文件,进入”Capabilities” Tab页,将”Picture Library Access”勾上
  • 2、打开.appxmanifest文件,进入”Declarations” Tab页,添加”File Type Associations”,并在右侧的**”Supported File Types”**中加上“.png”、”.jpg”等的文件类型支持。

这一步我自己也是后面自己查看后才发现的,一定要特别留意。

  • 3、有了上面两步,你就可以用Windows::Storage下的API进行访问和修改Picture Library下的文件了,不过你还是不能用Win32的API来访问下面的文件,怎么办呢?

方法还是有的:

用Windows::Storage下的CopyAsync方法先把文件复制到应用自己的目录下:Windows::Storage::ApplicationData::Current->TemporaryFolder,

在这个目录下的文件你就可以用CreateFile2、fopen等方法来访问了。

从Picture Library复制到App Temp目录下的代码就暂时不放出来了,除非有人需要,其实就是一堆的Lambda表达式

小结:

其实你在“Capabilities”中选择“Document Library Access”时,右边的文字提示对这个问题说的很清楚,只是大家一开始都没太留意,原来还有一个步骤要做:

The package can onle access file types in the documents library that are defined in the manifest
using the File Association Handler declaration.

原文:

Proviedes the capability to add, change, or delete files in the documents library. The package can onle access file
types in the documents library that are defined in the manifest using the File Association Handler declaration.
The package cannot access document libraryies on HomeGroup computers.

本文发表时Win8和VS2011还没正式发布,处于Developer Preview版本,之后的情况可能不是这样了

很多第三方库类似zlib,sqlite都是.c实现的,这些库如何用到WinRT中呢?

推荐的方法:

  • 1、在VS2011下新建一个Win32 Static lib工程,比如,我自己就是新建了一个叫做“3rdparty”的工程,然后把所有的第三方库添加进去,编译成一个lib,直接在Metro style apps中使用,用起来和Win32下一摸一样
  • 2、这个步骤是必须的:[http://msdn.microsoft.com/en-us/library/windows/apps/br230262(v=VS.85).aspx Validating your package on your local machine],你的应用必须通过了”Windows App Certification Kit”里的“Validate Metro style App”,你的第三方库使用才算是正常的

不推荐的方法

把.c文件移植成.cpp

可能存在的疑问:

  • 1、VS2011不能新建Win32工程
    Answer:

你用的是系统自带的Express版本,这个是没有的,要用完整版,从这里可以下载到:

Microsoft® Visual Studio® 11 Developer Preview (ISO)

  • 2、认证不通过
    Answer:

照着指引改吧,第三方库写的不好的话,改起来就会很痛苦;或者你等待Win8普及后第三方库作者更新代码。

本文属于转载,来源于MSDN:Win32 and COM for Metro style apps

特别注意:如果微软网站更新,请以微软网站为准!!本文数据更新于:2011/12/30

由于在中国访问这个链接太吃力,而这个链接又非常有用,所以,不得已,整合下微软个几个子页面,方便查找的同时也算是备份一下这个数据。

Win32 and COM for Metro style apps (data)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
[This documentation is preliminary and is subject to change.]
The following data access and storage APIs are supported for developing Metro style apps.
File Systems
CopyFile2
CreateDirectoryW
CreateFile2
CreateFileMappingW
DeleteFileW
FindClose
FindFirstFileExW
FindNextFileW
FlushFileBuffers
FlushViewOfFile
GetDiskFreeSpaceExW
GetFileAttributesExW
GetFileInformationByHandleEx
GetOverlappedResultEx
LockFileEx
MapViewOfFileEx
MoveFileExW
OpenFileMappingW
ReadFile
RemoveDirectoryW
SetEndOfFile
SetFileAttributesW
SetFileInformationByHandle
SetFilePointerEx
UnlockFileEx
UnmapViewOfFile
WriteFile
Jet
JetAddColumn
JetAttachDatabase2
JetBackupInstance
JetBeginSession
JetBeginTransaction3
JetCloseDatabase
JetCloseTable
JetCommitTransaction
JetCreateDatabase2
JetCreateIndex3
JetCreateInstance2
JetCreateTableColumnIndex4
JetDefragment2
JetDelete
JetDeleteColumn2
JetDeleteIndex
JetDeleteTable
JetDetachDatabase2
JetEndSession
JetEnumerateColumns
JetEscrowUpdate
JetGetBookmark
JetGetColumnInfo
JetGetCurrentIndex
JetGetDatabaseFileInfo
JetGetDatabaseInfo
JetGetErrorInfo
JetGetIndexInfo
JetGetRecordPosition
JetGetSecondaryIndexBookmark
JetGetSystemParameter
JetGetTableColumnInfo
JetGetTableIndexInfo
JetGetTableInfo
JetGetThreadStats
JetGotoBookmark
JetGotoPosition
JetGotoSecondaryIndexBookmark
JetIndexRecordCount
JetInit3
JetIntersectIndexes
JetMakeKey
JetMove
JetOpenDatabase
JetOpenTable
JetOpenTempTable2
JetOpenTempTable3
JetPrepareUpdate
JetPrereadKeys
JetRegisterCallback
JetRenameColumn
JetRenameTable
JetResetSessionContext
JetResetTableSequential
JetRestoreInstance
JetRetrieveColumn
JetRetrieveColumns
JetRetrieveKey
JetRollback
JetSeek
JetSetColumn
JetSetColumns
JetSetCurrentIndex4
JetSetIndexRange
JetSetSystemParameter
JetStopBackupInstance
JetTerm2
JetUnregisterCallback
JetUpdate2
XML
CreateXmlReader
CreateXmlReaderInputWithEncodingCodePage
CreateXmlReaderInputWithEncodingName
CreateXmlWriter
CreateXmlWriterOutputWithEncodingCodePage
CreateXmlWriterOutputWithEncodingName
IXMLHTTPRequest
IXMLHTTPRequest2
IXmlLoadCompletedDelegate
IXmlLoadCompletedHandler
IXmlReader
IXmlReaderInput
IXmlResolver
IXmlWriter
IXmlWriterOutput
Windows Data Access Components
IPlaylistCompletedEventHandler


Win32 and COM for Metro style apps (devices)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
[This documentation is preliminary and is subject to change.]
The following device-related APIs are supported for developing Metro style apps.
Device Access
CLSID_DeviceIoControl
CreateDeviceAccessInstance
ICreateDeviceAccessAsync
IDeviceIoControl
IDeviceRequestCompletionCallback
Radio
IRadioInstanceCollection
IRadioInstance
Sensors
IAccelerometerReadingChangedEventHandler
ICompassReadingChangedEventHandler
IInclinometerReadingChangedEventHandler
ILightSensorReadingChangedEventHandler
Windows Portable Devices
CLSID_PortableDevice
CLSID_PortableDeviceDispatchFactory
CLSID_PortableDeviceFTM
CLSID_PortableDeviceKeyCollection
CLSID_PortableDeviceManager
CLSID_PortableDevicePropVariantCollection
CLSID_PortableDeviceService
CLSID_PortableDeviceServiceFTM
CLSID_PortableDeviceValues
CLSID_PortableDeviceValuesCollection
IEnumPortableDeviceObjectIDs
IPortableDevice
IPortableDeviceCapabilities
IPortableDeviceContent
IPortableDeviceContent2
IPortableDeviceDataStream
IPortableDeviceDispatchFactory
IPortableDeviceEventCallback
IPortableDeviceKeyCollection
IPortableDeviceManager
IPortableDeviceProperties
IPortableDevicePropertiesBulk
IPortableDevicePropertiesBulkCallback
IPortableDevicePropVariantCollection
IPortableDeviceResources
IPortableDeviceService
IPortableDeviceServiceCapabilities
IPortableDeviceServiceManager
IPortableDeviceServiceMethodCallback
IPortableDeviceServiceMethods
IPortableDeviceValues
IPortableDeviceValuesCollection
IPortableDeviceUnitsStream
SMS
IDeleteSmsMessageCompletedEventHandler
IDeleteSmsMessagesCompletedEventHandler
IGetSmsMessageCompletedEventHandler
IGetSmsMessagesCompletedEventHandler
IGetSmsMessagesProgressEventHandler
IMaxMessagesReachedEventHandler
ISendSmsMessageCompletedEventHandler
ISmsBinaryMessageReceivedEventHandler
ISmsTextMessageReceivedEventHandler
ISmsDeviceStatusChangedEventHandler
Game Controllers
XInputEnable
XInputGetAudioEndpointIds
XInputGetBatteryInformation
XInputGetCapabilities
XInputGetKeystroke
XInputGetState
XInputSetState


Build date: 9/9/2011


Win32 and COM for Metro style apps (diagnostics)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
[This documentation is preliminary and is subject to change.]
The following diagnostics APIs are supported for developing Metro style apps.
Debugging and Error Handling
FormatMessageW
IsDebuggerPresent
OutputDebugStringW
RaiseException
RaiseFailFastException
Last Error
GetLastError
SetLastError
Windows Error Reporting
WerRegisterFile
WerRegisterMemoryBlock
WerUnregisterFile
WerUnregisterMemoryBlock
Windows Events
ControlTraceW
EnableTrace
FlushTraceW
GetTraceEnableFlags
GetTraceEnableLevel
GetTraceLoggerHandle
QueryTraceW
RegisterTraceGuidsW
TraceMessage
UnregisterTraceGuids
StartTraceW
StopTraceW


Build date: 9/9/2011


Win32 and COM for Metro style apps (graphics)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
[This documentation is preliminary and is subject to change.]
The following graphics APIs are supported for developing Metro style apps.
Direct2D
D2D1ConvertColorSpace
D2D1CreateFactory
D2D1InvertMatrix
D2D1IsMatrixInvertible
D2D1MakeRotateMatrix
D2D1MakeSkewMatrix
ID2D1AnalysisTransform
ID2D1Bitmap
ID2D1Bitmap1
ID2D1BitmapBrush
ID2D1BitmapRenderTarget
ID2D1BlendTransform
ID2D1BorderTransform
ID2D1Brush
ID2D1ColorContext
ID2D1CommandList
ID2D1CommandSink
ID2D1ComputeTransform
ID2D1ConcreteTransform
ID2D1DCRenderTarget
ID2D1Device
ID2D1DeviceContext
ID2D1DrawingStateBlock
ID2D1Effect
ID2D1EffectImpl
ID2D1EllipseGeometry
ID2D1Factory
ID2D1Factory1
ID2D1Geometry
ID2D1GeometryGroup
ID2D1GeometrySink
ID2D1GradientStopCollection
ID2D1GradientStopCollection1
ID2D1HwndRenderTarget
ID2D1Image
ID2D1ImageBrush
ID2D1Layer
ID2D1LinearGradientBrush
ID2D1Mesh
ID2D1OffsetTransform
ID2D1PathGeometry
ID2D1PathGeometry1
ID2D1PrintControl
ID2D1Properties
ID2D1RadialGradientBrush
ID2D1RectangleGeometry
ID2D1RenderInfo
ID2D1RenderTarget
ID2D1Resource
ID2D1ResourceTexture
ID2D1RoundedRectangleGeometry
ID2D1SimplifiedGeometrySink
ID2D1SolidColorBrush
ID2D1SourceTransform
ID2D1StrokeStyle
ID2D1StrokeStyle1
ID2D1TessellationSink
ID2D1Transform
ID2D1TransformedGeometry
ID2D1TransformGraph
ID2D1TransformNode
ID2D1VertexBuffer
Direct3D
CreateDXGIFactory1
D3D11CreateDevice
ID3D11Asynchronous
ID3D11AuthenticatedChannel
ID3D11BlendState
ID3D11BlendState1
ID3D11Buffer
ID3D11ClassInstance
ID3D11ClassLinkage
ID3D11CommandList
ID3D11ComputeShader
ID3D11Counter
ID3D11CryptoSession
ID3D11Debug
ID3D11DepthStencilState
ID3D11DepthStencilView
ID3D11Device
ID3D11Device1
ID3D11DeviceChild
ID3D11DeviceContext
ID3D11DeviceContext1
ID3D11DomainShader
ID3D11GeometryShader
ID3D11HullShader
ID3D11InfoQueue
ID3D11InputLayout
ID3D11PixelShader
ID3D11Predicate
ID3D11Query
ID3D11RasterizerState
ID3D11RasterizerState1
ID3D11RefDefaultTrackingOptions
ID3D11RefTrackingOptions
ID3D11RenderTargetView
ID3D11Resource
ID3D11SamplerState
ID3D11ShaderReflection
ID3D11ShaderReflectionConstantBuffer
ID3D11ShaderReflectionType
ID3D11ShaderReflectionVariable
ID3D11ShaderResourceView
ID3D11Texture1D
ID3D11Texture2D
ID3D11Texture3D
ID3D11TracingDevice
ID3D11UnorderedAccessView
ID3D11VertexShader
ID3D11VideoContext
ID3D11VideoDecoder
ID3D11VideoDecoderOutputView
ID3D11VideoDevice
ID3D11VideoProcessor
ID3D11VideoProcessorEnumerator
ID3D11VideoProcessorInputView
ID3D11VideoProcessorOutputView
ID3D11View
IDXGIAdapter
IDXGIAdapter1
IDXGIDebug
IDXGIDevice
IDXGIDevice1
IDXGIDevice2
IDXGIDeviceSubObject
IDXGIFactory
IDXGIFactory1
IDXGIFactory2
IDXGIInfoQueue
IDXGIKeyedMutex
IDXGIObject
IDXGIOutput
IDXGIOutput1
IDXGIResource
IDXGIResource1
IDXGISurface
IDXGISurface1
IDXGISurface2
IDXGISwapChain
IDXGISwapChain1
DirectWrite
DWriteCreateFactory
IDWriteBitmapRenderTarget
IDWriteFactory
IDWriteFactory1
IDWriteFont
IDWriteFont1
IDWriteFontCollection
IDWriteFontCollectionLoader
IDWriteFontFace
IDWriteFontFace1
IDWriteFontFamily
IDWriteFontFile
IDWriteFontFileEnumerator
IDWriteFontFileLoader
IDWriteFontFileStream
IDWriteFontList
IDWriteGdiInterop
IDWriteGlyphRunAnalysis
IDWriteInlineObject
IDWriteLocalFontFileLoader
IDWriteLocalizedStrings
IDWriteNumberSubstitution
IDWritePixelSnapping
IDWriteRenderingParams
IDWriteTextAnalysisSink
IDWriteTextAnalysisSink1
IDWriteTextAnalysisSource
IDWriteTextAnalysisSource1
IDWriteTextAnalyzer
IDWriteTextAnalyzer1
IDWriteTextFormat
IDWriteTextLayout
IDWriteTextLayout1
IDWriteTextRenderer
IDWriteTypography
High Level Shading Language
D3DCompile
D3DCompile2
D3DCompileFromFile
D3DCompressShaders
D3DCreateBlob
D3DDecompressShaders
D3DDisassemble
D3DDisassemble10Effect
D3DDisassemble11Trace
D3DDisassembleRegion
D3DGetBlobPart
D3DGetDebugInfo
D3DGetInputAndOutputSignatureBlob
D3DGetInputSignatureBlob
D3DGetOutputSignatureBlob
D3DGetTraceInstructionOffsets
D3DPreprocess
D3DReadFileToBlob
D3DReflect
D3DSetBlobPart
D3DStripShader
D3DWriteBlobToFile
Windows Imaging Component
IWICBitmap
IWICBitmapClipper
IWICBitmapCodecInfo
IWICBitmapCodecProgressNotification
IWICBitmapDecoder
IWICBitmapDecoderInfo
IWICBitmapEncoder
IWICBitmapEncoderInfo
IWICBitmapFlipRotator
IWICBitmapFrameDecode
IWICBitmapFrameEncode
IWICBitmapLock
IWICBitmapScaler
IWICBitmapSource
IWICBitmapSourceTransform
IWICColorContext
IWICColorTransform
IWICComponentFactory
IWICComponentInfo
IWICDevelopRaw
IWICDevelopRawNotificationCallback
IWICEnumMetadataItem
IWICFastMetadataEncoder
IWICFormatConverter
IWICFormatConverterInfo
IWICImageEncoder
IWICImagingFactory
IWICImagingFactory2
IWICMetadataBlockReader
IWICMetadataBlockWriter
IWICMetadataHandlerInfo
IWICMetadataQueryReader
IWICMetadataQueryWriter
IWICMetadataReader
IWICMetadataReaderInfo
IWICMetadataWriter
IWICMetadataWriterInfo
IWICPalette
IWICPersistStream
IWICPixelFormatInfo
IWICPixelFormatInfo2
IWICProgressCallback
IWICProgressiveLevelControl
IWICStream
IWICStreamProvider
WICConvertBitmapSource
WICCreateBitmapFromSection
WICCreateBitmapFromSectionEx
WICGetMetadataContentSize
WICMapGuidToShortName
WICMapSchemaToName
WICMapShortNameToGuid
WICMatchMetadataContent
WICSerializeMetadataContent
Other
IBitmap
IBitmapDecoder
IBitmapDecoderFactory
IBitmapFactory
IBitmapFrame
IBitmapProperties
IGetBitmapAsyncCompletedHandler
IGetBitmapAsyncOperation
IInitializeAsyncCompletedHandler
IInitializeAsyncOperation


Build date: 9/9/2011


Win32 and COM for Metro style apps (multimedia)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
[This documentation is preliminary and is subject to change.]
The following multimedia APIs are supported for developing Metro style apps.
Core Audio
IAudioCaptureClient
IAudioClock
IAudioClient
IAudioClient2
IAudioEndpointVolume
IAudioEndpointVolumeCallback
IAudioRenderClient
IAudioSessionControl
IAudioSessionEvents
ISimpleAudioVolume
Media Foundation
CLSID_MFMediaEngineClassFactory
CLSID_MFReadWriteClassFactory
IMF2DBuffer
IMF2DBuffer2
IMFActivate
IMFAsyncCallback
IMFAsyncResult
IMFAttributes
IMFByteStream
IMFByteStreamBuffering
IMFClock
IMFClockStateSink
IMFCollection
IMFContentEnabler
IMFDXGIBuffer
IMFDXGIDeviceManager
IMFGetService
IMFInputTrustAuthority
IMFMediaBuffer
IMFMediaEngine
IMFMediaEngineClassFactory
IMFMediaEngineEx
IMFMediaEngineExtension
IMFMediaEngineNotify
IMFMediaEngineProtectedContent
IMFMediaEngineSrcElements
IMFMediaError
IMFMediaEvent
IMFMediaEventGenerator
IMFMediaEventQueue
IMFMediaSink
IMFMediaSinkPreroll
IMFMediaSource
IMFMediaSourceEx
IMFMediaStream
IMFMediaTimeRange
IMFMediaType
IMFMediaTypeHandler
IMFOutputPolicy
IMFOutputSchema
IMFOutputTrustAuthority
IMFPresentationClock
IMFPresentationDescriptor
IMFPresentationTimeSource
IMFProtectedEnvironmentAccess
IMFQualityAdvise
IMFQualityAdvise2
IMFQualityAdviseLimits
IMFRateControl
IMFRateSupport
IMFReadWriteClassFactory
IMFRealTimeClientEx
IMFSample
IMFSampleOutputStream
IMFSampleProtection
IMFSchemeHandler
IMFShutdown
IMFSignedLibrary
IMFSinkWriter
IMFSinkWriterCallback
IMFSinkWriterEx
IMFSourceReader
IMFSourceReaderCallback
IMFSourceReaderEx
IMFSourceResolver
IMFSSLCertificateManager
IMFStreamDescriptor
IMFStreamingSinkConfig
IMFStreamSink
IMFSystemId
IMFTransform
IMFTrustedInput
IMFTrustedOutput
IMFVideoSampleAllocator
IMFVideoSampleAllocatorCallback
IMFVideoSampleAllocatorEx
IMFVideoSampleAllocatorNotify
MFAllocateSerialWorkQueue
MFCancelWorkItem
MFCopyImage
MFCreate2DMediaBuffer
MFCreateAggregateSource
MFCreateAlignedMemoryBuffer
MFCreateAsyncResult
MFCreateAttributes
MFCreateAudioMediaType
MFCreateDXGISurfaceBuffer
MFCreateEventQueue
MFCreateMediaBufferFromMediaType
MFCreateMediaBufferWrapper
MFCreateMediaEvent
MFCreateMediaExtensionActivate
MFCreateMediaType
MFCreateMemoryBuffer
MFCreateMFByteStreamOnStream
MFCreateMFByteStreamOnStreamEx
MFCreatePresentationDescriptor
MFCreateProtectedEnvironmentAccess
MFCreateSample
MFCreateSimpleTypeHandler
MFCreateSinkWriterFromMediaSink
MFCreateSinkWriterFromURL
MFCreateSourceReaderFromByteStream
MFCreateSourceReaderFromMediaSource
MFCreateSourceReaderFromURL
MFCreateSourceResolver
MFCreateStreamDescriptor
MFCreateStreamOnMFByteStreamEx
MFCreateTrackedSample
MFCreateVideoSampleAllocatorEx
MFCreateWaveFormatExFromMFMediaType
MFDeserializeAttributesFromStream
MFGetAttributesAsBlob
MFGetAttributesAsBlobSize
MFGetService
MFGetSystemId
MFGetSystemTime
MFInitAttributesFromBlob
MFInitMediaTypeFromWaveFormatEx
MFInvokeCallback
MFllMulDiv
MFLoadSignedLibrary
MFLockPlatform
MFLockSharedWorkQueue
MFLockWorkQueue
MFPutWaitingWorkItem
MFPutWorkItem2
MFPutWorkItemEx2
MFSerializeAttributesToStream
MFShutdown
MFStartup
MFTranscodeGetAudioOutputAvailableTypes
MFUnlockPlatform
MFUnlockWorkQueue
MFUnwrapMediaType
MFWrapMediaType
XAudio2
CreateAudioReverb
CreateAudioVolumeMeter
X3DAudioCalculate
X3DAudioInitialize
CreateFX
XAudio2Create
IXAudio2
IXAudio2Voice
IXAudio2SourceVoice
IXAudio2SubmixVoice
IXAudio2MasteringVoice
IXAudio2EngineCallback
IXAudio2VoiceCallback
IXAPO
IXAPOParameters
Other
IAVTransportSvcCallBack
ICaptureErrorHandler
IConnectionManagerSvcCallback
IContentEnablerClosedHandler
IContentEnablerReadyHandler
ICreateDeviceCompleteHandler
ICurrentPositionHandler
IDeviceControllerFinderHandler
IEnableCompletedHandler
IEnableProgressHandler
IMuteHandler
IPlayToButtonClickedEventHandler
IPlayToDeviceSelectedEventHandler
IPreviewCompleteHandler
IRecordCompleteHandler
IRendererHost
IRenderingControlSvcCallback
ITakePhotoCompleteHandler
ITranscodeCompleteHandler
ITranscodeProgressHandler
ITransportStateHandler
ITransportStatusHandler
IVolumeHandler


Build date: 9/9/2011


Win32 and COM for Metro style apps (networking)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
[This documentation is preliminary and is subject to change.]
The following networking APIs are supported for developing Metro style apps.
Dynamic Host Configuration Protocol
DhcpCApiCleanup
DhcpCApiInitialize
DhcpDeRegisterParamChange
DhcpRegisterParamChange
DhcpRequestParams
DhcpUndoRequestParams
Dhcpv6RequestParams
Dhcpv6CApiCleanup
Dhcpv6CApiInitialize
Windows Web Services
WsAbandonCall
WsAbandonMessage
WsAbortChannel
WsAbortServiceProxy
WsAddCustomHeader
WsAddErrorString
WsAddMappedHeader
WsAddressMessage
WsAlloc
WsAsyncExecute
WsCall
WsCheckMustUnderstandHeaders
WsCloseChannel
WsCloseServiceProxy
WsCombineUrl
WsCopyError
WsCopyNode
WsCreateChannel
WsCreateError
WsCreateFaultFromError
WsCreateHeap
WsCreateMessage
WsCreateMessageForChannel
WsCreateMetadata
WsCreateReader
WsCreateServiceProxy
WsCreateServiceProxyFromTemplate
WsCreateWriter
WsCreateXmlBuffer
WsCreateXmlSecurityToken
WsDateTimeToFileTime
WsDecodeUrl
WsEncodeUrl
WsEndReaderCanonicalization
WsEndWriterCanonicalization
WsFileTimeToDateTime
WsFillBody
WsFillReader
WsFindAttribute
WsFlushBody
WsFlushWriter
WsFreeChannel
WsFreeError
WsFreeHeap
WsFreeMessage
WsFreeMetadata
WsFreeReader
WsFreeSecurityToken
WsFreeServiceProxy
WsFreeWriter
WsGetChannelProperty
WsGetCustomHeader
WsGetDictionary
WsGetErrorProperty
WsGetErrorString
WsGetFaultErrorDetail
WsGetFaultErrorProperty
WsGetHeader
WsGetHeaderAttributes
WsGetHeapProperty
WsGetMappedHeader
WsGetMessageProperty
WsGetMetadataEndpoints
WsGetMetadataProperty
WsGetMissingMetadataDocumentAddress
WsGetNamespaceFromPrefix
WsGetOperationContextProperty
WsGetPolicyAlternativeCount
WsGetPolicyProperty
WsGetPrefixFromNamespace
WsGetReaderNode
WsGetReaderPosition
WsGetReaderProperty
WsGetSecurityContextProperty
WsGetSecurityTokenProperty
WsGetServiceProxyProperty
WsGetWriterPosition
WsGetWriterProperty
WsGetXmlAttribute
WsInitializeMessage
WsMarkHeaderAsUnderstood
WsMatchPolicyAlternative
WsMoveReader
WsMoveWriter
WsOpenChannel
WsOpenServiceProxy
WsPullBytes
WsPushBytes
WsReadArray
WsReadAttribute
WsReadBody
WsReadBytes
WsReadChars
WsReadCharsUtf8
WsReadElement
WsReadEndAttribute
WsReadEndElement
WsReadEndpointAddressExtension
WsReadEnvelopeEnd
WsReadEnvelopeStart
WsReadMessageEnd
WsReadMessageStart
WsReadMetadata
WsReadNode
WsReadQualifiedName
WsReadStartAttribute
WsReadStartElement
WsReadToStartElement
WsReadType
WsReadValue
WsReadXmlBuffer
WsReadXmlBufferFromBytes
WsReceiveMessage
WsRemoveCustomHeader
WsRemoveHeader
WsRemoveMappedHeader
WsRemoveNode
WsRequestReply
WsRequestSecurityToken
WsResetChannel
WsResetError
WsResetHeap
WsResetMessage
WsResetMetadata
WsResetServiceProxy
WsRevokeSecurityContext
WsSendFaultMessageForError
WsSendMessage
WsSendReplyMessage
WsSetChannelProperty
WsSetErrorProperty
WsSetFaultErrorDetail
WsSetFaultErrorProperty
WsSetHeader
WsSetInput
WsSetInputToBuffer
WsSetMessageProperty
WsSetOutput
WsSetOutputToBuffer
WsSetReaderPosition
WsSetWriterPosition
WsShutdownSessionChannel
WsSkipNode
WsStartReaderCanonicalization
WsStartWriterCanonicalization
WsTrimXmlWhitespace
WsVerifyXmlNCName
WsWriteArray
WsWriteAttribute
WsWriteBody
WsWriteBytes
WsWriteChars
WsWriteCharsUtf8
WsWriteElement
WsWriteEndAttribute
WsWriteEndCData
WsWriteEndElement
WsWriteEndStartElement
WsWriteEnvelopeEnd
WsWriteEnvelopeStart
WsWriteMessageEnd
WsWriteMessageStart
WsWriteNode
WsWriteQualifiedName
WsWriteStartAttribute
WsWriteStartCData
WsWriteStartElement
WsWriteText
WsWriteType
WsWriteValue
WsWriteXmlBuffer
WsWriteXmlBufferToBytes
WsWriteXmlnsAttribute
WsXmlStringEquals
Interprocess Communication
CStdStubBuffer_AddRef
CStdStubBuffer_Connect
CStdStubBuffer_CountRefs
CStdStubBuffer_DebugServerQueryInterface
CStdStubBuffer_DebugServerRelease
CStdStubBuffer_Disconnect
CStdStubBuffer_Invoke
CStdStubBuffer_IsIIDSupported
CStdStubBuffer_QueryInterface
IUnknown_AddRef_Proxy
IUnknown_QueryInterface_Proxy
IUnknown_Release_Proxy
CreateProxyFromTypeInfo
CreateStubFromTypeInfo
Ndr64DcomAsyncClientCall
Ndr64DcomAsyncStubCall
NdrCStdStubBuffer2_Release
NdrCStdStubBuffer_Release
NdrDcomAsyncClientCall
NdrDllCanUnloadNow
NdrDcomAsyncStubCall
NdrDllGetClassObject
NdrDllRegisterProxy
NdrDllUnregisterProxy
NdrOleAllocate
NdrOleFree
NdrProxyErrorHandler
NdrProxyFreeBuffer
NdrProxyGetBuffer
NdrProxyInitialize
NdrProxySendReceive
NdrStubCall2
NdrStubForwardingFunction
NdrStubCall3
NdrStubGetBuffer
NdrStubInitialize


Build date: 9/9/2011


Win32 and COM for Metro style apps (printing and documents)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
[This documentation is preliminary and is subject to change.]
The following printing APIs are supported for developing Metro style apps.
Printing
IPrintDocumentPackageTarget
IPrintPreviewDXGIPackageTarget
XPS Documents
CLSID_XpsOMObjectFactory
IXpsDocumentPackageTarget
IXpsOMBrush
IXpsOMCanvas
IXpsOMColorProfileResource
IXpsOMColorProfileResourceCollection
IXpsOMCoreProperties
IXpsOMDashCollection
IXpsOMDictionary
IXpsOMDocument
IXpsOMDocumentCollection
IXpsOMDocumentSequence
IXpsOMDocumentStructureResource
IXpsOMFontResource
IXpsOMFontResourceCollection
IXpsOMGeometry
IXpsOMGeometryFigure
IXpsOMGeometryFigureCollection
IXpsOMGlyphs
IXpsOMGlyphsEditor
IXpsOMGradientBrush
IXpsOMGradientStop
IXpsOMGradientStopCollection
IXpsOMImageBrush
IXpsOMImageResource
IXpsOMImageResourceCollection
IXpsOMLinearGradientBrush
IXpsOMMatrixTransform
IXpsOMNameCollection
IXpsOMObjectFactory
IXpsOMObjectFactory1
IXpsOMPackage
IXpsOMPackage1
IXpsOMPackageTarget
IXpsOMPackageWriter
IXpsOMPage
IXpsOMPage1
IXpsOMPageReference
IXpsOMPageReferenceCollection
IXpsOMPart
IXpsOMPartResources
IXpsOMPartUriCollection
IXpsOMPath
IXpsOMPrintTicketResource
IXpsOMRadialGradientBrush
IXpsOMRemoteDictionaryResource
IXpsOMRemoteDictionaryResource1
IXpsOMRemoteDictionaryResourceCollection
IXpsOMResource
IXpsOMShareable
IXpsOMSignatureBlockResource
IXpsOMSignatureBlockResourceCollection
IXpsOMSolidColorBrush
IXpsOMStoryFragmentsResource
IXpsOMTileBrush
IXpsOMVisual
IXpsOMVisualBrush
IXpsOMVisualCollection


Build date: 9/9/2011


Win32 and COM for Metro style apps (security and identity)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
[This documentation is preliminary and is subject to change.]
The following security and identity APIs are supported for developing Metro style apps.
Directory Services
ADsBuildEnumerator
ADsBuildVarArrayInt
ADsBuildVarArrayStr
ADsDecodeBinaryData
ADsEncodeBinaryData
ADsEnumerateNext
ADsFreeEnumerator
ADsGetLastError
ADsGetObject
ADsOpenObject
ADsSetLastError
ADsFreeADsValues
AllocADsMem
AllocADsStr
FreeADsMem
FreeADsStr
ReallocADsMem
ReallocADsStr
CLSID_AccessControlEntry
CLSID_AccessControlList
CLSID_ADsSecurityUtility
CLSID_DNWithBinary
CLSID_DNWithString
CLSID_LargeInteger
CLSID_Pathname
CLSID_PropertyEntry
CLSID_PropertyValue
CLSID_SecurityDescriptor


Build date: 9/9/2011


Win32 and COM for Metro style apps (system)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
[This documentation is preliminary and is subject to change.]
The following system APIs are supported for developing Metro style apps.
COM
BindMoniker
BSTR_UserFree
BSTR_UserFree64
BSTR_UserMarshal
BSTR_UserMarshal64
BSTR_UserSize
BSTR_UserSize64
BSTR_UserUnmarshal
BSTR_UserUnmarshal64
CLSIDFromString
CoCreateFreeThreadedMarshaler
CoCreateGuid
CoCreateInstanceFromApp
CoDisconnectObject
CoFreeUnusedLibraries
CoFreeUnusedLibrariesEx
CoGetApartmentType
CoGetCurrentLogicalThreadId
CoGetInterfaceAndReleaseStream
CoGetMarshalSizeMax
CoGetObject
CoGetStandardMarshal
CoInitializeEx
CoInitializeSecurity
CoMarshalInterface
CoMarshalInterThreadInterfaceInStream
CoRegisterClassObject
CoReleaseMarshalData
CoReleaseServerProcess
CoResumeClassObjects
CoRevokeClassObject
CoSuspendClassObjects
CoSwitchCallContext
CoTaskMemAlloc
CoTaskMemFree
CoTaskMemRealloc
CoUninitialize
CoUnmarshalInterface
CoWaitForMultipleHandles
CreateAntiMoniker
CreateBindCtx
CreateClassMoniker
CreateFileMoniker
CreateGenericComposite
CreateILockBytesOnHGlobal
CreateItemMoniker
CreateObjrefMoniker
CreatePointerMoniker
CreateStreamOnHGlobal
DispInvoke
FmtIdToPropStgName
GetClassFile
GetConvertStg
GetHGlobalFromILockBytes
GetHGlobalFromStream
IBindCtx
IClassFactory
IClientSecurity
IConnectionPoint
IConnectionPointContainer
IDirectWriterLock
IDispatch
IEnumConnectionPoints
IEnumConnections
IEnumMoniker
IEnumSTATDATA
IEnumSTATPROPSETSTG
IEnumSTATPROPSTG
IEnumSTATSTG
IEnumString
IEnumUnknown
IEnumVARIANT
IFillLockBytes
IGlobalInterfaceTable
IGlobalOptions
IIDFromString
ILayoutStorage
ILockBytes
IMalloc
IMallocSpy
IMultiQI
IPropertyBag2
IPropertySetStorage
IPropertyStorage
IPSFactoryBuffer
IQuickActivate
IRootStorage
IRpcStubBuffer
IRpcChannelBuffer
IsEqualGUID
ISequentialStream
IStorage
IStream
ISurrogate
IUnknown
LPSAFEARRAY_Marshal
LPSAFEARRAY_Size
LPSAFEARRAY_Unmarshal
LPSAFEARRAY_UserFree
LPSAFEARRAY_UserFree64
LPSAFEARRAY_UserMarshal
LPSAFEARRAY_UserMarshal64
LPSAFEARRAY_UserSize
LPSAFEARRAY_UserSize64
LPSAFEARRAY_UserUnmarshal
LPSAFEARRAY_UserUnmarshal64
MkParseDisplayName
MonikerCommonPrefixWith
MonikerRelativePathTo
ReadClassStg
ReadClassStm
SafeArrayAccessData
SafeArrayAllocData
SafeArrayAllocDescriptor
SafeArrayAllocDescriptorEx
SafeArrayCopy
SafeArrayCopyData
SafeArrayCreate
SafeArrayCreateEx
SafeArrayCreateVector
SafeArrayCreateVectorEx
SafeArrayDestroy
SafeArrayDestroyData
SafeArrayDestroyDescriptor
SafeArrayGetDim
SafeArrayGetElement
SafeArrayGetElemsize
SafeArrayGetIID
SafeArrayGetLBound
SafeArrayGetRecordInfo
SafeArrayGetUBound
SafeArrayGetVartype
SafeArrayLock
SafeArrayPtrOfIndex
SafeArrayPutElement
SafeArrayRedim
SafeArraySetIID
SafeArraySetRecordInfo
SafeArrayUnaccessData
SafeArrayUnlock
StgCreateDocfile
StgCreateDocfileOnILockBytes
StgCreatePropSetStg
StgCreatePropStg
StgCreateStorageEx
StgGetIFillLockBytesOnFile
StgGetIFillLockBytesOnILockBytes
StgIsStorageFile
StgIsStorageILockBytes
StgOpenAsyncDocfileOnIFillLockBytes
StgOpenPropStg
StgOpenStorage
StgOpenStorageEx
StgOpenStorageOnILockBytes
StgPropertyLengthAsVariant
StgSetTimes
StringFromCLSID
StringFromGUID2
StringFromIID
SysAllocString
SysAllocStringByteLen
SysAllocStringLen
SysFreeString
SysReAllocString
SysReAllocStringLen
SysStringByteLen
SysStringLen
SystemTimeToVariantTime
VarAbs
VarAdd
VarAnd
VarBoolFromCy
VarBoolFromDate
VarBoolFromDec
VarBoolFromDisp
VarBoolFromI1
VarBoolFromI2
VarBoolFromI4
VarBoolFromI8
VarBoolFromR4
VarBoolFromR8
VarBoolFromStr
VarBoolFromUI1
VarBoolFromUI2
VarBoolFromUI4
VarBoolFromUI8
VarBstrCat
VarBstrCmp
VarBstrFromBool
VarBstrFromCy
VarBstrFromDate
VarBstrFromDec
VarBstrFromDisp
VarBstrFromI1
VarBstrFromI2
VarBstrFromI4
VarBstrFromI8
VarBstrFromR4
VarBstrFromR8
VarBstrFromUI1
VarBstrFromUI2
VarBstrFromUI4
VarBstrFromUI8
VarCat
VarCmp
VarCyAbs
VarCyAdd
VarCyCmp
VarCyCmpR8
VarCyFix
VarCyFromBool
VarCyFromDate
VarCyFromDec
VarCyFromDisp
VarCyFromI1
VarCyFromI2
VarCyFromI4
VarCyFromI8
VarCyFromR4
VarCyFromR8
VarCyFromStr
VarCyFromUI1
VarCyFromUI2
VarCyFromUI4
VarCyFromUI8
VarCyInt
VarCyMul
VarCyMulI4
VarCyMulI8
VarCyNeg
VarCyRound
VarCySub
VarDateFromBool
VarDateFromCy
VarDateFromDec
VarDateFromDisp
VarDateFromI1
VarDateFromI2
VarDateFromI4
VarDateFromI8
VarDateFromR4
VarDateFromR8
VarDateFromStr
VarDateFromUdate
VarDateFromUdateEx
VarDateFromUI1
VarDateFromUI2
VarDateFromUI4
VarDateFromUI8
VarDecAbs
VarDecAdd
VarDecCmp
VarDecCmpR8
VarDecDiv
VarDecFix
VarDecFromBool
VarDecFromCy
VarDecFromDate
VarDecFromDisp
VarDecFromI1
VarDecFromI2
VarDecFromI4
VarDecFromI8
VarDecFromR4
VarDecFromR8
VarDecFromStr
VarDecFromUI1
VarDecFromUI2
VarDecFromUI4
VarDecFromUI8
VarDecInt
VarDecMul
VarDecNeg
VarDecRound
VarDecSub
VarDiv
VarEqv
VarFix
VarFormat
VarFormatCurrency
VarFormatDateTime
VarFormatFromTokens
VarFormatNumber
VarFormatPercent
VarI1FromBool
VarI1FromCy
VarI1FromDate
VarI1FromDec
VarI1FromDisp
VarI1FromI2
VarI1FromI4
VarI1FromI8
VarI1FromR4
VarI1FromR8
VarI1FromStr
VarI1FromUI1
VarI1FromUI2
VarI1FromUI4
VarI1FromUI8
VarI2FromBool
VarI2FromCy
VarI2FromDate
VarI2FromDec
VarI2FromDisp
VarI2FromI1
VarI2FromI4
VarI2FromI8
VarI2FromR4
VarI2FromR8
VarI2FromStr
VarI2FromUI1
VarI2FromUI2
VarI2FromUI4
VarI2FromUI8
VarI4FromBool
VarI4FromCy
VarI4FromDate
VarI4FromDec
VarI4FromDisp
VarI4FromI1
VarI4FromI2
VarI4FromI8
VarI4FromInt
VarI4FromR4
VarI4FromR8
VarI4FromStr
VarI4FromUI1
VarI4FromUI2
VarI4FromUI4
VarI4FromUI8
VarI8FromBool
VarI8FromCy
VarI8FromDate
VarI8FromDec
VarI8FromDisp
VarI8FromI1
VarI8FromI2
VarI8FromR4
VarI8FromR8
VarI8FromStr
VarI8FromUI1
VarI8FromUI2
VarI8FromUI4
VarI8FromUI8
VARIANT_UserFree
VARIANT_UserFree64
VARIANT_UserMarshal
VARIANT_UserMarshal64
VARIANT_UserSize
VARIANT_UserSize64
VARIANT_UserUnmarshal
VARIANT_UserUnmarshal64
VariantChangeType
VariantChangeTypeEx
VariantClear
VariantCopy
VariantCopyInd
VariantInit
VariantTimeToSystemTime
VarIdiv
VarImp
VarInt
VarMod
VarMonthName
VarMul
VarNeg
VarNot
VarNumFromParseNum
VarOr
VarParseNumFromStr
VarPow
VarR4CmpR8
VarR4FromBool
VarR4FromCy
VarR4FromDate
VarR4FromDec
VarR4FromDisp
VarR4FromI1
VarR4FromI2
VarR4FromI4
VarR4FromI8
VarR4FromR8
VarR4FromStr
VarR4FromUI1
VarR4FromUI2
VarR4FromUI4
VarR4FromUI8
VarR8FromBool
VarR8FromCy
VarR8FromDate
VarR8FromDec
VarR8FromDisp
VarR8FromI1
VarR8FromI2
VarR8FromI4
VarR8FromI8
VarR8FromR4
VarR8FromStr
VarR8FromUI1
VarR8FromUI2
VarR8FromUI4
VarR8FromUI8
VarR8Pow
VarR8Round
VarRound
VarSub
VarTokenizeFormatString
VarUdateFromDate
VarUI1FromBool
VarUI1FromCy
VarUI1FromDate
VarUI1FromDec
VarUI1FromDisp
VarUI1FromI1
VarUI1FromI2
VarUI1FromI4
VarUI1FromI8
VarUI1FromR4
VarUI1FromR8
VarUI1FromStr
VarUI1FromUI2
VarUI1FromUI4
VarUI1FromUI8
VarUI2FromBool
VarUI2FromCy
VarUI2FromDate
VarUI2FromDec
VarUI2FromDisp
VarUI2FromI1
VarUI2FromI2
VarUI2FromI4
VarUI2FromI8
VarUI2FromR4
VarUI2FromR8
VarUI2FromStr
VarUI2FromUI1
VarUI2FromUI4
VarUI2FromUI8
VarUI4FromBool
VarUI4FromCy
VarUI4FromDate
VarUI4FromDec
VarUI4FromDisp
VarUI4FromI1
VarUI4FromI2
VarUI4FromI4
VarUI4FromI8
VarUI4FromR4
VarUI4FromR8
VarUI4FromStr
VarUI4FromUI1
VarUI4FromUI2
VarUI4FromUI8
VarUI8FromBool
VarUI8FromCy
VarUI8FromDate
VarUI8FromDec
VarUI8FromDisp
VarUI8FromI1
VarUI8FromI2
VarUI8FromI8
VarUI8FromR4
VarUI8FromR8
VarUI8FromStr
VarUI8FromUI1
VarUI8FromUI2
VarUI8FromUI4
VarWeekdayName
VarXor
WriteClassStg
WriteClassStm
DLLs
DisableThreadLibraryCalls
FreeLibrary
GetProcAddress
LoadPackagedLibrary
Memory
GetProcessHeap
HeapAlloc
HeapFree
HeapReAlloc
HeapSize
Processes
CloseHandle
DecodePointer
DuplicateHandle
EncodePointer
GetCurrentProcess
GetCurrentProcessId
Processor
IsProcessorFeaturePresent
Thread and Synchronization
AcquireSRWLockExclusive
AcquireSRWLockShared
CreateEventExW
CreateMutexExW
CreateSemaphoreExW
DeleteCriticalSection
EnterCriticalSection
FlsAlloc
FlsFree
FlsGetValue
FlsSetValue
GetCurrentThread
GetCurrentThreadId
GetTickCount64
InitializeConditionVariable
InitializeCriticalSectionEx
InitializeSListHead
InitializeSRWLock
InitOnceBeginInitialize
InitOnceComplete
InitOnceExecuteOnce
InitOnceInitialize
InterlockedAdd
InterlockedAdd64
InterlockedAddAcquire
InterlockedAddAcquire64
InterlockedAddRelease
InterlockedAddRelease64
InterlockedAnd
InterlockedAnd16
InterlockedAnd16Acquire
InterlockedAnd16Release
InterlockedAnd64
InterlockedAnd64Acquire
InterlockedAnd64Release
InterlockedAnd8
InterlockedAnd8Acquire
InterlockedAnd8Release
InterlockedAndAcquire
InterlockedAndRelease
InterlockedBitTestAndReset
InterlockedBitTestAndReset64
InterlockedBitTestAndSet
InterlockedBitTestAndSet64
InterlockedCompare64Exchange128
InterlockedCompare64ExchangeAcquire128
InterlockedCompare64ExchangeRelease128
InterlockedCompareExchange
InterlockedCompareExchange64
InterlockedCompareExchangeAcquire
InterlockedCompareExchangeAcquire64
InterlockedCompareExchangePointer
InterlockedCompareExchangePointerAcquire
InterlockedCompareExchangePointerRelease
InterlockedCompareExchangeRelease
InterlockedCompareExchangeRelease64
InterlockedDecrement
InterlockedDecrement64
InterlockedDecrementAcquire
InterlockedDecrementAcquire64
InterlockedDecrementRelease
InterlockedDecrementRelease64
InterlockedExchange
InterlockedExchange64
InterlockedExchangeAcquire
InterlockedExchangeAcquire64
InterlockedExchangeAdd
InterlockedExchangeAdd64
InterlockedExchangeAddAcquire
InterlockedExchangeAddAcquire64
InterlockedExchangeAddRelease
InterlockedExchangeAddRelease64
InterlockedFlushSList
InterlockedIncrement
InterlockedIncrement64
InterlockedIncrementAcquire
InterlockedIncrementAcquire64
InterlockedIncrementRelease
InterlockedIncrementRelease64
InterlockedOr
InterlockedOr16
InterlockedOr16Acquire
InterlockedOr16Release
InterlockedOr64
InterlockedOr64Acquire
InterlockedOr64Release
InterlockedOr8
InterlockedOr8Acquire
InterlockedOr8Release
InterlockedOrAcquire
InterlockedOrRelease
InterlockedPopEntrySList
InterlockedPushEntrySList
InterlockedPushListSList
InterlockedXor
InterlockedXor16
InterlockedXor16Acquire
InterlockedXor16Release
InterlockedXor64
InterlockedXor64Acquire
InterlockedXor64Release
InterlockedXor8
InterlockedXor8Acquire
InterlockedXor8Release
InterlockedXorAcquire
InterlockedXorRelease
LeaveCriticalSection
OpenEventW
OpenMutexW
OpenSemaphoreW
QueryDepthSList
QueryPerformanceCounter
QueryPerformanceFrequency
ReleaseMutex
ReleaseSemaphore
ReleaseSRWLockExclusive
ReleaseSRWLockShared
ResetEvent
SetEvent
SleepConditionVariableCS
SleepConditionVariableSRW
TryAcquireSRWLockExclusive
TryAcquireSRWLockShared
TryEnterCriticalSection
WaitForMultipleObjectsEx
WaitForSingleObjectEx
WakeAllConditionVariable
WakeConditionVariable
Time
FileTimeToSystemTime
GetDynamicTimeZoneInformation
GetLocalTime
GetSystemTime
GetSystemTimeAsFileTime
GetTimeZoneInformation
GetTimeZoneInformationForYear
SystemTimeToFileTime
SystemTimeToTzSpecificLocalTime
TzSpecificLocalTimeToSystemTime
Windows Runtime
IActivationFactory
IAsyncInfo
IBuffer
IInputStream
IInspectable
IOutputStream
IRandomAccessStream
IRestrictedErrorInfo
IWeakReference
IWeakReferenceSource
MetaDataGetDispenser
RoActivateInstance
RoFreeParameterizedTypeExtra
RoGetActivatableClassRegistration
RoGetActivationFactory
RoGetBufferMarshaler
RoGetErrorReportingFlags
RoGetMetaDataFile
RoGetParameterizedTypeInstanceIID
RoGetServerActivatableClasses
RoInitialize
RoOriginateError
RoOriginateErrorW
RoParameterizedTypeExtraGetTypeSignature
RoParseTypeName
RoRegisterActivationFactories
RoResolveNamespace
RoResolveRestrictedErrorInfoReference
RoRevokeActivationFactories
RoSetErrorReportingFlags
RoTransformError
RoTransformErrorW
RoUninitialize
WindowsCompareStringOrdinal
WindowsConcatString
WindowsCreateString
WindowsCreateStringReference
WindowsDeleteString
WindowsDeleteStringBuffer
WindowsDuplicateString
WindowsGetStringLen
WindowsGetStringRawBuffer
WindowsInspectString
WindowsIsStringEmpty
WindowsPreallocateStringBuffer
WindowsPromoteStringBuffer
WindowsReplaceString
WindowsStringHasEmbeddedNull
WindowsSubstring
WindowsSubstringWithSpecifiedLength
WindowsTrimStringEnd
WindowsTrimStringStart


Build date: 9/9/2011

Win32 and COM for Metro style apps (user interface)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
[This documentation is preliminary and is subject to change.]
The following user interface APIs are supported for developing Metro style apps.
Accessibility
CLSID_CUIAutomationRegistrar
IAccessibleEx
IAnnotationProvider
IDockProvider
IExpandCollapseProvider
IGridItemProvider
IGridProvider
IInvokeProvider
IItemContainerProvider
ILegacyIAccessibleProvider
IMultipleViewProvider
IObjectModelProvider
IProxyProviderWinEventHandler
IProxyProviderWinEventSink
IRangeValueProvider
IRawElementProviderAdviseEvents
IRawElementProviderFragment
IRawElementProviderFragmentRoot
IRawElementProviderHwndOverride
IRawElementProviderSimple
IScrollItemProvider
IScrollProvider
ISelectionItemProvider
ISelectionProvider
ISpreadsheetItemProvider
ISpreadsheetProvider
IStylesProvider
ISynchronizedInputProvider
ITableItemProvider
ITableProvider
ITextProvider
ITextProvider2
ITextRangeProvider
IToggleProvider
ITransformProvider
ITransformProvider2
IUIAutomationPatternHandler
IUIAutomationPatternInstance
IUIAutomationRegistrar
IValueProvider
IVirtualizedItemProvider
IWindowProvider
UiaClientsAreListening
UiaDisconnectAllProviders
UiaDisconnectProvider
UiaHostProviderFromHwnd
UiaProviderForNonClient
UiaProviderFromIAccessible
UiaRaiseAsyncContentLoadedEvent
UiaRaiseAutomationEvent
UiaRaiseAutomationPropertyChangedEvent
UiaRaiseStructureChangedEvent
UiaReturnRawElementProvider
DirectManipulation
CLSID_DirectManipulationManager
CLSID_DirectManipulationTilingManager
IDirectManipulationCompositor
IDirectManipulationContent
IDirectManipulationEventHandler
IDirectManipulationLayer
IDirectManipulationManager
IDirectManipulationMotion
IDirectManipulationMotionEventHandler
IDirectManipulationRegion
IDirectManipulationTilingEventHandler
IDirectManipulationTilingManager
IDirectManipulationUpdateManager
Globalization
CompareStringEx
CompareStringOrdinal
EnumCalendarInfoExEx
EnumDateFormatsExEx
EnumSystemCodePagesW
EnumSystemGeoID
EnumSystemLocalesEx
EnumTimeFormatsEx
FindNLSStringEx
FindStringOrdinal
GetCalendarInfoEx
GetCPInfoExW
GetCurrencyFormatEx
GetDateFormatEx
GetDurationFormatEx
GetGeoInfoW
GetLocaleInfoEx
GetNLSVersionEx
GetNumberFormatEx
GetStringScripts
GetStringTypeExW
GetStringTypeW
GetSystemDefaultLocaleName
GetTimeFormatEx
GetUserDefaultLocaleName
GetUserGeoID
IdnToAscii
IdnToNameprepUnicode
IdnToUnicode
IEnumCodePage
IEnumRfc1766
IEnumScript
IMLangConvertCharset
IMultiLanguage
IMultiLanguage2
IsNormalizedString
IsValidCodePage
IsValidLocaleName
LCIDToLocaleName
LCMapStringEx
LocaleNameToLCID
MappingFreePropertyBag
MappingFreeServices
MappingGetServices
MappingRecognizeText
MultiByteToWideChar
NormalizeString
ResolveLocaleName
VerifyScripts
WideCharToMultiByte
Other
IGetFrameAsyncCompletedHandler
IGetFrameAsyncOperation
IGetFrameCountAsyncCompletedHandler
IGetFrameCountAsyncOperation
IKeyEventHandler
Strings
StringCbCat
StringCbCatEx
StringCbCatN
StringCbCatNEx
StringCbCopy
StringCbCopyEx
StringCbCopyN
StringCbCopyNEx
StringCbGets
StringCbGetsEx
StringCbLength
StringCbPrintf_l
StringCbPrintf_lEx
StringCbPrintf
StringCbPrintfEx
StringCbVPrintf_l
StringCbVPrintf_lEx
StringCbVPrintf
StringCbVPrintfEx
StringCchCat
StringCchCatEx
StringCchCatN
StringCchCatNEx
StringCchCopy
StringCchCopyEx
StringCchCopyN
StringCchCopyNEx
StringCchGets
StringCchGetsEx
StringCchLength
StringCchPrintf_l
StringCchPrintf_lEx
StringCchPrintf
StringCchPrintfEx
StringCchVPrintf_l
StringCchVPrintf_lEx
StringCchVPrintf
StringCchVPrintfEx
UnalignedStringCbLengthW
UnalignedStringCchLengthW
Text Services Framework
CLSID_TF_DisplayAttributeMgr
CLSID_TF_InputProcessorProfiles
CLSID_TF_ThreadMgr
IEnumITfCompositionView
IEnumTfCandidates
IEnumTfContexts
IEnumTfContextViews
IEnumTfDisplayAttributeInfo
IEnumTfDocumentMgrs
IEnumTfFunctionProviders
IEnumTfInputProcessorProfiles
IEnumTfProperties
IEnumTfPropertyValue
IEnumTfRanges
IEnumTfUIElements
ITextStoreACP
ITextStoreACPServices
ITextStoreACPSink
ITextStoreAnchor
ITextStoreAnchorSink
ITfCandidateList
ITfCandidateListUIElement
ITfCandidateListUIElementBehavior
ITfCandidateString
ITfCompartment
ITfCompartmentEventSink
ITfCompartmentMgr
ITfComposition
ITfCompositionSink
ITfCompositionView
ITfConfigureSystemKeystrokeFeed
ITfContextComposition
ITfContext
ITfContextOwnerCompositionServices
ITfContextOwnerCompositionSink
ITfContextOwnerServices
ITfContextView
ITfDisplayAttributeInfo
ITfDisplayAttributeMgr
ITfDisplayAttributeNotifySink
ITfDisplayAttributeProvider
ITfDocumentMgr
ITfEditRecord
ITfFnGetSAPIObject
ITfFnReconversion
ITfFunction
ITfFunctionProvider
ITfInputProcessorProfileActivationSink
ITfInputProcessorProfileMgr
ITfInputScope
ITfInputScope2
ITfKeyEventSink
ITfKeystrokeMgr
ITfKeyTraceEventSink
ITfLanguageProfileNotifySink
ITfPersistentPropertyLoaderACP
ITfPreservedKeyNotifySink
ITfProperty
ITfPropertyStore
ITfRange
ITfRangeACP
ITfRangeBackup
ITfReadingInformationUIElement
ITfReadOnlyProperty
ITfSource
ITfSourceSingle
ITfTextEditSink
ITfThreadMgr
ITfUIElement
ITfUIElementMgr
ITfUIElementSink
Touch
RegisterPointerDeviceNotifications
Windows and Messages
IActivatedEventHandler
IDragCompletedEventHandler
IDragDeltaEventHandler
IDragStartedEventHandler
IEventHandler
IManipulationCompletedEventHandler
IManipulationDeltaEventHandler
IManipulationStartedEventHandler
IMouseButtonEventHandler
IMouseEventHandler
IMouseWheelEventHandler
IPointerEventHandler
IPositionChangedHandler
IRoutedEventHandler
IRoutedPropertyChangedEventHandler
IScrollEventHandler
ISelectionChangedEventHandler
ISizeChangedEventHandler
IStatusChangedHandler
ITextChangedEventHandler
Windows Animation
CLSID_UIAnimationManager
CLSID_UIAnimationManager2
CLSID_UIAnimationTimer
CLSID_UIAnimationTransitionFactory
CLSID_UIAnimationTransitionFactory2
CLSID_UIAnimationTransitionLibrary
CLSID_UIAnimationTransitionLibrary2
IUIAnimationInterpolator
IUIAnimationInterpolator2
IUIAnimationManager
IUIAnimationManager2
IUIAnimationManagerEventHandler
IUIAnimationPrimitiveInterpolation
IUIAnimationPriorityComparison
IUIAnimationPriorityComparison2
IUIAnimationStoryboard
IUIAnimationStoryboard2
IUIAnimationStoryboardEventHandler
IUIAnimationStoryboardEventHandler2
IUIAnimationTimer
IUIAnimationTimerClientEventHandler
IUIAnimationTimerEventHandler
IUIAnimationTimerUpdateHandler
IUIAnimationTransition
IUIAnimationTransition2
IUIAnimationTransitionFactory
IUIAnimationTransitionFactory2
IUIAnimationTransitionLibrary
IUIAnimationTransitionLibrary2
IUIAnimationVariable
IUIAnimationVariable2
IUIAnimationVariableChangeHandler
IUIAnimationVariableChangeHandler2
IUIAnimationVariableCurveChangeHandler2
IUIAnimationVariableIntegerChangeHandler
IUIAnimationVariableIntegerChangeHandler2
Windows Shell
ICollectionChangedEventHandler
IFileItemCountHandler
IFileItemDocumentPropertiesHandler
IFileItemGetIndexedStateHandler
IFileItemGetStreamHandler
IFileItemGetThumbnailHandler
IFileItemImagePropertiesHandler
IFileItemMusicPropertiesHandler
IFileItemRetrievalHandler
IFileItemRetrievePropertiesHandler
IFileItemStatusHandler
IFileItemVideoPropertiesHandler
IFileItemViewHandler
IUserImageChangedHandler
IWriteUserImageCompletedEventHandler


Build date: 9/9/2011

首先要明确下迁移成功的标准:通过Windows App Certification Kit的Validate Metro style App

问题一:App安装后,无法在认证列表中找到

这个问题很诡异,我换了一台机器就好了,完全不知道什么原因,可以参照下下面这个帖子,看看过段时间微软的人会不会答复这个问题。

Prerequisites for exposing metro applications to the Windows Logo Certification GUI application?

问题二:References没有Debug和Release之分,打包和认证时要特别留意

如果用到了动态链接库,Deploy和Package VS都会把References那里指定的那个DLL打包过去!

注意:Debug和Release只能选择一个!这个问题不留意的话会遇到非常诡异的问题,编译没问题,调用时抛出莫名其妙的Exception

在解决认证的这个问题时我发现了这么一个诡异的问题:

认证的结果显示用到了不被支持的API,解决问题的方法比较直接,无非就是去掉对这些函数的使用,但是我发现我明明已经不用这个函数了,但是检测还是不通过
Use of Supported Platform APIs
FAILED Supported APIs
Error: This application failed the supported API check.

最后发现原因是这样:

  1. 我拿来认证的是Release版本,但是References里面绑定的文件没有Debug和Release之分,当时指定的是Debug的
  2. Package的时候会把Reference的那个DLL打包进去,我改的是Release,实际打包的时Debug的那个Dll
  3. 明白了问题的原因,改起来就很明显了,坑爹!改了下References中的引用,改了就通过了

Unsupported API的替换方案

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
CreateEvent->CreateEventEx
CreateFileW->CreateFile2
CreateMutexW->CreateMutexEx
WaitForSingleObject->WaitForSingleObjectEx
GetTickCount->(DWORD)GetTickCount64
DeleteFileA->DeleteFileW
FormatMessageA->FormatMessageW
GetDiskFreeSpaceA->GetDiskFreeSpaceW
GetFileAttributes->GetFileAttributesEx
GetFileSize->GetFileInformationByHandleEx
GetFullPathName-> :(
GetTempPathA-> :(
GetVersionExW-> :(
InitializeCriticalSection->InitializeCriticalSectionEx
LoadLibrary->don't use this at best,alothough ther is LoadPackagedLibrary can use
LockFile->LockFileEx
UnLockFile->UnLockFileEx
OutputDebugStringA-> don't use
SetFilePointer->SetFilePointerEx
SetThreadPriority-> :(

特别说明下GetFileSize的替代方案的实现:

1
2
3
4
5
6
7
8
9
10
11
12
DWORD WinRTGetFileSize(_In_ HANDLE hFile, _Out_opt_ LPDWORD lpFileSizeHigh)
{
FILE_STANDARD_INFO stInfo = {0};
if (GetFileInformationByHandleEx(hFile, FileStandardInfo, &stInfo, sizeof(stInfo )))
{
*lpFileSizeHigh = stInfo.EndOfFile.HighPart;
return stInfo.EndOfFile.LowPart;
}


return INVALID_FILE_SIZE;
}

WinRT下支持的Win32API列表可以从这里查到

(find Win32 API which is supported by WinRT here):

Win32 and COM for Metro style apps

问题描述:

最近我在将一些代码从Win32迁移到WinRT,开发环境是Win8的Windows Developer Preview版和Visual Studio 11 Developer Preview,在迁移sqlite和zlib时发现了一个诡异的问题:

编译.C后缀的文件,无论是什么文件,只要以c类型编译都会出现一个Error

E:\SQliteBuildDemo\SQliteBuildDemo\sqlite3.c : fatal error C1083: Cannot open compiler intermediate file:
‘C:\Users\linyehui\AppData\Local\Temp_CL_01c0d5cfmd’: No such file or directory

但如果什么都不改,只是把工程中的.c文件属性里的编译类型改成C++,就不会有这个错误,但需要将C的语法转换成C++语法才可以。

问题解决方案:

1、不靠谱的第一种方案

既然用C++编译可以,那就改成C++编译,然后把C的语法改成C++。

弊端:

这个工作量和.C文件本身的代码风格会有很大的差异,像我们的工程用到了sqlite和zlib,sqlite代码相对少点,但是把所有zlib中的.c改造成c++那真是一项繁重的体力活!!

2、方案2:Win32 Static Lib

新建了一个3rdparty的Win32 static lib工程,把sqlite和zlib的代码都添加进去,然后在Metro style app工程中include上这个3rdparty.lib

弊端或者说是风险:

在Metrol style app中引用win32的代码要特别留意,因为WinRT下只包含了Win32 API的一个子集,所以如果你在Win32工程下使用了WinRT不支持的API,那么工程虽然编译过了,但在WinRT下的使用其实是会有问题的,到时你可能会被这种错误搞的莫名其妙。

举例来说:

WinRT下是不支持WinSock2.h这套API的,但如果你的Win32 static lib工程中使用了这样的方法,而Metrol style app工程又使用了这个static lib,那么你的应用其实是有问题的,甚至有可能都无法通过Windows Store的上架申请。

小结:

两个方案我都尝试过,都是可行的,但都有弊端,其实这个问题归根结底就是Visual Studio 11 Developer Preview的一个bug,下一个VS2011版本应该就会修正了。

嗯,这是微软的一个BUG。

我的问题是:

WinRT下如何在另外一个线程中访问UI线程 How To Access UI Element In Another Thread
在UI所属线程之外的线程调用UI元素的方法或者属性会导致异常,怎样解决这样的问题呢?

微软为我们提供了这样的方法:

Windows::UI::Core::CoreDispatcher->Invoke

这个方法会将函数调用放到CoreDispatcher所属的线程中进行调用,而这个CoreDispatcher一般属于界面线程,可以这么得到:

Window::Current->CoreWindows->Dispatcher

示例:

假设存在一个回调接口的实现类CXXCallback,专门用于接收别的线程的回调消息,然后负责通知界面更新

1
2
3
4
5
6
7
8
void CXXCallback::OnUIChange()
{
auto callback = ref new Windows::UI::Core::InvokedHandler([this](Platform::Object^ sender, Windows::UI::Core::InvokedHandlerArgs^ eInvoke){
*** 进行界面更新,调用界面元素的方法**
*** ……**
},Platform::CallbackContext::Any);
**m_coreDispatcher**->Invoke(Windows::UI::Core::CoreDispatcherPriority::Normal, callback, m_coreDispatcher, nullptr);
}

m_coreDispatcher 可以从任何CoreWindows的派生类型中获取到,可以想象到WinRT的API在底下帮我们做了什么事情?

我们猜测底层的实现机制可能类似:

1、一个窗口,用来PostMessage

2、帮我们维护一些全局变量,让我们无缝的使用CXXCallback的类成员变量和OnUIChange()函数内的临时变量

比较有用的参考资料:

Async everywhere: creating responsive APIs & appsPPT的第31页的位置

4 Don’t worry about Dispatcher.Invoke…

How to Access UI Element in a Thread Routine?