Exemplo n.º 1
0
//****************************************************************************************
void CFolderItem::OnClickButton (CPoint /*point*/)
{
	CBCGPGridCtrl* pGridCtrl = GetOwnerList ();

	m_bButtonIsDown = TRUE;
	Redraw ();

	CString strPath = (LPCTSTR)(_bstr_t)m_varValue;

	if (theApp.GetShellManager ()->BrowseForFolder (strPath, NULL, strPath))
	{
		m_varValue = (LPCTSTR) strPath;
	}

	m_bButtonIsDown = FALSE;
	Redraw ();

	if (m_pWndInPlace != NULL)
	{
		m_pWndInPlace->SetWindowText (strPath);
		m_pWndInPlace->SetFocus ();
	}
	else
	{
		pGridCtrl->SetFocus ();
	}
}
Exemplo n.º 2
0
void CMailView::UpdateCaptionText ()
{
	CBCGPOrganizerDoc* pDoc = GetDocument ();
	if (pDoc == NULL || pDoc->GetMode () != CBCGPOrganizerDoc::e_ModeMail)
	{
		return;
	}

	CMainFrame* pFrame = DYNAMIC_DOWNCAST(CMainFrame, AfxGetMainWnd ());

	if (pFrame != NULL)
	{
		CString str;
		CBCGPGridCtrl* pGridCtrl = GetGridCtrl ();
		if (pGridCtrl != NULL)
		{
			CBCGPGridRow* pRow = pGridCtrl->GetCurSel ();
			if (pRow != NULL && !pRow->IsGroup ())
			{
				str = _T("From: ") + pRow->GetItem (3)->FormatItem ();
				str += _T("; Subject: ") + pRow->GetItem (4)->FormatItem ();
			}
		}

		if (str.IsEmpty ())
		{
			str = _T(" ");
		}

		pFrame->SetCaptionText (str);
	}
}
Exemplo n.º 3
0
//****************************************************************************************
void CFileItem::OnClickButton (CPoint /*point*/)
{
	CBCGPGridCtrl* pGridCtrl = GetOwnerList();

	m_bButtonIsDown = TRUE;
	Redraw ();

	CString strPath = (LPCTSTR)(_bstr_t)m_varValue;

	CFileDialog dlg (TRUE,  strPath);

	if (dlg.DoModal () == IDOK)
	{
		strPath = dlg.GetPathName ();
		m_varValue = (LPCTSTR) strPath;
	}

	m_bButtonIsDown = FALSE;
	Redraw ();

	if (m_pWndInPlace != NULL)
	{
		m_pWndInPlace->SetWindowText (strPath);
		m_pWndInPlace->SetFocus ();
	}
	else
	{
		pGridCtrl->SetFocus ();
	}
}
/**
 * @brief "Associate VP",为震源分配炮点
 * @note  打开一个可指定要(通过输入其 Shot Number)分配给该震源的 VP 的对话框。这与用鼠标右键点击放炮表内
部所调出的“Start Seismonitor with Vib Source”命令效果基本相同。
 * @param  void
 * @return void
 */
void CActiveSourceWnd::OnActivesourceAssociatevp()
{
	CBCGPGridCtrl* pGridCtrl = GetGridCtrl();
	if(NULL==pGridCtrl)
		return;
	// 如果没有选择震源或者网格中某一行,则不处理
	CBCGPGridRow* pRow= pGridCtrl->GetCurSel();
	if(NULL==pRow)
		return;

	CMainFrame* pFrm = (CMainFrame*)AfxGetMainWnd();
	pFrm->OnAssociatevp(pRow->GetData());
}
Exemplo n.º 5
0
//*****************************************************************************************
BOOL CBCGPGridButtonItem::OnClickValue(UINT uiMsg, CPoint point)
{
	if (uiMsg != WM_LBUTTONUP)
	{
		return CBCGPGridItem::OnClickValue(uiMsg, point);
	}

	CBCGPGridCtrl* pGridCtrl = GetOwnerList();
	ASSERT_VALID (pGridCtrl);

	pGridCtrl->GetOwner()->PostMessage(WM_COMMAND, MAKEWPARAM(m_id, BN_CLICKED));

	return TRUE;
}
/**
 * @brief "Associate SPL & SPN",为震源分配炮点
 * @note  与 Associate VP 命令效果基本相同,但您不必输入要分配给该震源的 VP Shot Number,而是必须输
 入其 SPL (震源点测线) 和 SPN (震源点号)。
 * @param  void
 * @return void
 */
