2010年3月8日
#
WinZip を使ったコマンドラインでの圧縮する方法です。
ま、イチイチ説明しなくても分かるでしょう。。
start /wait WinZip -min -a -r "%1%.zip" "%1%"
2010年1月23日
#
---
VS2008で、MDBからSQL Serverへのコンバートプログラムを作っているときに
こんなメッセージが出ちゃいました。
ふむ、、、
調べてみると、x64だとこのメッセージが出るそうです。
ということで、「プロジェクト」の「プロパティ」を表示して、
「ビルド」のタブを選択して、「プラットフォームターゲット」を「x86」にします。
---
Beta版ですがx64用のドライバがリリースされていますよ!
今更、こんなの使う必要ないんじゃないの?って思う人がいるかもしれませんが、
(てか、私も思っていましたw)教育の場では結構使われているようです。
■'Microsoft.Jet.OLEDB.4.0' プロバイダはローカルのコンピュータに登録されていません。 - 石野光仁 Blog
http://www.ailight.jp/blog/ishino/archive/2010/01/19/28141.aspx
■2010 Office system Beta ドライバ: データ接続コンポーネント - Microsoft
http://www.microsoft.com/downloads/details.aspx?FamilyID=C06B8369-60DD-4B64-A44B-84B371EDE16D&displaylang=ja
2010年1月13日
#
元々、日本では1ヶ月で1~2時間くらいしかTVは見てなかったんですが、アメリカに来る前に、
"日本のTV番組を録画してアメリカで視聴"できるようにしてきました。ここ2年間、使っていますが、
特に問題なく使えています。
別に難しいことをしてるわけではないのですが、興味ある人がいるかと思いますので、簡単に方法を
紹介したいと思います。
1.日本にTVチューナー+Media Centerを使えるPCを設置
録画ができれば何でもいいんでしょうけど、Media Centerで録画を行うことにしました。番組表でも
タイトルでも予約ができるので、必要十分かと思います。リモートデスクトップ経由で、録画予約を
行っています。
なお、地デジだと特殊なチューナーでも買わないと、録画した番組が他のPCで見れないので注意が
必要です。うーむ。
Media Centerが使えるWindowsは、以下のとおりです。
・Windows XP Media Center Edition
・Windows Vista Home Premium/Ultimate Edition
・Windows 7 Home Premium 以上
■Vista標準搭載の「Windows Media Center」をチェック - PC Watch
http://bb.watch.impress.co.jp/static/vista/wmc/2007/02/07/index.html
2.MCEBuddy をインストール
Media Centerで録画すると、dvr-msという特殊な形式の動画が作成されます。普通のMP2ファイルで
作成できるといいんですけどね。それよりも、アメリカに動画ファイルを送るには大きすぎるのが問題です。
1のPCにMCEBuddyをインストールすると、Media Centerが録画した動画ファイルが格納されるフォルダを
監視し、WMVファイル等にコンバートしてくれます。
私は使っていませんが、広告の除去もできるようです。
■Media Center の .dvr-ms 形式の動画を変換する (MCEBuddy)
http://techno-st.net/2008/04/16/media-center-dvrms-mcebuddy.html
■MCEBuddy
http://mcebuddy.com/
3.Windows Live Sync をインストール
WMVファイルを日本からアメリカに移動するために、Windows Live Syncをインストールします。
バックグラウンドで少しずつコピーしてくれるので便利です。当然ですが、日本とアメリカの両方に
インストールが必要です。
■無料サービス“Windows Live Sync”で複数PCのファイルをらくらく同期! - 窓の杜
http://www.forest.impress.co.jp/article/2009/05/28/live_sync_sp.html
■Windows Live Sync
https://sync.live.com/
個人的には、更に3の前にタスクスケジューラを使って、数時間ごとに録画された動画を、
番組ごとのフォルダに移動するようにしています。
■Windows/Vista/タスクスケジューラーでバッチファイルを実行する方法
http://tobysoft.net/wiki/index.php?Windows%2FVista%2F%A5%BF%A5%B9%A5%AF%A5%B9%A5%B1%A5%B8%A5%E5%A1%BC%A5%E9%A1%BC%A4%C7%A5%D0%A5%C3%A5%C1%A5%D5%A5%A1%A5%A4%A5%EB%A4%F2%BC%C2%B9%D4%A4%B9%A4%EB%CA%FD%CB%A1
2010年1月12日
#

