[ros-diffs] [cfinck] 37109: Merge in 37063, 37071, 37080, 37106-37108

cfinck at svn.reactos.org cfinck at svn.reactos.org
Thu Oct 30 22:13:30 CET 2008


Author: cfinck
Date: Thu Oct 30 16:13:29 2008
New Revision: 37109

URL: http://svn.reactos.org/svn/reactos?rev=37109&view=rev
Log:
Merge in 37063, 37071, 37080, 37106-37108

Modified:
    branches/ros-branch-0_3_7/reactos/dll/win32/iphlpapi/iphlpapi_main.c
    branches/ros-branch-0_3_7/reactos/dll/win32/iphlpapi/resinfo_reactos.c
    branches/ros-branch-0_3_7/reactos/dll/win32/netshell/lanstatusui.c
    branches/ros-branch-0_3_7/reactos/dll/win32/shell32/shlview.c
    branches/ros-branch-0_3_7/reactos/dll/win32/shell32/shv_def_cmenu.c

Modified: branches/ros-branch-0_3_7/reactos/dll/win32/iphlpapi/iphlpapi_main.c
URL: http://svn.reactos.org/svn/reactos/branches/ros-branch-0_3_7/reactos/dll/win32/iphlpapi/iphlpapi_main.c?rev=37109&r1=37108&r2=37109&view=diff
==============================================================================
--- branches/ros-branch-0_3_7/reactos/dll/win32/iphlpapi/iphlpapi_main.c [iso-8859-1] (original)
+++ branches/ros-branch-0_3_7/reactos/dll/win32/iphlpapi/iphlpapi_main.c [iso-8859-1] Thu Oct 30 16:13:29 2008
@@ -1388,8 +1388,32 @@
     CopyMemory(&pFixedInfo->DnsServerList, resInfo->DnsList, sizeof(IP_ADDR_STRING));
     if (resInfo->riCount > 1)
     {
-      pFixedInfo->DnsServerList.Next = (struct _IP_ADDR_STRING*)((char*)pFixedInfo + sizeof(FIXED_INFO));
-      CopyMemory(pFixedInfo->DnsServerList.Next, resInfo->DnsList->Next, sizeof(IP_ADDR_STRING) * (resInfo->riCount-1));
+      IP_ADDR_STRING *pSrc = resInfo->DnsList->Next;
+      IP_ADDR_STRING *pTarget = (struct _IP_ADDR_STRING*)((char*)pFixedInfo + sizeof(FIXED_INFO));
+
+      pFixedInfo->DnsServerList.Next = pTarget;
+
+      do
+      {
+        CopyMemory(pTarget, pSrc, sizeof(IP_ADDR_STRING));
+        resInfo->riCount--;
+        if (resInfo->riCount > 1)
+        {
+          pTarget->Next = (IP_ADDR_STRING*)((char*)pTarget + sizeof(IP_ADDR_STRING));
+          pTarget = pTarget->Next;
+          pSrc = pSrc->Next;
+        }
+        else
+        {
+          pTarget->Next = NULL;
+          break;
+        }
+      }
+      while(TRUE);
+    }
+    else
+    {
+      pFixedInfo->DnsServerList.Next = NULL;
     }
   }
 

Modified: branches/ros-branch-0_3_7/reactos/dll/win32/iphlpapi/resinfo_reactos.c
URL: http://svn.reactos.org/svn/reactos/branches/ros-branch-0_3_7/reactos/dll/win32/iphlpapi/resinfo_reactos.c?rev=37109&r1=37108&r2=37109&view=diff
==============================================================================
--- branches/ros-branch-0_3_7/reactos/dll/win32/iphlpapi/resinfo_reactos.c [iso-8859-1] (original)
+++ branches/ros-branch-0_3_7/reactos/dll/win32/iphlpapi/resinfo_reactos.c [iso-8859-1] Thu Oct 30 16:13:29 2008
@@ -244,6 +244,6 @@
 
 VOID disposeResInfo( PIPHLP_RES_INFO InfoPtr ) 
 {
+    HeapFree(GetProcessHeap(), 0, InfoPtr->DnsList);
     RtlFreeHeap( GetProcessHeap(), 0, InfoPtr );
-    HeapFree(GetProcessHeap(), 0, InfoPtr->DnsList);
-}
+}