void CActiveSourceWnd::OnActivesourceAssociatesplspn()
{
	CBCGPGridCtrl* pGridCtrl = GetGridCtrl();
	if(NULL==pGridCtrl)
		return;
	// 如果没有选择震源或者网格中某一行,则不处理
	CBCGPGridRow* pRow= pGridCtrl->GetCurSel();
	if(NULL==pRow)
		return;

	CMainFrame* pFrm = (CMainFrame*)AfxGetMainWnd();
	// 调用主框架处理函数,通过SPL和SPN找到响应的炮点
	pFrm->OnAssociateSPLSPN(pRow->GetData());
}
/**
 * @brief 响应鼠标在震源网格中右键消息,显示右键菜单
 * @note  如果选中某一个震源,则响应消息,显示右键菜单。菜单内容包括停止某一震源、为震源分配炮点编号、
 为某震源通过震源点测线号及道号来确定炮点、清除Ready状态等
 * @param CWnd* pWnd,窗口指针
 * @param CPoint point,鼠标坐标
 * @return void
 */
void CActiveSourceWnd::OnContextMenu(CWnd* pWnd, CPoint point)
{
	// TODO: 在此处添加消息处理程序代码
	CBCGPGridCtrl* pGridCtrl = GetGridCtrl();
	if(NULL==pGridCtrl)
		return;
	// 如果没有选择震源或者网格中某一行,则不弹出菜单
	CBCGPGridRow* pRow= pGridCtrl->GetCurSel();
	if(NULL==pRow)
		return;
	CMenu menu;
	// 加载右击菜单
	VERIFY(menu.LoadMenu (IDR_POPUP_ACTIVESOURCE));
	CMenu* pPopup = menu.GetSubMenu(0);
	ASSERT(pPopup != NULL);	
	// CMainFrame* pFrm = (CMainFrame*)AfxGetMainWnd();
	CString  strTemp;
	// 每一行的数据等于震源的编号
	strTemp.Format(_T("Source %d"),pRow->GetData());
	
	// pPopup->ModifyMenu(MF_BYCOMMAND,MF_STRING,ID_ACTIVESOURCE_SOURCE,strTemp);
	// pPopup->ModifyMenu(MF_BYPOSITION,MF_STRING,0,_T("AAAAA"));
	// 更改第一个菜单的标题,显示为“Source”+震源编号
	MENUITEMINFO info;
	info.cbSize = sizeof (MENUITEMINFO);		// must fill up this field
	info.fMask = MIIM_STRING;					// get the state of the menu item
	info.dwTypeData = strTemp.GetBuffer();
	info.cch = strTemp.GetLength();
	VERIFY(pPopup->SetMenuItemInfo(ID_ACTIVESOURCE_SOURCE, &info,FALSE));
	strTemp.ReleaseBuffer();
	/*
	int  nSourceState = pRow->GetItem(0)->GetImage();
	if(nSourceState==SHOTSOURCE_FOCUS)
	{	
		info.cbSize = sizeof (MENUITEMINFO);		// must fill up this field
		info.fMask = MIIM_STATE;
		info.fState = MFS_DISABLED;
		// 如果正处于采集过程中,禁止更改放炮点
		pPopup->SetMenuItemInfo(ID_ACTIVESOURCE_DISASSOCIATEVP, &info,FALSE);
		pPopup->SetMenuItemInfo(ID_ACTIVESOURCE_ASSOCIATEVP, &info,FALSE);
		pPopup->SetMenuItemInfo(ID_ACTIVESOURCE_ASSOCIATESPLSPN, &info,FALSE);
		
		// pPopup->EnableMenuItem(ID_ACTIVESOURCE_DISASSOCIATEVP,MF_BYCOMMAND|MF_DISABLED);
		// pPopup->EnableMenuItem(ID_ACTIVESOURCE_ASSOCIATEVP,MF_BYCOMMAND|MF_DISABLED);
		// pPopup->EnableMenuItem(ID_ACTIVESOURCE_ASSOCIATESPLSPN,MF_BYCOMMAND|MF_DISABLED);
	}*/
	CBCGPPopupMenu* pPopupMenu = new CBCGPPopupMenu;
	pPopupMenu->Create(this, point.x, point.y,pPopup->Detach(),FALSE,TRUE);

}
Exemplo n.º 8
0
//*****************************************************************************************
void CFontItem::OnClickButton (CPoint /*point*/)
{
	CBCGPGridCtrl* pGridCtrl = GetOwnerList();
	ASSERT_VALID (pGridCtrl);

	ASSERT_VALID (this);
	ASSERT_VALID (m_pWndInPlace);
	ASSERT (::IsWindow (m_pWndInPlace->GetSafeHwnd ()));

	m_bButtonIsDown = TRUE;
	Redraw ();

	CFontDialog dlg (&m_lf);

	if (m_Color != (COLORREF)-1)
	{
		dlg.m_cf.rgbColors = m_Color;
	}

	if (dlg.DoModal () == IDOK)
	{
		dlg.GetCurrentFont (&m_lf);
		m_Color = dlg.GetColor ();

		if (m_pWndInPlace != NULL)
		{
			m_pWndInPlace->SetWindowText (FormatProperty ());
		}
		else
		{
			m_varValue = (LPCTSTR) FormatProperty ();
		}
	}

	if (m_pWndInPlace != NULL)
	{
		m_pWndInPlace->SetFocus ();
	}
	else
	{
		pGridCtrl->SetFocus ();
	}

	m_bButtonIsDown = FALSE;
	Redraw ();
}
/**
 * @brief "Disassociate VP",暂停震源使用
 * @note  不再希望继续使用某一震源,或想要将其置入待命状态,或想要手工分配给它另一
 个 VP,则在Active Source窗口右键菜单中选择Disassociate VP,暂停该震源的施工。
 在滑动扫描等模式下以前分配给该未用震源的剩余 VP 将被忽略。
 * @param  void
 * @return void
 */