うちから歩いて5分くらいのところにあるMSNが入っているビルです。レドモンドではなくベルビューにあります。2月にこちらに来る人は見れるかも?
なお、そこから歩いて1分のところにExpediaの本社があります。
2009年11月26日
#
Visual Studio 2010 Beta 2 に付属のWindows SDKにも、x64用の
url.libが入っていません。Visual Studio 2005 の時から未だに
修正されてないんだけど、誰も報告してないんだろうか。。
やっぱり、Microsoft Connect で報告するしかないのかなぁ?
なお、x64用 の msi.lib は入っていました!
■x64用のurl.libが入っていない - Windows SDK
http://www.ailight.jp/blog/sha256/archive/2007/04/23/13766.aspx
■x86用のmsi.libが入っていない - VS2005
http://www.ailight.jp/blog/sha256/archive/2007/04/24/13768.aspx
2009年11月24日
#
2009年11月23日
#
Microsoft Office 2007からメニューとツールバーに変わり導入されたリボンの
豆知識です。
・タブの上でマウスのホイールを回転させると、選択しているタブが変わる
・タブをダブルクリックすると、リボンの表示・非表示が切り替わる
・Office 2010 から、リボンの表示・非表示を切り替えるボタンが追加される
。。どーでもいい話で、すみません
2009年11月20日
#
名著"Code Complete"の著者であるSteve McConnell さんが、World-
Class Software Organizations についての講演を、私が通っている
カレッジ(Bellevue College)で行ったので、聴きに行ってきました。

よく知らなかったのですが、今はConstruxという会社のCEOおよびCTO
として働いているそうです。Microsoft 本社のあるRedmond から車で
20分、私のアパートから歩いてたったの10-15分という場所でした。
大きな地図で見る
面白かったのは、世界クラスのソフトウエアの組織の特質についての
説明でした。
Attributes of World-Class Software Organizations
- Top talent
- Support for top talent
- Strong sense of mission
- High degree of alignment with the mission
- Real business accountability
- Commitment to quality (variously defined)
- Frequent introspection
(learning from mistake)
- "Standard" practices become highly adapted to local environment
- High degree of staff commitment, but as an effect of the other factors, not as a cause

講演が終わったあと、Code Completeにサインをしてもらう人で列が
できていましたw
■Steve McConnell
http://www.stevemcconnell.com/
■10x Software Development
http://blogs.construx.com/blogs/stevemcc/default.aspx
■UWTV Program: Steve McConnell, Construx - University of Washington
http://www.uwtv.org/programs/displayevent.aspx?rID=2325
■Construx
http://www.construx.com/
2009年11月17日
#
#世間的には、Office 2010 Betaで盛り上がってそうですが。。
Office 2007から、今までのメニューとツールバーから、リボンを使った
ユーザインターフェースに大きく変わりました。
インプレイス・アクティベーションのユーザインターフェース上の大きな
特徴の1つは、自然な形で、二つのアプリケーションのメニューがマージされ、
ツールバーが切り替わることです。
さて、メニューとツールバーが廃止されたOffice 2007で、どのように
インプレイス・アクティベーションが表現されるのか実験してみました。

