code pack の話
DESCRIPTION
こみゅぷらす Community Launch 2009~Windows 7 コミュニティ勉強会 with Tech Fielders 東京編~で使用したスライドです。TRANSCRIPT
Code Pack の話
尾崎 義尚こみゅぷらす
自己紹介
• こんにちは、尾崎 義尚です。• http://spysee.jp/%E5%B0%BE%E5%B
4%8E%E7%BE%A9%E5%B0%9A
Code Pack とは
The Windows® API Code Pack for Microsoft® .NET Framework provides a source code library that can be used to access new Windows 7 features (and some related Windows Vista features) from managed code. These features are not available to developers today in the .NET Framework.
Code Pack とは
Windows API コード Pack for Microsoft .NET Framework は、マネージ コードからの Windows 7 の新機能 ( および一部関連の Windows Vista の機能 ) にアクセスするために使用できるソース コード ライブラリを提供します。これらの機能は、 .NET Framework で今日の開発者に使用できません。
Bing Translatorhttp://www.microsofttranslator.com/Default.aspx
Code Pack とは
マイクロソフト .NET Framework のための Windows API Code Pack は管理されたコードから新しい Windows7 機能 ( 或るものはウィンドウズビスタの特徴について話した ) にアクセスするのに使用できるソースコードライブラリを提供します。今日の .NET Framework における開発者には、これらの特徴は利用可能ではありません。
Excite 翻訳http://excite.co.jp/world/english/
Code Pack とは
• Windows® API Code Pack for Microsoft® .NET Framework (v0.90)
• Windows 7 の Feature を .NET から使うことができるソース コード ライブラリ
• サポートなし
Windows® API Code Pack for Microsoft® .NET Frameworkhttp://code.msdn.microsoft.com/WindowsAPICodePack
Code Gallery と CodePlex
• Code Gallery• 開発者情報の共有• 開発者リソースの共有• サンプルコード、コード スニペットなど
• プロジェクト管理はできない• 純粋なストレージ サイト
• CodePlex• オープンソース プロジェクト ホスティング
サイト• コード プロジェクトを管理可能
依存系
• .NET Framework 3.5 ( 以降 )• Windows 7 RC (v0.9 では )• DirectX の機能には、 Windows SDK
for Windows 7 RC 、 DirectX SDK が必要
>tree WindowsAPICodePack
フォルダー パスの一覧ボリューム シリアル番号は 00650064 A2B8:4507 ですC:\USERS\YOSHIHISA\DESKTOP\WINDOWSAPICODEPACK├─Samples│ ├─AppRestartRecoveryDemo│ │ ├─CS│ │ └─VB│ ├─DirectX│ │ ├─Direct2D│ │ │ ├─ChartDemo│ │ │ └─Paint2D│ │ ├─Direct3D10│ │ │ ├─MeshBrowser│ │ │ ├─TextureSwap│ │ │ │ └─TextureSwap│ │ │ ├─Tutorials│ │ │ │ ├─D3D10Tutorial01_WinFormsControl│ │ │ │ ├─D3D10Tutorial01_WinFormsWindow│ │ │ │ ├─D3D10Tutorial01_WPF│ │ │ │ ├─D3D10Tutorial02_WinFormsControl│ │ │ │ ├─D3D10Tutorial04_WinFormsControl│ │ │ │ ├─D3D10Tutorial05_WinFormsControl│ │ │ │ ├─D3D10Tutorial06_WinFormsControl│ │ │ │ ├─D3D10Tutorial07_WinFormsControl│ │ │ │ ├─D3D10Tutorial09_WinFormsControl│ │ │ │ │ ├─Media│ │ │ │ │ │ └─Tiger│ │ │ │ └─D3D10Tutorial09_WPF│ │ │ │ ├─Media│ │ │ │ │ └─Tiger│ │ │ └─WindowsFlag│ │ │ └─Properties│ │ ├─Direct3D11│ │ │ └─Tutorials│ │ │ ├─Tutorial02_WinFormsControl│ │ │ ├─Tutorial02_WinFormsWindow│ │ │ └─Tutorial02_WPF│ │ ├─DXGI│ │ │ └─EnumAdapters│ │ └─UtilitiesLibrary│ │ ├─Controls│ │ ├─D3DX10Helpers│ │ └─Utilities│ │ ├─Camera│ │ ├─Math│ │ ├─Mesh│ │ │ ├─MeshLoaders│ │ │ └─SimpleGeometry│ │ ├─Shaders│ │ └─Texture│ ├─ExplorerBrowser│ │ ├─CS│ │ │ ├─WinForms│ │ │ └─WPF│ │ │ └─WPFExplorerBrowserDemo│ │ └─VB│ │ ├─WinForms│ │ └─WPF│ │ └─WPFExplorerBrowserDemo│ ├─ExtendedLinguisticServices│ │ ├─CS│ │ └─VB│ ├─NetworkDemo│ │ ├─CS│ │ └─VB│ ├─PowerMgmtDemo│ │ ├─CS│ │ │ └─PowerMgmtDemo│ │ └─VB│ │ └─PowerMgmtDemo│ ├─Sensors│ │ ├─CS│ │ │ ├─AccelerationMeasurement│ │ │ └─AmbientLightMeasurement│ │ └─VB│ │ ├─AccelerationMeasurement│ │ └─AmbientLightMeasurement│ ├─Shell│ │ ├─KnownFoldersBrowser│ │ │ ├─CS│ │ │ │ └─KnownFoldersBrowser│ │ │ └─VB│ │ │ └─KnownFoldersBrowser│ │ ├─PicturePropertiesEditor│ │ │ ├─CS│ │ │ └─VB│ │ ├─PropertyEditDemo│ │ │ ├─CS│ │ │ └─VB│ │ ├─ShellHierarchyTreeDemo│ │ │ ├─CS│ │ │ └─VB│ │ ├─ShellObjectCFDBrowser│ │ │ ├─CS│ │ │ │ └─ShellObjectCFDBrowser│ │ │ └─VB│ │ │ └─ShellObjectCFDBrowser│ │ ├─ShellThumbnailBrowserDemo│ │ │ ├─CS│ │ │ │ └─ThumbnailBrowserDemo│ │ │ └─VB│ │ │ └─ThumbnailBrowserDemo│ │ ├─StarBackupUsingLibraries│ │ │ ├─CS│ │ │ │ ├─Icons│ │ │ │ └─Wizard│ │ │ └─VB│ │ │ ├─Icons│ │ │ ├─My Project│ │ │ └─Wizard│ │ ├─StockIconsDemo│ │ │ ├─CS│ │ │ │ └─StockIconsDemo│ │ │ └─VB│ │ │ └─StockIconsDemo│ │ ├─TabbedThumbnailDemo│ │ │ ├─CS│ │ │ │ └─Winforms│ │ │ └─VB│ │ │ └─Winforms│ │ ├─TaskbarDemo│ │ │ ├─CS│ │ │ │ ├─RegistrationHelper│ │ │ │ └─TaskbarDemo│ │ │ └─VB│ │ │ ├─RegistrationHelper│ │ │ └─TaskbarDemo│ │ └─ThumbnailToolbarDemo│ │ ├─CS│ │ │ ├─Winforms│ │ │ └─WPF│ │ └─VB│ │ ├─Winforms│ │ └─WPF│ └─TaskDialogDemo│ ├─CS│ │ └─TaskDialogDemo│ └─VB│ └─TaskDialogDemo
サンプル└─WindowsAPICodePack ├─Core │ ├─AppRestartRecovery │ ├─Dialogs │ │ ├─Common │ │ └─TaskDialogs │ ├─Interop │ │ ├─AppRestartRecovery │ │ ├─Dialogs │ │ ├─NetworkList │ │ ├─PowerManagement │ │ └─TaskDialogs │ ├─NetworkList │ ├─PowerManagement │ ├─Properties │ ├─PropertySystem │ └─SafeHandles ├─DirectX │ └─DirectX │ ├─Direct2D │ ├─Direct3D10 │ ├─Direct3D11 │ ├─Direct3DCommon │ ├─DirectWrite │ ├─DXGI │ └─WIC ├─ExtendedLinguisticServices │ └─Properties ├─Sensors │ ├─Interop │ ├─Metadata │ ├─ObjectModel │ ├─Properties │ └─Sensors │ ├─Light │ ├─Motion │ ├─Orientation │ ├─Position │ └─Proximity └─Shell ├─Common ├─CommonFileDialogs ├─Controls ├─Design ├─ExplorerBrowser ├─Interop │ ├─Common │ ├─Dialogs │ ├─ExplorerBrowser │ ├─KnownFolders │ ├─PropertySystem │ ├─StockIcons │ └─Taskbar ├─KnownFolders ├─Properties ├─PropertySystem ├─StockIcons └─Taskbar
ソースコード ライブラリ
再起動・リカバリー
再起動・リカバリー
再起動・リカバリー
再起動・リカバリー
再起動・リカバリー
再起動・リカバリー
再起動・リカバリー
再起動・リカバリー
再起動・リカバリー
再起動・リカバリー
CodePack とは• Windows 7 タスクバー
• ジャンプリスト• アイコン オーバーレイ• 進捗 (プログレス) バー• タブ化されたサムネイル• サムネイル ツールバー
• Windows 7 Shell ライブラリ• Windows 7 Explorer Browser Control• シェル プロパティ システム• コモン ファイル ダイアログ• タスク ダイアログ• Direct X
• Direct3D 11.0, 10.1/10.0• DXGI 1.0/1.1• Direct2D 1.0• DirectWrite (一部サポート)• Windows Imaging Component (WIC) APIs (一部サポート)
• センサー• 拡張言語サービス• 電源管理• アプリケーションの再起動と復旧• ネットワーク リスト マネージャー• コマンド リンクとシステムで定義されたシェルアイコン
>tree WindowsAPICodePack
フォルダー パスの一覧ボリューム シリアル番号は 00650064 A2B8:4507 ですC:.WindowsAPICodePack├─Samples└─WindowsAPICodePack
>tree WindowsAPICodePack\ WindowsAPICodePack
└─WindowsAPICodePack ├─Core │ ├─AppRestartRecovery │ ├─Dialogs │ ├─NetworkList │ ├─PowerManagement │ ├─PropertySystem │ └─SafeHandles ├─DirectX ├─ExtendedLinguisticServices ├─Sensors └─Shell ├─Common ├─CommonFileDialogs ├─Controls ├─ ExplorerBrowser ├─KnownFolders ├─PropertySystem ├─StockIcons └─Taskbar
再起動・リカバリーダイアログ
ネットワーク電源管理
プロパティーハンドル管理
Direct X拡張言語サービス
センサー
シェル共通コモン ファイル ダイアログ
コントロールエクスプローラー ブラウザー
既知のフォルダーセンサー
拡張言語サービス
>tree WindowsAPICodePack\Samplesフォルダー パスの一覧ボリューム シリアル番号は 00650064 A2B8:4507 ですC:\USERS\YOSHIHISA\DESKTOP\WINDOWSAPICODEPACK├─Samples│ ├─AppRestartRecoveryDemo│ ├─DirectX│ │ ├─Direct2D│ │ │ ├─ChartDemo│ │ │ └─Paint2D│ │ ├─Direct3D10│ │ │ ├─MeshBrowser│ │ │ ├─TextureSwap│ │ │ ├─Tutorials│ │ │ └─WindowsFlag│ │ ├─Direct3D11│ │ ├─DXGI│ │ │ └─EnumAdapters│ ├─ExplorerBrowser│ ├─ExtendedLinguisticServices│ ├─NetworkDemo│ ├─PowerMgmtDemo│ ├─Sensors│ ├─Shell│ │ ├─KnownFoldersBrowser│ │ ├─PicturePropertiesEditor│ │ ├─PropertyEditDemo│ │ ├─ShellHierarchyTreeDemo│ │ ├─ShellObjectCFDBrowser│ │ ├─ShellThumbnailBrowserDemo│ │ ├─StarBackupUsingLibraries│ │ ├─StockIconsDemo│ │ ├─TabbedThumbnailDemo│ │ ├─TaskbarDemo│ │ └─ThumbnailToolbarDemo│ └─TaskDialogDemo
APPRESTARTRECOVERYアプリの再起動・リカバリー
Application Recovery and Restart
• 以下のような場合にアプリケーションを再起動することができる• ハンドルされていない例外• 反応なし• 停止• インストーラーによるアップデート• コンピューターの再起動
• 再起動に備えてデータを保存• 再起動後にデータを読み込んで状態を復
元
AppRestartRecoveryDemo (1/25)
DIRECT X
Direct X on Windows 7
Hardware
Win 32
User GDI
GDI+
DirectX Graphic Infrastructure
Direct3D 9
DirectX Video
Acceleratior
Windows Imaging ComponentDirectWrite
Direct3D 10 Direct3D 11
Direct 2D
Desktop Window Manager
新しい API
Direct 2D
Hardware
メモリ
GDI
Desktop Window Manager
GPU
GDI
GPU
Direct 2D
Windows Vista Windows 7
同じ画像を 2 重で保持 GPU に直接描画
高速化 メモリ使用量減
DIRECTX GRAPHIC INFRASTRUCTURE (DXGI)
DirectX Graphic Infrastructure (2/25)
DIRECT 3D 10
ドライブ C のボリューム ラベルがありません。 ボリューム シリアル番号は A2B8-4507 です
C:\...\DirectX\Direct3D10 のディレクトリ
2009/06/25 13:04 <DIR> .2009/06/25 13:04 <DIR> ..2009/06/24 07:29 <DIR> MeshBrowser2009/06/25 13:03 <DIR> TextureSwap2009/06/14 10:29 <DIR> Tutorials2009/06/14 10:29 <DIR> WindowsFlag 1 個のファイル 0 バイト 6 個のディレクトリ 101,712,412,672 バイトの空き領域
Mesh Browser (3/25)
X ファイル ビューアー
ドライブ C のボリューム ラベルがありません。 ボリューム シリアル番号は A2B8-4507 です
C:\...\DirectX\Direct3D10 のディレクトリ
2009/06/25 13:04 <DIR> .2009/06/25 13:04 <DIR> ..2009/06/24 07:29 <DIR> MeshBrowser2009/06/25 13:03 <DIR> TextureSwap2009/06/14 10:29 <DIR> Tutorials2009/06/14 10:29 <DIR> WindowsFlag 1 個のファイル 0 バイト 6 個のディレクトリ 101,712,412,672 バイトの空き領域
Texturizer Demo (4/25)
テクスチャの貼り付けデモ
ドライブ C のボリューム ラベルがありません。 ボリューム シリアル番号は A2B8-4507 です
C:\...\DirectX\Direct3D10 のディレクトリ
2009/06/25 13:04 <DIR> .2009/06/25 13:04 <DIR> ..2009/06/24 07:29 <DIR> MeshBrowser2009/06/25 13:03 <DIR> TextureSwap2009/06/14 10:29 <DIR> Tutorials2009/06/14 10:29 <DIR> WindowsFlag 1 個のファイル 0 バイト 6 個のディレクトリ 101,712,412,672 バイトの空き領域
Tutorials (5/25)
WindowsFlag (6/25)
ドライブ C のボリューム ラベルがありません。 ボリューム シリアル番号は A2B8-4507 です
C:\...\DirectX\Direct3D10 のディレクトリ
2009/06/25 13:04 <DIR> .2009/06/25 13:04 <DIR> ..2009/06/24 07:29 <DIR> MeshBrowser2009/06/25 13:03 <DIR> TextureSwap2009/06/14 10:29 <DIR> Tutorials2009/06/14 10:29 <DIR> WindowsFlag 1 個のファイル 0 バイト 6 個のディレクトリ 101,712,412,672 バイトの空き領域
DIRECT 3D 11
Tutorials (7/25)
• 動かない・・・
EXPLORER BROWSER
Explorer Browser (8/25)表示オプショ
ンナビゲーション
ファイル情報
EXTENDED LINGUISTIC SERVICES拡張言語サービス
拡張言語サービス(Extended Linguistic Services)
• 国際化対応の仕組み• Unicode テキストから言語を自動検出• 表記変換• 簡体字中国語から繁体字中国語への変換など
拡張言語サービス サンプル (9/25)
NETWORKネットワーク
Network List Demo (10/25)
ネットワーク (Network クラス )プロパティCategory Public / Private / Authenticated
ConnectedTime ネットワークに接続された時間
Connections NetworkConnection コレクション
Connectivity Disconnected / IPV4 ・ 6 – LocalNetwork / NoTraffic / Subnet
CreateTime ネットワークが作成された日時
Description ネットワークの説明
DomainType NonDomainNetwork / DomainNetwork / DomainAuthenticated
IsConnected ネットワークに接続されているかどうか
IsConnectedToInternet インターネットに接続されているかどうか
Name ネットワークの名前
NetworkId ネットワークの ID
ネットワーク接続NetworkConnection クラス プロパティAdapterId 接続に対するアダプター ID
ConnectionId 接続のユニーク ID
Connectivity Disconnected / IPV4 ・ 6 – LocalNetwork / NoTraffic / Subnet
DomainType NonDomainNetwork / DomainNetwork / DomainAuthenticated
IsConnected ネットワークに接続されているかどうか
IsConnectedToInternet インターネットに接続されているかどうか
POWER MANAGEMENT電源管理
Power Management (11/25)
電源管理 (PowerManager クラス )メソッドGetCurrentBatteryState
バッテリーの状態を取得
プロパティBatteryLifePercent バッテリーの残量 %
IsBatteryPresent バッテリーが存在しているかどうか
IsBatteryShortTerm バッテリーが短期間モードかどうか
IsMonitorOn モニターがオンかどうか
IsUpsPresent UPS が存在しているかどうか
MonitorRequired モニターの表示が必要かどうか
PowerPersonality HighPerformance / PowerSaver / Automatic
PowerSource AC / Battery/ UPS
RequestBlockSleep スリープをブロックする必要があるかどうか
電源管理 (PowerManager クラス )
• GetCurrentBatteryState() メソッドBatteryState クラス
ACOnline 電源が刺さってるかどうか
CurrentCharge 現在のチャージ量 (mWh)
IsBatteryShortTerm 消費量 (mWh)
EstimatedTimeRemaining 見積もり残り時間
MaxCharge 最大チャージ量 (mWh)
SuggestedBatteryWarningCharge
メーカーがそろそろ充電した方がいいんじゃないかと考えているバッテリー残量
SuggestedCriticalBatteryCharge
メーカーが充電しないとやばいと考えているバッテリ残量
SENSORSセンサー
センサーセンサーの種類 一般的な用途
GPS 位置、および方位
加速度計 動作、方位、および位置
近接 存在、および空間認識
光 部屋の照明や屋内の日光など、環境光の状態
RFID 物理項目の ID 、自動ログオン、および人物の位置
コンパス 方位
カメラ 録画、物体識別、および顔認識
マイク 周囲の音
温度 屋内 /屋外の環境温度および調理温度
湿度 水漏れの検出、および芝生用スプリンクラーの操作
動作検出器 セキュリティ システム、およびコンピューター付近の動作の検出
交通 移動時間の予測
気象計 気象条件、および天気予報
Sensor Samples (12 ・ 13/25)
• Acceleration Measurement
• Ambient Light Level (環境光センサー )
SHELLシェル
Shell Samples
ドライブ C のボリューム ラベルがありません。 ボリューム シリアル番号は A2B8-4507 です
C:\...\Samples\Shell のディレクトリ
2009/06/14 10:30 <DIR> KnownFoldersBrowser2009/06/14 10:30 <DIR> PicturePropertiesEditor2009/06/14 10:30 <DIR> PropertyEditDemo2009/06/14 10:30 <DIR> ShellHierarchyTreeDemo2009/06/14 10:30 <DIR> ShellObjectCFDBrowser2009/06/14 10:30 <DIR> ShellThumbnailBrowserDemo2009/06/14 10:30 <DIR> StarBackupUsingLibraries2009/06/14 10:31 <DIR> StockIconsDemo2009/06/14 10:31 <DIR> TabbedThumbnailDemo2009/06/14 10:31 <DIR> TaskbarDemo2009/06/14 10:31 <DIR> ThumbnailToolbarDemo
Known Folders Browser (14/25)
KnownFoldersBrowserPicturePropertiesEditorPropertyEditDemoShellHierarchyTreeDemoShellObjectCFDBrowserShellThumbnailBrowserDemoStarBackupUsingLibrariesStockIconsDemoTabbedThumbnailDemoTaskbarDemoThumbnailToolbarDemo
Picture Properties Editor (15/25)
KnownFoldersBrowserPicturePropertiesEditorPropertyEditDemoShellHierarchyTreeDemoShellObjectCFDBrowserShellThumbnailBrowserDemoStarBackupUsingLibrariesStockIconsDemoTabbedThumbnailDemoTaskbarDemoThumbnailToolbarDemo
PropertyEditDemo (16/25)
KnownFoldersBrowserPicturePropertiesEditorPropertyEditDemoShellHierarchyTreeDemoShellObjectCFDBrowserShellThumbnailBrowserDemoStarBackupUsingLibrariesStockIconsDemoTabbedThumbnailDemoTaskbarDemoThumbnailToolbarDemo
ShellHierarchyTreeDemo (17/25)
KnownFoldersBrowserPicturePropertiesEditorPropertyEditDemoShellHierarchyTreeDemoShellObjectCFDBrowserShellThumbnailBrowserDemoStarBackupUsingLibrariesStockIconsDemoTabbedThumbnailDemoTaskbarDemoThumbnailToolbarDemo
ShellObjectCFDBrowser (18/25)
KnownFoldersBrowserPicturePropertiesEditorPropertyEditDemoShellHierarchyTreeDemoShellObjectCFDBrowserShellThumbnailBrowserDemoStarBackupUsingLibrariesStockIconsDemoTabbedThumbnailDemoTaskbarDemoThumbnailToolbarDemo
ShellThumbnailBrowserDemo (19/25)
KnownFoldersBrowserPicturePropertiesEditorPropertyEditDemoShellHierarchyTreeDemoShellObjectCFDBrowserShellThumbnailBrowserDemoStarBackupUsingLibrariesStockIconsDemoTabbedThumbnailDemoTaskbarDemoThumbnailToolbarDemo
StarBackupUsingLibraries (20/25)
KnownFoldersBrowserPicturePropertiesEditorPropertyEditDemoShellHierarchyTreeDemoShellObjectCFDBrowserShellThumbnailBrowserDemoStarBackupUsingLibrariesStockIconsDemoTabbedThumbnailDemoTaskbarDemoThumbnailToolbarDemo
StockIconsDemo (21/25)
KnownFoldersBrowserPicturePropertiesEditorPropertyEditDemoShellHierarchyTreeDemoShellObjectCFDBrowserShellThumbnailBrowserDemoStarBackupUsingLibrariesStockIconsDemoTabbedThumbnailDemoTaskbarDemoThumbnailToolbarDemo
TabbedThumbnailDemo (22/25)
KnownFoldersBrowserPicturePropertiesEditorPropertyEditDemoShellHierarchyTreeDemoShellObjectCFDBrowserShellThumbnailBrowserDemoStarBackupUsingLibrariesStockIconsDemoTabbedThumbnailDemoTaskbarDemoThumbnailToolbarDemo
TabbedThumbnailPreview preview = new TabbedThumbnailPreview(this.Handle, newTab.Handle);Taskbar.TabbedThumbnail.AddThumbnailPreview(preview);
TaskbarDemo (23/25)
KnownFoldersBrowserPicturePropertiesEditorPropertyEditDemoShellHierarchyTreeDemoShellObjectCFDBrowserShellThumbnailBrowserDemoStarBackupUsingLibrariesStockIconsDemoTabbedThumbnailDemoTaskbarDemoThumbnailToolbarDemo
注目!
タスクバー機能
• ジャンプリスト
• アイコン オーバーレイ
• プログレスバー
ThumbnailToolbarDemo (24/25)
KnownFoldersBrowserPicturePropertiesEditorPropertyEditDemoShellHierarchyTreeDemoShellObjectCFDBrowserShellThumbnailBrowserDemoStarBackupUsingLibrariesStockIconsDemoTabbedThumbnailDemoTaskbarDemoThumbnailToolbarDemo
TASK DIALOGタスク ダイアログ
TaskDialogDemo (25/25)
タスク ダイアログタスク ダイアログ サンプルタスク ダイアログ テスト ハーネスコモン ボタン昇格要求エラーアイコン進捗進捗効果タイマー
CodePack 未対応の 7 フィーチャー
• リボン• マルチタッチ• インク• DirectWrite• などなど
まとめ
• CodePack には、いろいろな技術要素が詰まっている
• マネージドな世界から最新技術にリーチすることができる
• まだまだ未完成 (v0.90) な部分もある• 実際に使う場合は、自己責任で• そのためのソースコード提供