void CActiveSourceWnd::OnActivesourceDisassociatevp()
{
	CBCGPGridCtrl* pGridCtrl = GetGridCtrl();
	if(NULL==pGridCtrl)
		return;
	// 如果没有选择震源或者网格中某一行,则不处理
	CBCGPGridRow* pRow= pGridCtrl->GetCurSel();
	if(NULL==pRow)
		return;

	CMainFrame* pFrm = (CMainFrame*)AfxGetMainWnd();
	// 调用主框架处理函数,通知服务器停止放炮,删除放炮管理对象
	CShotSource* pSource = pFrm->OnDisassociatevp(pRow->GetData());
	// 重新加载震源,并删除对应的炮点属性
	if(pSource)
		LoadShotSource(pSource,pRow->GetRowId());
}
Exemplo n.º 10
0
//*****************************************************************************************
void CIconListItem::OnDrawValue (CDC* pDC, CRect rect)
{
	CBCGPGridCtrl* pGridCtrl = GetOwnerList();
	ASSERT_VALID (pGridCtrl);

	ASSERT_VALID (pDC);

	CString strVal = (LPCTSTR)(_bstr_t) m_varValue;
	if (strVal.IsEmpty () || m_imageListIcons.GetCount () == 0)
	{
		return;
	}
	
	int nIndex = -1;
#if _MSC_VER < 1400
	_stscanf (strVal, _T("%d"), &nIndex);
#else
	_stscanf_s (strVal, _T("%d"), &nIndex);
#endif
	if (nIndex < 0)
	{
		return;
	}

	CRect rectImage = rect;
	rectImage.right = rectImage.left + rectImage.Height () + 2 * nIconMargin;

	m_imageListIcons.DrawEx (pDC, rectImage, nIndex,
		CBCGPToolBarImages::ImageAlignHorzCenter, CBCGPToolBarImages::ImageAlignVertCenter);

	if (!m_lstIconNames.IsEmpty ())
	{
		CFont* pOldFont = pDC->SelectObject (pGridCtrl->GetFont ());

		CString str = m_lstIconNames.GetAt (m_lstIconNames.FindIndex (nIndex));

		rect.left = rectImage.right;

		pDC->DrawText (str, rect, DT_SINGLELINE | DT_VCENTER);

		pDC->SelectObject (pOldFont);
	}

	m_bValueIsTrancated = FALSE;
}
/**
 * @brief 刷新震源的状态图标
 * @note  通过每行设定的数据(等于震源的Nb)找到CShotSource* pSource对应的行,
 并刷新震源的状态图标,图标位于网格中第一列
 * @param  CShotSource* pSource,需要刷新显示状态的震源指针
 * @return void
 */