。。かなりカッコ悪いですね。
2009年11月16日
#
Hyper-V 上に、Windows Servr 2003 with SP1をインストール
してみました。
統合サービスをインストールしようとしたら、SP2をインストール
しないといけないらしい。
仕方なくSP2をダウンロードしようとしたら、ネットワークアダプタの
ドライバが標準でインストールされていないので、Windows Updateが
実行できない。。
そこでSP2のISOイメージを別のPCでダウンロードしてインストールしたら、
無事に統合サービスもインストールでき、ネットワークアダプタも使えるよう
になりました。
■Windows Server 2003 Service Pack 2 (32 ビット x86) - ISO-9660 CD イメージ ファイル - Microsoft
http://www.microsoft.com/downloads/details.aspx?displaylang=ja&FamilyID=1b9fe9e4-1d57-4698-a5cf-db271ed6d90a
■Windows Server 2003 Service Pack 2, x64 Editions - ISO-9660 CD イメージ ファイル - Microsoft
http://www.microsoft.com/downloads/details.aspx?displaylang=ja&FamilyID=8a6ebfb5-833d-44e2-bf92-44648a8bb250
2009年11月14日
#
これまた来年のGlobal MVP Summit に来る人への情報です。
今まで、Sea-Tac空港からダウンタウン・シアトルへの移動は
タクシー、普通のバス、乗り合いバスなどしかありませんでした。
普通のバスは2.5ドルと割安なのですが、混んでる時間には
大きなバッグを持ち込みづらいという難点がありました。
また、慣れていないとバスに乗るのも難しいですし。
しかし、12月19日にSea-Tac空港からダウンタウン・シアトルまで
鉄道が開通するので、かなり楽になるかと思います!
ダウンタウン・シアトルでは、バスと電車が同じ地下トンネルを
走るそうなので、きっと見たら変な感じがするんでしょうね。
。。なーんて書いたけど、ツアーのバスを使わないのは、
いつものごく一部の人たちだけか。
■Light Rail comes to Sea-Tac Airport December 19 - tulwilakomo
http://tukwila.komonews.com/content/light-rail-comes-sea-tac-airport-december-19
2009年11月12日
#
来年のGlobal MVP Summit に来る人への朗報です。
今まで Sea-Tac 空港でWi-Fi を使うためには、AT&T に1日10ドル近く
お金を払う使う必要がありました。
しかし、Google がSea-Tac 空港をはじめ47の空港に無料のWi-Fi の設置を
行うようになるそうです。(来年の1月からは空港自身が無料サービスを行う模様)
■Free Wi-Fi at Sea-Tac, courtesy of Google - Seattle PI
http://blog.seattlepi.com/thebigblog/archives/184665.asp
2009年11月5日
#
Windows Live Sync の制限です。
1ファイル当たり最大 4 GBというのはちょっと厳しいなぁ。
VHDファイルやISOファイルが送れないじゃーん。
・最大20 フォルダーまで
・1 フォルダー当たり最大 20,000 ファイルまで
・1 ファイル当たり最大 4 GBまで
・ネットワーク ドライブは使えない
■Windows Live ヘルプ
http://help.live.com/Help.aspx?mkt=ja-JP&project=WL_Sync
2009年10月30日
#
こんなのを発見。Amazon.com で見ると、$17とお手ごろ。
うー。買っちゃおうかな。。
■Belkin Mini Surge Protector with USB Charger - Belkin
http://www.belkin.com/IWCatProductPage.process?Product_Id=400738
■Belkin BZ103050vTVL Mini Surge Protector/Dual USB Charger - Amazon.com
http://www.amazon.com/Belkin-BZ103050vTVL-Surge-Protector-Charger/dp/B0017HF3XO
2009年10月26日
#
早速、Windows Virtual PC 上へ、Windows Server 2008 R2 を
インストールしてみました。
しかし、インストールの最初の時点でエラーが発生
Windows Server 2008 R2 は、32bit 版が廃止され、64 bit 版のみリリース
されちます。しかし、Windows Virtual PC は、64 bit OS をサポートしていない
のが原因ではないかと思われます。
待ちに待ってたVAIO VGN-FW用のIntel VTが有効になるBIOSが
リリースされました。(他の機種のアップデートも出てます。)
これで、Hyper-V 2.0 や Windows Virtual PC が楽しめます!
■Intel Virtualization Technology(インテル バーチャライゼーション・テクノロジー)機能への対応
http://search.vaio.sony.co.jp/qasearch/solution/S0909011066196/?p=&q=Intel%20VT%20VAIO
2009年10月17日
#
以前、日本のニュースでも紹介されてましたが、アリゾナ州スコッツデールに
来週、Microsoftの初の小売店がオープンするようです。94インチ!の大画面で
Xbox 360のゲームができるらしいですよ。面白そう。
Apple Store みたいに、オシャレな感じになるんでしょうかねぇ?
スコッツデールって、どこ?と思い調べてみたら、アメリカでも指折りの
リゾート地らしいです。
大きな地図で見る
シアトル近郊に作ってくれれば、見に行くんですけどねぇ。
■First Microsoft retail store could open next week - Seattle PI
http://blog.seattlepi.com/microsoft/archives/182226.asp
2009年10月9日
#
SONY から正式にIntel VT が有効になるBIOSがリリース
する(予定)らしいです!!
なんと、VAIOシリーズは、わざわざBIOSレベルでIntel VTを
無効にしてたんですよ、今まで。
#裏技でBIOSのデータを書き換えるという方法もありますけど
これで、Windows Server 2008 R2 を入れて、Hyper-V で
楽しむことができます!Winddows XP modeもね。
■Intel Virtualization Technology(インテル バーチャライゼーション・テクノロジー)機能への対応
http://search.vaio.sony.co.jp/qasearch/solution/S0909011066196/?p=&q=Intel%20VT%20VAIO
2009年9月25日
#
Windows 7/Windows Server 2008 R2 からサポートされたVHDブート。
本当に便利で気のきいた機能だと思うのですが、今さらメリットを書いても
仕方ないので、デメリットでも。。
(1) システムの評価 (Windows エクスペエリエンス インデックス) が計測できなくなる
実行することはできるんですけど、ディスクのデータ転送速度の評価ではねられます。
ディスク以外の項目だけでも表示してくれればいいのにねぇ。
(2) サスペンドができなくなる
ラップトップPCを使っている場合には、ちょっと不便ですね。
他にも何かあれば、是非、教えてください。
2009年8月27日
#
VHDファイルの作成やアタッチ・デタッチするには、管理コンソールだけではなく
DiskPartコマンドも使うことができます。
しかし、DiskPartコマンドは、通常のコマンドのようにシングルライン モードで
使うことができないので、バッチファイルで使用するには一工夫が必要です。
以下のように一工夫を加えると、VHDファイルのアタッチ・デタッチをバッチファイルの
中で行うことができます
---
@echo on
rem Attach VHD file
set VHDFile="D:\Virtual Hard Disks\Users.vhd"
set ScriptFile="%cd%\DiskPart.txt"
del %ScriptFile%
echo select vdisk file=%VHDFile% >> %ScriptFile%
echo attach vdisk >> %ScriptFile%
echo exit >> %ScriptFile%
diskpart /s %ScriptFile%
del %ScriptFile%
---
---
@echo on
rem Detach VHD file
set VHDFile="D:\Virtual Hard Disks\Users.vhd"
set ScriptFile="%cd%\DiskPart.txt"
del %ScriptFile%
echo select vdisk file=%VHDFile% >> %ScriptFile%
echo detach vdisk >> %ScriptFile%
echo exit >> %ScriptFile%
diskpart /s %ScriptFile%
del %ScriptFile%
---
2009年8月7日
#
英語版のWindows 7 RTM が、MSDNサブスクライバ・ダウンロードでダウンロードできるようになってます!SDKもダウンロードできるけど、Windows Server 2008 R2は、まだダウンロードできないようです。。
英語版じゃイヤだって思う人もいるかもしれませんが、Ultimateならインストール後に表示言語を日本語に切り替えてしまえば、日本語版と何も変わりありませんよ。
2009年8月6日
#
ちょっと面白いそうかなと思い、VMware Guest SDK を触ってみました。
しかし、残念ながらこのSDKだと大したことできないようです。
#今度、VMware infrastructure SDK で遊んでみようっと。
使う人がいるとは思えませんが、とりあえずラッパクラスを公開します。
---
#pragma once
// Created by Akihiro Shamoto on August 5th 2009.
#if defined(_WTL_USE_CSTRING) || defined(__ATLSTR_H__)
#include <memory>
#endif
#include "vmGuestLib.h"
#ifdef _WIN32
#pragma comment(lib, "win32\\vmGuestLib.lib")
#endif
#ifdef _WIN64
#pragma comment(lib, "win64\\vmGuestLib.lib")
#endif
////////////////////////////////////////////////////////////////////////////////
// CVMGuestLibHandleT
template <bool t_bManaged>
class CVMGuestLibHandleT
{
protected:
typedef CVMGuestLibHandleT<t_bManaged> thisClass;
public:
CVMGuestLibHandleT(__in bool bOpened = true)
{
m_handle = NULL;
if (bOpened)
{
this->Open();
}
}
CVMGuestLibHandleT(__in VMGuestLibHandle handle)
{
m_handle = NULL;
this->Attach(handle);
}
virtual ~CVMGuestLibHandleT()
{
if (t_bManaged && m_handle != NULL)
{
this->Close();
}
}
public:
bool IsValid()
{
return m_handle ? true : false;
}
public:
void Attach(__in VMGuestLibHandle handle)
{
ATLASSERT(m_handle == NULL);
ATLASSERT(handle != NULL);
m_handle = handle;
}
VMGuestLibHandle Detach()
{
ATLASSERT(m_handle != NULL);
HMODULE hModule = m_handle;
m_handle = NULL;
return hModule;
}
public:
CVMGuestLibHandleT& operator =(__in VMGuestLibHandle handle)
{
this->Close();
this->Attach(hModule);
return *this;
}
operator VMGuestLibHandle() const
{
return m_handle;
}
VMGuestLibHandle GetHandle()
{
return m_handle;
}
public:
VMGuestLibError Open()
{
ATLASSERT(m_handle == NULL);
return ::VMGuestLib_OpenHandle(&m_handle);
}
VMGuestLibError Close()
{
ATLASSERT(m_handle != NULL);
VMGuestLibError result = ::VMGuestLib_CloseHandle(m_handle);
m_handle = NULL;
return result;
}
public:
VMGuestLibError UpdateInfo()
{
ATLASSERT(m_handle != NULL);
return ::VMGuestLib_UpdateInfo(m_handle);
}
VMGuestLibError GetSessionId(__out VMSessionId* id)
{
ATLASSERT(m_handle != NULL);
ATLASSERT(id != NULL);
return ::VMGuestLib_GetSessionId(m_handle, id);
}
VMGuestLibError GetCpuReservationMHz(__out uint32* cpuReservationMHz)
{
ATLASSERT(m_handle != NULL);
ATLASSERT(cpuReservationMHz != NULL);
return ::VMGuestLib_GetCpuReservationMHz(m_handle, cpuReservationMHz);
}
VMGuestLibError GetCpuLimitMHz(__out uint32* cpuLimitMHz)
{
ATLASSERT(m_handle != NULL);
ATLASSERT(cpuLimitMHz != NULL);
return ::VMGuestLib_GetCpuLimitMHz(m_handle, cpuLimitMHz);
}
VMGuestLibError GetCpuShares(__out uint32* cpuShares)
{
ATLASSERT(m_handle != NULL);
ATLASSERT(cpuShares != NULL);
return ::VMGuestLib_GetCpuShares(m_handle, cpuShares);
}
VMGuestLibError GetCpuUsedMs(__out uint64* cpuUsedMs)
{
ATLASSERT(m_handle != NULL);
ATLASSERT(cpuUsedMs != NULL);
return ::VMGuestLib_GetCpuUsedMs(m_handle, cpuUsedMs);
}
VMGuestLibError GetHostProcessorSpeed(__out uint32* mhz)
{
ATLASSERT(m_handle != NULL);
ATLASSERT(mhz != NULL);
return ::VMGuestLib_GetHostProcessorSpeed(m_handle, mhz);
}
VMGuestLibError GetMemReservationMB(__out uint32* memReservationMB)
{
ATLASSERT(m_handle != NULL);
ATLASSERT(memReservationMB != NULL);
return ::VMGuestLib_GetMemReservationMB(m_handle, memReservationMB);
}
VMGuestLibError GetMemLimitMB(__out uint32* memLimitMB)
{
ATLASSERT(m_handle != NULL);
ATLASSERT(memLimitMB != NULL);
return ::VMGuestLib_GetMemLimitMB(m_handle, memLimitMB);
}
VMGuestLibError GetMemShares(__out uint32* memShares)
{
ATLASSERT(m_handle != NULL);
ATLASSERT(memShares != NULL);
return ::VMGuestLib_GetMemShares(m_handle, memShares);
}
VMGuestLibError GetMemMappedMB(__out uint32* memMappedSizeMB)
{
ATLASSERT(m_handle != NULL);
ATLASSERT(memMappedSizeMB != NULL);
return ::VMGuestLib_GetMemMappedMB(m_handle, memMappedSizeMB);
}
VMGuestLibError GetMemActiveMB(__out uint32* memActiveMB)
{
ATLASSERT(m_handle != NULL);
ATLASSERT(memActiveMB != NULL);
return ::VMGuestLib_GetMemActiveMB(m_handle, memActiveMB);
}
VMGuestLibError GetMemOverheadMB(__out uint32* memOverheadMB)
{
ATLASSERT(m_handle != NULL);
ATLASSERT(memOverheadMB != NULL);
return ::VMGuestLib_GetMemOverheadMB(m_handle, memOverheadMB);
}
VMGuestLibError GetMemBalloonedMB(__out uint32* memBalloonedMB)
{
ATLASSERT(m_handle != NULL);
ATLASSERT(memBalloonedMB != NULL);
return ::VMGuestLib_GetMemBalloonedMB(m_handle, memBalloonedMB);
}
VMGuestLibError GetMemSwappedMB(__out uint32* memSwappedMB)
{
ATLASSERT(m_handle != NULL);
ATLASSERT(memSwappedMB != NULL);
return ::VMGuestLib_GetMemSwappedMB(m_handle, memSwappedMB);
}
VMGuestLibError GetMemSharedMB(__out uint32* memSharedMB)
{
ATLASSERT(m_handle != NULL);
ATLASSERT(memSharedMB != NULL);
return ::VMGuestLib_GetMemSharedMB(m_handle, memSharedMB);
}
VMGuestLibError GetMemSharedSavedMB(__out uint32* memSharedSavedMB )
{
ATLASSERT(m_handle != NULL);
ATLASSERT(memSharedSavedMB != NULL);
return ::VMGuestLib_GetMemSharedSavedMB(m_handle, memSharedSavedMB);
}
VMGuestLibError GetMemUsedMB(__out uint32* memUsedMB)
{
ATLASSERT(m_handle != NULL);
ATLASSERT(memUsedMB != NULL);
return ::VMGuestLib_GetMemUsedMB(m_handle, memUsedMB);
}
VMGuestLibError GetElapsedMs(__out uint64* elapsedMs)
{
ATLASSERT(m_handle != NULL);
ATLASSERT(elapsedMs != NULL);
return ::VMGuestLib_GetElapsedMs(m_handle, elapsedMs);
}
VMGuestLibError GetResourcePoolPath(__inout size_t *bufferSize, __out char *pathBuffer)
{
ATLASSERT(m_handle != NULL);
ATLASSERT(bufferSize != NULL);
ATLASSERT(pathBuffer != NULL);
return ::VMGuestLib_GetResourcePoolPath(m_handle, bufferSize, pathBuffer);
}
#if defined(_WTL_USE_CSTRING) || defined(__ATLSTR_H__)
#ifndef _CSTRING_NS
VMGuestLibError GetResourcePoolPath(CStringA& strPathBuffer)
#else
VMGuestLibError GetResourcePoolPath(_CSTRING_NS::CStringA& strPathBuffer)
#endif
{
ATLASSERT(m_handle != NULL);
strPathBuffer.Empty();
VMGuestLibError result = VMGUESTLIB_ERROR_SUCCESS;
size_t bufferSize = 512;
while (true)
{
std::auto_ptr<char> pathBuffer(new char[bufferSize]);
result = ::VMGuestLib_GetResourcePoolPath(m_handle, &bufferSize, pathBuffer.get());
if (result != VMGUESTLIB_ERROR_SUCCESS)
{
if (result == VMGUESTLIB_ERROR_BUFFER_TOO_SMALL)
{
continue;
}
return result;
}
strPathBuffer = pathBuffer.get();
break;
}
return result;
}
#endif
protected:
VMGuestLibHandle m_handle;
};
typedef CVMGuestLibHandleT<false> CVMGuestLibHandleHandle;
typedef CVMGuestLibHandleT<true> CVMGuestLibHandle;
---
2009年7月24日
#
Windows 7 で、Open Packaging Caonvenctions に関するAPIが提供されます。
Open Packaging Caonvenctions というのは、一言で言ってしまうと、21世紀の
OLE複合ドキュメントです。(笑) このファイル内ファイルシステムを使って、
Office Open XML も各アイテムを保存しています。(実態は、ZIPファイルです)
パッケージ、パーツ、リレーションシップと言った新しい用語が出てくるの
ですが、以下のようにOLE複合ドキュメントの用語に合致すると思います。
パッケージ (IOpcPackage) : ストレージ (IStorage)
パーツ (IOpcPart) : ストリーム (IStream)
リレーションシップ (IOpcRelationship) : モニカー (IMoniker)
ただしIOpcPartはIStreamを置き換えるものではありません。
実際にパーツの実態を操作するときは、IOpcPart::GetContentStream()を
使って、IStreamを取得することになります。
今は21世紀なので、COM形式のAPIだけではなくマネージ版APIも提供されます。
あと、デジタル署名に関するオブジェクトも多数用意されています。
個人的には、こんな大そうなものではなく、ZIPファイルを操作するAPIが
欲しいだけなんですけどね。。
■IOpcFactory Interface - MSDN
http://msdn.microsoft.com/en-us/library/dd370991(VS.85).aspx
■IOpcPackage Interface - MSDN
http://msdn.microsoft.com/en-us/library/dd371025(VS.85).aspx
■IOpcPart Interface - MSDN
http://msdn.microsoft.com/en-us/library/dd371038(VS.85).aspx
■IOpcRelationship Interface - MSDN
http://msdn.microsoft.com/en-us/library/dd371131(VS.85).aspx