L_WiaGetPropertySystemTime

#include "ltwia.h"

L_LTWIA_API L_INT EXT_FUNCTION L_WiaGetPropertySystemTime(hSession, pItem, pszID, uID, pValue)

HWIASESSION hSession;

/* handle to an existing WIA session */

L_VOID* pItem;

/* pointer to IWiaItem or IWiaItem2 interface */

L_TCHAR* pszID;

/* pointer to string array that represents the equivalent property ID string */

L_UINT32 uID;

/* property ID */

LPSYSTEMTIME pValue;

/* pointer to SYSTEMTIME structure to be updated */

Retrieves a SYSTEMTIME structure for any WIA property of type VT_UI2 | VT_VECTOR to return the time of the item.

Parameter

Description

hSession

Handle to an existing WIA session. This handle is obtained by calling the L_WiaInitSession function.

pItem

Valid pointer to a type IWiaItem or IWiaItem2 object (IWiaItem if using WIA Version 1.0; IWiaItem2 if using WIA Version 2.0), which represents the item that is having the time obtained.

 

You can retrieve this parameter by either calling the L_WiaGetRootItem function to get a pointer to the device's root item or by enumerating the child items of the device through a call to L_WiaEnumChildItems.

pszID

This string pointer should contain the equivalent property ID string for the WIA property ID (see example below):

 

Property ID

Property ID Equivalent String

 

WIA_IPA_TYMED

WIA_IPA_TYMED_STR or "Media Type"

 

WIA_IPA_DEPTH

WIA_IPA_DEPTH_STR or "Bits Per Pixel"

 

If this parameter is NULL then the WIA toolkit will use the ID passed through the uID parameter, otherwise the pszID parameter will be used whether or not you passed valid property ID through the uID parameter.

uID

The property ID for the WIA property.

 

This parameter is required only if the pszID parameter is NULL, otherwise you can pass 0 for this parameter.

pValue

Pointer to a variable of type SYSTEMTIME to be updated with the passed items time.

Returns

SUCCESS

The function was successful.

< 1

An error occurred. Refer to Return Codes.

Comments

This feature is available in version 16 or higher.

Call this function to retrieve a SYSTEMTIME structure for any WIA property of type VT_UI2 | VT_VECTOR (like WIA_DPA_DEVICE_TIME, WIA_IPA_ITEM_TIME) to return the time of the item.

Required DLLs and Libraries

LTWIA

For a listing of the exact DLLs and Libraries needed, based on the toolkit version, refer to Files To Be Included With Your Application.

Platforms

Earlier and later operating systems than Windows XP for WIA Version 1.

Windows VISTA or later for WIA Version 2.

See Also

Functions:

L_WiaGetPropertyLong, L_WiaGetPropertyString, L_WiaGetPropertyBuffer, L_WiaGetPropertyGUID, L_WiaGetRootItem, L_WiaEnumChildItems, L_WiaInitSession, L_WiaEndSession.

Topics:

Managing WIA Sources

 

WIA Functionality: Property Functions

Example

static L_INT CALLBACK WiaEnumItemsCB(HWIASESSION hSession,
                                     L_INT nItemsCount,
                                     L_VOID * pItem,
                                     L_VOID * pUserData)
{
   UNREFERENCED_PARAMETER(nItemsCount);
   UNREFERENCED_PARAMETER(pUserData);

   L_INT nRet;
   SYSTEMTIME SysTime;

   if(pItem != NULL)
   {
      /* Get the item's system time */
      nRet = L_WiaGetPropertySystemTime(hSession, pItem, NULL, WIA_IPA_ITEM_TIME, &SysTime);
      if(nRet != WIA_SUCCESS)
         return nRet;

      /* You can change the item's system time to your machine system time */
      GetSystemTime(&SysTime);  // gets current time
      nRet = L_WiaSetPropertySystemTime(hSession, pItem, NULL, WIA_IPA_ITEM_TIME, &SysTime);
      if(nRet != WIA_SUCCESS)
         return nRet;

      nRet = L_WiaFreeItem(hSession, pItem);
      if(nRet != WIA_SUCCESS)
         return nRet;
   }

   return WIA_SUCCESS;
}

L_LTWIATEX_API L_INT WiaGetPropertySystemTimeExample(HWIASESSION hSession, HWND hWnd)
{
   L_INT nRet;
   IWiaItem * pRootItem = NULL;

   nRet = L_WiaSelectDeviceDlg(hSession, hWnd, WiaDeviceTypeDefault, 0);
   if(nRet != WIA_SUCCESS)
      return nRet;

      nRet = L_WiaGetRootItem(hSession, NULL, (L_VOID**)&pRootItem);
   if(nRet != WIA_SUCCESS)
      return nRet;

   nRet = L_WiaEnumChildItems(hSession, pRootItem, WiaEnumItemsCB, NULL);
   if(nRet != WIA_SUCCESS)
      return nRet;

   return SUCCESS;
}