Skip to main content
IHTMLDocument2::readyState Property

Retrieves a value that indicates the current state of the object.


HRESULT IHTMLDocument2::get_readyState(BSTR *p);


Pointer to a variable of type BSTR that receives one of the values listed in Possible Values.

Possible Values

uninitializedObject is not initialized with data.
loadingObject is loading its data.
loadedObject has finished loading its data.
interactiveUser can interact with the object even though it is not fully loaded.
completeObject is completely initialized.

Return Value

Returns S_OK if successful, or an error value otherwise.


An object's state is initially set to uninitialized, and then to loading. When data loading is complete, the state of the link object passes through the loaded and interactive states to reach the complete state.

The states through which an object passes are determined by that object; an object can skip certain states (for example, interactive) if the state does not apply to that object.

Data source objects and databound elements are normally populated asynchronously, and certain programmatic operations can only be performed reliably on databound objects when they are ready for use. Therefore, the appropriate code should be written to confirm the IHTMLDocument2::readyState of objects prior to performing certain operations on them. For example, walking the rows of a table should not be attempted until after the table has reached the complete state.

The IHTMLDocument2::readyState property enables the status of an object to be tested. The correct place to test the IHTMLDocument2::readyState property is in the event handler for onreadystatechange. Similarly, a data source object (DSO) fires the ondatasetcomplete event to notify the document that the dataset is ready for programmatic operation.

See Also