HRESULT, którego nie ma...

0

Mam dllke w C++, która za pomocą OLE wywołuje różne polecenia w Wordzie.

Niestety, zapis dokumentu nie działa prawidłowo.

	szFunction = OLESTR("SaveAs");
	hr = doc->GetIDsOfNames(IID_NULL, &szFunction, 1, 
		LOCALE_USER_DEFAULT, 
		&dispid_Cap);
	hr = doc->Invoke(dispid_Cap, IID_NULL, 
		LOCALE_USER_DEFAULT, DISPATCH_METHOD, 
		&dpCap, NULL, NULL, NULL);

W doc teoretycznie jest ActiveDocument. Zadziwia mnie jednak zwrot metody Invoke: hr = -2146823135
Po zrzutowaniu z wykorzystaniem:
sprintf(hex_buff, "%x", (unsigned int)hr);
Daje kod błędu: 0x800a1421

Sprawdziłam ten kod korzystając z programu: http://www.microsoft.com/en-us/download/details.aspx?id=985 :

# as an HRESULT: Severity: FAILURE (1), Facility: 0xa, Code 0x1421
# NOT FOUND: 800a1421

:|
Co się robi w takiej sytuacji? Jakim cudem dostaję zwrot, którego nie ma...?

0

A

GetIDsOfNames

wykonuje się poprawnie?

0
darkbit napisał(a):

A

GetIDsOfNames

wykonuje się poprawnie?

Tak, po GetIDsOfNames hr = S_OK, dopiero po Invoke jest błąd.

0

daj trochę więcej kodu, żeby dało się skompilować i sprawdzić.

1 użytkowników online, w tym zalogowanych: 0, gości: 1