HRESULT BindingLog::LogResult(BindResult *pBindResult) { HRESULT hr = S_OK; BINDER_LOG_ENTER(L"BindingLog::LogResult"); PathString assemblyDisplayName; PathString format; PathString info; pBindResult->GetAssemblyName()->GetDisplayName(assemblyDisplayName, AssemblyName::INCLUDE_VERSION | AssemblyName::INCLUDE_ARCHITECTURE); IF_FAIL_GO(format.LoadResourceAndReturnHR(CCompRC::Debugging, ID_FUSLOG_ASSEMBLY_STATUS_BOUND_TO_ID)); info.Printf(format.GetUnicode(), assemblyDisplayName.GetUnicode()); IF_FAIL_GO(Log(info)); IUnknown *pIUnknownAssembly; pIUnknownAssembly = pBindResult->GetAssembly(FALSE /* fAddRef */); Assembly *pAssembly; pAssembly = static_cast<Assembly *>(static_cast<void *>(pIUnknownAssembly)); _ASSERTE(pAssembly != NULL); if (pAssembly->GetIsInGAC()) { IF_FAIL_GO(info. LoadResourceAndReturnHR(CCompRC::Debugging, ID_FUSLOG_ASSEMBLY_STATUS_BOUND_GAC)); } else if (pAssembly->GetIsByteArray()) { IF_FAIL_GO(info. LoadResourceAndReturnHR(CCompRC::Debugging, ID_FUSLOG_ASSEMBLY_STATUS_BOUND_BYTE_ARRAY)); } else { PathString assemblyPath; BinderGetImagePath(pAssembly->GetPEImage(), assemblyPath); IF_FAIL_GO(format. LoadResourceAndReturnHR(CCompRC::Debugging, ID_FUSLOG_ASSEMBLY_STATUS_BOUND_TO_LOCATION)); info.Printf(format.GetUnicode(), assemblyPath.GetUnicode()); } IF_FAIL_GO(Log(info)); Exit: BINDER_LOG_LEAVE_HR(L"BindingLog::LogResult", hr); return hr; }
HRESULT BindingLog::LogPreBindState(ApplicationContext *pApplicationContext, AssemblyName *pAssemblyName, SString &assemblyPath, PEAssembly *pParentAssembly) { HRESULT hr = S_OK; BINDER_LOG_ENTER(L"BindingLog::LogPreBindState"); PathString format; PathString info; IF_FAIL_GO(info.LoadResourceAndReturnHR(CCompRC::Debugging, ID_FUSLOG_BINDING_PRE_BIND_STATE_BEGIN)); IF_FAIL_GO(Log(info)); if (pAssemblyName != NULL) { PathString assemblyDisplayName; pAssemblyName->GetDisplayName(assemblyDisplayName, AssemblyName::INCLUDE_VERSION | AssemblyName::INCLUDE_ARCHITECTURE | AssemblyName::INCLUDE_RETARGETABLE); IF_FAIL_GO(format.LoadResourceAndReturnHR(CCompRC::Debugging, GetPreBindStateName(pAssemblyName))); info.Printf(format.GetUnicode(), assemblyDisplayName.GetUnicode()); } else { IF_FAIL_GO(format. LoadResourceAndReturnHR(CCompRC::Debugging, ID_FUSLOG_BINDING_PRE_BIND_STATE_WHERE_REF)); info.Printf(format.GetUnicode(), assemblyPath.GetUnicode()); } IF_FAIL_GO(Log(info)); if (pParentAssembly != NULL) { PathString parentAssemblyDisplayName; IF_FAIL_GO(BinderGetDisplayName(pParentAssembly, parentAssemblyDisplayName)); IF_FAIL_GO(format.LoadResourceAndReturnHR(CCompRC::Debugging, ID_FUSLOG_BINDING_PRE_BIND_STATE_CALLER)); info.Printf(format.GetUnicode(), parentAssemblyDisplayName.GetUnicode()); } else { IF_FAIL_GO(info. LoadResourceAndReturnHR(CCompRC::Debugging, ID_FUSLOG_BINDING_PRE_BIND_STATE_CALLER_UNKNOWN)); } IF_FAIL_GO(Log(info)); IF_FAIL_GO(info.LoadResourceAndReturnHR(CCompRC::Debugging, ID_FUSLOG_BINDING_PRE_BIND_STATE_END)); IF_FAIL_GO(Log(info)); Exit: BINDER_LOG_LEAVE_HR(L"BindingLog::LogPreBindState", hr); return hr; }