void  CActiveSourceWnd::RefrestShotSourceState(CShotSource* pSource)
{
	if(!pSource)
		return ;
	CBCGPGridCtrl* pGridCtrl = GetGridCtrl();
	if(NULL==pGridCtrl)
		return ;
	CBCGPGridRow *pRow=NULL;
	int nRowCount = pGridCtrl->GetRowCount();	
	for(int i=0;i<nRowCount;i++)
	{
		pRow = pGridCtrl->GetRow(i);		
		// 判断每行的属性数据与震源的编号是否相等
		if(pRow->GetData()==pSource->m_dwSourceNb)
		{
			pRow->GetItem (0)->SetImage(pSource->m_bySourceState);
		}
	}
}
Exemplo n.º 12
0
//************************************************************************************
CWnd* CSliderItem::CreateInPlaceEdit (CRect rectEdit, BOOL& bDefaultFormat)
{
	CBCGPGridCtrl* pWndList = GetOwnerList ();
	ASSERT_VALID (pWndList);
	
	CRect rectSpin;
	AdjustInPlaceEditRect (rectEdit, rectSpin);

	rectEdit.left += rectEdit.Height ()+ 5;

	CItemSliderCtrl* pWndSlider = new CItemSliderCtrl (this, 
		pWndList->GetBkColor ());

	pWndSlider->Create (WS_VISIBLE | WS_CHILD, rectEdit, pWndList, BCGPROPLIST_ID_INPLACE);
	pWndSlider->SetPos ((long) m_varValue);
	
	bDefaultFormat = FALSE;
	
	return pWndSlider;
}
/******************************************************************************
    函    数:
    
    输    入:
    
    输    出:
  
    返 回 值:
    
    功    能: 将震源表加载到网格中

    修改历史:

*******************************************************************************/
void CActiveSourceWnd::LoadShotSources(CShotSources* pShotSrcs)
{
	if(NULL==pShotSrcs)
		return;
	CBCGPGridCtrl* pGridCtrl = GetGridCtrl();
	if(NULL==pGridCtrl)
		return;
	int nCount = pShotSrcs->GetCount();
	pGridCtrl->RemoveAll();
	CShotSource* pSrc = NULL;
	for (int nRow = 0; nRow < nCount; nRow++)
	{
		pSrc=pShotSrcs->GetShotSource(nRow);
		if(!pSrc )
			continue;
		LoadShotSource(pSrc);
	}
	pGridCtrl->AdjustLayout ();
	return;
}
/**
 * @brief  将一条震源加载到网格中
 * @note  将一个震源对象属性添加到网格的对应列中,如果nRowNum小于0,则表示向网格中新增加一行;
 如果nRowNum大于0,则表示向指定行输出震源对象。
 * @param CShotSource* pShotSrc,震源对象指针
 * @param int  nRowNum,行号
 * @return void
 */
