Code Pack の話

Post on 28-May-2015

2.636 views 3 download

description

こみゅぷらす Community Launch 2009~Windows 7 コミュニティ勉強会 with Tech Fielders 東京編~で使用したスライドです。

Transcript of Code Pack の話

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) な部分もある• 実際に使う場合は、自己責任で• そのためのソースコード提供