Exemple #1
0
HRESULT
WINAPI
CNewMenu::InvokeCommand(LPCMINVOKECOMMANDINFO lpici)
{
    HRESULT hr = E_FAIL;

    if (LOWORD(lpici->lpVerb) == 0)
        hr = CreateNewFolder(lpici);
    else
    {
        SHELLNEW_ITEM *pItem = FindItemFromIdOffset(LOWORD(lpici->lpVerb));
        if (pItem)
            hr = CreateNewItem(pItem, lpici);
    }

    TRACE("CNewMenu::InvokeCommand %x\n", hr);
    return hr;
}
static int Create_New_Folder_ToHDD(void)                     //Cоздание папки на диске LG
{
   if(*NameFoFi == 0)
     return Error1((Lan+184)->msg);                          //"Недопустимое имя"
   c_FAT1 = (DWORD *)MyAllocMem(Size_FAT1);                  //Память под FAT
   if(c_FAT1 == NULL)  return -1;
   CopyMemory(c_FAT1, FAT1, Size_FAT1);                      //Скопировали содержимое FAT1
   if(Load_Dir() < 0) return -1;                             //Загрузка кластера каталога
   if(CreateNewFolder() < 0) return -1;                      //Создание новой папки на HDD рекордера
#if !defined EMULATOR_HDD                                    //Режим эмулятора
   if(Save_FAT1() < 0) return -1;                            //Сохранение обновленной FAT первого раздела
   if(Save_Dir() < 0) return -1;                             //Сохранение кластера каталога
   if(Change_Sec67(-1) < 0) return -1;                       //Внесение изменений в содержимое сектора 67
#endif
   writeCl++;                                                //Число записанных кластеров
   ViewSize();                                               //Показа дискового пространства
   MyFreeMem(&(void*)c_FAT1);
   MyFreeMem(&(void*)spisF);
   return 0;
}