現在、Visual Studio 2010 C++ カスタム アクション プロジェクトを使用しています。
次のようなカスタム アクションがあります。
extern "C" UINT __stdcall RegProductName(MSIHANDLE hInstall)
{
HRESULT hr = S_OK;
UINT er = ERROR_SUCCESS;
char szLocalPath[MAX_PATH];
hr = WcaInitialize(hInstall, "RegProductName");
ExitOnFailure(hr, "Failed to initialize");
WcaLog(LOGMSG_STANDARD, "Initialized.");
strcpy(szLocalPath, Orc_Get_Product_Name());
MsiSetProperty(hInstall, "ProductName", szLocalPath);
LExit:
er = SUCCEEDED(hr) ? ERROR_SUCCESS : ERROR_INSTALL_FAILURE;
return WcaFinalize(er);
}
エラーは発生しませんが、やりたいことを正しく行っているかどうかはわかりません。この行で:
strcpy(szLocalPath, Orc_Get_Product_Name());
関数から製品名を取得し、それを szLocalPath にコピーしています。ただし、この変数を他の関数や自分の wix プロジェクトで何度も使用したいと考えています。
これは正しい方法ですか?
MsiSetProperty(hInstall, "ProductName", szLocalPath);
どうもありがとう