Modified: branches/ros-branch-0_3_7/reactos/dll/win32/netshell/lanstatusui.c
URL: http://svn.reactos.org/svn/reactos/branches/ros-branch-0_3_7/reactos/dll/win32/netshell/lanstatusui.c?rev=37109&r1=37108&r2=37109&view=diff
==============================================================================
--- branches/ros-branch-0_3_7/reactos/dll/win32/netshell/lanstatusui.c [iso-8859-1] (original)
+++ branches/ros-branch-0_3_7/reactos/dll/win32/netshell/lanstatusui.c [iso-8859-1] Thu Oct 30 16:13:29 2008
@@ -429,9 +429,11 @@
             {
                 li.iItem = InsertItemToListView(hDlgCtrl, IDS_PHYSICAL_ADDRESS);
                 if (li.iItem >= 0)
-                    if (MultiByteToWideChar(CP_ACP, 0, (LPCSTR)pCurAdapter->Address, -1, szBuffer, sizeof(szBuffer)/sizeof(WCHAR)))
-                        SendMessageW(hDlgCtrl, LVM_SETITEMW, 0, (LPARAM)&li);
-
+                {
+                    swprintf(szBuffer, L"%02x-%02x-%02x-%02x-%02x-%02x",pCurAdapter->Address[0], pCurAdapter->Address[1],
+                             pCurAdapter->Address[2], pCurAdapter->Address[3], pCurAdapter->Address[4], pCurAdapter->Address[5]);
+                    SendMessageW(hDlgCtrl, LVM_SETITEMW, 0, (LPARAM)&li);
+                }
                 li.iItem = InsertItemToListView(hDlgCtrl, IDS_IP_ADDRESS);
                 if (li.iItem >= 0)
                     if (MultiByteToWideChar(CP_ACP, 0, pCurAdapter->IpAddressList.IpAddress.String, -1, szBuffer, sizeof(szBuffer)/sizeof(WCHAR)))

Modified: branches/ros-branch-0_3_7/reactos/dll/win32/shell32/shlview.c
URL: http://svn.reactos.org/svn/reactos/branches/ros-branch-0_3_7/reactos/dll/win32/shell32/shlview.c?rev=37109&r1=37108&r2=37109&view=diff
==============================================================================
--- branches/ros-branch-0_3_7/reactos/dll/win32/shell32/shlview.c [iso-8859-1] (original)
+++ branches/ros-branch-0_3_7/reactos/dll/win32/shell32/shlview.c [iso-8859-1] Thu Oct 30 16:13:29 2008
@@ -835,6 +835,8 @@
 	static UINT CF_IDLIST = 0;
 	HRESULT hr;
 	IDataObject* selection;
+	IContextMenu * cm;
+	HMENU hmenu;
 	FORMATETC fetc;
 	STGMEDIUM stgm;
 	LPIDA pIDList;
@@ -843,14 +845,68 @@
 	LPCWSTR parent_dir = NULL;
 	SFGAOF attribs;
 	int i;
+	CMINVOKECOMMANDINFOEX ici;
+	MENUITEMINFOW info;
 
 	if (0 == ShellView_GetSelections(This))
 	{
 	  return S_OK;
 	}
+
+	hr = IShellFolder_GetUIObjectOf(This->pSFParent, This->hWnd, This->cidl,
+	                                (LPCITEMIDLIST*)This->apidl, &IID_IContextMenu,
+	                                0, (LPVOID *)&cm);
+
+	if (SUCCEEDED(hr))
+	{
+		hmenu = CreatePopupMenu();
+		if (hmenu)
+		{
+			if (SUCCEEDED(IContextMenu_QueryContextMenu( cm, hmenu, 0, 0x20, 0x7fff, CMF_DEFAULTONLY)))
+			{
+				INT def = -1, n = GetMenuItemCount(hmenu);
+
+				for ( i = 0; i < n; i++ )
+				{
+					memset( &info, 0, sizeof info );
+					info.cbSize = sizeof info;
+					info.fMask = MIIM_FTYPE | MIIM_STATE | MIIM_ID;
+					if (GetMenuItemInfoW( hmenu, i, TRUE, &info))
+					{
+						if (info.fState & MFS_DEFAULT)
+						{
+							def = info.wID;
+							break;
+						}
+					}
+				}
+				if (def != -1)
+				{
+					memset( &ici, 0, sizeof ici );
+					ici.cbSize = sizeof ici;
+					ici.lpVerb = MAKEINTRESOURCEA( def );
+					ici.hwnd = This->hWnd;
+
+					IContextMenu_InvokeCommand(cm, (LPCMINVOKECOMMANDINFO) &ici );
+					IContextMenu_Release(cm);
+					DestroyMenu( hmenu );
+					return S_OK;
+				}
+				
+			}
+			DestroyMenu( hmenu );
+		}
+		IContextMenu_Release(cm);
+	}
+
+
+
 	hr = IShellFolder_GetUIObjectOf(This->pSFParent, This->hWnd, This->cidl,
 	                                (LPCITEMIDLIST*)This->apidl, &IID_IDataObject,
 	                                0, (LPVOID *)&selection);
+
+
+
 	if (FAILED(hr))
 	  return hr;
 

Modified: branches/ros-branch-0_3_7/reactos/dll/win32/shell32/shv_def_cmenu.c
URL: http://svn.reactos.org/svn/reactos/branches/ros-branch-0_3_7/reactos/dll/win32/shell32/shv_def_cmenu.c?rev=37109&r1=37108&r2=37109&view=diff
==============================================================================
--- branches/ros-branch-0_3_7/reactos/dll/win32/shell32/shv_def_cmenu.c [iso-8859-1] (original)
+++ branches/ros-branch-0_3_7/reactos/dll/win32/shell32/shv_def_cmenu.c [iso-8859-1] Thu Oct 30 16:13:29 2008
@@ -1404,10 +1404,10 @@
     }
     else if (_ILIsNetHood(This->dcm.apidl[0]))
     {
-        /* FIXME
-         * implement nethood properties
-         */
-        FIXME("implement network connection shell folder\n");
+        //FIXME path!
+        ShellExecuteW(NULL, L"open", L"explorer.exe",
+                      L"/n,::{20D04FE0-3AEA-1069-A2D8-08002B30309D}\\::{7007ACC7-3202-11D1-AAD2-00805FC1270E}", 
+                      NULL, SW_SHOWDEFAULT);
         return S_OK;
     }
     else if (_ILIsBitBucket(This->dcm.apidl[0]))



More information about the Ros-diffs mailing list