HRESULT, którego nie ma...

HRESULT, którego nie ma...
aurel
  • Rejestracja: dni
  • Ostatnio: dni
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.

Kopiuj
	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 :

Kopiuj
# 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...?

darkbit
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: ~Koszalin
0

A

Kopiuj
GetIDsOfNames

wykonuje się poprawnie?

aurel
  • Rejestracja: dni
  • Ostatnio: dni
0
darkbit napisał(a):

A

Kopiuj
GetIDsOfNames

wykonuje się poprawnie?

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

Azarien
  • Rejestracja: dni
  • Ostatnio: dni
0

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

darkbit
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: ~Koszalin

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.