void CActiveSourceWnd::LoadShotSource(CShotSource* pShotSrc,int  nRowNum)
{
	if(NULL==pShotSrc)
		return ;
	CBCGPGridCtrl* pGridCtrl = GetGridCtrl();
	if(NULL==pGridCtrl)
		return;
	CBCGPGridRow* pRow=NULL;
	if(nRowNum<0)
	{
		pRow = pGridCtrl->CreateRow (pGridCtrl->GetColumnCount());
		pGridCtrl->AddRow(pRow);
	}	
	else
	{
		pRow = pGridCtrl->GetRow(nRowNum);
	}
	if(!pRow)
		return;
	// 震源属性
	pRow->GetItem (0)->SetImage(pShotSrc->m_bySourceState);
	pRow->GetItem (2)->SetValue (_T("-"));
	pRow->GetItem (3)->SetValue (LPCTSTR(pShotSrc->m_strLabel));
	pRow->GetItem (4)->SetValue (pShotSrc->m_dwSourceIndex);
	// 空的炮点
	pRow->GetItem (5)->SetValue (_T(""));
	pRow->GetItem (6)->SetValue (_T("-"));
	pRow->GetItem (7)->SetValue (_T(""));
	pRow->GetItem (8)->SetValue (_T(""));
	pRow->GetItem (9)->SetValue (_T(""));
	pRow->GetItem (10)->SetValue (_T(""));
	pRow->GetItem (11)->SetValue (_T(""));
	pRow->GetItem (12)->SetValue (_T(""));
	pRow->GetItem (13)->SetValue (_T(""));
	pRow->GetItem (14)->SetValue (_T(""));
	pRow->GetItem (15)->SetValue (_T(""));
	pRow->GetItem (16)->SetValue (_T(""));
	// 设置行的属性数据为震源的编号
	pRow->SetData(pShotSrc->m_dwSourceNb);	
}
Exemplo n.º 15
0
//**********************************************************************
LRESULT CBCGPRibbonCustomizeRibbonPage::OnSelChangeRibbonTree(WPARAM, LPARAM lp)
{
#ifndef BCGP_EXCLUDE_GRID_CTRL
	if (m_bDontProcessSelChanged)
	{
		return 0;
	}

	m_wndAdd.EnableWindow(FALSE);

	CBCGPGridCtrl* pGrid = (CBCGPGridCtrl*)lp;

	if (pGrid->GetSafeHwnd() == m_wndRibbonTreeDest.GetSafeHwnd())
	{
		m_wndRename.EnableWindow(FALSE);
		m_wndNewTab.EnableWindow(FALSE);
		m_wndNewGroup.EnableWindow(FALSE);
		m_wndRemove.EnableWindow(FALSE);
		m_wndUp.EnableWindow(FALSE);
		m_wndDown.EnableWindow(FALSE);

		m_pSelCategoryDest = NULL;
		m_pSelPanelDest = NULL;
		m_pSelElemDest = NULL;

		CBCGPGridRow* pRow = m_wndRibbonTreeDest.GetCurSel();
		if (pRow == NULL)
		{
			return 0;
		}

		ASSERT_VALID(pRow);

		CObject* lpData = (CObject*)pRow->GetData();
		if (lpData != NULL)
		{
			m_wndNewTab.EnableWindow();

			m_pSelCategoryDest = DYNAMIC_DOWNCAST(CBCGPRibbonCategory, lpData);
			if (m_pSelCategoryDest != NULL)
			{
				m_wndRename.EnableWindow();
				m_wndNewGroup.EnableWindow();

				if (m_pSelCategoryDest->IsCustom())
				{
					m_wndRemove.EnableWindow();
				}

				m_wndUp.EnableWindow(!m_wndRibbonTreeDest.IsSelFirstInGroup());
				m_wndDown.EnableWindow(!m_wndRibbonTreeDest.IsSelLastInGroup());
			}
			else
			{
				m_pSelPanelDest = DYNAMIC_DOWNCAST(CBCGPRibbonPanel, lpData);
				if (m_pSelPanelDest != NULL)
				{
					m_wndRename.EnableWindow();
					m_wndNewGroup.EnableWindow();
					m_wndRemove.EnableWindow();

					m_wndUp.EnableWindow(!m_wndRibbonTreeDest.IsSelFirstInGroup());
					m_wndDown.EnableWindow(!m_wndRibbonTreeDest.IsSelLastInGroup());
				}
				else
				{
					m_pSelElemDest = DYNAMIC_DOWNCAST(CBCGPBaseRibbonElement, lpData);
					if (m_pSelElemDest != NULL)
					{
						m_wndNewGroup.EnableWindow();
						
						if (m_pSelElemDest->IsCustom() && m_pSelElemDest->GetParentPanel() != NULL)
						{
							m_wndRename.EnableWindow();
							m_wndRemove.EnableWindow();

							m_wndUp.EnableWindow(!m_wndRibbonTreeDest.IsSelFirstInGroup());
							m_wndDown.EnableWindow(!m_wndRibbonTreeDest.IsSelLastInGroup());
						}
					}
				}
			}
		}
	}
	else if (pGrid->GetSafeHwnd() == m_wndRibbonTreeSrc.GetSafeHwnd())
	{
		m_pSelCategorySrc = NULL;
		m_pSelPanelSrc = NULL;
		m_pSelElemSrc = NULL;

		CBCGPGridRow* pRow = m_wndRibbonTreeSrc.GetCurSel();
		if (pRow == NULL)
		{
			return 0;
		}

		ASSERT_VALID(pRow);

		CObject* lpData = (CObject*)pRow->GetData();
		if (lpData != NULL)
		{
			m_pSelCategorySrc = DYNAMIC_DOWNCAST(CBCGPRibbonCategory, lpData);
			m_pSelPanelSrc = DYNAMIC_DOWNCAST(CBCGPRibbonPanel, lpData);
			m_pSelElemSrc = DYNAMIC_DOWNCAST(CBCGPBaseRibbonElement, lpData);
		}
	}

	if (m_pSelCategorySrc != NULL)
	{
		m_wndAdd.EnableWindow();
	}
	else if (m_pSelPanelSrc != NULL)
	{
		ASSERT_VALID(m_pSelPanelSrc);

		CBCGPRibbonCategory* pCategory = m_pSelCategoryDest;
		if (pCategory == NULL)
		{
			if (m_pSelPanelDest != NULL)
			{
				pCategory = m_pSelPanelDest->GetParentCategory();
			}
			else if (m_pSelElemDest != NULL)
			{
				pCategory = m_pSelElemDest->GetParentCategory();
			}
		}

		if (pCategory != NULL)
		{
			m_wndAdd.EnableWindow(pCategory != NULL && pCategory->FindPanelByOriginal(m_pSelPanelSrc) == NULL);
		}
	}
	else if (m_pSelElemSrc != NULL)
	{
		ASSERT_VALID(m_pSelElemSrc);

		CBCGPRibbonPanel* pPanel = m_pSelPanelDest;
		if (pPanel == NULL && m_pSelElemDest != NULL)
		{
			pPanel = m_pSelElemDest->GetParentPanel();
		}

		BOOL bCanAdd = FALSE;

		if (pPanel != NULL && pPanel->IsCustom() && pPanel->m_pOriginal == NULL)
		{
			CBCGPRibbonCustomPanel* pCustomPanel = m_CustomizationData.FindCustomPanel(pPanel);
			if (pCustomPanel != NULL)
			{
				ASSERT_VALID(pCustomPanel);

				if (pCustomPanel->FindByID(m_pSelElemSrc->GetID()) == NULL &&
					m_wndRibbonTreeDest.FindElementInPanel(pPanel, m_pSelElemSrc->GetID()) == NULL)
				{
					bCanAdd = TRUE;
				}
			}
		}

		m_wndAdd.EnableWindow(bCanAdd);
	}
#endif
	return 0;
}
/******************************************************************************
    函    数:
    
    输    入:
    
    输    出:
  
    返 回 值:
    
    功    能: 用户选择震源、炮号准备放炮时,将炮号的信息(CShotPoint)写到表格中对应的震源行内

    修改历史:

*******************************************************************************/
int CActiveSourceWnd::LoadShotPointBySource(CShotSource* pSource, CShotPoint* pShotPoint)
{
	if(!pSource || !pShotPoint)
		return -1;
	CBCGPGridCtrl* pGridCtrl = GetGridCtrl();
	if(NULL==pGridCtrl)
		return -1;
	CBCGPGridRow *pRow=NULL;
	int nRowCount = pGridCtrl->GetRowCount();
	COleVariant oVariant;
	for(int i=0;i<nRowCount;i++)
	{
		pRow = pGridCtrl->GetRow(i);		
		// 判断每行的属性数据与震源的编号是否相等
		if(pRow->GetData()==pSource->m_dwSourceNb)
		{
			// 装载下一次要放炮的炮点编号
			oVariant = (long)pShotPoint->m_dwShotNb + pSource->m_lStep;
			oVariant.ChangeType(VT_BSTR);			
			pRow->GetItem (2)->SetValue (oVariant);

			// 装载炮点的数据,编号
			oVariant = (long)pShotPoint->m_dwShotNb;
			oVariant.ChangeType(VT_BSTR);			
			pRow->GetItem (5)->SetValue (oVariant);
			// Dist min
			pRow->GetItem (6)->SetValue (_T("-"));
			// Current Stack
			pRow->GetItem (7)->SetValue (_T("0"));
			// SourcePoint Line			
			oVariant = pShotPoint->m_fSourceLine;
			oVariant.ChangeType(VT_BSTR);
			pRow->GetItem (8)->SetValue (oVariant);
			// SourcePoint Number		
			oVariant = pShotPoint->m_fSourceNb;
			oVariant.ChangeType(VT_BSTR);
			pRow->GetItem (9)->SetValue (oVariant);
			// SourcePoint Index
			oVariant = (long)pShotPoint->m_dwSourcePointIndex;
			oVariant.ChangeType(VT_BSTR);
			pRow->GetItem (10)->SetValue (oVariant);
			// SFL
			oVariant = (long)pShotPoint->m_dwSpreadSFL;
			oVariant.ChangeType(VT_BSTR);
			pRow->GetItem (11)->SetValue (oVariant);
			// SFN			
			oVariant = (long)pShotPoint->m_dwSpreadSFN;
			oVariant.ChangeType(VT_BSTR);
			pRow->GetItem (12)->SetValue (oVariant);
			// Spread#			
			oVariant = (long)pShotPoint->m_dwSpreadNb;
			oVariant.ChangeType(VT_BSTR);
			pRow->GetItem (13)->SetValue (oVariant);
			// SuperSpread			
			oVariant = (long)pShotPoint->m_dwSuperSpread;
			oVariant.ChangeType(VT_BSTR);
			pRow->GetItem (14)->SetValue (oVariant);
			// ProcessType			
			oVariant = (long)pShotPoint->m_dwProcessNb;
			oVariant.ChangeType(VT_BSTR);
			pRow->GetItem (15)->SetValue (oVariant);
			// Swath			
			oVariant = (long)pShotPoint->m_dwSwathNb;
			oVariant.ChangeType(VT_BSTR);
			pRow->GetItem (16)->SetValue (oVariant);
			return 1;
		}
	}
	
	return 1;

}