понедельник, 21 июля 2008 г.

9c951267

Интересное сочетание: 9c951267

пятница, 30 мая 2008 г.

Уф... осталась только литра...

Седня мне разрешили учить только два вопроса из трех) Теперь буду писать конспекты вопросов в тетрадку)



понедельник, 19 мая 2008 г.

Тупой шварц)

Плять, ну как же он меня заебал киданием и битью по различным предметам в моей комнате(



воскресенье, 18 мая 2008 г.

Стихи бобра)

загадка №2:
Кто объевшийся урод?
Кто, быть может, сильно пьян?
Кто небритый обормот?
ЭЭЭто толстенький _____!!!

***
"Это- кисло, это- горько,
Это, бля, ваще гАвно",-
говорит серьёзно Толька,
Дегустируя вино.

***
Его навеки не забудешь ты-
Он самый толерантный в школе;
В глаза бросаются знакомые черты-
Явился к нам небритый Толя.

Дверь машины ржавой отворя,
Вышел он, великий и ужасный.
И под светом утреннего фонаря,
Облик всплыл его прекрасный.

Медвежьей лёгкою походкой,
Он в дверь тихонько проскользнул;
Потом, позвякивая водкой,
Он в зал пробрался, и уснул...

Мои первые стишки))

Поскольку в вконтакте стало неудобно их хранить, да и они могут вполне исчезнуть, то помещу их здесь)

***
Мы идем!
Вперед идем!
Вперед за славой!
Вперед за мечтой!
Но мы не пусты!
Мы не просто мечтаем
Мы не просто идем
Наши идеи чисты.
Все кто с нами - вперед!
Остальные - не ипёт.

***
Они дышат спокойно,
Они не ищут свободы
Они не ищут любви
Но их не в чем винить.
И их не надо душить...
Им ведь и так очень сложно
Ведь у них нет души
Но они все свободны
Они и так все чисты.

***
Опечаленному другу.

Друг, отбрось невзгоды,
Успокой свою душу,
Ведь не бывает такой погоды,
В которой Друг не поможет другу.

Пусть тебе сегодня очень трудно,
Пускай сегодня от тебя любовь ушла.
Я всегда смогу помочь тебе
Ведь друг пришел - и боль ушла!

***
Темными ночами на даче двое братьев
Сидели обсуждали о том что нету счастья,
О том, что в понедельник опять все растает,
О том, что в этом мире идеи пропадают...

На следующее утро один ушел домой,
Второй пошел гулять с девочкой одной.
Один добился счастья, второй его нашел.

Все те же двое братьев сидели у окна,
И думали о жизни, о дружбе, о любви,
Детское задорство в них не умерло еще,
И этм оба счастливы они.

понедельник, 10 марта 2008 г.

Singularity OS - первый взгляд

Многую часть прошедших выходных я потратил на изучение Singularity - операционной системе с открытым исходным кодом от Microsoft. Самое главное это то, что она почти полностью написана на C#. После двух дней мучений я смог написать первую прогу, которая выводит на экран список объектов в папке "/"=) Потом беде писать простенький файловый менеджер.

среда, 7 ноября 2007 г.

Опярация ГЫ или Создание своего редакотра файлов для Visual Studio. Часть первая. Описательная.

В этом цикле статей я постараюсь описать то, что я мог понять в Visual Studio SDK)

С самого начала меня подстерегали неудачи( Сначало Установка СДК повисла в самом конце установки, но выключение её через TaskManager все поправило) Но для чего я начал изучение этого СДК? Конечно для того, что бы написать свой собственный редактор Гуи-файлов для моего браузера. Да-да. Я знаю, что есть WPF, у которой формы хранятся в Xml. Но, "нормальные герои всегда идут в обход"))) но дело не в этом. Мне начинает казаться, что MS пишет все, что бы превратить проггеров в Быдло-Кодеров( слишком упрощяют жизнь прогерам) Но это не единственная прричина. У меня всегда были проблемы с парсингом и прочей лабудой. Это будет мне хорошим опытом)

И так. Начнем!

Первое что я начал делать это открыл пример Editor with Toolbox.

Что же я в нем увидел.

Сначало я начал рассматривать файл "EditorPane.cs"
В нем, как не сложно понять, находится класс EditorPane.

Сначала я перешел к методам. По-моему, это самое логичное решение)
Методы Disposing'а я не буду здесь описывать. Они нам пока не интересны.

public int QueryStatus(ref Guid pguidCmdGroup, uint cCmds, OLECMD[] prgCmds, IntPtr pCmdText)
Этот метод возвращает определеные значения перечисления OLECMDF о доступности какой-либо функции вида: "копировать", "вставить", "вырезать", "отметнить".... и т.д.

public int Exec(ref Guid pguidCmdGroup, uint nCmdID, uint nCmdexecopt, IntPtr pvaIn, IntPtr pvaOut)
Который соответственно выполняет одну из указанных команд.

