Veri nesneleri ve veri kaynakları: düzenleme
Veri nesnesi veya veri kaynağı oluşturduktan sonra çok sayıda ortak ekleme ve kaldırma verileri, Veri bölümünündeki biçimleri numaralandırma gibi verileri ve diğer işlemleri gerçekleştirebilirsiniz.Bu makalede, en yaygın işlemleri tamamlamak gerekli teknikleri.Konular:
Bir veri kaynağına veri ekleme
Veri nesnesinde kullanılabilir biçimleri belirleme
Veri nesnesinden veri alma
Bir veri kaynağına veri ekleme
İsteğe bağlı ve hangi ortamda sağlanan ya da verileri bir veri kaynağına nasıl eklenir olup veri hemen sağlanan üzerinde bağlıdır.Olasılıkları aşağıdaki gibidir.
Hemen veri (anlık görüntü oluşturma) sağlama
Call COleDataSource::CacheGlobalData için sürekli olarak, size sağlayarak verileri her Pano biçimi.Geçmesi için Pano biçimi veri içeren bellek tanıtıcısı ve isteğe bağlı olarak, bir formatetc tanımlayan veri yapısını.
-veya-
Doğrudan çalışmak istiyorsanız, STGMEDIUM , yapıları, çağrı COleDataSource::CacheData yerine COleDataSource::CacheGlobalData yukarıdaki seçeneği.
(Rendering Gecikmeli) isteğe bağlı veri sağlama
Bu ileri düzeyde bir konudur.
Call COleDataSource::DelayRenderData için sürekli olarak, size sağlayarak verileri her Pano biçimi.Kullanılacak Pano biçimi'ni geçmesi ve isteğe bağlı olarak, bir formatetc tanımlayan veri yapısı.Çerçeve verileri istendiğinde çağıracak COleDataSource::OnRenderData, hangi geçersiz kılmanız gerekir.
-veya-
Kullanırsanız, bir CFile veri sağlamak için nesne çağrısı COleDataSource::DelayRenderFileData yerine COleDataSource::DelayRenderData önceki seçeneği.Çerçeve verileri istendiğinde çağıracak COleDataSource::OnRenderFileData, hangi geçersiz kılmanız gerekir.
Veri nesnesinde kullanılabilir biçimleri belirleme
Uygulama verileri içine yapıştırmak kullanıcı izin vermeden önce ele alabilir, Pano biçimleri olup olmadığını bilmesi gerekir.Bunu yapmak için uygulamanızı şunları yapmalıdır:
Oluşturma bir COleDataObject nesnesi ve bir formatetc yapısı.
Veri nesnesinin çağrısı AttachClipboard Panodaki veriler veri nesnesi ilişkilendirmek için üye işlevi.
Aşağıdakilerden birini yapın:
Veri nesnesinin çağrısı IsDataAvailable üye işlevi, yalnızca bir veya iki biçimleri gerekir.Bu burada Pano'daki veri uygulamanızın daha önemli ölçüde daha fazla biçimleri destekler durumda size zaman kazandırır.
-veya-
Veri nesnesinin çağrısı BeginEnumFormats üye işlevi numaralandırma biçimlerini panoda başlatmak için.Sonra arama GetNextFormat Pano dönünceye kadar bir biçimi uygulamanız destekler ya da daha fazla bir biçimi vardır.
Kullanıyorsanız, ON_UPDATE_COMMAND_UI, yapıştırma ve, büyük bir olasılıkla Düzen menüsünden Yapıştır özel öğeleri şimdi etkinleştirebilirsiniz.Bunu yapmak için ya da call CMenu::EnableMenuItem veya CCmdUI::Enable.Hangi kapsayıcısı hakkında daha fazla bilgi için uygulamaları menü öğeleri ile yapmak ve görmek, menüler ve kaynaklar: kapsayıcı ekleme.
Veri Nesnesinden Veriyi Geri Alma
Geriye bir veri biçimi üzerinde karar verdikten sonra kalan tek şey veriyi nesnesinden veri almak için.Bunu yapmak için kullanıcı verileri nereye karar ve uygulama uygun işlevi çağırır.Veriler aşağıdaki ortamları biri kullanılabilir:
Orta |
İşlev çağrısı için |
---|---|
Genel bellek (HGLOBAL) |
COleDataObject::GetGlobalData |
File (CFile) |
COleDataObject::GetFileData |
STGMEDIUM yapısı (IStorage) |
COleDataObject::GetData |
Genellikle Orta Pano biçimi ile birlikte belirlenir.Örneğin, bir cf_embeddedstruct nesne her zaman içinde bir IStorage gerektiren Orta bir STGMEDIUM yapısı.Bu nedenle, kullanacağınız GetData alabilen bu işlevler yalnızca biri olduğu için bir STGMEDIUM yapısı.
Pano biçimi içinde olduğu durumlarda bir IStream veya HGLOBAL Orta, framework sağlayan bir CFile verilere başvuruda işaretçi.Uygulama daha sonra dosya okuma bir dosyadan veri alabileceğiniz gibi aynı şekilde veri almak için kullanabilirsiniz.Aslında, bu istemci tarafı arabirimi, OnRenderData ve OnRenderFileData yordamları veri kaynağında.
Veriyi belgeyle aynı biçimde diğer veriler için olduğu gibi artık kullanıcı olabilir.