コード例 #1
0
ファイル: inseng_main.c プロジェクト: Moteesh/reactos
DWORD WINAPI thread_installation(LPVOID param)
{
    InstallEngine *This = param;
    ICifComponent *comp;
    HRESULT hr;

    if (This->callback)
        IInstallEngineCallback_OnStartInstall(This->callback, This->thread.download_size, This->thread.install_size);

    for (;;)
    {
        hr = get_next_component(This->thread.enum_comp, This->thread.operation, &comp);
        if (FAILED(hr)) break;
        if (hr == S_FALSE)
        {
            hr = S_OK;
            break;
        }

        hr = process_component(This, comp);
        if (FAILED(hr)) break;
    }

    if (This->callback)
        IInstallEngineCallback_OnStopInstall(This->callback, hr, NULL, 0);

    IEnumCifComponents_Release(This->thread.enum_comp);
    IInstallEngine2_Release(&This->IInstallEngine2_iface);

    set_status(This, ENGINESTATUS_READY);
    return 0;
}
コード例 #2
0
ファイル: f8precomp.cpp プロジェクト: mattyv/fix8
//-----------------------------------------------------------------------------------------
void process_elements(XmlElement::XmlSet::const_iterator itr, const Components& components, const int depth, ostream& outf)
{
	if ((*itr)->GetTag() == "field")
		output_field(**itr, depth, outf);
	else if ((*itr)->GetTag() == "component")
		process_component(**itr, components, depth, outf);
	else if ((*itr)->GetTag() == "group")
		process_group(**itr, components, depth, outf);
}