int Microsoft.VisualStudio.OLE.Interop.IPersist.GetClassID(out Guid pClassID)
int IPersistFileFormat.GetClassID(out Guid pClassID)
Я пока не разобрался, что он делает.

int IPersistFileFormat.GetCurFile(out string ppszFilename, out uint pnFormatIndex)
Возвращает имя файла, с которым сейчас работает редактор. И индекс формата файла(если один вариант формата, то пишем 0)

int IPersistFileFormat.GetFormatList(out string ppszFormatList)
Возвращает строку формата файла. Пример:
"HTML File (*.htm; *.html; *.asp)\n*.htm;*.html;*.asp\nText File (*.txt)\n*.txt\n."

int IPersistFileFormat.SaveCompleted(string pszFilename)
Определяет сохранен ли файл. Если нет, то VSConstants.S_FALSE, иначе VSConstants.S_OK.

int IPersistFileFormat.InitNew(uint nFormatIndex)
Инициализация объекта с указанием текущего индеа формата.

int IPersistFileFormat.IsDirty(out int pfIsDirty)
Изменен ли файл с момента последнего сохранения.

int IPersistFileFormat.Load(string pszFilename, uint grfMode, int fReadOnly)
Загрузка файла.

int IPersistFileFormat.Save(string pszFilename, int fRemember, uint nFormatIndex)
Сохранение файла.

int IVsPersistDocData.Close()
Видимо это метод, вызывающийся при закрытии файла или редактора.

int IVsPersistDocData.GetGuidEditorType(out Guid pClassID)
Возвращает гуид класса, который создал этот объект.

int IVsPersistDocData.IsDocDataDirty(out int pfDirty)
Проверяет изменен ли документ с момента последнего сохранения. (Опять???)

int IVsPersistDocData.IsDocDataReloadable(out int pfReloadable)
Возвращает возможность перезагрузить документ.

int IVsPersistDocData.LoadDocData(string pszMkDocument)
Загружает файл(Опять???)

int IVsPersistDocData.OnRegisterDocData(uint docCookie, IVsHierarchy pHierNew, uint itemidNew)
ХЗ ч0

int IVsPersistDocData.ReloadDocData(uint grfFlags)
Перезагрузает документ.

int IVsPersistDocData.RenameDocData(uint grfAttribs, IVsHierarchy pHierNew, uint itemidNew, string pszMkDocumentNew)
Переименовывает данные документа... в общем опять ХЗ ч0.

int IVsPersistDocData.SaveDocData(Microsoft.VisualStudio.Shell.Interop.VSSAVEFLAGS dwSave, out string pbstrMkDocumentNew, out int pfSaveCanceled)
Сохраняет данные документа... ппц просто.

int IVsPersistDocData.SetUntitledDocPath(string pszDocDataPath)
Используется для инициализации донных документа, который только что создан и не сохранен.

int IVsToolboxUser.IsSupported(IOleDataObject pDO)
Поддерживает ли панель редактора объект.

int IVsToolboxUser.ItemPicked(IOleDataObject pDO)
Вызывается при активации объекта в тулбоксе.

Дальше идет список событий от RitchTextBox'a, который является контроллом нашего редактора. Мы их пропустим.

Дельше следуют еще две функции CanEditFile() и NotifyDocChanged().

NotifyDocChanged()
Оч. полезная функция, в которой показано, как указать пользователю, что файл изменен.
CanEditFile()
Определяет можно ли редактировать файл.

Вот и все с этим файлом.... как ыидите тут есть над чем задуматься. а именно, почему здесь есть повторяющиеся функции, хоть они и из разных интерфейсов? почему нельзя было сделать один класс для возвращения всех необходимых гуидов? Не знаю. Видимо я что-то не понимаю.

Дальше я посмотрел файл EditorControl.cs. В нем находится контрол редактора, а именно RitchTextBox... и больше ничего(

Идем дальше.EditFactory.cs. Как видно из названия здесь реализована фабрика редактора. Попробуем разобраться.

public int SetSite(IOleServiceProvider psp)
Служит для установки провайдера сервисов, с помощью которого вы сможете создавать объекты по гуиду.

public int MapLogicalView(ref Guid rguidLogicalView, out string pbstrPhysicalView)
Вроде служит для проверки возможности вида редактора(во время дебага, нормальный режим)...

public int Close()
Закрытие фабрики.

public int CreateEditorInstance(
uint grfCreateDoc,
string pszMkDocument,
string pszPhysicalView,
IVsHierarchy pvHier,
uint itemid,
System.IntPtr punkDocDataExisting,
out System.IntPtr ppunkDocView,
out System.IntPtr ppunkDocData,
out string pbstrEditorCaption,
out Guid pguidCmdUI,
out int pgrfCDW)

Создает сам редактор.

public object GetService(Type serviceType)
Вспомагательный метод для создания объекта из его типа.

Вот и все на сегодня) мне пора спать)
Удачи!