The IDirect3DDevice::Pick method executes a buffer without performing any rendering, but returns a z-ordered list of offsets to the primitives that intersect the upper-left corner of the rectangle specified by lpRect.
This call fails if the Direct3DExecuteBuffer object is locked.
HRESULT Pick(
  LPDIRECT3DEXECUTEBUFFER lpDirect3DExecuteBuffer,  
  LPDIRECT3DVIEWPORT lpDirect3DViewport,            
  DWORD dwFlags,                                    
  LPD3DRECT lpRect                                  
);
 If the method succeeds, the return value is D3D_OK.
If the method fails, the return value may be one of the following values:
D3DERR_EXECUTE_LOCKED 
DDERR_INVALIDOBJECT 
DDERR_INVALIDPARAMS 
The coordinates are specified in device-pixel space.
All Direct3DExecuteBuffer objects must be attached to a Direct3DDevice object in order for this method to succeed.
  Windows NT: Use version 4.0 or later.
  Windows: Use Windows 95 or later. Available as a redistributable for Windows 95.
  Windows CE: Unsupported.
  Header: Declared in ddraw.h.
  Import Library: Use ddraw.lib.
IDirect3DDevice::GetPickRecords