91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 360KB
    文件類型: .zip
    金幣: 2
    下載: 0 次
    發布日期: 2021-05-22
  • 語言: 其他
  • 標簽: msp??文件提取??

資源簡介

用于從微軟補丁包.msp文件中,直接extract出文件

資源截圖

代碼片段和文件信息


#include?“msix.h“
#pragma?comment(lib?“msi.lib“)

//?Entry?point.
int?_tmain(int?argc?_TCHAR*?argv[])
{
DWORD?dwError?=?NOERROR;
HRESULT?hr?=?NOERROR;
????ARGS?args?=?{?0?};
IStorage*?pRootStorage?=?NULL;
????IEnumSTATSTG*?pEnum?=?NULL;
LPCTSTR?pszPersist?=?(LPTSTR)MSIDBOPEN_READONLY;
????STATSTG?stg?=?{?0?};
PMSIHANDLE?hDatabase?=?NULL;
????PMSIHANDLE?hView?=?NULL;
????PMSIHANDLE?hRecord?=?NULL;

????dwError?=?ParseArguments(argc?argv?&args);
????if?(ERROR_SUCCESS?!=?dwError)
????{
????????return?dwError;
????}

//?Open?the?root?storage?file?and?extract?storages?first.?Storages?cannot
????//?be?extracted?using?MSI?APIs?so?we?must?use?the?compound?file?implementation
????//?for?IStorage.
hr?=?StgOpenStorage(
CT2W(args.Path)
NULL
STGM_READ?|?STGM_SHARE_EXCLUSIVE
NULL
0
&pRootStorage);
if?(SUCCEEDED(hr)?&&?pRootStorage)
{
//?Determine?if?the?file?path?specifies?an?MSP?file.
????????//?This?will?be?used?later?to?open?the?database?with?MSI?APIs.
if?(IsPatch(pRootStorage))
{
pszPersist?=?MSIDBOPEN_READONLY?+?MSIDBOPEN_PATCHFILE;
}

????????hr?=?pRootStorage->EnumElements(0?NULL?0?&pEnum);
????????if?(SUCCEEDED(hr))
????????{
????????????while?(S_OK?==?(hr?=?pEnum->Next(1?&stg?NULL)))
????????????{
????????????????if?(STGTY_STORAGE?==?stg.type)
????????????????{
????????????????????hr?=?SaveStorage(pRootStorage?args.Directory?stg.pwcsName
????????????????????????args.IncludeExtension???TEXT(“.mst“)?:?NULL);
????????????????????if?(FAILED(hr))
????????????????????{
????????????????????????break;
????????????????????}
????????????????}
????????????}
????????????SAFE_RELEASE(pEnum);
????????}
}
SAFE_RELEASE(pRootStorage);

????//?Now?open?the?database?using?MSI?APIs.?Patches?cannot?be?opened?simultaneously
????//?since?exclusive?access?is?required?and?no?MSI?APIs?are?exported?that?accept
????//?an?IStorage?pointer.
????if?(SUCCEEDED(hr))
????{
????????dwError?=?MsiOpenDatabase(args.Path?pszPersist?&hDatabase);
????????if?(ERROR_SUCCESS?==?dwError)
????????{
????????????dwError?=?MsiDatabaseOpenView(hDatabase
????????????????TEXT(“SELECT?‘Name‘?‘Data‘?FROM?‘_Streams‘“)?&hView);
????????????if?(ERROR_SUCCESS?==?dwError)
????????????{
????????????????dwError?=?MsiViewExecute(hView?NULL);
????????????????if?(ERROR_SUCCESS?==?dwError)
????????????????{
????????????????????while?(ERROR_SUCCESS?==?(dwError?=?MsiViewFetch(hView?&hRecord)))
????????????????????{
????????????????????????dwError?=?SaveStream(hRecord?args.Directory?args.IncludeExtension);
????????????????????????if?(ERROR_SUCCESS?!=?dwError)
????????????????????????{
????????????????????????????break;
????????????????????????}
????????????????????}

????????????????????//?If?there?are?no?more?records?indicate?success.
????????????????????if?(ERROR_NO_MORE_ITEMS?==?dwError)
????????????????????{
????????????????????????dwError?=?ERROR_SUCCESS;
????????

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????5267??2006-04-06?17:47??MsiX.h
?????文件????????2437??2006-04-06?17:57??MsiX.rc
?????文件????????4219??2006-04-06?17:57??MsiX.vcproj
?????文件?????????398??2006-04-06?17:55??resource.h
?????文件??????139264??2006-04-06?17:59??Release\MsiX.exe
?????文件?????1412096??2006-04-06?17:59??Release\MsiX.pdb
?????目錄???????????0??2006-04-06?18:00??Release\
?????文件???????14665??2006-04-06?17:47??MsiX.cpp

評論

共有 條評論